Index: openacs-4/packages/xowiki/www/resources/jquery/jquery.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/resources/jquery/Attic/jquery.js,v
diff -u -r1.6 -r1.6.2.1
--- openacs-4/packages/xowiki/www/resources/jquery/jquery.js	13 Sep 2012 16:06:47 -0000	1.6
+++ openacs-4/packages/xowiki/www/resources/jquery/jquery.js	14 Apr 2014 21:10:54 -0000	1.6.2.1
@@ -1,259 +1,131 @@
 /*!
- * jQuery JavaScript Library v1.6.1
+ * jQuery JavaScript Library v1.11.0
  * http://jquery.com/
  *
- * Copyright 2011, John Resig
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
  * Includes Sizzle.js
  * http://sizzlejs.com/
- * Copyright 2011, The Dojo Foundation
- * Released under the MIT, BSD, and GPL Licenses.
  *
- * Date: Thu May 12 15:04:36 2011 -0400
+ * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2014-01-23T21:02Z
  */
-(function( window, undefined ) {
 
-// Use the correct document accordingly with window argument (sandbox)
-var document = window.document,
-	navigator = window.navigator,
-	location = window.location;
-var jQuery = (function() {
+(function( global, factory ) {
 
-// Define a local copy of jQuery
-var jQuery = function( selector, context ) {
-		// The jQuery object is actually just the init constructor 'enhanced'
-		return new jQuery.fn.init( selector, context, rootjQuery );
-	},
+	if ( typeof module === "object" && typeof module.exports === "object" ) {
+		// For CommonJS and CommonJS-like environments where a proper window is present,
+		// execute the factory and get jQuery
+		// For environments that do not inherently posses a window with a document
+		// (such as Node.js), expose a jQuery-making factory as module.exports
+		// This accentuates the need for the creation of a real window
+		// e.g. var jQuery = require("jquery")(window);
+		// See ticket #14549 for more info
+		module.exports = global.document ?
+			factory( global, true ) :
+			function( w ) {
+				if ( !w.document ) {
+					throw new Error( "jQuery requires a window with a document" );
+				}
+				return factory( w );
+			};
+	} else {
+		factory( global );
+	}
 
-	// Map over jQuery in case of overwrite
-	_jQuery = window.jQuery,
+// Pass this if window is not defined yet
+}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
 
-	// Map over the $ in case of overwrite
-	_$ = window.$,
+// Can't do this because several apps including ASP.NET trace
+// the stack via arguments.caller.callee and Firefox dies if
+// you try to trace through "use strict" call chains. (#13335)
+// Support: Firefox 18+
+//
 
-	// A central reference to the root jQuery(document)
-	rootjQuery,
+var deletedIds = [];
 
-	// A simple way to check for HTML strings or ID strings
-	// (both of which we optimize for)
-	quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
+var slice = deletedIds.slice;
 
-	// Check if a string has a non-whitespace character in it
-	rnotwhite = /\S/,
+var concat = deletedIds.concat;
 
-	// Used for trimming whitespace
-	trimLeft = /^\s+/,
-	trimRight = /\s+$/,
+var push = deletedIds.push;
 
-	// Check for digits
-	rdigit = /\d/,
+var indexOf = deletedIds.indexOf;
 
-	// Match a standalone tag
-	rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
+var class2type = {};
 
-	// JSON RegExp
-	rvalidchars = /^[\],:{}\s]*$/,
-	rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
-	rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
-	rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
+var toString = class2type.toString;
 
-	// Useragent RegExp
-	rwebkit = /(webkit)[ \/]([\w.]+)/,
-	ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,
-	rmsie = /(msie) ([\w.]+)/,
-	rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
+var hasOwn = class2type.hasOwnProperty;
 
-	// Keep a UserAgent string for use with jQuery.browser
-	userAgent = navigator.userAgent,
+var trim = "".trim;
 
-	// For matching the engine and version of the browser
-	browserMatch,
+var support = {};
 
-	// The deferred used on DOM ready
-	readyList,
 
-	// The ready event handler
-	DOMContentLoaded,
 
-	// Save a reference to some core methods
-	toString = Object.prototype.toString,
-	hasOwn = Object.prototype.hasOwnProperty,
-	push = Array.prototype.push,
-	slice = Array.prototype.slice,
-	trim = String.prototype.trim,
-	indexOf = Array.prototype.indexOf,
+var
+	version = "1.11.0",
 
-	// [[Class]] -> type pairs
-	class2type = {};
+	// Define a local copy of jQuery
+	jQuery = function( selector, context ) {
+		// The jQuery object is actually just the init constructor 'enhanced'
+		// Need init if jQuery is called (just allow error to be thrown if not included)
+		return new jQuery.fn.init( selector, context );
+	},
 
-jQuery.fn = jQuery.prototype = {
-	constructor: jQuery,
-	init: function( selector, context, rootjQuery ) {
-		var match, elem, ret, doc;
+	// Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE)
+	rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
 
-		// Handle $(""), $(null), or $(undefined)
-		if ( !selector ) {
-			return this;
-		}
+	// Matches dashed string for camelizing
+	rmsPrefix = /^-ms-/,
+	rdashAlpha = /-([\da-z])/gi,
 
-		// Handle $(DOMElement)
-		if ( selector.nodeType ) {
-			this.context = this[0] = selector;
-			this.length = 1;
-			return this;
-		}
+	// Used by jQuery.camelCase as callback to replace()
+	fcamelCase = function( all, letter ) {
+		return letter.toUpperCase();
+	};
 
-		// The body element only exists once, optimize finding it
-		if ( selector === "body" && !context && document.body ) {
-			this.context = document;
-			this[0] = document.body;
-			this.selector = selector;
-			this.length = 1;
-			return this;
-		}
+jQuery.fn = jQuery.prototype = {
+	// The current version of jQuery being used
+	jquery: version,
 
-		// Handle HTML strings
-		if ( typeof selector === "string" ) {
-			// Are we dealing with HTML string or an ID?
-			if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) {
-				// Assume that strings that start and end with <> are HTML and skip the regex check
-				match = [ null, selector, null ];
+	constructor: jQuery,
 
-			} else {
-				match = quickExpr.exec( selector );
-			}
-
-			// Verify a match, and that no context was specified for #id
-			if ( match && (match[1] || !context) ) {
-
-				// HANDLE: $(html) -> $(array)
-				if ( match[1] ) {
-					context = context instanceof jQuery ? context[0] : context;
-					doc = (context ? context.ownerDocument || context : document);
-
-					// If a single string is passed in and it's a single tag
-					// just do a createElement and skip the rest
-					ret = rsingleTag.exec( selector );
-
-					if ( ret ) {
-						if ( jQuery.isPlainObject( context ) ) {
-							selector = [ document.createElement( ret[1] ) ];
-							jQuery.fn.attr.call( selector, context, true );
-
-						} else {
-							selector = [ doc.createElement( ret[1] ) ];
-						}
-
-					} else {
-						ret = jQuery.buildFragment( [ match[1] ], [ doc ] );
-						selector = (ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment).childNodes;
-					}
-
-					return jQuery.merge( this, selector );
-
-				// HANDLE: $("#id")
-				} else {
-					elem = document.getElementById( match[2] );
-
-					// Check parentNode to catch when Blackberry 4.6 returns
-					// nodes that are no longer in the document #6963
-					if ( elem && elem.parentNode ) {
-						// Handle the case where IE and Opera return items
-						// by name instead of ID
-						if ( elem.id !== match[2] ) {
-							return rootjQuery.find( selector );
-						}
-
-						// Otherwise, we inject the element directly into the jQuery object
-						this.length = 1;
-						this[0] = elem;
-					}
-
-					this.context = document;
-					this.selector = selector;
-					return this;
-				}
-
-			// HANDLE: $(expr, $(...))
-			} else if ( !context || context.jquery ) {
-				return (context || rootjQuery).find( selector );
-
-			// HANDLE: $(expr, context)
-			// (which is just equivalent to: $(context).find(expr)
-			} else {
-				return this.constructor( context ).find( selector );
-			}
-
-		// HANDLE: $(function)
-		// Shortcut for document ready
-		} else if ( jQuery.isFunction( selector ) ) {
-			return rootjQuery.ready( selector );
-		}
-
-		if (selector.selector !== undefined) {
-			this.selector = selector.selector;
-			this.context = selector.context;
-		}
-
-		return jQuery.makeArray( selector, this );
-	},
-
 	// Start with an empty selector
 	selector: "",
 
-	// The current version of jQuery being used
-	jquery: "1.6.1",
-
 	// The default length of a jQuery object is 0
 	length: 0,
 
-	// The number of elements contained in the matched element set
-	size: function() {
-		return this.length;
-	},
-
 	toArray: function() {
-		return slice.call( this, 0 );
+		return slice.call( this );
 	},
 
 	// Get the Nth element in the matched element set OR
 	// Get the whole matched element set as a clean array
 	get: function( num ) {
-		return num == null ?
+		return num != null ?
 
 			// Return a 'clean' array
-			this.toArray() :
+			( num < 0 ? this[ num + this.length ] : this[ num ] ) :
 
 			// Return just the object
-			( num < 0 ? this[ this.length + num ] : this[ num ] );
+			slice.call( this );
 	},
 
 	// Take an array of elements and push it onto the stack
 	// (returning the new matched element set)
-	pushStack: function( elems, name, selector ) {
+	pushStack: function( elems ) {
+
 		// Build a new jQuery matched element set
-		var ret = this.constructor();
+		var ret = jQuery.merge( this.constructor(), elems );
 
-		if ( jQuery.isArray( elems ) ) {
-			push.apply( ret, elems );
-
-		} else {
-			jQuery.merge( ret, elems );
-		}
-
 		// Add the old object onto the stack (as a reference)
 		ret.prevObject = this;
-
 		ret.context = this.context;
 
-		if ( name === "find" ) {
-			ret.selector = this.selector + (this.selector ? " " : "") + selector;
-		} else if ( name ) {
-			ret.selector = this.selector + "." + name + "(" + selector + ")";
-		}
-
 		// Return the newly-formed element set
 		return ret;
 	},
@@ -265,20 +137,14 @@
 		return jQuery.each( this, callback, args );
 	},
 
-	ready: function( fn ) {
-		// Attach the listeners
-		jQuery.bindReady();
-
-		// Add the callback
-		readyList.done( fn );
-
-		return this;
+	map: function( callback ) {
+		return this.pushStack( jQuery.map(this, function( elem, i ) {
+			return callback.call( elem, i, elem );
+		}));
 	},
 
-	eq: function( i ) {
-		return i === -1 ?
-			this.slice( i ) :
-			this.slice( i, +i + 1 );
+	slice: function() {
+		return this.pushStack( slice.apply( this, arguments ) );
 	},
 
 	first: function() {
@@ -289,33 +155,25 @@
 		return this.eq( -1 );
 	},
 
-	slice: function() {
-		return this.pushStack( slice.apply( this, arguments ),
-			"slice", slice.call(arguments).join(",") );
+	eq: function( i ) {
+		var len = this.length,
+			j = +i + ( i < 0 ? len : 0 );
+		return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );
 	},
 
-	map: function( callback ) {
-		return this.pushStack( jQuery.map(this, function( elem, i ) {
-			return callback.call( elem, i, elem );
-		}));
-	},
-
 	end: function() {
 		return this.prevObject || this.constructor(null);
 	},
 
 	// For internal use only.
 	// Behaves like an Array's method, not like a jQuery method.
 	push: push,
-	sort: [].sort,
-	splice: [].splice
+	sort: deletedIds.sort,
+	splice: deletedIds.splice
 };
 
-// Give the init function the jQuery prototype for later instantiation
-jQuery.fn.init.prototype = jQuery.fn;
-
 jQuery.extend = jQuery.fn.extend = function() {
-	var options, name, src, copy, copyIsArray, clone,
+	var src, copyIsArray, copy, name, options, clone,
 		target = arguments[0] || {},
 		i = 1,
 		length = arguments.length,
@@ -324,9 +182,10 @@
 	// Handle a deep copy situation
 	if ( typeof target === "boolean" ) {
 		deep = target;
-		target = arguments[1] || {};
+
 		// skip the boolean and the target
-		i = 2;
+		target = arguments[ i ] || {};
+		i++;
 	}
 
 	// Handle case when target is a string or something (possible in deep copy)
@@ -335,9 +194,9 @@
 	}
 
 	// extend jQuery itself if only one argument is passed
-	if ( length === i ) {
+	if ( i === length ) {
 		target = this;
-		--i;
+		i--;
 	}
 
 	for ( ; i < length; i++ ) {
@@ -379,106 +238,18 @@
 };
 
 jQuery.extend({
-	noConflict: function( deep ) {
-		if ( window.$ === jQuery ) {
-			window.$ = _$;
-		}
+	// Unique for each copy of jQuery on the page
+	expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
 
-		if ( deep && window.jQuery === jQuery ) {
-			window.jQuery = _jQuery;
-		}
+	// Assume jQuery is ready without the ready module
+	isReady: true,
 
-		return jQuery;
+	error: function( msg ) {
+		throw new Error( msg );
 	},
 
-	// Is the DOM ready to be used? Set to true once it occurs.
-	isReady: false,
+	noop: function() {},
 
-	// A counter to track how many items to wait for before
-	// the ready event fires. See #6781
-	readyWait: 1,
-
-	// Hold (or release) the ready event
-	holdReady: function( hold ) {
-		if ( hold ) {
-			jQuery.readyWait++;
-		} else {
-			jQuery.ready( true );
-		}
-	},
-
-	// Handle when the DOM is ready
-	ready: function( wait ) {
-		// Either a released hold or an DOMready/load event and not yet ready
-		if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) {
-			// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
-			if ( !document.body ) {
-				return setTimeout( jQuery.ready, 1 );
-			}
-
-			// Remember that the DOM is ready
-			jQuery.isReady = true;
-
-			// If a normal DOM Ready event fired, decrement, and wait if need be
-			if ( wait !== true && --jQuery.readyWait > 0 ) {
-				return;
-			}
-
-			// If there are functions bound, to execute
-			readyList.resolveWith( document, [ jQuery ] );
-
-			// Trigger any bound ready events
-			if ( jQuery.fn.trigger ) {
-				jQuery( document ).trigger( "ready" ).unbind( "ready" );
-			}
-		}
-	},
-
-	bindReady: function() {
-		if ( readyList ) {
-			return;
-		}
-
-		readyList = jQuery._Deferred();
-
-		// Catch cases where $(document).ready() is called after the
-		// browser event has already occurred.
-		if ( document.readyState === "complete" ) {
-			// Handle it asynchronously to allow scripts the opportunity to delay ready
-			return setTimeout( jQuery.ready, 1 );
-		}
-
-		// Mozilla, Opera and webkit nightlies currently support this event
-		if ( document.addEventListener ) {
-			// Use the handy event callback
-			document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );
-
-			// A fallback to window.onload, that will always work
-			window.addEventListener( "load", jQuery.ready, false );
-
-		// If IE event model is used
-		} else if ( document.attachEvent ) {
-			// ensure firing before onload,
-			// maybe late but safe also for iframes
-			document.attachEvent( "onreadystatechange", DOMContentLoaded );
-
-			// A fallback to window.onload, that will always work
-			window.attachEvent( "onload", jQuery.ready );
-
-			// If IE and not a frame
-			// continually check to see if the document is ready
-			var toplevel = false;
-
-			try {
-				toplevel = window.frameElement == null;
-			} catch(e) {}
-
-			if ( document.documentElement.doScroll && toplevel ) {
-				doScrollCheck();
-			}
-		}
-	},
-
 	// See test/unit/core.js for details concerning isFunction.
 	// Since version 1.3, DOM methods and functions like alert
 	// aren't supported. They return false on IE (#2968).
@@ -490,110 +261,77 @@
 		return jQuery.type(obj) === "array";
 	},
 
-	// A crude way of determining if an object is a window
 	isWindow: function( obj ) {
-		return obj && typeof obj === "object" && "setInterval" in obj;
+		/* jshint eqeqeq: false */
+		return obj != null && obj == obj.window;
 	},
 
-	isNaN: function( obj ) {
-		return obj == null || !rdigit.test( obj ) || isNaN( obj );
+	isNumeric: function( obj ) {
+		// parseFloat NaNs numeric-cast false positives (null|true|false|"")
+		// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
+		// subtraction forces infinities to NaN
+		return obj - parseFloat( obj ) >= 0;
 	},
 
-	type: function( obj ) {
-		return obj == null ?
-			String( obj ) :
-			class2type[ toString.call(obj) ] || "object";
+	isEmptyObject: function( obj ) {
+		var name;
+		for ( name in obj ) {
+			return false;
+		}
+		return true;
 	},
 
 	isPlainObject: function( obj ) {
+		var key;
+
 		// Must be an Object.
 		// Because of IE, we also have to check the presence of the constructor property.
 		// Make sure that DOM nodes and window objects don't pass through, as well
 		if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
 			return false;
 		}
 
-		// Not own constructor property must be Object
-		if ( obj.constructor &&
-			!hasOwn.call(obj, "constructor") &&
-			!hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
+		try {
+			// Not own constructor property must be Object
+			if ( obj.constructor &&
+				!hasOwn.call(obj, "constructor") &&
+				!hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
+				return false;
+			}
+		} catch ( e ) {
+			// IE8,9 Will throw exceptions on certain host objects #9897
 			return false;
 		}
 
+		// Support: IE<9
+		// Handle iteration over inherited properties before own properties.
+		if ( support.ownLast ) {
+			for ( key in obj ) {
+				return hasOwn.call( obj, key );
+			}
+		}
+
 		// Own properties are enumerated firstly, so to speed up,
 		// if last one is own, then all properties are own.
-
-		var key;
 		for ( key in obj ) {}
 
 		return key === undefined || hasOwn.call( obj, key );
 	},
 
-	isEmptyObject: function( obj ) {
-		for ( var name in obj ) {
-			return false;
+	type: function( obj ) {
+		if ( obj == null ) {
+			return obj + "";
 		}
-		return true;
+		return typeof obj === "object" || typeof obj === "function" ?
+			class2type[ toString.call(obj) ] || "object" :
+			typeof obj;
 	},
 
-	error: function( msg ) {
-		throw msg;
-	},
-
-	parseJSON: function( data ) {
-		if ( typeof data !== "string" || !data ) {
-			return null;
-		}
-
-		// Make sure leading/trailing whitespace is removed (IE can't handle it)
-		data = jQuery.trim( data );
-
-		// Attempt to parse using the native JSON parser first
-		if ( window.JSON && window.JSON.parse ) {
-			return window.JSON.parse( data );
-		}
-
-		// Make sure the incoming data is actual JSON
-		// Logic borrowed from http://json.org/json2.js
-		if ( rvalidchars.test( data.replace( rvalidescape, "@" )
-			.replace( rvalidtokens, "]" )
-			.replace( rvalidbraces, "")) ) {
-
-			return (new Function( "return " + data ))();
-
-		}
-		jQuery.error( "Invalid JSON: " + data );
-	},
-
-	// Cross-browser xml parsing
-	// (xml & tmp used internally)
-	parseXML: function( data , xml , tmp ) {
-
-		if ( window.DOMParser ) { // Standard
-			tmp = new DOMParser();
-			xml = tmp.parseFromString( data , "text/xml" );
-		} else { // IE
-			xml = new ActiveXObject( "Microsoft.XMLDOM" );
-			xml.async = "false";
-			xml.loadXML( data );
-		}
-
-		tmp = xml.documentElement;
-
-		if ( ! tmp || ! tmp.nodeName || tmp.nodeName === "parsererror" ) {
-			jQuery.error( "Invalid XML: " + data );
-		}
-
-		return xml;
-	},
-
-	noop: function() {},
-
 	// Evaluates a script in a global context
 	// Workarounds based on findings by Jim Driscoll
 	// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
 	globalEval: function( data ) {
-		if ( data && rnotwhite.test( data ) ) {
+		if ( data && jQuery.trim( data ) ) {
 			// We use execScript on Internet Explorer
 			// We use an anonymous function so that context is window
 			// rather than jQuery in Firefox
@@ -603,53 +341,68 @@
 		}
 	},
 
+	// Convert dashed to camelCase; used by the css and data modules
+	// Microsoft forgot to hump their vendor prefix (#9572)
+	camelCase: function( string ) {
+		return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+	},
+
 	nodeName: function( elem, name ) {
-		return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase();
+		return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
 	},
 
 	// args is for internal usage only
-	each: function( object, callback, args ) {
-		var name, i = 0,
-			length = object.length,
-			isObj = length === undefined || jQuery.isFunction( object );
+	each: function( obj, callback, args ) {
+		var value,
+			i = 0,
+			length = obj.length,
+			isArray = isArraylike( obj );
 
 		if ( args ) {
-			if ( isObj ) {
-				for ( name in object ) {
-					if ( callback.apply( object[ name ], args ) === false ) {
+			if ( isArray ) {
+				for ( ; i < length; i++ ) {
+					value = callback.apply( obj[ i ], args );
+
+					if ( value === false ) {
 						break;
 					}
 				}
 			} else {
-				for ( ; i < length; ) {
-					if ( callback.apply( object[ i++ ], args ) === false ) {
+				for ( i in obj ) {
+					value = callback.apply( obj[ i ], args );
+
+					if ( value === false ) {
 						break;
 					}
 				}
 			}
 
 		// A special, fast, case for the most common use of each
 		} else {
-			if ( isObj ) {
-				for ( name in object ) {
-					if ( callback.call( object[ name ], name, object[ name ] ) === false ) {
+			if ( isArray ) {
+				for ( ; i < length; i++ ) {
+					value = callback.call( obj[ i ], i, obj[ i ] );
+
+					if ( value === false ) {
 						break;
 					}
 				}
 			} else {
-				for ( ; i < length; ) {
-					if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) {
+				for ( i in obj ) {
+					value = callback.call( obj[ i ], i, obj[ i ] );
+
+					if ( value === false ) {
 						break;
 					}
 				}
 			}
 		}
 
-		return object;
+		return obj;
 	},
 
 	// Use native String.trim function wherever possible
-	trim: trim ?
+	trim: trim && !trim.call("\uFEFF\xA0") ?
 		function( text ) {
 			return text == null ?
 				"" :
@@ -660,55 +413,61 @@
 		function( text ) {
 			return text == null ?
 				"" :
-				text.toString().replace( trimLeft, "" ).replace( trimRight, "" );
+				( text + "" ).replace( rtrim, "" );
 		},
 
 	// results is for internal usage only
-	makeArray: function( array, results ) {
+	makeArray: function( arr, results ) {
 		var ret = results || [];
 
-		if ( array != null ) {
-			// The window, strings (and functions) also have 'length'
-			// The extra typeof function check is to prevent crashes
-			// in Safari 2 (See: #3039)
-			// Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930
-			var type = jQuery.type( array );
-
-			if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) {
-				push.call( ret, array );
+		if ( arr != null ) {
+			if ( isArraylike( Object(arr) ) ) {
+				jQuery.merge( ret,
+					typeof arr === "string" ?
+					[ arr ] : arr
+				);
 			} else {
-				jQuery.merge( ret, array );
+				push.call( ret, arr );
 			}
 		}
 
 		return ret;
 	},
 
-	inArray: function( elem, array ) {
+	inArray: function( elem, arr, i ) {
+		var len;
 
-		if ( indexOf ) {
-			return indexOf.call( array, elem );
-		}
+		if ( arr ) {
+			if ( indexOf ) {
+				return indexOf.call( arr, elem, i );
+			}
 
-		for ( var i = 0, length = array.length; i < length; i++ ) {
-			if ( array[ i ] === elem ) {
-				return i;
+			len = arr.length;
+			i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;
+
+			for ( ; i < len; i++ ) {
+				// Skip accessing in sparse arrays
+				if ( i in arr && arr[ i ] === elem ) {
+					return i;
+				}
 			}
 		}
 
 		return -1;
 	},
 
 	merge: function( first, second ) {
-		var i = first.length,
-			j = 0;
+		var len = +second.length,
+			j = 0,
+			i = first.length;
 
-		if ( typeof second.length === "number" ) {
-			for ( var l = second.length; j < l; j++ ) {
-				first[ i++ ] = second[ j ];
-			}
+		while ( j < len ) {
+			first[ i++ ] = second[ j++ ];
+		}
 
-		} else {
+		// Support: IE<9
+		// Workaround casting of .length to NaN on otherwise arraylike objects (e.g., NodeLists)
+		if ( len !== len ) {
 			while ( second[j] !== undefined ) {
 				first[ i++ ] = second[ j++ ];
 			}
@@ -719,53 +478,56 @@
 		return first;
 	},
 
-	grep: function( elems, callback, inv ) {
-		var ret = [], retVal;
-		inv = !!inv;
+	grep: function( elems, callback, invert ) {
+		var callbackInverse,
+			matches = [],
+			i = 0,
+			length = elems.length,
+			callbackExpect = !invert;
 
 		// Go through the array, only saving the items
 		// that pass the validator function
-		for ( var i = 0, length = elems.length; i < length; i++ ) {
-			retVal = !!callback( elems[ i ], i );
-			if ( inv !== retVal ) {
-				ret.push( elems[ i ] );
+		for ( ; i < length; i++ ) {
+			callbackInverse = !callback( elems[ i ], i );
+			if ( callbackInverse !== callbackExpect ) {
+				matches.push( elems[ i ] );
 			}
 		}
 
-		return ret;
+		return matches;
 	},
 
 	// arg is for internal usage only
 	map: function( elems, callback, arg ) {
-		var value, key, ret = [],
+		var value,
 			i = 0,
 			length = elems.length,
-			// jquery objects are treated as arrays
-			isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ;
+			isArray = isArraylike( elems ),
+			ret = [];
 
-		// Go through the array, translating each of the items to their
+		// Go through the array, translating each of the items to their new values
 		if ( isArray ) {
 			for ( ; i < length; i++ ) {
 				value = callback( elems[ i ], i, arg );
 
 				if ( value != null ) {
-					ret[ ret.length ] = value;
+					ret.push( value );
 				}
 			}
 
 		// Go through every key on the object,
 		} else {
-			for ( key in elems ) {
-				value = callback( elems[ key ], key, arg );
+			for ( i in elems ) {
+				value = callback( elems[ i ], i, arg );
 
 				if ( value != null ) {
-					ret[ ret.length ] = value;
+					ret.push( value );
 				}
 			}
 		}
 
 		// Flatten any nested arrays
-		return ret.concat.apply( [], ret );
+		return concat.apply( [], ret );
 	},
 
 	// A global GUID counter for objects
@@ -774,8 +536,10 @@
 	// Bind a function to a context, optionally partially applying any
 	// arguments.
 	proxy: function( fn, context ) {
+		var args, proxy, tmp;
+
 		if ( typeof context === "string" ) {
-			var tmp = fn[ context ];
+			tmp = fn[ context ];
 			context = fn;
 			fn = tmp;
 		}
@@ -787,1823 +551,3791 @@
 		}
 
 		// Simulated bind
-		var args = slice.call( arguments, 2 ),
-			proxy = function() {
-				return fn.apply( context, args.concat( slice.call( arguments ) ) );
-			};
+		args = slice.call( arguments, 2 );
+		proxy = function() {
+			return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
+		};
 
 		// Set the guid of unique handler to the same of original handler, so it can be removed
-		proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++;
+		proxy.guid = fn.guid = fn.guid || jQuery.guid++;
 
 		return proxy;
 	},
 
-	// Mutifunctional method to get and set values to a collection
-	// The value/s can be optionally by executed if its a function
-	access: function( elems, key, value, exec, fn, pass ) {
-		var length = elems.length;
+	now: function() {
+		return +( new Date() );
+	},
 
-		// Setting many attributes
-		if ( typeof key === "object" ) {
-			for ( var k in key ) {
-				jQuery.access( elems, k, key[k], exec, fn, value );
-			}
-			return elems;
-		}
+	// jQuery.support is not used in Core but other projects attach their
+	// properties to it so it needs to exist.
+	support: support
+});
 
-		// Setting one attribute
-		if ( value !== undefined ) {
-			// Optionally, function values get executed if exec is true
-			exec = !pass && exec && jQuery.isFunction(value);
+// Populate the class2type map
+jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) {
+	class2type[ "[object " + name + "]" ] = name.toLowerCase();
+});
 
-			for ( var i = 0; i < length; i++ ) {
-				fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass );
-			}
+function isArraylike( obj ) {
+	var length = obj.length,
+		type = jQuery.type( obj );
 
-			return elems;
-		}
+	if ( type === "function" || jQuery.isWindow( obj ) ) {
+		return false;
+	}
 
-		// Getting an attribute
-		return length ? fn( elems[0], key ) : undefined;
-	},
+	if ( obj.nodeType === 1 && length ) {
+		return true;
+	}
 
-	now: function() {
-		return (new Date()).getTime();
-	},
+	return type === "array" || length === 0 ||
+		typeof length === "number" && length > 0 && ( length - 1 ) in obj;
+}
+var Sizzle =
+/*!
+ * Sizzle CSS Selector Engine v1.10.16
+ * http://sizzlejs.com/
+ *
+ * Copyright 2013 jQuery Foundation, Inc. and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2014-01-13
+ */
+(function( window ) {
 
-	// Use of jQuery.browser is frowned upon.
-	// More details: http://docs.jquery.com/Utilities/jQuery.browser
-	uaMatch: function( ua ) {
-		ua = ua.toLowerCase();
+var i,
+	support,
+	Expr,
+	getText,
+	isXML,
+	compile,
+	outermostContext,
+	sortInput,
+	hasDuplicate,
 
-		var match = rwebkit.exec( ua ) ||
-			ropera.exec( ua ) ||
-			rmsie.exec( ua ) ||
-			ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) ||
-			[];
+	// Local document vars
+	setDocument,
+	document,
+	docElem,
+	documentIsHTML,
+	rbuggyQSA,
+	rbuggyMatches,
+	matches,
+	contains,
 
-		return { browser: match[1] || "", version: match[2] || "0" };
+	// Instance-specific data
+	expando = "sizzle" + -(new Date()),
+	preferredDoc = window.document,
+	dirruns = 0,
+	done = 0,
+	classCache = createCache(),
+	tokenCache = createCache(),
+	compilerCache = createCache(),
+	sortOrder = function( a, b ) {
+		if ( a === b ) {
+			hasDuplicate = true;
+		}
+		return 0;
 	},
 
-	sub: function() {
-		function jQuerySub( selector, context ) {
-			return new jQuerySub.fn.init( selector, context );
-		}
-		jQuery.extend( true, jQuerySub, this );
-		jQuerySub.superclass = this;
-		jQuerySub.fn = jQuerySub.prototype = this();
-		jQuerySub.fn.constructor = jQuerySub;
-		jQuerySub.sub = this.sub;
-		jQuerySub.fn.init = function init( selector, context ) {
-			if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) {
-				context = jQuerySub( context );
-			}
+	// General-purpose constants
+	strundefined = typeof undefined,
+	MAX_NEGATIVE = 1 << 31,
 
-			return jQuery.fn.init.call( this, selector, context, rootjQuerySub );
-		};
-		jQuerySub.fn.init.prototype = jQuerySub.fn;
-		var rootjQuerySub = jQuerySub(document);
-		return jQuerySub;
+	// Instance methods
+	hasOwn = ({}).hasOwnProperty,
+	arr = [],
+	pop = arr.pop,
+	push_native = arr.push,
+	push = arr.push,
+	slice = arr.slice,
+	// Use a stripped-down indexOf if we can't use a native one
+	indexOf = arr.indexOf || function( elem ) {
+		var i = 0,
+			len = this.length;
+		for ( ; i < len; i++ ) {
+			if ( this[i] === elem ) {
+				return i;
+			}
+		}
+		return -1;
 	},
 
-	browser: {}
-});
+	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
 
-// Populate the class2type map
-jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) {
-	class2type[ "[object " + name + "]" ] = name.toLowerCase();
-});
+	// Regular expressions
 
-browserMatch = jQuery.uaMatch( userAgent );
-if ( browserMatch.browser ) {
-	jQuery.browser[ browserMatch.browser ] = true;
-	jQuery.browser.version = browserMatch.version;
-}
+	// Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace
+	whitespace = "[\\x20\\t\\r\\n\\f]",
+	// http://www.w3.org/TR/css3-syntax/#characters
+	characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
 
-// Deprecated, use jQuery.browser.webkit instead
-if ( jQuery.browser.webkit ) {
-	jQuery.browser.safari = true;
-}
+	// Loosely modeled on CSS identifier characters
+	// An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors
+	// Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
+	identifier = characterEncoding.replace( "w", "w#" ),
 
-// IE doesn't match non-breaking spaces with \s
-if ( rnotwhite.test( "\xA0" ) ) {
-	trimLeft = /^[\s\xA0]+/;
-	trimRight = /[\s\xA0]+$/;
-}
+	// Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors
+	attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace +
+		"*(?:([*^$|!~]?=)" + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]",
 
-// All jQuery objects should point back to these
-rootjQuery = jQuery(document);
+	// Prefer arguments quoted,
+	//   then not containing pseudos/brackets,
+	//   then attribute selectors/non-parenthetical expressions,
+	//   then anything else
+	// These preferences are here to reduce the number of selectors
+	//   needing tokenize in the PSEUDO preFilter
+	pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)",
 
-// Cleanup functions for the document ready method
-if ( document.addEventListener ) {
-	DOMContentLoaded = function() {
-		document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false );
-		jQuery.ready();
+	// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
+	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
+
+	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
+	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
+
+	rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
+
+	rpseudo = new RegExp( pseudos ),
+	ridentifier = new RegExp( "^" + identifier + "$" ),
+
+	matchExpr = {
+		"ID": new RegExp( "^#(" + characterEncoding + ")" ),
+		"CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ),
+		"TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ),
+		"ATTR": new RegExp( "^" + attributes ),
+		"PSEUDO": new RegExp( "^" + pseudos ),
+		"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
+			"*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
+			"*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+		"bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
+		// For use in libraries implementing .is()
+		// We use this for POS matching in `select`
+		"needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
+			whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
+	},
+
+	rinputs = /^(?:input|select|textarea|button)$/i,
+	rheader = /^h\d$/i,
+
+	rnative = /^[^{]+\{\s*\[native \w/,
+
+	// Easily-parseable/retrievable ID or TAG or CLASS selectors
+	rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+
+	rsibling = /[+~]/,
+	rescape = /'|\\/g,
+
+	// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
+	runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
+	funescape = function( _, escaped, escapedWhitespace ) {
+		var high = "0x" + escaped - 0x10000;
+		// NaN means non-codepoint
+		// Support: Firefox
+		// Workaround erroneous numeric interpretation of +"0x"
+		return high !== high || escapedWhitespace ?
+			escaped :
+			high < 0 ?
+				// BMP codepoint
+				String.fromCharCode( high + 0x10000 ) :
+				// Supplemental Plane codepoint (surrogate pair)
+				String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
 	};
 
-} else if ( document.attachEvent ) {
-	DOMContentLoaded = function() {
-		// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
-		if ( document.readyState === "complete" ) {
-			document.detachEvent( "onreadystatechange", DOMContentLoaded );
-			jQuery.ready();
+// Optimize for push.apply( _, NodeList )
+try {
+	push.apply(
+		(arr = slice.call( preferredDoc.childNodes )),
+		preferredDoc.childNodes
+	);
+	// Support: Android<4.0
+	// Detect silently failing push.apply
+	arr[ preferredDoc.childNodes.length ].nodeType;
+} catch ( e ) {
+	push = { apply: arr.length ?
+
+		// Leverage slice if possible
+		function( target, els ) {
+			push_native.apply( target, slice.call(els) );
+		} :
+
+		// Support: IE<9
+		// Otherwise append directly
+		function( target, els ) {
+			var j = target.length,
+				i = 0;
+			// Can't trust NodeList.length
+			while ( (target[j++] = els[i++]) ) {}
+			target.length = j - 1;
 		}
 	};
 }
 
-// The DOM ready check for Internet Explorer
-function doScrollCheck() {
-	if ( jQuery.isReady ) {
-		return;
-	}
+function Sizzle( selector, context, results, seed ) {
+	var match, elem, m, nodeType,
+		// QSA vars
+		i, groups, old, nid, newContext, newSelector;
 
-	try {
-		// If IE is used, use the trick by Diego Perini
-		// http://javascript.nwbox.com/IEContentLoaded/
-		document.documentElement.doScroll("left");
-	} catch(e) {
-		setTimeout( doScrollCheck, 1 );
-		return;
+	if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
+		setDocument( context );
 	}
 
-	// and execute any waiting functions
-	jQuery.ready();
-}
+	context = context || document;
+	results = results || [];
 
-// Expose jQuery to the global object
-return jQuery;
+	if ( !selector || typeof selector !== "string" ) {
+		return results;
+	}
 
-})();
+	if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) {
+		return [];
+	}
 
+	if ( documentIsHTML && !seed ) {
 
-var // Promise methods
-	promiseMethods = "done fail isResolved isRejected promise then always pipe".split( " " ),
-	// Static reference to slice
-	sliceDeferred = [].slice;
-
-jQuery.extend({
-	// Create a simple deferred (one callbacks list)
-	_Deferred: function() {
-		var // callbacks list
-			callbacks = [],
-			// stored [ context , args ]
-			fired,
-			// to avoid firing when already doing so
-			firing,
-			// flag to know if the deferred has been cancelled
-			cancelled,
-			// the deferred itself
-			deferred  = {
-
-				// done( f1, f2, ...)
-				done: function() {
-					if ( !cancelled ) {
-						var args = arguments,
-							i,
-							length,
-							elem,
-							type,
-							_fired;
-						if ( fired ) {
-							_fired = fired;
-							fired = 0;
+		// Shortcuts
+		if ( (match = rquickExpr.exec( selector )) ) {
+			// Speed-up: Sizzle("#ID")
+			if ( (m = match[1]) ) {
+				if ( nodeType === 9 ) {
+					elem = context.getElementById( m );
+					// Check parentNode to catch when Blackberry 4.6 returns
+					// nodes that are no longer in the document (jQuery #6963)
+					if ( elem && elem.parentNode ) {
+						// Handle the case where IE, Opera, and Webkit return items
+						// by name instead of ID
+						if ( elem.id === m ) {
+							results.push( elem );
+							return results;
 						}
-						for ( i = 0, length = args.length; i < length; i++ ) {
-							elem = args[ i ];
-							type = jQuery.type( elem );
-							if ( type === "array" ) {
-								deferred.done.apply( deferred, elem );
-							} else if ( type === "function" ) {
-								callbacks.push( elem );
-							}
-						}
-						if ( _fired ) {
-							deferred.resolveWith( _fired[ 0 ], _fired[ 1 ] );
-						}
+					} else {
+						return results;
 					}
-					return this;
-				},
-
-				// resolve with given context and args
-				resolveWith: function( context, args ) {
-					if ( !cancelled && !fired && !firing ) {
-						// make sure args are available (#8421)
-						args = args || [];
-						firing = 1;
-						try {
-							while( callbacks[ 0 ] ) {
-								callbacks.shift().apply( context, args );
-							}
-						}
-						finally {
-							fired = [ context, args ];
-							firing = 0;
-						}
+				} else {
+					// Context is not a document
+					if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&
+						contains( context, elem ) && elem.id === m ) {
+						results.push( elem );
+						return results;
 					}
-					return this;
-				},
+				}
 
-				// resolve with this as context and given arguments
-				resolve: function() {
-					deferred.resolveWith( this, arguments );
-					return this;
-				},
+			// Speed-up: Sizzle("TAG")
+			} else if ( match[2] ) {
+				push.apply( results, context.getElementsByTagName( selector ) );
+				return results;
 
-				// Has this deferred been resolved?
-				isResolved: function() {
-					return !!( firing || fired );
-				},
+			// Speed-up: Sizzle(".CLASS")
+			} else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) {
+				push.apply( results, context.getElementsByClassName( m ) );
+				return results;
+			}
+		}
 
-				// Cancel
-				cancel: function() {
-					cancelled = 1;
-					callbacks = [];
-					return this;
+		// QSA path
+		if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
+			nid = old = expando;
+			newContext = context;
+			newSelector = nodeType === 9 && selector;
+
+			// qSA works strangely on Element-rooted queries
+			// We can work around this by specifying an extra ID on the root
+			// and working up from there (Thanks to Andrew Dupont for the technique)
+			// IE 8 doesn't work on object elements
+			if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
+				groups = tokenize( selector );
+
+				if ( (old = context.getAttribute("id")) ) {
+					nid = old.replace( rescape, "\\$&" );
+				} else {
+					context.setAttribute( "id", nid );
 				}
-			};
+				nid = "[id='" + nid + "'] ";
 
-		return deferred;
-	},
+				i = groups.length;
+				while ( i-- ) {
+					groups[i] = nid + toSelector( groups[i] );
+				}
+				newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context;
+				newSelector = groups.join(",");
+			}
 
-	// Full fledged deferred (two callbacks list)
-	Deferred: function( func ) {
-		var deferred = jQuery._Deferred(),
-			failDeferred = jQuery._Deferred(),
-			promise;
-		// Add errorDeferred methods, then and promise
-		jQuery.extend( deferred, {
-			then: function( doneCallbacks, failCallbacks ) {
-				deferred.done( doneCallbacks ).fail( failCallbacks );
-				return this;
-			},
-			always: function() {
-				return deferred.done.apply( deferred, arguments ).fail.apply( this, arguments );
-			},
-			fail: failDeferred.done,
-			rejectWith: failDeferred.resolveWith,
-			reject: failDeferred.resolve,
-			isRejected: failDeferred.isResolved,
-			pipe: function( fnDone, fnFail ) {
-				return jQuery.Deferred(function( newDefer ) {
-					jQuery.each( {
-						done: [ fnDone, "resolve" ],
-						fail: [ fnFail, "reject" ]
-					}, function( handler, data ) {
-						var fn = data[ 0 ],
-							action = data[ 1 ],
-							returned;
-						if ( jQuery.isFunction( fn ) ) {
-							deferred[ handler ](function() {
-								returned = fn.apply( this, arguments );
-								if ( returned && jQuery.isFunction( returned.promise ) ) {
-									returned.promise().then( newDefer.resolve, newDefer.reject );
-								} else {
-									newDefer[ action ]( returned );
-								}
-							});
-						} else {
-							deferred[ handler ]( newDefer[ action ] );
-						}
-					});
-				}).promise();
-			},
-			// Get a promise for this deferred
-			// If obj is provided, the promise aspect is added to the object
-			promise: function( obj ) {
-				if ( obj == null ) {
-					if ( promise ) {
-						return promise;
+			if ( newSelector ) {
+				try {
+					push.apply( results,
+						newContext.querySelectorAll( newSelector )
+					);
+					return results;
+				} catch(qsaError) {
+				} finally {
+					if ( !old ) {
+						context.removeAttribute("id");
 					}
-					promise = obj = {};
 				}
-				var i = promiseMethods.length;
-				while( i-- ) {
-					obj[ promiseMethods[i] ] = deferred[ promiseMethods[i] ];
-				}
-				return obj;
 			}
-		});
-		// Make sure only one callback list will be used
-		deferred.done( failDeferred.cancel ).fail( deferred.cancel );
-		// Unexpose cancel
-		delete deferred.cancel;
-		// Call given func if any
-		if ( func ) {
-			func.call( deferred, deferred );
 		}
-		return deferred;
-	},
+	}
 
-	// Deferred helper
-	when: function( firstParam ) {
-		var args = arguments,
-			i = 0,
-			length = args.length,
-			count = length,
-			deferred = length <= 1 && firstParam && jQuery.isFunction( firstParam.promise ) ?
-				firstParam :
-				jQuery.Deferred();
-		function resolveFunc( i ) {
-			return function( value ) {
-				args[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value;
-				if ( !( --count ) ) {
-					// Strange bug in FF4:
-					// Values changed onto the arguments object sometimes end up as undefined values
-					// outside the $.when method. Cloning the object into a fresh array solves the issue
-					deferred.resolveWith( deferred, sliceDeferred.call( args, 0 ) );
-				}
-			};
+	// All others
+	return select( selector.replace( rtrim, "$1" ), context, results, seed );
+}
+
+/**
+ * Create key-value caches of limited size
+ * @returns {Function(string, Object)} Returns the Object data after storing it on itself with
+ *	property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
+ *	deleting the oldest entry
+ */
+function createCache() {
+	var keys = [];
+
+	function cache( key, value ) {
+		// Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
+		if ( keys.push( key + " " ) > Expr.cacheLength ) {
+			// Only keep the most recent entries
+			delete cache[ keys.shift() ];
 		}
-		if ( length > 1 ) {
-			for( ; i < length; i++ ) {
-				if ( args[ i ] && jQuery.isFunction( args[ i ].promise ) ) {
-					args[ i ].promise().then( resolveFunc(i), deferred.reject );
-				} else {
-					--count;
-				}
+		return (cache[ key + " " ] = value);
+	}
+	return cache;
+}
+
+/**
+ * Mark a function for special use by Sizzle
+ * @param {Function} fn The function to mark
+ */
+function markFunction( fn ) {
+	fn[ expando ] = true;
+	return fn;
+}
+
+/**
+ * Support testing using an element
+ * @param {Function} fn Passed the created div and expects a boolean result
+ */
+function assert( fn ) {
+	var div = document.createElement("div");
+
+	try {
+		return !!fn( div );
+	} catch (e) {
+		return false;
+	} finally {
+		// Remove from its parent by default
+		if ( div.parentNode ) {
+			div.parentNode.removeChild( div );
+		}
+		// release memory in IE
+		div = null;
+	}
+}
+
+/**
+ * Adds the same handler for all of the specified attrs
+ * @param {String} attrs Pipe-separated list of attributes
+ * @param {Function} handler The method that will be applied
+ */
+function addHandle( attrs, handler ) {
+	var arr = attrs.split("|"),
+		i = attrs.length;
+
+	while ( i-- ) {
+		Expr.attrHandle[ arr[i] ] = handler;
+	}
+}
+
+/**
+ * Checks document order of two siblings
+ * @param {Element} a
+ * @param {Element} b
+ * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
+ */
+function siblingCheck( a, b ) {
+	var cur = b && a,
+		diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
+			( ~b.sourceIndex || MAX_NEGATIVE ) -
+			( ~a.sourceIndex || MAX_NEGATIVE );
+
+	// Use IE sourceIndex if available on both nodes
+	if ( diff ) {
+		return diff;
+	}
+
+	// Check if b follows a
+	if ( cur ) {
+		while ( (cur = cur.nextSibling) ) {
+			if ( cur === b ) {
+				return -1;
 			}
-			if ( !count ) {
-				deferred.resolveWith( deferred, args );
-			}
-		} else if ( deferred !== firstParam ) {
-			deferred.resolveWith( deferred, length ? [ firstParam ] : [] );
 		}
-		return deferred.promise();
 	}
-});
 
+	return a ? 1 : -1;
+}
 
+/**
+ * Returns a function to use in pseudos for input types
+ * @param {String} type
+ */
+function createInputPseudo( type ) {
+	return function( elem ) {
+		var name = elem.nodeName.toLowerCase();
+		return name === "input" && elem.type === type;
+	};
+}
 
-jQuery.support = (function() {
+/**
+ * Returns a function to use in pseudos for buttons
+ * @param {String} type
+ */
+function createButtonPseudo( type ) {
+	return function( elem ) {
+		var name = elem.nodeName.toLowerCase();
+		return (name === "input" || name === "button") && elem.type === type;
+	};
+}
 
-	var div = document.createElement( "div" ),
-		documentElement = document.documentElement,
-		all,
-		a,
-		select,
-		opt,
-		input,
-		marginDiv,
-		support,
-		fragment,
-		body,
-		bodyStyle,
-		tds,
-		events,
-		eventName,
-		i,
-		isSupported;
+/**
+ * Returns a function to use in pseudos for positionals
+ * @param {Function} fn
+ */
+function createPositionalPseudo( fn ) {
+	return markFunction(function( argument ) {
+		argument = +argument;
+		return markFunction(function( seed, matches ) {
+			var j,
+				matchIndexes = fn( [], seed.length, argument ),
+				i = matchIndexes.length;
 
-	// Preliminary tests
-	div.setAttribute("className", "t");
-	div.innerHTML = "   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
+			// Match elements found at the specified indexes
+			while ( i-- ) {
+				if ( seed[ (j = matchIndexes[i]) ] ) {
+					seed[j] = !(matches[j] = seed[j]);
+				}
+			}
+		});
+	});
+}
 
-	all = div.getElementsByTagName( "*" );
-	a = div.getElementsByTagName( "a" )[ 0 ];
+/**
+ * Checks a node for validity as a Sizzle context
+ * @param {Element|Object=} context
+ * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
+ */
+function testContext( context ) {
+	return context && typeof context.getElementsByTagName !== strundefined && context;
+}
 
-	// Can't get basic test support
-	if ( !all || !all.length || !a ) {
-		return {};
+// Expose support vars for convenience
+support = Sizzle.support = {};
+
+/**
+ * Detects XML nodes
+ * @param {Element|Object} elem An element or a document
+ * @returns {Boolean} True iff elem is a non-HTML XML node
+ */
+isXML = Sizzle.isXML = function( elem ) {
+	// documentElement is verified for cases where it doesn't yet exist
+	// (such as loading iframes in IE - #4833)
+	var documentElement = elem && (elem.ownerDocument || elem).documentElement;
+	return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+/**
+ * Sets document-related variables once based on the current document
+ * @param {Element|Object} [doc] An element or document object to use to set the document
+ * @returns {Object} Returns the current document
+ */
+setDocument = Sizzle.setDocument = function( node ) {
+	var hasCompare,
+		doc = node ? node.ownerDocument || node : preferredDoc,
+		parent = doc.defaultView;
+
+	// If no document and documentElement is available, return
+	if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
+		return document;
 	}
 
-	// First batch of supports tests
-	select = document.createElement( "select" );
-	opt = select.appendChild( document.createElement("option") );
-	input = div.getElementsByTagName( "input" )[ 0 ];
+	// Set our document
+	document = doc;
+	docElem = doc.documentElement;
 
-	support = {
-		// IE strips leading whitespace when .innerHTML is used
-		leadingWhitespace: ( div.firstChild.nodeType === 3 ),
+	// Support tests
+	documentIsHTML = !isXML( doc );
 
-		// Make sure that tbody elements aren't automatically inserted
-		// IE will insert them into empty tables
-		tbody: !div.getElementsByTagName( "tbody" ).length,
+	// Support: IE>8
+	// If iframe document is assigned to "document" variable and if iframe has been reloaded,
+	// IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936
+	// IE6-8 do not support the defaultView property so parent will be undefined
+	if ( parent && parent !== parent.top ) {
+		// IE11 does not have attachEvent, so all must suffer
+		if ( parent.addEventListener ) {
+			parent.addEventListener( "unload", function() {
+				setDocument();
+			}, false );
+		} else if ( parent.attachEvent ) {
+			parent.attachEvent( "onunload", function() {
+				setDocument();
+			});
+		}
+	}
 
-		// Make sure that link elements get serialized correctly by innerHTML
-		// This requires a wrapper element in IE
-		htmlSerialize: !!div.getElementsByTagName( "link" ).length,
+	/* Attributes
+	---------------------------------------------------------------------- */
 
-		// Get the style information from getAttribute
-		// (IE uses .cssText instead)
-		style: /top/.test( a.getAttribute("style") ),
+	// Support: IE<8
+	// Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans)
+	support.attributes = assert(function( div ) {
+		div.className = "i";
+		return !div.getAttribute("className");
+	});
 
-		// Make sure that URLs aren't manipulated
-		// (IE normalizes it by default)
-		hrefNormalized: ( a.getAttribute( "href" ) === "/a" ),
+	/* getElement(s)By*
+	---------------------------------------------------------------------- */
 
-		// Make sure that element opacity exists
-		// (IE uses filter instead)
-		// Use a regex to work around a WebKit issue. See #5145
-		opacity: /^0.55$/.test( a.style.opacity ),
+	// Check if getElementsByTagName("*") returns only elements
+	support.getElementsByTagName = assert(function( div ) {
+		div.appendChild( doc.createComment("") );
+		return !div.getElementsByTagName("*").length;
+	});
 
-		// Verify style float existence
-		// (IE uses styleFloat instead of cssFloat)
-		cssFloat: !!a.style.cssFloat,
+	// Check if getElementsByClassName can be trusted
+	support.getElementsByClassName = rnative.test( doc.getElementsByClassName ) && assert(function( div ) {
+		div.innerHTML = "<div class='a'></div><div class='a i'></div>";
 
-		// Make sure that if no value is specified for a checkbox
-		// that it defaults to "on".
-		// (WebKit defaults to "" instead)
-		checkOn: ( input.value === "on" ),
+		// Support: Safari<4
+		// Catch class over-caching
+		div.firstChild.className = "i";
+		// Support: Opera<10
+		// Catch gEBCN failure to find non-leading classes
+		return div.getElementsByClassName("i").length === 2;
+	});
 
-		// Make sure that a selected-by-default option has a working selected property.
-		// (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
-		optSelected: opt.selected,
+	// Support: IE<10
+	// Check if getElementById returns elements by name
+	// The broken getElementById methods don't pick up programatically-set names,
+	// so use a roundabout getElementsByName test
+	support.getById = assert(function( div ) {
+		docElem.appendChild( div ).id = expando;
+		return !doc.getElementsByName || !doc.getElementsByName( expando ).length;
+	});
 
-		// Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)
-		getSetAttribute: div.className !== "t",
+	// ID find and filter
+	if ( support.getById ) {
+		Expr.find["ID"] = function( id, context ) {
+			if ( typeof context.getElementById !== strundefined && documentIsHTML ) {
+				var m = context.getElementById( id );
+				// Check parentNode to catch when Blackberry 4.6 returns
+				// nodes that are no longer in the document #6963
+				return m && m.parentNode ? [m] : [];
+			}
+		};
+		Expr.filter["ID"] = function( id ) {
+			var attrId = id.replace( runescape, funescape );
+			return function( elem ) {
+				return elem.getAttribute("id") === attrId;
+			};
+		};
+	} else {
+		// Support: IE6/7
+		// getElementById is not reliable as a find shortcut
+		delete Expr.find["ID"];
 
-		// Will be defined later
-		submitBubbles: true,
-		changeBubbles: true,
-		focusinBubbles: false,
-		deleteExpando: true,
-		noCloneEvent: true,
-		inlineBlockNeedsLayout: false,
-		shrinkWrapBlocks: false,
-		reliableMarginRight: true
+		Expr.filter["ID"] =  function( id ) {
+			var attrId = id.replace( runescape, funescape );
+			return function( elem ) {
+				var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id");
+				return node && node.value === attrId;
+			};
+		};
+	}
+
+	// Tag
+	Expr.find["TAG"] = support.getElementsByTagName ?
+		function( tag, context ) {
+			if ( typeof context.getElementsByTagName !== strundefined ) {
+				return context.getElementsByTagName( tag );
+			}
+		} :
+		function( tag, context ) {
+			var elem,
+				tmp = [],
+				i = 0,
+				results = context.getElementsByTagName( tag );
+
+			// Filter out possible comments
+			if ( tag === "*" ) {
+				while ( (elem = results[i++]) ) {
+					if ( elem.nodeType === 1 ) {
+						tmp.push( elem );
+					}
+				}
+
+				return tmp;
+			}
+			return results;
+		};
+
+	// Class
+	Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
+		if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) {
+			return context.getElementsByClassName( className );
+		}
 	};
 
-	// Make sure checked status is properly cloned
-	input.checked = true;
-	support.noCloneChecked = input.cloneNode( true ).checked;
+	/* QSA/matchesSelector
+	---------------------------------------------------------------------- */
 
-	// Make sure that the options inside disabled selects aren't marked as disabled
-	// (WebKit marks them as disabled)
-	select.disabled = true;
-	support.optDisabled = !opt.disabled;
+	// QSA and matchesSelector support
 
-	// Test to see if it's possible to delete an expando from an element
-	// Fails in Internet Explorer
-	try {
-		delete div.test;
-	} catch( e ) {
-		support.deleteExpando = false;
+	// matchesSelector(:active) reports false when true (IE9/Opera 11.5)
+	rbuggyMatches = [];
+
+	// qSa(:focus) reports false when true (Chrome 21)
+	// We allow this because of a bug in IE8/9 that throws an error
+	// whenever `document.activeElement` is accessed on an iframe
+	// So, we allow :focus to pass through QSA all the time to avoid the IE error
+	// See http://bugs.jquery.com/ticket/13378
+	rbuggyQSA = [];
+
+	if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {
+		// Build QSA regex
+		// Regex strategy adopted from Diego Perini
+		assert(function( div ) {
+			// Select is set to empty string on purpose
+			// This is to test IE's treatment of not explicitly
+			// setting a boolean content attribute,
+			// since its presence should be enough
+			// http://bugs.jquery.com/ticket/12359
+			div.innerHTML = "<select t=''><option selected=''></option></select>";
+
+			// Support: IE8, Opera 10-12
+			// Nothing should be selected when empty strings follow ^= or $= or *=
+			if ( div.querySelectorAll("[t^='']").length ) {
+				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
+			}
+
+			// Support: IE8
+			// Boolean attributes and "value" are not treated correctly
+			if ( !div.querySelectorAll("[selected]").length ) {
+				rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
+			}
+
+			// Webkit/Opera - :checked should return selected option elements
+			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+			// IE8 throws error here and will not see later tests
+			if ( !div.querySelectorAll(":checked").length ) {
+				rbuggyQSA.push(":checked");
+			}
+		});
+
+		assert(function( div ) {
+			// Support: Windows 8 Native Apps
+			// The type and name attributes are restricted during .innerHTML assignment
+			var input = doc.createElement("input");
+			input.setAttribute( "type", "hidden" );
+			div.appendChild( input ).setAttribute( "name", "D" );
+
+			// Support: IE8
+			// Enforce case-sensitivity of name attribute
+			if ( div.querySelectorAll("[name=d]").length ) {
+				rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
+			}
+
+			// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
+			// IE8 throws error here and will not see later tests
+			if ( !div.querySelectorAll(":enabled").length ) {
+				rbuggyQSA.push( ":enabled", ":disabled" );
+			}
+
+			// Opera 10-11 does not throw on post-comma invalid pseudos
+			div.querySelectorAll("*,:x");
+			rbuggyQSA.push(",.*:");
+		});
 	}
 
-	if ( !div.addEventListener && div.attachEvent && div.fireEvent ) {
-		div.attachEvent( "onclick", function click() {
-			// Cloning a node shouldn't copy over any
-			// bound event handlers (IE does this)
-			support.noCloneEvent = false;
-			div.detachEvent( "onclick", click );
+	if ( (support.matchesSelector = rnative.test( (matches = docElem.webkitMatchesSelector ||
+		docElem.mozMatchesSelector ||
+		docElem.oMatchesSelector ||
+		docElem.msMatchesSelector) )) ) {
+
+		assert(function( div ) {
+			// Check to see if it's possible to do matchesSelector
+			// on a disconnected node (IE 9)
+			support.disconnectedMatch = matches.call( div, "div" );
+
+			// This should fail with an exception
+			// Gecko does not error, returns false instead
+			matches.call( div, "[s!='']:x" );
+			rbuggyMatches.push( "!=", pseudos );
 		});
-		div.cloneNode( true ).fireEvent( "onclick" );
 	}
 
-	// Check if a radio maintains it's value
-	// after being appended to the DOM
-	input = document.createElement("input");
-	input.value = "t";
-	input.setAttribute("type", "radio");
-	support.radioValue = input.value === "t";
+	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
+	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
 
-	input.setAttribute("checked", "checked");
-	div.appendChild( input );
-	fragment = document.createDocumentFragment();
-	fragment.appendChild( div.firstChild );
+	/* Contains
+	---------------------------------------------------------------------- */
+	hasCompare = rnative.test( docElem.compareDocumentPosition );
 
-	// WebKit doesn't clone checked state correctly in fragments
-	support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked;
+	// Element contains another
+	// Purposefully does not implement inclusive descendent
+	// As in, an element does not contain itself
+	contains = hasCompare || rnative.test( docElem.contains ) ?
+		function( a, b ) {
+			var adown = a.nodeType === 9 ? a.documentElement : a,
+				bup = b && b.parentNode;
+			return a === bup || !!( bup && bup.nodeType === 1 && (
+				adown.contains ?
+					adown.contains( bup ) :
+					a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
+			));
+		} :
+		function( a, b ) {
+			if ( b ) {
+				while ( (b = b.parentNode) ) {
+					if ( b === a ) {
+						return true;
+					}
+				}
+			}
+			return false;
+		};
 
-	div.innerHTML = "";
+	/* Sorting
+	---------------------------------------------------------------------- */
 
-	// Figure out if the W3C box model works as expected
-	div.style.width = div.style.paddingLeft = "1px";
+	// Document order sorting
+	sortOrder = hasCompare ?
+	function( a, b ) {
 
-	// We use our own, invisible, body
-	body = document.createElement( "body" );
-	bodyStyle = {
-		visibility: "hidden",
-		width: 0,
-		height: 0,
-		border: 0,
-		margin: 0,
-		// Set background to avoid IE crashes when removing (#9028)
-		background: "none"
+		// Flag for duplicate removal
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		// Sort on method existence if only one input has compareDocumentPosition
+		var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
+		if ( compare ) {
+			return compare;
+		}
+
+		// Calculate position if both inputs belong to the same document
+		compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
+			a.compareDocumentPosition( b ) :
+
+			// Otherwise we know they are disconnected
+			1;
+
+		// Disconnected nodes
+		if ( compare & 1 ||
+			(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
+
+			// Choose the first element that is related to our preferred document
+			if ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
+				return -1;
+			}
+			if ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
+				return 1;
+			}
+
+			// Maintain original order
+			return sortInput ?
+				( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
+				0;
+		}
+
+		return compare & 4 ? -1 : 1;
+	} :
+	function( a, b ) {
+		// Exit early if the nodes are identical
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		var cur,
+			i = 0,
+			aup = a.parentNode,
+			bup = b.parentNode,
+			ap = [ a ],
+			bp = [ b ];
+
+		// Parentless nodes are either documents or disconnected
+		if ( !aup || !bup ) {
+			return a === doc ? -1 :
+				b === doc ? 1 :
+				aup ? -1 :
+				bup ? 1 :
+				sortInput ?
+				( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
+				0;
+
+		// If the nodes are siblings, we can do a quick check
+		} else if ( aup === bup ) {
+			return siblingCheck( a, b );
+		}
+
+		// Otherwise we need full lists of their ancestors for comparison
+		cur = a;
+		while ( (cur = cur.parentNode) ) {
+			ap.unshift( cur );
+		}
+		cur = b;
+		while ( (cur = cur.parentNode) ) {
+			bp.unshift( cur );
+		}
+
+		// Walk down the tree looking for a discrepancy
+		while ( ap[i] === bp[i] ) {
+			i++;
+		}
+
+		return i ?
+			// Do a sibling check if the nodes have a common ancestor
+			siblingCheck( ap[i], bp[i] ) :
+
+			// Otherwise nodes in our document sort first
+			ap[i] === preferredDoc ? -1 :
+			bp[i] === preferredDoc ? 1 :
+			0;
 	};
-	for ( i in bodyStyle ) {
-		body.style[ i ] = bodyStyle[ i ];
+
+	return doc;
+};
+
+Sizzle.matches = function( expr, elements ) {
+	return Sizzle( expr, null, null, elements );
+};
+
+Sizzle.matchesSelector = function( elem, expr ) {
+	// Set document vars if needed
+	if ( ( elem.ownerDocument || elem ) !== document ) {
+		setDocument( elem );
 	}
-	body.appendChild( div );
-	documentElement.insertBefore( body, documentElement.firstChild );
 
-	// Check if a disconnected checkbox will retain its checked
-	// value of true after appended to the DOM (IE6/7)
-	support.appendChecked = input.checked;
+	// Make sure that attribute selectors are quoted
+	expr = expr.replace( rattributeQuotes, "='$1']" );
 
-	support.boxModel = div.offsetWidth === 2;
+	if ( support.matchesSelector && documentIsHTML &&
+		( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
+		( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
 
-	if ( "zoom" in div.style ) {
-		// Check if natively block-level elements act like inline-block
-		// elements when setting their display to 'inline' and giving
-		// them layout
-		// (IE < 8 does this)
-		div.style.display = "inline";
-		div.style.zoom = 1;
-		support.inlineBlockNeedsLayout = ( div.offsetWidth === 2 );
+		try {
+			var ret = matches.call( elem, expr );
 
-		// Check if elements with layout shrink-wrap their children
-		// (IE 6 does this)
-		div.style.display = "";
-		div.innerHTML = "<div style='width:4px;'></div>";
-		support.shrinkWrapBlocks = ( div.offsetWidth !== 2 );
+			// IE 9's matchesSelector returns false on disconnected nodes
+			if ( ret || support.disconnectedMatch ||
+					// As well, disconnected nodes are said to be in a document
+					// fragment in IE 9
+					elem.document && elem.document.nodeType !== 11 ) {
+				return ret;
+			}
+		} catch(e) {}
 	}
 
-	div.innerHTML = "<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";
-	tds = div.getElementsByTagName( "td" );
+	return Sizzle( expr, document, null, [elem] ).length > 0;
+};
 
-	// Check if table cells still have offsetWidth/Height when they are set
-	// to display:none and there are still other visible table cells in a
-	// table row; if so, offsetWidth/Height are not reliable for use when
-	// determining if an element has been hidden directly using
-	// display:none (it is still safe to use offsets if a parent element is
-	// hidden; don safety goggles and see bug #4512 for more information).
-	// (only IE 8 fails this test)
-	isSupported = ( tds[ 0 ].offsetHeight === 0 );
+Sizzle.contains = function( context, elem ) {
+	// Set document vars if needed
+	if ( ( context.ownerDocument || context ) !== document ) {
+		setDocument( context );
+	}
+	return contains( context, elem );
+};
 
-	tds[ 0 ].style.display = "";
-	tds[ 1 ].style.display = "none";
+Sizzle.attr = function( elem, name ) {
+	// Set document vars if needed
+	if ( ( elem.ownerDocument || elem ) !== document ) {
+		setDocument( elem );
+	}
 
-	// Check if empty table cells still have offsetWidth/Height
-	// (IE < 8 fail this test)
-	support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 );
-	div.innerHTML = "";
+	var fn = Expr.attrHandle[ name.toLowerCase() ],
+		// Don't get fooled by Object.prototype properties (jQuery #13807)
+		val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
+			fn( elem, name, !documentIsHTML ) :
+			undefined;
 
-	// Check if div with explicit width and no margin-right incorrectly
-	// gets computed margin-right based on width of container. For more
-	// info see bug #3333
-	// Fails in WebKit before Feb 2011 nightlies
-	// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
-	if ( document.defaultView && document.defaultView.getComputedStyle ) {
-		marginDiv = document.createElement( "div" );
-		marginDiv.style.width = "0";
-		marginDiv.style.marginRight = "0";
-		div.appendChild( marginDiv );
-		support.reliableMarginRight =
-			( parseInt( ( document.defaultView.getComputedStyle( marginDiv, null ) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) === 0;
-	}
+	return val !== undefined ?
+		val :
+		support.attributes || !documentIsHTML ?
+			elem.getAttribute( name ) :
+			(val = elem.getAttributeNode(name)) && val.specified ?
+				val.value :
+				null;
+};
 
-	// Remove the body element we added
-	body.innerHTML = "";
-	documentElement.removeChild( body );
+Sizzle.error = function( msg ) {
+	throw new Error( "Syntax error, unrecognized expression: " + msg );
+};
 
-	// Technique from Juriy Zaytsev
-	// http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/
-	// We only care about the case where non-standard event systems
-	// are used, namely in IE. Short-circuiting here helps us to
-	// avoid an eval call (in setAttribute) which can cause CSP
-	// to go haywire. See: https://developer.mozilla.org/en/Security/CSP
-	if ( div.attachEvent ) {
-		for( i in {
-			submit: 1,
-			change: 1,
-			focusin: 1
-		} ) {
-			eventName = "on" + i;
-			isSupported = ( eventName in div );
-			if ( !isSupported ) {
-				div.setAttribute( eventName, "return;" );
-				isSupported = ( typeof div[ eventName ] === "function" );
+/**
+ * Document sorting and removing duplicates
+ * @param {ArrayLike} results
+ */
+Sizzle.uniqueSort = function( results ) {
+	var elem,
+		duplicates = [],
+		j = 0,
+		i = 0;
+
+	// Unless we *know* we can detect duplicates, assume their presence
+	hasDuplicate = !support.detectDuplicates;
+	sortInput = !support.sortStable && results.slice( 0 );
+	results.sort( sortOrder );
+
+	if ( hasDuplicate ) {
+		while ( (elem = results[i++]) ) {
+			if ( elem === results[ i ] ) {
+				j = duplicates.push( i );
 			}
-			support[ i + "Bubbles" ] = isSupported;
 		}
+		while ( j-- ) {
+			results.splice( duplicates[ j ], 1 );
+		}
 	}
 
-	return support;
-})();
+	// Clear input after sorting to release objects
+	// See https://github.com/jquery/sizzle/pull/225
+	sortInput = null;
 
-// Keep track of boxModel
-jQuery.boxModel = jQuery.support.boxModel;
+	return results;
+};
 
+/**
+ * Utility function for retrieving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+getText = Sizzle.getText = function( elem ) {
+	var node,
+		ret = "",
+		i = 0,
+		nodeType = elem.nodeType;
 
+	if ( !nodeType ) {
+		// If no nodeType, this is expected to be an array
+		while ( (node = elem[i++]) ) {
+			// Do not traverse comment nodes
+			ret += getText( node );
+		}
+	} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+		// Use textContent for elements
+		// innerText usage removed for consistency of new lines (jQuery #11153)
+		if ( typeof elem.textContent === "string" ) {
+			return elem.textContent;
+		} else {
+			// Traverse its children
+			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+				ret += getText( elem );
+			}
+		}
+	} else if ( nodeType === 3 || nodeType === 4 ) {
+		return elem.nodeValue;
+	}
+	// Do not include comment or processing instruction nodes
 
+	return ret;
+};
 
-var rbrace = /^(?:\{.*\}|\[.*\])$/,
-	rmultiDash = /([a-z])([A-Z])/g;
+Expr = Sizzle.selectors = {
 
-jQuery.extend({
-	cache: {},
+	// Can be adjusted by the user
+	cacheLength: 50,
 
-	// Please use with caution
-	uuid: 0,
+	createPseudo: markFunction,
 
-	// Unique for each copy of jQuery on the page
-	// Non-digits removed to match rinlinejQuery
-	expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ),
+	match: matchExpr,
 
-	// The following elements throw uncatchable exceptions if you
-	// attempt to add expando properties to them.
-	noData: {
-		"embed": true,
-		// Ban all objects except for Flash (which handle expandos)
-		"object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
-		"applet": true
-	},
+	attrHandle: {},
 
-	hasData: function( elem ) {
-		elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];
+	find: {},
 
-		return !!elem && !isEmptyDataObject( elem );
+	relative: {
+		">": { dir: "parentNode", first: true },
+		" ": { dir: "parentNode" },
+		"+": { dir: "previousSibling", first: true },
+		"~": { dir: "previousSibling" }
 	},
 
-	data: function( elem, name, data, pvt /* Internal Use Only */ ) {
-		if ( !jQuery.acceptData( elem ) ) {
-			return;
-		}
+	preFilter: {
+		"ATTR": function( match ) {
+			match[1] = match[1].replace( runescape, funescape );
 
-		var internalKey = jQuery.expando, getByName = typeof name === "string", thisCache,
+			// Move the given value to match[3] whether quoted or unquoted
+			match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape );
 
-			// We have to handle DOM nodes and JS objects differently because IE6-7
-			// can't GC object references properly across the DOM-JS boundary
-			isNode = elem.nodeType,
+			if ( match[2] === "~=" ) {
+				match[3] = " " + match[3] + " ";
+			}
 
-			// Only DOM nodes need the global jQuery cache; JS object data is
-			// attached directly to the object so GC can occur automatically
-			cache = isNode ? jQuery.cache : elem,
+			return match.slice( 0, 4 );
+		},
 
-			// Only defining an ID for JS objects if its cache already exists allows
-			// the code to shortcut on the same path as a DOM node with no cache
-			id = isNode ? elem[ jQuery.expando ] : elem[ jQuery.expando ] && jQuery.expando;
+		"CHILD": function( match ) {
+			/* matches from matchExpr["CHILD"]
+				1 type (only|nth|...)
+				2 what (child|of-type)
+				3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
+				4 xn-component of xn+y argument ([+-]?\d*n|)
+				5 sign of xn-component
+				6 x of xn-component
+				7 sign of y-component
+				8 y of y-component
+			*/
+			match[1] = match[1].toLowerCase();
 
-		// Avoid doing any more work than we need to when trying to get data on an
-		// object that has no data at all
-		if ( (!id || (pvt && id && !cache[ id ][ internalKey ])) && getByName && data === undefined ) {
-			return;
-		}
+			if ( match[1].slice( 0, 3 ) === "nth" ) {
+				// nth-* requires argument
+				if ( !match[3] ) {
+					Sizzle.error( match[0] );
+				}
 
-		if ( !id ) {
-			// Only DOM nodes need a new unique ID for each element since their data
-			// ends up in the global cache
-			if ( isNode ) {
-				elem[ jQuery.expando ] = id = ++jQuery.uuid;
-			} else {
-				id = jQuery.expando;
+				// numeric x and y parameters for Expr.filter.CHILD
+				// remember that false/true cast respectively to 0/1
+				match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
+				match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
+
+			// other types prohibit arguments
+			} else if ( match[3] ) {
+				Sizzle.error( match[0] );
 			}
-		}
 
-		if ( !cache[ id ] ) {
-			cache[ id ] = {};
+			return match;
+		},
 
-			// TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery
-			// metadata on plain JS objects when the object is serialized using
-			// JSON.stringify
-			if ( !isNode ) {
-				cache[ id ].toJSON = jQuery.noop;
+		"PSEUDO": function( match ) {
+			var excess,
+				unquoted = !match[5] && match[2];
+
+			if ( matchExpr["CHILD"].test( match[0] ) ) {
+				return null;
 			}
-		}
 
-		// An object can be passed to jQuery.data instead of a key/value pair; this gets
-		// shallow copied over onto the existing cache
-		if ( typeof name === "object" || typeof name === "function" ) {
-			if ( pvt ) {
-				cache[ id ][ internalKey ] = jQuery.extend(cache[ id ][ internalKey ], name);
-			} else {
-				cache[ id ] = jQuery.extend(cache[ id ], name);
+			// Accept quoted arguments as-is
+			if ( match[3] && match[4] !== undefined ) {
+				match[2] = match[4];
+
+			// Strip excess characters from unquoted arguments
+			} else if ( unquoted && rpseudo.test( unquoted ) &&
+				// Get excess from tokenize (recursively)
+				(excess = tokenize( unquoted, true )) &&
+				// advance to the next closing parenthesis
+				(excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+
+				// excess is a negative index
+				match[0] = match[0].slice( 0, excess );
+				match[2] = unquoted.slice( 0, excess );
 			}
+
+			// Return only captures needed by the pseudo filter method (type and argument)
+			return match.slice( 0, 3 );
 		}
+	},
 
-		thisCache = cache[ id ];
+	filter: {
 
-		// Internal jQuery data is stored in a separate object inside the object's data
-		// cache in order to avoid key collisions between internal data and user-defined
-		// data
-		if ( pvt ) {
-			if ( !thisCache[ internalKey ] ) {
-				thisCache[ internalKey ] = {};
+		"TAG": function( nodeNameSelector ) {
+			var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
+			return nodeNameSelector === "*" ?
+				function() { return true; } :
+				function( elem ) {
+					return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
+				};
+		},
+
+		"CLASS": function( className ) {
+			var pattern = classCache[ className + " " ];
+
+			return pattern ||
+				(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
+				classCache( className, function( elem ) {
+					return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" );
+				});
+		},
+
+		"ATTR": function( name, operator, check ) {
+			return function( elem ) {
+				var result = Sizzle.attr( elem, name );
+
+				if ( result == null ) {
+					return operator === "!=";
+				}
+				if ( !operator ) {
+					return true;
+				}
+
+				result += "";
+
+				return operator === "=" ? result === check :
+					operator === "!=" ? result !== check :
+					operator === "^=" ? check && result.indexOf( check ) === 0 :
+					operator === "*=" ? check && result.indexOf( check ) > -1 :
+					operator === "$=" ? check && result.slice( -check.length ) === check :
+					operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 :
+					operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
+					false;
+			};
+		},
+
+		"CHILD": function( type, what, argument, first, last ) {
+			var simple = type.slice( 0, 3 ) !== "nth",
+				forward = type.slice( -4 ) !== "last",
+				ofType = what === "of-type";
+
+			return first === 1 && last === 0 ?
+
+				// Shortcut for :nth-*(n)
+				function( elem ) {
+					return !!elem.parentNode;
+				} :
+
+				function( elem, context, xml ) {
+					var cache, outerCache, node, diff, nodeIndex, start,
+						dir = simple !== forward ? "nextSibling" : "previousSibling",
+						parent = elem.parentNode,
+						name = ofType && elem.nodeName.toLowerCase(),
+						useCache = !xml && !ofType;
+
+					if ( parent ) {
+
+						// :(first|last|only)-(child|of-type)
+						if ( simple ) {
+							while ( dir ) {
+								node = elem;
+								while ( (node = node[ dir ]) ) {
+									if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {
+										return false;
+									}
+								}
+								// Reverse direction for :only-* (if we haven't yet done so)
+								start = dir = type === "only" && !start && "nextSibling";
+							}
+							return true;
+						}
+
+						start = [ forward ? parent.firstChild : parent.lastChild ];
+
+						// non-xml :nth-child(...) stores cache data on `parent`
+						if ( forward && useCache ) {
+							// Seek `elem` from a previously-cached index
+							outerCache = parent[ expando ] || (parent[ expando ] = {});
+							cache = outerCache[ type ] || [];
+							nodeIndex = cache[0] === dirruns && cache[1];
+							diff = cache[0] === dirruns && cache[2];
+							node = nodeIndex && parent.childNodes[ nodeIndex ];
+
+							while ( (node = ++nodeIndex && node && node[ dir ] ||
+
+								// Fallback to seeking `elem` from the start
+								(diff = nodeIndex = 0) || start.pop()) ) {
+
+								// When found, cache indexes on `parent` and break
+								if ( node.nodeType === 1 && ++diff && node === elem ) {
+									outerCache[ type ] = [ dirruns, nodeIndex, diff ];
+									break;
+								}
+							}
+
+						// Use previously-cached element index if available
+						} else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {
+							diff = cache[1];
+
+						// xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)
+						} else {
+							// Use the same loop as above to seek `elem` from the start
+							while ( (node = ++nodeIndex && node && node[ dir ] ||
+								(diff = nodeIndex = 0) || start.pop()) ) {
+
+								if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {
+									// Cache the index of each encountered element
+									if ( useCache ) {
+										(node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];
+									}
+
+									if ( node === elem ) {
+										break;
+									}
+								}
+							}
+						}
+
+						// Incorporate the offset, then check against cycle size
+						diff -= last;
+						return diff === first || ( diff % first === 0 && diff / first >= 0 );
+					}
+				};
+		},
+
+		"PSEUDO": function( pseudo, argument ) {
+			// pseudo-class names are case-insensitive
+			// http://www.w3.org/TR/selectors/#pseudo-classes
+			// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
+			// Remember that setFilters inherits from pseudos
+			var args,
+				fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
+					Sizzle.error( "unsupported pseudo: " + pseudo );
+
+			// The user may use createPseudo to indicate that
+			// arguments are needed to create the filter function
+			// just as Sizzle does
+			if ( fn[ expando ] ) {
+				return fn( argument );
 			}
 
-			thisCache = thisCache[ internalKey ];
-		}
+			// But maintain support for old signatures
+			if ( fn.length > 1 ) {
+				args = [ pseudo, pseudo, "", argument ];
+				return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
+					markFunction(function( seed, matches ) {
+						var idx,
+							matched = fn( seed, argument ),
+							i = matched.length;
+						while ( i-- ) {
+							idx = indexOf.call( seed, matched[i] );
+							seed[ idx ] = !( matches[ idx ] = matched[i] );
+						}
+					}) :
+					function( elem ) {
+						return fn( elem, 0, args );
+					};
+			}
 
-		if ( data !== undefined ) {
-			thisCache[ jQuery.camelCase( name ) ] = data;
+			return fn;
 		}
+	},
 
-		// TODO: This is a hack for 1.5 ONLY. It will be removed in 1.6. Users should
-		// not attempt to inspect the internal events object using jQuery.data, as this
-		// internal data object is undocumented and subject to change.
-		if ( name === "events" && !thisCache[name] ) {
-			return thisCache[ internalKey ] && thisCache[ internalKey ].events;
-		}
+	pseudos: {
+		// Potentially complex pseudos
+		"not": markFunction(function( selector ) {
+			// Trim the selector passed to compile
+			// to avoid treating leading and trailing
+			// spaces as combinators
+			var input = [],
+				results = [],
+				matcher = compile( selector.replace( rtrim, "$1" ) );
 
-		return getByName ? thisCache[ jQuery.camelCase( name ) ] : thisCache;
-	},
+			return matcher[ expando ] ?
+				markFunction(function( seed, matches, context, xml ) {
+					var elem,
+						unmatched = matcher( seed, null, xml, [] ),
+						i = seed.length;
 
-	removeData: function( elem, name, pvt /* Internal Use Only */ ) {
-		if ( !jQuery.acceptData( elem ) ) {
-			return;
-		}
+					// Match elements unmatched by `matcher`
+					while ( i-- ) {
+						if ( (elem = unmatched[i]) ) {
+							seed[i] = !(matches[i] = elem);
+						}
+					}
+				}) :
+				function( elem, context, xml ) {
+					input[0] = elem;
+					matcher( input, null, xml, results );
+					return !results.pop();
+				};
+		}),
 
-		var internalKey = jQuery.expando, isNode = elem.nodeType,
+		"has": markFunction(function( selector ) {
+			return function( elem ) {
+				return Sizzle( selector, elem ).length > 0;
+			};
+		}),
 
-			// See jQuery.data for more information
-			cache = isNode ? jQuery.cache : elem,
+		"contains": markFunction(function( text ) {
+			return function( elem ) {
+				return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
+			};
+		}),
 
-			// See jQuery.data for more information
-			id = isNode ? elem[ jQuery.expando ] : jQuery.expando;
+		// "Whether an element is represented by a :lang() selector
+		// is based solely on the element's language value
+		// being equal to the identifier C,
+		// or beginning with the identifier C immediately followed by "-".
+		// The matching of C against the element's language value is performed case-insensitively.
+		// The identifier C does not have to be a valid language name."
+		// http://www.w3.org/TR/selectors/#lang-pseudo
+		"lang": markFunction( function( lang ) {
+			// lang value must be a valid identifier
+			if ( !ridentifier.test(lang || "") ) {
+				Sizzle.error( "unsupported lang: " + lang );
+			}
+			lang = lang.replace( runescape, funescape ).toLowerCase();
+			return function( elem ) {
+				var elemLang;
+				do {
+					if ( (elemLang = documentIsHTML ?
+						elem.lang :
+						elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
 
-		// If there is already no cache entry for this object, there is no
-		// purpose in continuing
-		if ( !cache[ id ] ) {
-			return;
-		}
+						elemLang = elemLang.toLowerCase();
+						return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
+					}
+				} while ( (elem = elem.parentNode) && elem.nodeType === 1 );
+				return false;
+			};
+		}),
 
-		if ( name ) {
-			var thisCache = pvt ? cache[ id ][ internalKey ] : cache[ id ];
+		// Miscellaneous
+		"target": function( elem ) {
+			var hash = window.location && window.location.hash;
+			return hash && hash.slice( 1 ) === elem.id;
+		},
 
-			if ( thisCache ) {
-				delete thisCache[ name ];
+		"root": function( elem ) {
+			return elem === docElem;
+		},
 
-				// If there is no data left in the cache, we want to continue
-				// and let the cache object itself get destroyed
-				if ( !isEmptyDataObject(thisCache) ) {
-					return;
+		"focus": function( elem ) {
+			return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
+		},
+
+		// Boolean properties
+		"enabled": function( elem ) {
+			return elem.disabled === false;
+		},
+
+		"disabled": function( elem ) {
+			return elem.disabled === true;
+		},
+
+		"checked": function( elem ) {
+			// In CSS3, :checked should return both checked and selected elements
+			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+			var nodeName = elem.nodeName.toLowerCase();
+			return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
+		},
+
+		"selected": function( elem ) {
+			// Accessing this property makes selected-by-default
+			// options in Safari work properly
+			if ( elem.parentNode ) {
+				elem.parentNode.selectedIndex;
+			}
+
+			return elem.selected === true;
+		},
+
+		// Contents
+		"empty": function( elem ) {
+			// http://www.w3.org/TR/selectors/#empty-pseudo
+			// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
+			//   but not by others (comment: 8; processing instruction: 7; etc.)
+			// nodeType < 6 works because attributes (2) do not appear as children
+			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+				if ( elem.nodeType < 6 ) {
+					return false;
 				}
 			}
-		}
+			return true;
+		},
 
-		// See jQuery.data for more information
-		if ( pvt ) {
-			delete cache[ id ][ internalKey ];
+		"parent": function( elem ) {
+			return !Expr.pseudos["empty"]( elem );
+		},
 
-			// Don't destroy the parent cache unless the internal data object
-			// had been the only thing left in it
-			if ( !isEmptyDataObject(cache[ id ]) ) {
-				return;
+		// Element/input types
+		"header": function( elem ) {
+			return rheader.test( elem.nodeName );
+		},
+
+		"input": function( elem ) {
+			return rinputs.test( elem.nodeName );
+		},
+
+		"button": function( elem ) {
+			var name = elem.nodeName.toLowerCase();
+			return name === "input" && elem.type === "button" || name === "button";
+		},
+
+		"text": function( elem ) {
+			var attr;
+			return elem.nodeName.toLowerCase() === "input" &&
+				elem.type === "text" &&
+
+				// Support: IE<8
+				// New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
+				( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
+		},
+
+		// Position-in-collection
+		"first": createPositionalPseudo(function() {
+			return [ 0 ];
+		}),
+
+		"last": createPositionalPseudo(function( matchIndexes, length ) {
+			return [ length - 1 ];
+		}),
+
+		"eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			return [ argument < 0 ? argument + length : argument ];
+		}),
+
+		"even": createPositionalPseudo(function( matchIndexes, length ) {
+			var i = 0;
+			for ( ; i < length; i += 2 ) {
+				matchIndexes.push( i );
 			}
-		}
+			return matchIndexes;
+		}),
 
-		var internalCache = cache[ id ][ internalKey ];
+		"odd": createPositionalPseudo(function( matchIndexes, length ) {
+			var i = 1;
+			for ( ; i < length; i += 2 ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
 
-		// Browsers that fail expando deletion also refuse to delete expandos on
-		// the window, but it will allow it on all other JS objects; other browsers
-		// don't care
-		if ( jQuery.support.deleteExpando || cache != window ) {
-			delete cache[ id ];
-		} else {
-			cache[ id ] = null;
-		}
+		"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			var i = argument < 0 ? argument + length : argument;
+			for ( ; --i >= 0; ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
 
-		// We destroyed the entire user cache at once because it's faster than
-		// iterating through each key, but we need to continue to persist internal
-		// data if it existed
-		if ( internalCache ) {
-			cache[ id ] = {};
-			// TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery
-			// metadata on plain JS objects when the object is serialized using
-			// JSON.stringify
-			if ( !isNode ) {
-				cache[ id ].toJSON = jQuery.noop;
+		"gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			var i = argument < 0 ? argument + length : argument;
+			for ( ; ++i < length; ) {
+				matchIndexes.push( i );
 			}
+			return matchIndexes;
+		})
+	}
+};
 
-			cache[ id ][ internalKey ] = internalCache;
+Expr.pseudos["nth"] = Expr.pseudos["eq"];
 
-		// Otherwise, we need to eliminate the expando on the node to avoid
-		// false lookups in the cache for entries that no longer exist
-		} else if ( isNode ) {
-			// IE does not allow us to delete expando properties from nodes,
-			// nor does it have a removeAttribute function on Document nodes;
-			// we must handle all of these cases
-			if ( jQuery.support.deleteExpando ) {
-				delete elem[ jQuery.expando ];
-			} else if ( elem.removeAttribute ) {
-				elem.removeAttribute( jQuery.expando );
-			} else {
-				elem[ jQuery.expando ] = null;
+// Add button/input type pseudos
+for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
+	Expr.pseudos[ i ] = createInputPseudo( i );
+}
+for ( i in { submit: true, reset: true } ) {
+	Expr.pseudos[ i ] = createButtonPseudo( i );
+}
+
+// Easy API for creating new setFilters
+function setFilters() {}
+setFilters.prototype = Expr.filters = Expr.pseudos;
+Expr.setFilters = new setFilters();
+
+function tokenize( selector, parseOnly ) {
+	var matched, match, tokens, type,
+		soFar, groups, preFilters,
+		cached = tokenCache[ selector + " " ];
+
+	if ( cached ) {
+		return parseOnly ? 0 : cached.slice( 0 );
+	}
+
+	soFar = selector;
+	groups = [];
+	preFilters = Expr.preFilter;
+
+	while ( soFar ) {
+
+		// Comma and first run
+		if ( !matched || (match = rcomma.exec( soFar )) ) {
+			if ( match ) {
+				// Don't consume trailing commas as valid
+				soFar = soFar.slice( match[0].length ) || soFar;
 			}
+			groups.push( (tokens = []) );
 		}
-	},
 
-	// For internal use only.
-	_data: function( elem, name, data ) {
-		return jQuery.data( elem, name, data, true );
-	},
+		matched = false;
 
-	// A method for determining if a DOM node can handle the data expando
-	acceptData: function( elem ) {
-		if ( elem.nodeName ) {
-			var match = jQuery.noData[ elem.nodeName.toLowerCase() ];
+		// Combinators
+		if ( (match = rcombinators.exec( soFar )) ) {
+			matched = match.shift();
+			tokens.push({
+				value: matched,
+				// Cast descendant combinators to space
+				type: match[0].replace( rtrim, " " )
+			});
+			soFar = soFar.slice( matched.length );
+		}
 
-			if ( match ) {
-				return !(match === true || elem.getAttribute("classid") !== match);
+		// Filters
+		for ( type in Expr.filter ) {
+			if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
+				(match = preFilters[ type ]( match ))) ) {
+				matched = match.shift();
+				tokens.push({
+					value: matched,
+					type: type,
+					matches: match
+				});
+				soFar = soFar.slice( matched.length );
 			}
 		}
 
-		return true;
+		if ( !matched ) {
+			break;
+		}
 	}
-});
 
-jQuery.fn.extend({
-	data: function( key, value ) {
-		var data = null;
+	// Return the length of the invalid excess
+	// if we're just parsing
+	// Otherwise, throw an error or return tokens
+	return parseOnly ?
+		soFar.length :
+		soFar ?
+			Sizzle.error( selector ) :
+			// Cache the tokens
+			tokenCache( selector, groups ).slice( 0 );
+}
 
-		if ( typeof key === "undefined" ) {
-			if ( this.length ) {
-				data = jQuery.data( this[0] );
+function toSelector( tokens ) {
+	var i = 0,
+		len = tokens.length,
+		selector = "";
+	for ( ; i < len; i++ ) {
+		selector += tokens[i].value;
+	}
+	return selector;
+}
 
-				if ( this[0].nodeType === 1 ) {
-			    var attr = this[0].attributes, name;
-					for ( var i = 0, l = attr.length; i < l; i++ ) {
-						name = attr[i].name;
+function addCombinator( matcher, combinator, base ) {
+	var dir = combinator.dir,
+		checkNonElements = base && dir === "parentNode",
+		doneName = done++;
 
-						if ( name.indexOf( "data-" ) === 0 ) {
-							name = jQuery.camelCase( name.substring(5) );
+	return combinator.first ?
+		// Check against closest ancestor/preceding element
+		function( elem, context, xml ) {
+			while ( (elem = elem[ dir ]) ) {
+				if ( elem.nodeType === 1 || checkNonElements ) {
+					return matcher( elem, context, xml );
+				}
+			}
+		} :
 
-							dataAttr( this[0], name, data[ name ] );
+		// Check against all ancestor/preceding elements
+		function( elem, context, xml ) {
+			var oldCache, outerCache,
+				newCache = [ dirruns, doneName ];
+
+			// We can't set arbitrary data on XML nodes, so they don't benefit from dir caching
+			if ( xml ) {
+				while ( (elem = elem[ dir ]) ) {
+					if ( elem.nodeType === 1 || checkNonElements ) {
+						if ( matcher( elem, context, xml ) ) {
+							return true;
 						}
 					}
 				}
+			} else {
+				while ( (elem = elem[ dir ]) ) {
+					if ( elem.nodeType === 1 || checkNonElements ) {
+						outerCache = elem[ expando ] || (elem[ expando ] = {});
+						if ( (oldCache = outerCache[ dir ]) &&
+							oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
+
+							// Assign to newCache so results back-propagate to previous elements
+							return (newCache[ 2 ] = oldCache[ 2 ]);
+						} else {
+							// Reuse newcache so results back-propagate to previous elements
+							outerCache[ dir ] = newCache;
+
+							// A match means we're done; a fail means we have to keep checking
+							if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
+								return true;
+							}
+						}
+					}
+				}
 			}
+		};
+}
 
-			return data;
+function elementMatcher( matchers ) {
+	return matchers.length > 1 ?
+		function( elem, context, xml ) {
+			var i = matchers.length;
+			while ( i-- ) {
+				if ( !matchers[i]( elem, context, xml ) ) {
+					return false;
+				}
+			}
+			return true;
+		} :
+		matchers[0];
+}
 
-		} else if ( typeof key === "object" ) {
-			return this.each(function() {
-				jQuery.data( this, key );
-			});
+function condense( unmatched, map, filter, context, xml ) {
+	var elem,
+		newUnmatched = [],
+		i = 0,
+		len = unmatched.length,
+		mapped = map != null;
+
+	for ( ; i < len; i++ ) {
+		if ( (elem = unmatched[i]) ) {
+			if ( !filter || filter( elem, context, xml ) ) {
+				newUnmatched.push( elem );
+				if ( mapped ) {
+					map.push( i );
+				}
+			}
 		}
+	}
 
-		var parts = key.split(".");
-		parts[1] = parts[1] ? "." + parts[1] : "";
+	return newUnmatched;
+}
 
-		if ( value === undefined ) {
-			data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);
+function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
+	if ( postFilter && !postFilter[ expando ] ) {
+		postFilter = setMatcher( postFilter );
+	}
+	if ( postFinder && !postFinder[ expando ] ) {
+		postFinder = setMatcher( postFinder, postSelector );
+	}
+	return markFunction(function( seed, results, context, xml ) {
+		var temp, i, elem,
+			preMap = [],
+			postMap = [],
+			preexisting = results.length,
 
-			// Try to fetch any internally stored data first
-			if ( data === undefined && this.length ) {
-				data = jQuery.data( this[0], key );
-				data = dataAttr( this[0], key, data );
-			}
+			// Get initial elements from seed or context
+			elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
 
-			return data === undefined && parts[1] ?
-				this.data( parts[0] ) :
-				data;
+			// Prefilter to get matcher input, preserving a map for seed-results synchronization
+			matcherIn = preFilter && ( seed || !selector ) ?
+				condense( elems, preMap, preFilter, context, xml ) :
+				elems,
 
-		} else {
-			return this.each(function() {
-				var $this = jQuery( this ),
-					args = [ parts[0], value ];
+			matcherOut = matcher ?
+				// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
+				postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
 
-				$this.triggerHandler( "setData" + parts[1] + "!", args );
-				jQuery.data( this, key, value );
-				$this.triggerHandler( "changeData" + parts[1] + "!", args );
-			});
+					// ...intermediate processing is necessary
+					[] :
+
+					// ...otherwise use results directly
+					results :
+				matcherIn;
+
+		// Find primary matches
+		if ( matcher ) {
+			matcher( matcherIn, matcherOut, context, xml );
 		}
-	},
 
-	removeData: function( key ) {
-		return this.each(function() {
-			jQuery.removeData( this, key );
-		});
-	}
-});
+		// Apply postFilter
+		if ( postFilter ) {
+			temp = condense( matcherOut, postMap );
+			postFilter( temp, [], context, xml );
 
-function dataAttr( elem, key, data ) {
-	// If nothing was found internally, try to fetch any
-	// data from the HTML5 data-* attribute
-	if ( data === undefined && elem.nodeType === 1 ) {
-		var name = "data-" + key.replace( rmultiDash, "$1-$2" ).toLowerCase();
+			// Un-match failing elements by moving them back to matcherIn
+			i = temp.length;
+			while ( i-- ) {
+				if ( (elem = temp[i]) ) {
+					matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
+				}
+			}
+		}
 
-		data = elem.getAttribute( name );
+		if ( seed ) {
+			if ( postFinder || preFilter ) {
+				if ( postFinder ) {
+					// Get the final matcherOut by condensing this intermediate into postFinder contexts
+					temp = [];
+					i = matcherOut.length;
+					while ( i-- ) {
+						if ( (elem = matcherOut[i]) ) {
+							// Restore matcherIn since elem is not yet a final match
+							temp.push( (matcherIn[i] = elem) );
+						}
+					}
+					postFinder( null, (matcherOut = []), temp, xml );
+				}
 
-		if ( typeof data === "string" ) {
-			try {
-				data = data === "true" ? true :
-				data === "false" ? false :
-				data === "null" ? null :
-				!jQuery.isNaN( data ) ? parseFloat( data ) :
-					rbrace.test( data ) ? jQuery.parseJSON( data ) :
-					data;
-			} catch( e ) {}
+				// Move matched elements from seed to results to keep them synchronized
+				i = matcherOut.length;
+				while ( i-- ) {
+					if ( (elem = matcherOut[i]) &&
+						(temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) {
 
-			// Make sure we set the data so it isn't changed later
-			jQuery.data( elem, key, data );
+						seed[temp] = !(results[temp] = elem);
+					}
+				}
+			}
 
+		// Add elements to results, through postFinder if defined
 		} else {
-			data = undefined;
+			matcherOut = condense(
+				matcherOut === results ?
+					matcherOut.splice( preexisting, matcherOut.length ) :
+					matcherOut
+			);
+			if ( postFinder ) {
+				postFinder( null, results, matcherOut, xml );
+			} else {
+				push.apply( results, matcherOut );
+			}
 		}
-	}
-
-	return data;
+	});
 }
 
-// TODO: This is a hack for 1.5 ONLY to allow objects with a single toJSON
-// property to be considered empty objects; this property always exists in
-// order to make sure JSON.stringify does not expose internal metadata
-function isEmptyDataObject( obj ) {
-	for ( var name in obj ) {
-		if ( name !== "toJSON" ) {
-			return false;
+function matcherFromTokens( tokens ) {
+	var checkContext, matcher, j,
+		len = tokens.length,
+		leadingRelative = Expr.relative[ tokens[0].type ],
+		implicitRelative = leadingRelative || Expr.relative[" "],
+		i = leadingRelative ? 1 : 0,
+
+		// The foundational matcher ensures that elements are reachable from top-level context(s)
+		matchContext = addCombinator( function( elem ) {
+			return elem === checkContext;
+		}, implicitRelative, true ),
+		matchAnyContext = addCombinator( function( elem ) {
+			return indexOf.call( checkContext, elem ) > -1;
+		}, implicitRelative, true ),
+		matchers = [ function( elem, context, xml ) {
+			return ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
+				(checkContext = context).nodeType ?
+					matchContext( elem, context, xml ) :
+					matchAnyContext( elem, context, xml ) );
+		} ];
+
+	for ( ; i < len; i++ ) {
+		if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
+			matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
+		} else {
+			matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
+
+			// Return special upon seeing a positional matcher
+			if ( matcher[ expando ] ) {
+				// Find the next relative operator (if any) for proper handling
+				j = ++i;
+				for ( ; j < len; j++ ) {
+					if ( Expr.relative[ tokens[j].type ] ) {
+						break;
+					}
+				}
+				return setMatcher(
+					i > 1 && elementMatcher( matchers ),
+					i > 1 && toSelector(
+						// If the preceding token was a descendant combinator, insert an implicit any-element `*`
+						tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
+					).replace( rtrim, "$1" ),
+					matcher,
+					i < j && matcherFromTokens( tokens.slice( i, j ) ),
+					j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
+					j < len && toSelector( tokens )
+				);
+			}
+			matchers.push( matcher );
 		}
 	}
 
-	return true;
+	return elementMatcher( matchers );
 }
 
+function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
+	var bySet = setMatchers.length > 0,
+		byElement = elementMatchers.length > 0,
+		superMatcher = function( seed, context, xml, results, outermost ) {
+			var elem, j, matcher,
+				matchedCount = 0,
+				i = "0",
+				unmatched = seed && [],
+				setMatched = [],
+				contextBackup = outermostContext,
+				// We must always have either seed elements or outermost context
+				elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
+				// Use integer dirruns iff this is the outermost matcher
+				dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
+				len = elems.length;
 
+			if ( outermost ) {
+				outermostContext = context !== document && context;
+			}
 
+			// Add elements passing elementMatchers directly to results
+			// Keep `i` a string if there are no elements so `matchedCount` will be "00" below
+			// Support: IE<9, Safari
+			// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
+			for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
+				if ( byElement && elem ) {
+					j = 0;
+					while ( (matcher = elementMatchers[j++]) ) {
+						if ( matcher( elem, context, xml ) ) {
+							results.push( elem );
+							break;
+						}
+					}
+					if ( outermost ) {
+						dirruns = dirrunsUnique;
+					}
+				}
 
-function handleQueueMarkDefer( elem, type, src ) {
-	var deferDataKey = type + "defer",
-		queueDataKey = type + "queue",
-		markDataKey = type + "mark",
-		defer = jQuery.data( elem, deferDataKey, undefined, true );
-	if ( defer &&
-		( src === "queue" || !jQuery.data( elem, queueDataKey, undefined, true ) ) &&
-		( src === "mark" || !jQuery.data( elem, markDataKey, undefined, true ) ) ) {
-		// Give room for hard-coded callbacks to fire first
-		// and eventually mark/queue something else on the element
-		setTimeout( function() {
-			if ( !jQuery.data( elem, queueDataKey, undefined, true ) &&
-				!jQuery.data( elem, markDataKey, undefined, true ) ) {
-				jQuery.removeData( elem, deferDataKey, true );
-				defer.resolve();
+				// Track unmatched elements for set filters
+				if ( bySet ) {
+					// They will have gone through all possible matchers
+					if ( (elem = !matcher && elem) ) {
+						matchedCount--;
+					}
+
+					// Lengthen the array for every element, matched or not
+					if ( seed ) {
+						unmatched.push( elem );
+					}
+				}
 			}
-		}, 0 );
-	}
+
+			// Apply set filters to unmatched elements
+			matchedCount += i;
+			if ( bySet && i !== matchedCount ) {
+				j = 0;
+				while ( (matcher = setMatchers[j++]) ) {
+					matcher( unmatched, setMatched, context, xml );
+				}
+
+				if ( seed ) {
+					// Reintegrate element matches to eliminate the need for sorting
+					if ( matchedCount > 0 ) {
+						while ( i-- ) {
+							if ( !(unmatched[i] || setMatched[i]) ) {
+								setMatched[i] = pop.call( results );
+							}
+						}
+					}
+
+					// Discard index placeholder values to get only actual matches
+					setMatched = condense( setMatched );
+				}
+
+				// Add matches to results
+				push.apply( results, setMatched );
+
+				// Seedless set matches succeeding multiple successful matchers stipulate sorting
+				if ( outermost && !seed && setMatched.length > 0 &&
+					( matchedCount + setMatchers.length ) > 1 ) {
+
+					Sizzle.uniqueSort( results );
+				}
+			}
+
+			// Override manipulation of globals by nested matchers
+			if ( outermost ) {
+				dirruns = dirrunsUnique;
+				outermostContext = contextBackup;
+			}
+
+			return unmatched;
+		};
+
+	return bySet ?
+		markFunction( superMatcher ) :
+		superMatcher;
 }
 
-jQuery.extend({
+compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) {
+	var i,
+		setMatchers = [],
+		elementMatchers = [],
+		cached = compilerCache[ selector + " " ];
 
-	_mark: function( elem, type ) {
-		if ( elem ) {
-			type = (type || "fx") + "mark";
-			jQuery.data( elem, type, (jQuery.data(elem,type,undefined,true) || 0) + 1, true );
+	if ( !cached ) {
+		// Generate a function of recursive functions that can be used to check each element
+		if ( !group ) {
+			group = tokenize( selector );
 		}
-	},
-
-	_unmark: function( force, elem, type ) {
-		if ( force !== true ) {
-			type = elem;
-			elem = force;
-			force = false;
-		}
-		if ( elem ) {
-			type = type || "fx";
-			var key = type + "mark",
-				count = force ? 0 : ( (jQuery.data( elem, key, undefined, true) || 1 ) - 1 );
-			if ( count ) {
-				jQuery.data( elem, key, count, true );
+		i = group.length;
+		while ( i-- ) {
+			cached = matcherFromTokens( group[i] );
+			if ( cached[ expando ] ) {
+				setMatchers.push( cached );
 			} else {
-				jQuery.removeData( elem, key, true );
-				handleQueueMarkDefer( elem, type, "mark" );
+				elementMatchers.push( cached );
 			}
 		}
-	},
 
-	queue: function( elem, type, data ) {
-		if ( elem ) {
-			type = (type || "fx") + "queue";
-			var q = jQuery.data( elem, type, undefined, true );
-			// Speed up dequeue by getting out quickly if this is just a lookup
-			if ( data ) {
-				if ( !q || jQuery.isArray(data) ) {
-					q = jQuery.data( elem, type, jQuery.makeArray(data), true );
-				} else {
-					q.push( data );
+		// Cache the compiled function
+		cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
+	}
+	return cached;
+};
+
+function multipleContexts( selector, contexts, results ) {
+	var i = 0,
+		len = contexts.length;
+	for ( ; i < len; i++ ) {
+		Sizzle( selector, contexts[i], results );
+	}
+	return results;
+}
+
+function select( selector, context, results, seed ) {
+	var i, tokens, token, type, find,
+		match = tokenize( selector );
+
+	if ( !seed ) {
+		// Try to minimize operations if there is only one group
+		if ( match.length === 1 ) {
+
+			// Take a shortcut and set the context if the root selector is an ID
+			tokens = match[0] = match[0].slice( 0 );
+			if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
+					support.getById && context.nodeType === 9 && documentIsHTML &&
+					Expr.relative[ tokens[1].type ] ) {
+
+				context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
+				if ( !context ) {
+					return results;
 				}
+				selector = selector.slice( tokens.shift().value.length );
 			}
-			return q || [];
-		}
-	},
 
-	dequeue: function( elem, type ) {
-		type = type || "fx";
+			// Fetch a seed set for right-to-left matching
+			i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
+			while ( i-- ) {
+				token = tokens[i];
 
-		var queue = jQuery.queue( elem, type ),
-			fn = queue.shift(),
-			defer;
+				// Abort if we hit a combinator
+				if ( Expr.relative[ (type = token.type) ] ) {
+					break;
+				}
+				if ( (find = Expr.find[ type ]) ) {
+					// Search, expanding context for leading sibling combinators
+					if ( (seed = find(
+						token.matches[0].replace( runescape, funescape ),
+						rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
+					)) ) {
 
-		// If the fx queue is dequeued, always remove the progress sentinel
-		if ( fn === "inprogress" ) {
-			fn = queue.shift();
-		}
+						// If seed is empty or no tokens remain, we can return early
+						tokens.splice( i, 1 );
+						selector = seed.length && toSelector( tokens );
+						if ( !selector ) {
+							push.apply( results, seed );
+							return results;
+						}
 
-		if ( fn ) {
-			// Add a progress sentinel to prevent the fx queue from being
-			// automatically dequeued
-			if ( type === "fx" ) {
-				queue.unshift("inprogress");
+						break;
+					}
+				}
 			}
-
-			fn.call(elem, function() {
-				jQuery.dequeue(elem, type);
-			});
 		}
-
-		if ( !queue.length ) {
-			jQuery.removeData( elem, type + "queue", true );
-			handleQueueMarkDefer( elem, type, "queue" );
-		}
 	}
+
+	// Compile and execute a filtering function
+	// Provide `match` to avoid retokenization if we modified the selector above
+	compile( selector, match )(
+		seed,
+		context,
+		!documentIsHTML,
+		results,
+		rsibling.test( selector ) && testContext( context.parentNode ) || context
+	);
+	return results;
+}
+
+// One-time assignments
+
+// Sort stability
+support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
+
+// Support: Chrome<14
+// Always assume duplicates if they aren't passed to the comparison function
+support.detectDuplicates = !!hasDuplicate;
+
+// Initialize against the default document
+setDocument();
+
+// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
+// Detached nodes confoundingly follow *each other*
+support.sortDetached = assert(function( div1 ) {
+	// Should return 1, but returns 4 (following)
+	return div1.compareDocumentPosition( document.createElement("div") ) & 1;
 });
 
-jQuery.fn.extend({
-	queue: function( type, data ) {
-		if ( typeof type !== "string" ) {
-			data = type;
-			type = "fx";
+// Support: IE<8
+// Prevent attribute/property "interpolation"
+// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !assert(function( div ) {
+	div.innerHTML = "<a href='#'></a>";
+	return div.firstChild.getAttribute("href") === "#" ;
+}) ) {
+	addHandle( "type|href|height|width", function( elem, name, isXML ) {
+		if ( !isXML ) {
+			return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
 		}
+	});
+}
 
-		if ( data === undefined ) {
-			return jQuery.queue( this[0], type );
+// Support: IE<9
+// Use defaultValue in place of getAttribute("value")
+if ( !support.attributes || !assert(function( div ) {
+	div.innerHTML = "<input/>";
+	div.firstChild.setAttribute( "value", "" );
+	return div.firstChild.getAttribute( "value" ) === "";
+}) ) {
+	addHandle( "value", function( elem, name, isXML ) {
+		if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
+			return elem.defaultValue;
 		}
-		return this.each(function() {
-			var queue = jQuery.queue( this, type, data );
+	});
+}
 
-			if ( type === "fx" && queue[0] !== "inprogress" ) {
-				jQuery.dequeue( this, type );
-			}
+// Support: IE<9
+// Use getAttributeNode to fetch booleans when getAttribute lies
+if ( !assert(function( div ) {
+	return div.getAttribute("disabled") == null;
+}) ) {
+	addHandle( booleans, function( elem, name, isXML ) {
+		var val;
+		if ( !isXML ) {
+			return elem[ name ] === true ? name.toLowerCase() :
+					(val = elem.getAttributeNode( name )) && val.specified ?
+					val.value :
+				null;
+		}
+	});
+}
+
+return Sizzle;
+
+})( window );
+
+
+
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+jQuery.expr[":"] = jQuery.expr.pseudos;
+jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+
+
+
+var rneedsContext = jQuery.expr.match.needsContext;
+
+var rsingleTag = (/^<(\w+)\s*\/?>(?:<\/\1>|)$/);
+
+
+
+var risSimple = /^.[^:#\[\.,]*$/;
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, not ) {
+	if ( jQuery.isFunction( qualifier ) ) {
+		return jQuery.grep( elements, function( elem, i ) {
+			/* jshint -W018 */
+			return !!qualifier.call( elem, i, elem ) !== not;
 		});
-	},
-	dequeue: function( type ) {
-		return this.each(function() {
-			jQuery.dequeue( this, type );
-		});
-	},
-	// Based off of the plugin by Clint Helfers, with permission.
-	// http://blindsignals.com/index.php/2009/07/jquery-delay/
-	delay: function( time, type ) {
-		time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;
-		type = type || "fx";
 
-		return this.queue( type, function() {
-			var elem = this;
-			setTimeout(function() {
-				jQuery.dequeue( elem, type );
-			}, time );
+	}
+
+	if ( qualifier.nodeType ) {
+		return jQuery.grep( elements, function( elem ) {
+			return ( elem === qualifier ) !== not;
 		});
-	},
-	clearQueue: function( type ) {
-		return this.queue( type || "fx", [] );
-	},
-	// Get a promise resolved when queues of a certain type
-	// are emptied (fx is the type by default)
-	promise: function( type, object ) {
-		if ( typeof type !== "string" ) {
-			object = type;
-			type = undefined;
+
+	}
+
+	if ( typeof qualifier === "string" ) {
+		if ( risSimple.test( qualifier ) ) {
+			return jQuery.filter( qualifier, elements, not );
 		}
-		type = type || "fx";
-		var defer = jQuery.Deferred(),
-			elements = this,
-			i = elements.length,
-			count = 1,
-			deferDataKey = type + "defer",
-			queueDataKey = type + "queue",
-			markDataKey = type + "mark",
-			tmp;
-		function resolve() {
-			if ( !( --count ) ) {
-				defer.resolveWith( elements, [ elements ] );
-			}
-		}
-		while( i-- ) {
-			if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) ||
-					( jQuery.data( elements[ i ], queueDataKey, undefined, true ) ||
-						jQuery.data( elements[ i ], markDataKey, undefined, true ) ) &&
-					jQuery.data( elements[ i ], deferDataKey, jQuery._Deferred(), true ) )) {
-				count++;
-				tmp.done( resolve );
-			}
-		}
-		resolve();
-		return defer.promise();
+
+		qualifier = jQuery.filter( qualifier, elements );
 	}
-});
 
+	return jQuery.grep( elements, function( elem ) {
+		return ( jQuery.inArray( elem, qualifier ) >= 0 ) !== not;
+	});
+}
 
+jQuery.filter = function( expr, elems, not ) {
+	var elem = elems[ 0 ];
 
+	if ( not ) {
+		expr = ":not(" + expr + ")";
+	}
 
-var rclass = /[\n\t\r]/g,
-	rspace = /\s+/,
-	rreturn = /\r/g,
-	rtype = /^(?:button|input)$/i,
-	rfocusable = /^(?:button|input|object|select|textarea)$/i,
-	rclickable = /^a(?:rea)?$/i,
-	rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
-	rinvalidChar = /\:/,
-	formHook, boolHook;
+	return elems.length === 1 && elem.nodeType === 1 ?
+		jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :
+		jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
+			return elem.nodeType === 1;
+		}));
+};
 
 jQuery.fn.extend({
-	attr: function( name, value ) {
-		return jQuery.access( this, name, value, true, jQuery.attr );
-	},
+	find: function( selector ) {
+		var i,
+			ret = [],
+			self = this,
+			len = self.length;
 
-	removeAttr: function( name ) {
-		return this.each(function() {
-			jQuery.removeAttr( this, name );
-		});
+		if ( typeof selector !== "string" ) {
+			return this.pushStack( jQuery( selector ).filter(function() {
+				for ( i = 0; i < len; i++ ) {
+					if ( jQuery.contains( self[ i ], this ) ) {
+						return true;
+					}
+				}
+			}) );
+		}
+
+		for ( i = 0; i < len; i++ ) {
+			jQuery.find( selector, self[ i ], ret );
+		}
+
+		// Needed because $( selector, context ) becomes $( context ).find( selector )
+		ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );
+		ret.selector = this.selector ? this.selector + " " + selector : selector;
+		return ret;
 	},
-	
-	prop: function( name, value ) {
-		return jQuery.access( this, name, value, true, jQuery.prop );
+	filter: function( selector ) {
+		return this.pushStack( winnow(this, selector || [], false) );
 	},
-	
-	removeProp: function( name ) {
-		name = jQuery.propFix[ name ] || name;
-		return this.each(function() {
-			// try/catch handles cases where IE balks (such as removing a property on window)
-			try {
-				this[ name ] = undefined;
-				delete this[ name ];
-			} catch( e ) {}
-		});
+	not: function( selector ) {
+		return this.pushStack( winnow(this, selector || [], true) );
 	},
+	is: function( selector ) {
+		return !!winnow(
+			this,
 
-	addClass: function( value ) {
-		if ( jQuery.isFunction( value ) ) {
-			return this.each(function(i) {
-				var self = jQuery(this);
-				self.addClass( value.call(this, i, self.attr("class") || "") );
-			});
+			// If this is a positional/relative selector, check membership in the returned set
+			// so $("p:first").is("p:last") won't return true for a doc with two "p".
+			typeof selector === "string" && rneedsContext.test( selector ) ?
+				jQuery( selector ) :
+				selector || [],
+			false
+		).length;
+	}
+});
+
+
+// Initialize a jQuery object
+
+
+// A central reference to the root jQuery(document)
+var rootjQuery,
+
+	// Use the correct document accordingly with window argument (sandbox)
+	document = window.document,
+
+	// A simple way to check for HTML strings
+	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+	// Strict HTML recognition (#11290: must start with <)
+	rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
+
+	init = jQuery.fn.init = function( selector, context ) {
+		var match, elem;
+
+		// HANDLE: $(""), $(null), $(undefined), $(false)
+		if ( !selector ) {
+			return this;
 		}
 
-		if ( value && typeof value === "string" ) {
-			var classNames = (value || "").split( rspace );
+		// Handle HTML strings
+		if ( typeof selector === "string" ) {
+			if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) {
+				// Assume that strings that start and end with <> are HTML and skip the regex check
+				match = [ null, selector, null ];
 
-			for ( var i = 0, l = this.length; i < l; i++ ) {
-				var elem = this[i];
+			} else {
+				match = rquickExpr.exec( selector );
+			}
 
-				if ( elem.nodeType === 1 ) {
-					if ( !elem.className ) {
-						elem.className = value;
+			// Match html or make sure no context is specified for #id
+			if ( match && (match[1] || !context) ) {
 
-					} else {
-						var className = " " + elem.className + " ",
-							setClass = elem.className;
+				// HANDLE: $(html) -> $(array)
+				if ( match[1] ) {
+					context = context instanceof jQuery ? context[0] : context;
 
-						for ( var c = 0, cl = classNames.length; c < cl; c++ ) {
-							if ( className.indexOf( " " + classNames[c] + " " ) < 0 ) {
-								setClass += " " + classNames[c];
+					// scripts is true for back-compat
+					// Intentionally let the error be thrown if parseHTML is not present
+					jQuery.merge( this, jQuery.parseHTML(
+						match[1],
+						context && context.nodeType ? context.ownerDocument || context : document,
+						true
+					) );
+
+					// HANDLE: $(html, props)
+					if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {
+						for ( match in context ) {
+							// Properties of context are called as methods if possible
+							if ( jQuery.isFunction( this[ match ] ) ) {
+								this[ match ]( context[ match ] );
+
+							// ...and otherwise set as attributes
+							} else {
+								this.attr( match, context[ match ] );
 							}
 						}
-						elem.className = jQuery.trim( setClass );
 					}
+
+					return this;
+
+				// HANDLE: $(#id)
+				} else {
+					elem = document.getElementById( match[2] );
+
+					// Check parentNode to catch when Blackberry 4.6 returns
+					// nodes that are no longer in the document #6963
+					if ( elem && elem.parentNode ) {
+						// Handle the case where IE and Opera return items
+						// by name instead of ID
+						if ( elem.id !== match[2] ) {
+							return rootjQuery.find( selector );
+						}
+
+						// Otherwise, we inject the element directly into the jQuery object
+						this.length = 1;
+						this[0] = elem;
+					}
+
+					this.context = document;
+					this.selector = selector;
+					return this;
 				}
+
+			// HANDLE: $(expr, $(...))
+			} else if ( !context || context.jquery ) {
+				return ( context || rootjQuery ).find( selector );
+
+			// HANDLE: $(expr, context)
+			// (which is just equivalent to: $(context).find(expr)
+			} else {
+				return this.constructor( context ).find( selector );
 			}
-		}
 
-		return this;
-	},
+		// HANDLE: $(DOMElement)
+		} else if ( selector.nodeType ) {
+			this.context = this[0] = selector;
+			this.length = 1;
+			return this;
 
-	removeClass: function( value ) {
-		if ( jQuery.isFunction(value) ) {
-			return this.each(function(i) {
-				var self = jQuery(this);
-				self.removeClass( value.call(this, i, self.attr("class")) );
-			});
+		// HANDLE: $(function)
+		// Shortcut for document ready
+		} else if ( jQuery.isFunction( selector ) ) {
+			return typeof rootjQuery.ready !== "undefined" ?
+				rootjQuery.ready( selector ) :
+				// Execute immediately if ready is not present
+				selector( jQuery );
 		}
 
-		if ( (value && typeof value === "string") || value === undefined ) {
-			var classNames = (value || "").split( rspace );
+		if ( selector.selector !== undefined ) {
+			this.selector = selector.selector;
+			this.context = selector.context;
+		}
 
-			for ( var i = 0, l = this.length; i < l; i++ ) {
-				var elem = this[i];
+		return jQuery.makeArray( selector, this );
+	};
 
-				if ( elem.nodeType === 1 && elem.className ) {
-					if ( value ) {
-						var className = (" " + elem.className + " ").replace(rclass, " ");
-						for ( var c = 0, cl = classNames.length; c < cl; c++ ) {
-							className = className.replace(" " + classNames[c] + " ", " ");
-						}
-						elem.className = jQuery.trim( className );
+// Give the init function the jQuery prototype for later instantiation
+init.prototype = jQuery.fn;
 
-					} else {
-						elem.className = "";
-					}
-				}
+// Initialize central reference
+rootjQuery = jQuery( document );
+
+
+var rparentsprev = /^(?:parents|prev(?:Until|All))/,
+	// methods guaranteed to produce a unique set when starting from a unique set
+	guaranteedUnique = {
+		children: true,
+		contents: true,
+		next: true,
+		prev: true
+	};
+
+jQuery.extend({
+	dir: function( elem, dir, until ) {
+		var matched = [],
+			cur = elem[ dir ];
+
+		while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {
+			if ( cur.nodeType === 1 ) {
+				matched.push( cur );
 			}
+			cur = cur[dir];
 		}
-
-		return this;
+		return matched;
 	},
 
-	toggleClass: function( value, stateVal ) {
-		var type = typeof value,
-			isBool = typeof stateVal === "boolean";
+	sibling: function( n, elem ) {
+		var r = [];
 
-		if ( jQuery.isFunction( value ) ) {
-			return this.each(function(i) {
-				var self = jQuery(this);
-				self.toggleClass( value.call(this, i, self.attr("class"), stateVal), stateVal );
-			});
+		for ( ; n; n = n.nextSibling ) {
+			if ( n.nodeType === 1 && n !== elem ) {
+				r.push( n );
+			}
 		}
 
-		return this.each(function() {
-			if ( type === "string" ) {
-				// toggle individual class names
-				var className,
-					i = 0,
-					self = jQuery( this ),
-					state = stateVal,
-					classNames = value.split( rspace );
+		return r;
+	}
+});
 
-				while ( (className = classNames[ i++ ]) ) {
-					// check each className given, space seperated list
-					state = isBool ? state : !self.hasClass( className );
-					self[ state ? "addClass" : "removeClass" ]( className );
-				}
+jQuery.fn.extend({
+	has: function( target ) {
+		var i,
+			targets = jQuery( target, this ),
+			len = targets.length;
 
-			} else if ( type === "undefined" || type === "boolean" ) {
-				if ( this.className ) {
-					// store className if set
-					jQuery._data( this, "__className__", this.className );
+		return this.filter(function() {
+			for ( i = 0; i < len; i++ ) {
+				if ( jQuery.contains( this, targets[i] ) ) {
+					return true;
 				}
-
-				// toggle whole className
-				this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || "";
 			}
 		});
 	},
 
-	hasClass: function( selector ) {
-		var className = " " + selector + " ";
-		for ( var i = 0, l = this.length; i < l; i++ ) {
-			if ( (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) {
-				return true;
+	closest: function( selectors, context ) {
+		var cur,
+			i = 0,
+			l = this.length,
+			matched = [],
+			pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ?
+				jQuery( selectors, context || this.context ) :
+				0;
+
+		for ( ; i < l; i++ ) {
+			for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) {
+				// Always skip document fragments
+				if ( cur.nodeType < 11 && (pos ?
+					pos.index(cur) > -1 :
+
+					// Don't pass non-elements to Sizzle
+					cur.nodeType === 1 &&
+						jQuery.find.matchesSelector(cur, selectors)) ) {
+
+					matched.push( cur );
+					break;
+				}
 			}
 		}
 
-		return false;
+		return this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched );
 	},
 
-	val: function( value ) {
-		var hooks, ret,
-			elem = this[0];
-		
-		if ( !arguments.length ) {
-			if ( elem ) {
-				hooks = jQuery.valHooks[ elem.nodeName.toLowerCase() ] || jQuery.valHooks[ elem.type ];
+	// Determine the position of an element within
+	// the matched set of elements
+	index: function( elem ) {
 
-				if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {
-					return ret;
-				}
+		// No argument, return index in parent
+		if ( !elem ) {
+			return ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1;
+		}
 
-				return (elem.value || "").replace(rreturn, "");
-			}
-
-			return undefined;
+		// index in selector
+		if ( typeof elem === "string" ) {
+			return jQuery.inArray( this[0], jQuery( elem ) );
 		}
 
-		var isFunction = jQuery.isFunction( value );
+		// Locate the position of the desired element
+		return jQuery.inArray(
+			// If it receives a jQuery object, the first element is used
+			elem.jquery ? elem[0] : elem, this );
+	},
 
-		return this.each(function( i ) {
-			var self = jQuery(this), val;
+	add: function( selector, context ) {
+		return this.pushStack(
+			jQuery.unique(
+				jQuery.merge( this.get(), jQuery( selector, context ) )
+			)
+		);
+	},
 
-			if ( this.nodeType !== 1 ) {
-				return;
-			}
+	addBack: function( selector ) {
+		return this.add( selector == null ?
+			this.prevObject : this.prevObject.filter(selector)
+		);
+	}
+});
 
-			if ( isFunction ) {
-				val = value.call( this, i, self.val() );
-			} else {
-				val = value;
-			}
+function sibling( cur, dir ) {
+	do {
+		cur = cur[ dir ];
+	} while ( cur && cur.nodeType !== 1 );
 
-			// Treat null/undefined as ""; convert numbers to string
-			if ( val == null ) {
-				val = "";
-			} else if ( typeof val === "number" ) {
-				val += "";
-			} else if ( jQuery.isArray( val ) ) {
-				val = jQuery.map(val, function ( value ) {
-					return value == null ? "" : value + "";
-				});
-			}
+	return cur;
+}
 
-			hooks = jQuery.valHooks[ this.nodeName.toLowerCase() ] || jQuery.valHooks[ this.type ];
+jQuery.each({
+	parent: function( elem ) {
+		var parent = elem.parentNode;
+		return parent && parent.nodeType !== 11 ? parent : null;
+	},
+	parents: function( elem ) {
+		return jQuery.dir( elem, "parentNode" );
+	},
+	parentsUntil: function( elem, i, until ) {
+		return jQuery.dir( elem, "parentNode", until );
+	},
+	next: function( elem ) {
+		return sibling( elem, "nextSibling" );
+	},
+	prev: function( elem ) {
+		return sibling( elem, "previousSibling" );
+	},
+	nextAll: function( elem ) {
+		return jQuery.dir( elem, "nextSibling" );
+	},
+	prevAll: function( elem ) {
+		return jQuery.dir( elem, "previousSibling" );
+	},
+	nextUntil: function( elem, i, until ) {
+		return jQuery.dir( elem, "nextSibling", until );
+	},
+	prevUntil: function( elem, i, until ) {
+		return jQuery.dir( elem, "previousSibling", until );
+	},
+	siblings: function( elem ) {
+		return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );
+	},
+	children: function( elem ) {
+		return jQuery.sibling( elem.firstChild );
+	},
+	contents: function( elem ) {
+		return jQuery.nodeName( elem, "iframe" ) ?
+			elem.contentDocument || elem.contentWindow.document :
+			jQuery.merge( [], elem.childNodes );
+	}
+}, function( name, fn ) {
+	jQuery.fn[ name ] = function( until, selector ) {
+		var ret = jQuery.map( this, fn, until );
 
-			// If set returns undefined, fall back to normal setting
-			if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) {
-				this.value = val;
+		if ( name.slice( -5 ) !== "Until" ) {
+			selector = until;
+		}
+
+		if ( selector && typeof selector === "string" ) {
+			ret = jQuery.filter( selector, ret );
+		}
+
+		if ( this.length > 1 ) {
+			// Remove duplicates
+			if ( !guaranteedUnique[ name ] ) {
+				ret = jQuery.unique( ret );
 			}
-		});
-	}
-});
 
-jQuery.extend({
-	valHooks: {
-		option: {
-			get: function( elem ) {
-				// attributes.value is undefined in Blackberry 4.7 but
-				// uses .value. See #6932
-				var val = elem.attributes.value;
-				return !val || val.specified ? elem.value : elem.text;
+			// Reverse order for parents* and prev-derivatives
+			if ( rparentsprev.test( name ) ) {
+				ret = ret.reverse();
 			}
-		},
-		select: {
-			get: function( elem ) {
-				var value,
-					index = elem.selectedIndex,
-					values = [],
-					options = elem.options,
-					one = elem.type === "select-one";
+		}
 
-				// Nothing was selected
-				if ( index < 0 ) {
-					return null;
-				}
+		return this.pushStack( ret );
+	};
+});
+var rnotwhite = (/\S+/g);
 
-				// Loop through all the selected options
-				for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) {
-					var option = options[ i ];
 
-					// Don't return options that are disabled or in a disabled optgroup
-					if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) &&
-							(!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) {
 
-						// Get the specific value for the option
-						value = jQuery( option ).val();
+// String to Object options format cache
+var optionsCache = {};
 
-						// We don't need an array for one selects
-						if ( one ) {
-							return value;
-						}
+// Convert String-formatted options into Object-formatted ones and store in cache
+function createOptions( options ) {
+	var object = optionsCache[ options ] = {};
+	jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {
+		object[ flag ] = true;
+	});
+	return object;
+}
 
-						// Multi-Selects return an array
-						values.push( value );
+/*
+ * Create a callback list using the following parameters:
+ *
+ *	options: an optional list of space-separated options that will change how
+ *			the callback list behaves or a more traditional option object
+ *
+ * By default a callback list will act like an event callback list and can be
+ * "fired" multiple times.
+ *
+ * Possible options:
+ *
+ *	once:			will ensure the callback list can only be fired once (like a Deferred)
+ *
+ *	memory:			will keep track of previous values and will call any callback added
+ *					after the list has been fired right away with the latest "memorized"
+ *					values (like a Deferred)
+ *
+ *	unique:			will ensure a callback can only be added once (no duplicate in the list)
+ *
+ *	stopOnFalse:	interrupt callings when a callback returns false
+ *
+ */
+jQuery.Callbacks = function( options ) {
+
+	// Convert options from String-formatted to Object-formatted if needed
+	// (we check in cache first)
+	options = typeof options === "string" ?
+		( optionsCache[ options ] || createOptions( options ) ) :
+		jQuery.extend( {}, options );
+
+	var // Flag to know if list is currently firing
+		firing,
+		// Last fire value (for non-forgettable lists)
+		memory,
+		// Flag to know if list was already fired
+		fired,
+		// End of the loop when firing
+		firingLength,
+		// Index of currently firing callback (modified by remove if needed)
+		firingIndex,
+		// First callback to fire (used internally by add and fireWith)
+		firingStart,
+		// Actual callback list
+		list = [],
+		// Stack of fire calls for repeatable lists
+		stack = !options.once && [],
+		// Fire callbacks
+		fire = function( data ) {
+			memory = options.memory && data;
+			fired = true;
+			firingIndex = firingStart || 0;
+			firingStart = 0;
+			firingLength = list.length;
+			firing = true;
+			for ( ; list && firingIndex < firingLength; firingIndex++ ) {
+				if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {
+					memory = false; // To prevent further calls using add
+					break;
+				}
+			}
+			firing = false;
+			if ( list ) {
+				if ( stack ) {
+					if ( stack.length ) {
+						fire( stack.shift() );
 					}
+				} else if ( memory ) {
+					list = [];
+				} else {
+					self.disable();
 				}
-
-				// Fixes Bug #2551 -- select.val() broken in IE after form.reset()
-				if ( one && !values.length && options.length ) {
-					return jQuery( options[ index ] ).val();
+			}
+		},
+		// Actual Callbacks object
+		self = {
+			// Add a callback or a collection of callbacks to the list
+			add: function() {
+				if ( list ) {
+					// First, we save the current length
+					var start = list.length;
+					(function add( args ) {
+						jQuery.each( args, function( _, arg ) {
+							var type = jQuery.type( arg );
+							if ( type === "function" ) {
+								if ( !options.unique || !self.has( arg ) ) {
+									list.push( arg );
+								}
+							} else if ( arg && arg.length && type !== "string" ) {
+								// Inspect recursively
+								add( arg );
+							}
+						});
+					})( arguments );
+					// Do we need to add the callbacks to the
+					// current firing batch?
+					if ( firing ) {
+						firingLength = list.length;
+					// With memory, if we're not firing then
+					// we should call right away
+					} else if ( memory ) {
+						firingStart = start;
+						fire( memory );
+					}
 				}
-
-				return values;
+				return this;
 			},
+			// Remove a callback from the list
+			remove: function() {
+				if ( list ) {
+					jQuery.each( arguments, function( _, arg ) {
+						var index;
+						while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
+							list.splice( index, 1 );
+							// Handle firing indexes
+							if ( firing ) {
+								if ( index <= firingLength ) {
+									firingLength--;
+								}
+								if ( index <= firingIndex ) {
+									firingIndex--;
+								}
+							}
+						}
+					});
+				}
+				return this;
+			},
+			// Check if a given callback is in the list.
+			// If no argument is given, return whether or not list has callbacks attached.
+			has: function( fn ) {
+				return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length );
+			},
+			// Remove all callbacks from the list
+			empty: function() {
+				list = [];
+				firingLength = 0;
+				return this;
+			},
+			// Have the list do nothing anymore
+			disable: function() {
+				list = stack = memory = undefined;
+				return this;
+			},
+			// Is it disabled?
+			disabled: function() {
+				return !list;
+			},
+			// Lock the list in its current state
+			lock: function() {
+				stack = undefined;
+				if ( !memory ) {
+					self.disable();
+				}
+				return this;
+			},
+			// Is it locked?
+			locked: function() {
+				return !stack;
+			},
+			// Call all callbacks with the given context and arguments
+			fireWith: function( context, args ) {
+				if ( list && ( !fired || stack ) ) {
+					args = args || [];
+					args = [ context, args.slice ? args.slice() : args ];
+					if ( firing ) {
+						stack.push( args );
+					} else {
+						fire( args );
+					}
+				}
+				return this;
+			},
+			// Call all the callbacks with the given arguments
+			fire: function() {
+				self.fireWith( this, arguments );
+				return this;
+			},
+			// To know if the callbacks have already been called at least once
+			fired: function() {
+				return !!fired;
+			}
+		};
 
-			set: function( elem, value ) {
-				var values = jQuery.makeArray( value );
+	return self;
+};
 
-				jQuery(elem).find("option").each(function() {
-					this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0;
-				});
 
-				if ( !values.length ) {
-					elem.selectedIndex = -1;
+jQuery.extend({
+
+	Deferred: function( func ) {
+		var tuples = [
+				// action, add listener, listener list, final state
+				[ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ],
+				[ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ],
+				[ "notify", "progress", jQuery.Callbacks("memory") ]
+			],
+			state = "pending",
+			promise = {
+				state: function() {
+					return state;
+				},
+				always: function() {
+					deferred.done( arguments ).fail( arguments );
+					return this;
+				},
+				then: function( /* fnDone, fnFail, fnProgress */ ) {
+					var fns = arguments;
+					return jQuery.Deferred(function( newDefer ) {
+						jQuery.each( tuples, function( i, tuple ) {
+							var fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
+							// deferred[ done | fail | progress ] for forwarding actions to newDefer
+							deferred[ tuple[1] ](function() {
+								var returned = fn && fn.apply( this, arguments );
+								if ( returned && jQuery.isFunction( returned.promise ) ) {
+									returned.promise()
+										.done( newDefer.resolve )
+										.fail( newDefer.reject )
+										.progress( newDefer.notify );
+								} else {
+									newDefer[ tuple[ 0 ] + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );
+								}
+							});
+						});
+						fns = null;
+					}).promise();
+				},
+				// Get a promise for this deferred
+				// If obj is provided, the promise aspect is added to the object
+				promise: function( obj ) {
+					return obj != null ? jQuery.extend( obj, promise ) : promise;
 				}
-				return values;
+			},
+			deferred = {};
+
+		// Keep pipe for back-compat
+		promise.pipe = promise.then;
+
+		// Add list-specific methods
+		jQuery.each( tuples, function( i, tuple ) {
+			var list = tuple[ 2 ],
+				stateString = tuple[ 3 ];
+
+			// promise[ done | fail | progress ] = list.add
+			promise[ tuple[1] ] = list.add;
+
+			// Handle state
+			if ( stateString ) {
+				list.add(function() {
+					// state = [ resolved | rejected ]
+					state = stateString;
+
+				// [ reject_list | resolve_list ].disable; progress_list.lock
+				}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );
 			}
+
+			// deferred[ resolve | reject | notify ]
+			deferred[ tuple[0] ] = function() {
+				deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments );
+				return this;
+			};
+			deferred[ tuple[0] + "With" ] = list.fireWith;
+		});
+
+		// Make the deferred a promise
+		promise.promise( deferred );
+
+		// Call given func if any
+		if ( func ) {
+			func.call( deferred, deferred );
 		}
+
+		// All done!
+		return deferred;
 	},
 
-	attrFn: {
-		val: true,
-		css: true,
-		html: true,
-		text: true,
-		data: true,
-		width: true,
-		height: true,
-		offset: true
+	// Deferred helper
+	when: function( subordinate /* , ..., subordinateN */ ) {
+		var i = 0,
+			resolveValues = slice.call( arguments ),
+			length = resolveValues.length,
+
+			// the count of uncompleted subordinates
+			remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,
+
+			// the master Deferred. If resolveValues consist of only a single Deferred, just use that.
+			deferred = remaining === 1 ? subordinate : jQuery.Deferred(),
+
+			// Update function for both resolve and progress values
+			updateFunc = function( i, contexts, values ) {
+				return function( value ) {
+					contexts[ i ] = this;
+					values[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
+					if ( values === progressValues ) {
+						deferred.notifyWith( contexts, values );
+
+					} else if ( !(--remaining) ) {
+						deferred.resolveWith( contexts, values );
+					}
+				};
+			},
+
+			progressValues, progressContexts, resolveContexts;
+
+		// add listeners to Deferred subordinates; treat others as resolved
+		if ( length > 1 ) {
+			progressValues = new Array( length );
+			progressContexts = new Array( length );
+			resolveContexts = new Array( length );
+			for ( ; i < length; i++ ) {
+				if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {
+					resolveValues[ i ].promise()
+						.done( updateFunc( i, resolveContexts, resolveValues ) )
+						.fail( deferred.reject )
+						.progress( updateFunc( i, progressContexts, progressValues ) );
+				} else {
+					--remaining;
+				}
+			}
+		}
+
+		// if we're not waiting on anything, resolve the master
+		if ( !remaining ) {
+			deferred.resolveWith( resolveContexts, resolveValues );
+		}
+
+		return deferred.promise();
+	}
+});
+
+
+// The deferred used on DOM ready
+var readyList;
+
+jQuery.fn.ready = function( fn ) {
+	// Add the callback
+	jQuery.ready.promise().done( fn );
+
+	return this;
+};
+
+jQuery.extend({
+	// Is the DOM ready to be used? Set to true once it occurs.
+	isReady: false,
+
+	// A counter to track how many items to wait for before
+	// the ready event fires. See #6781
+	readyWait: 1,
+
+	// Hold (or release) the ready event
+	holdReady: function( hold ) {
+		if ( hold ) {
+			jQuery.readyWait++;
+		} else {
+			jQuery.ready( true );
+		}
 	},
-	
-	attrFix: {
-		// Always normalize to ensure hook usage
-		tabindex: "tabIndex"
-	},
-	
-	attr: function( elem, name, value, pass ) {
-		var nType = elem.nodeType;
-		
-		// don't get/set attributes on text, comment and attribute nodes
-		if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
-			return undefined;
+
+	// Handle when the DOM is ready
+	ready: function( wait ) {
+
+		// Abort if there are pending holds or we're already ready
+		if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
+			return;
 		}
 
-		if ( pass && name in jQuery.attrFn ) {
-			return jQuery( elem )[ name ]( value );
+		// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
+		if ( !document.body ) {
+			return setTimeout( jQuery.ready );
 		}
 
-		// Fallback to prop when attributes are not supported
-		if ( !("getAttribute" in elem) ) {
-			return jQuery.prop( elem, name, value );
+		// Remember that the DOM is ready
+		jQuery.isReady = true;
+
+		// If a normal DOM Ready event fired, decrement, and wait if need be
+		if ( wait !== true && --jQuery.readyWait > 0 ) {
+			return;
 		}
 
-		var ret, hooks,
-			notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
+		// If there are functions bound, to execute
+		readyList.resolveWith( document, [ jQuery ] );
 
-		// Normalize the name if needed
-		name = notxml && jQuery.attrFix[ name ] || name;
+		// Trigger any bound ready events
+		if ( jQuery.fn.trigger ) {
+			jQuery( document ).trigger("ready").off("ready");
+		}
+	}
+});
 
-		hooks = jQuery.attrHooks[ name ];
+/**
+ * Clean-up method for dom ready events
+ */
+function detach() {
+	if ( document.addEventListener ) {
+		document.removeEventListener( "DOMContentLoaded", completed, false );
+		window.removeEventListener( "load", completed, false );
 
-		if ( !hooks ) {
-			// Use boolHook for boolean attributes
-			if ( rboolean.test( name ) &&
-				(typeof value === "boolean" || value === undefined || value.toLowerCase() === name.toLowerCase()) ) {
+	} else {
+		document.detachEvent( "onreadystatechange", completed );
+		window.detachEvent( "onload", completed );
+	}
+}
 
-				hooks = boolHook;
+/**
+ * The ready event handler and self cleanup method
+ */
+function completed() {
+	// readyState === "complete" is good enough for us to call the dom ready in oldIE
+	if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) {
+		detach();
+		jQuery.ready();
+	}
+}
 
-			// Use formHook for forms and if the name contains certain characters
-			} else if ( formHook && (jQuery.nodeName( elem, "form" ) || rinvalidChar.test( name )) ) {
-				hooks = formHook;
+jQuery.ready.promise = function( obj ) {
+	if ( !readyList ) {
+
+		readyList = jQuery.Deferred();
+
+		// Catch cases where $(document).ready() is called after the browser event has already occurred.
+		// we once tried to use readyState "interactive" here, but it caused issues like the one
+		// discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15
+		if ( document.readyState === "complete" ) {
+			// Handle it asynchronously to allow scripts the opportunity to delay ready
+			setTimeout( jQuery.ready );
+
+		// Standards-based browsers support DOMContentLoaded
+		} else if ( document.addEventListener ) {
+			// Use the handy event callback
+			document.addEventListener( "DOMContentLoaded", completed, false );
+
+			// A fallback to window.onload, that will always work
+			window.addEventListener( "load", completed, false );
+
+		// If IE event model is used
+		} else {
+			// Ensure firing before onload, maybe late but safe also for iframes
+			document.attachEvent( "onreadystatechange", completed );
+
+			// A fallback to window.onload, that will always work
+			window.attachEvent( "onload", completed );
+
+			// If IE and not a frame
+			// continually check to see if the document is ready
+			var top = false;
+
+			try {
+				top = window.frameElement == null && document.documentElement;
+			} catch(e) {}
+
+			if ( top && top.doScroll ) {
+				(function doScrollCheck() {
+					if ( !jQuery.isReady ) {
+
+						try {
+							// Use the trick by Diego Perini
+							// http://javascript.nwbox.com/IEContentLoaded/
+							top.doScroll("left");
+						} catch(e) {
+							return setTimeout( doScrollCheck, 50 );
+						}
+
+						// detach all dom ready events
+						detach();
+
+						// and execute any waiting functions
+						jQuery.ready();
+					}
+				})();
 			}
 		}
+	}
+	return readyList.promise( obj );
+};
 
-		if ( value !== undefined ) {
 
-			if ( value === null ) {
-				jQuery.removeAttr( elem, name );
-				return undefined;
+var strundefined = typeof undefined;
 
-			} else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) {
-				return ret;
 
-			} else {
-				elem.setAttribute( name, "" + value );
-				return value;
-			}
 
-		} else if ( hooks && "get" in hooks && notxml ) {
-			return hooks.get( elem, name );
+// Support: IE<9
+// Iteration over object's inherited properties before its own
+var i;
+for ( i in jQuery( support ) ) {
+	break;
+}
+support.ownLast = i !== "0";
 
+// Note: most support tests are defined in their respective modules.
+// false until the test is run
+support.inlineBlockNeedsLayout = false;
+
+jQuery(function() {
+	// We need to execute this one support test ASAP because we need to know
+	// if body.style.zoom needs to be set.
+
+	var container, div,
+		body = document.getElementsByTagName("body")[0];
+
+	if ( !body ) {
+		// Return for frameset docs that don't have a body
+		return;
+	}
+
+	// Setup
+	container = document.createElement( "div" );
+	container.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px";
+
+	div = document.createElement( "div" );
+	body.appendChild( container ).appendChild( div );
+
+	if ( typeof div.style.zoom !== strundefined ) {
+		// Support: IE<8
+		// Check if natively block-level elements act like inline-block
+		// elements when setting their display to 'inline' and giving
+		// them layout
+		div.style.cssText = "border:0;margin:0;width:1px;padding:1px;display:inline;zoom:1";
+
+		if ( (support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 )) ) {
+			// Prevent IE 6 from affecting layout for positioned elements #11048
+			// Prevent IE from shrinking the body in IE 7 mode #12869
+			// Support: IE<8
+			body.style.zoom = 1;
+		}
+	}
+
+	body.removeChild( container );
+
+	// Null elements to avoid leaks in IE
+	container = div = null;
+});
+
+
+
+
+(function() {
+	var div = document.createElement( "div" );
+
+	// Execute the test only if not already executed in another module.
+	if (support.deleteExpando == null) {
+		// Support: IE<9
+		support.deleteExpando = true;
+		try {
+			delete div.test;
+		} catch( e ) {
+			support.deleteExpando = false;
+		}
+	}
+
+	// Null elements to avoid leaks in IE.
+	div = null;
+})();
+
+
+/**
+ * Determines whether an object can have data
+ */
+jQuery.acceptData = function( elem ) {
+	var noData = jQuery.noData[ (elem.nodeName + " ").toLowerCase() ],
+		nodeType = +elem.nodeType || 1;
+
+	// Do not set data on non-element DOM nodes because it will not be cleared (#8335).
+	return nodeType !== 1 && nodeType !== 9 ?
+		false :
+
+		// Nodes accept data unless otherwise specified; rejection can be conditional
+		!noData || noData !== true && elem.getAttribute("classid") === noData;
+};
+
+
+var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
+	rmultiDash = /([A-Z])/g;
+
+function dataAttr( elem, key, data ) {
+	// If nothing was found internally, try to fetch any
+	// data from the HTML5 data-* attribute
+	if ( data === undefined && elem.nodeType === 1 ) {
+
+		var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
+
+		data = elem.getAttribute( name );
+
+		if ( typeof data === "string" ) {
+			try {
+				data = data === "true" ? true :
+					data === "false" ? false :
+					data === "null" ? null :
+					// Only convert to a number if it doesn't change the string
+					+data + "" === data ? +data :
+					rbrace.test( data ) ? jQuery.parseJSON( data ) :
+					data;
+			} catch( e ) {}
+
+			// Make sure we set the data so it isn't changed later
+			jQuery.data( elem, key, data );
+
 		} else {
+			data = undefined;
+		}
+	}
 
-			ret = elem.getAttribute( name );
+	return data;
+}
 
-			// Non-existent attributes return null, we normalize to undefined
-			return ret === null ?
-				undefined :
-				ret;
+// checks a cache object for emptiness
+function isEmptyDataObject( obj ) {
+	var name;
+	for ( name in obj ) {
+
+		// if the public data object is empty, the private is still empty
+		if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) {
+			continue;
 		}
-	},
+		if ( name !== "toJSON" ) {
+			return false;
+		}
+	}
 
-	removeAttr: function( elem, name ) {
-		var propName;
-		if ( elem.nodeType === 1 ) {
-			name = jQuery.attrFix[ name ] || name;
-		
-			if ( jQuery.support.getSetAttribute ) {
-				// Use removeAttribute in browsers that support it
-				elem.removeAttribute( name );
-			} else {
-				jQuery.attr( elem, name, "" );
-				elem.removeAttributeNode( elem.getAttributeNode( name ) );
-			}
+	return true;
+}
 
-			// Set corresponding property to false for boolean attributes
-			if ( rboolean.test( name ) && (propName = jQuery.propFix[ name ] || name) in elem ) {
-				elem[ propName ] = false;
-			}
+function internalData( elem, name, data, pvt /* Internal Use Only */ ) {
+	if ( !jQuery.acceptData( elem ) ) {
+		return;
+	}
+
+	var ret, thisCache,
+		internalKey = jQuery.expando,
+
+		// We have to handle DOM nodes and JS objects differently because IE6-7
+		// can't GC object references properly across the DOM-JS boundary
+		isNode = elem.nodeType,
+
+		// Only DOM nodes need the global jQuery cache; JS object data is
+		// attached directly to the object so GC can occur automatically
+		cache = isNode ? jQuery.cache : elem,
+
+		// Only defining an ID for JS objects if its cache already exists allows
+		// the code to shortcut on the same path as a DOM node with no cache
+		id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey;
+
+	// Avoid doing any more work than we need to when trying to get data on an
+	// object that has no data at all
+	if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && data === undefined && typeof name === "string" ) {
+		return;
+	}
+
+	if ( !id ) {
+		// Only DOM nodes need a new unique ID for each element since their data
+		// ends up in the global cache
+		if ( isNode ) {
+			id = elem[ internalKey ] = deletedIds.pop() || jQuery.guid++;
+		} else {
+			id = internalKey;
 		}
-	},
+	}
 
-	attrHooks: {
-		type: {
-			set: function( elem, value ) {
-				// We can't allow the type property to be changed (since it causes problems in IE)
-				if ( rtype.test( elem.nodeName ) && elem.parentNode ) {
-					jQuery.error( "type property can't be changed" );
-				} else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) {
-					// Setting the type on a radio button after the value resets the value in IE6-9
-					// Reset value to it's default in case type is set after value
-					// This is for element creation
-					var val = elem.value;
-					elem.setAttribute( "type", value );
-					if ( val ) {
-						elem.value = val;
+	if ( !cache[ id ] ) {
+		// Avoid exposing jQuery metadata on plain JS objects when the object
+		// is serialized using JSON.stringify
+		cache[ id ] = isNode ? {} : { toJSON: jQuery.noop };
+	}
+
+	// An object can be passed to jQuery.data instead of a key/value pair; this gets
+	// shallow copied over onto the existing cache
+	if ( typeof name === "object" || typeof name === "function" ) {
+		if ( pvt ) {
+			cache[ id ] = jQuery.extend( cache[ id ], name );
+		} else {
+			cache[ id ].data = jQuery.extend( cache[ id ].data, name );
+		}
+	}
+
+	thisCache = cache[ id ];
+
+	// jQuery data() is stored in a separate object inside the object's internal data
+	// cache in order to avoid key collisions between internal data and user-defined
+	// data.
+	if ( !pvt ) {
+		if ( !thisCache.data ) {
+			thisCache.data = {};
+		}
+
+		thisCache = thisCache.data;
+	}
+
+	if ( data !== undefined ) {
+		thisCache[ jQuery.camelCase( name ) ] = data;
+	}
+
+	// Check for both converted-to-camel and non-converted data property names
+	// If a data property was specified
+	if ( typeof name === "string" ) {
+
+		// First Try to find as-is property data
+		ret = thisCache[ name ];
+
+		// Test for null|undefined property data
+		if ( ret == null ) {
+
+			// Try to find the camelCased property
+			ret = thisCache[ jQuery.camelCase( name ) ];
+		}
+	} else {
+		ret = thisCache;
+	}
+
+	return ret;
+}
+
+function internalRemoveData( elem, name, pvt ) {
+	if ( !jQuery.acceptData( elem ) ) {
+		return;
+	}
+
+	var thisCache, i,
+		isNode = elem.nodeType,
+
+		// See jQuery.data for more information
+		cache = isNode ? jQuery.cache : elem,
+		id = isNode ? elem[ jQuery.expando ] : jQuery.expando;
+
+	// If there is already no cache entry for this object, there is no
+	// purpose in continuing
+	if ( !cache[ id ] ) {
+		return;
+	}
+
+	if ( name ) {
+
+		thisCache = pvt ? cache[ id ] : cache[ id ].data;
+
+		if ( thisCache ) {
+
+			// Support array or space separated string names for data keys
+			if ( !jQuery.isArray( name ) ) {
+
+				// try the string as a key before any manipulation
+				if ( name in thisCache ) {
+					name = [ name ];
+				} else {
+
+					// split the camel cased version by spaces unless a key with the spaces exists
+					name = jQuery.camelCase( name );
+					if ( name in thisCache ) {
+						name = [ name ];
+					} else {
+						name = name.split(" ");
 					}
-					return value;
 				}
+			} else {
+				// If "name" is an array of keys...
+				// When data is initially created, via ("key", "val") signature,
+				// keys will be converted to camelCase.
+				// Since there is no way to tell _how_ a key was added, remove
+				// both plain key and camelCase key. #12786
+				// This will only penalize the array argument path.
+				name = name.concat( jQuery.map( name, jQuery.camelCase ) );
 			}
-		},
-		tabIndex: {
-			get: function( elem ) {
-				// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
-				// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
-				var attributeNode = elem.getAttributeNode("tabIndex");
 
-				return attributeNode && attributeNode.specified ?
-					parseInt( attributeNode.value, 10 ) :
-					rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?
-						0 :
-						undefined;
+			i = name.length;
+			while ( i-- ) {
+				delete thisCache[ name[i] ];
 			}
+
+			// If there is no data left in the cache, we want to continue
+			// and let the cache object itself get destroyed
+			if ( pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache) ) {
+				return;
+			}
 		}
+	}
+
+	// See jQuery.data for more information
+	if ( !pvt ) {
+		delete cache[ id ].data;
+
+		// Don't destroy the parent cache unless the internal data object
+		// had been the only thing left in it
+		if ( !isEmptyDataObject( cache[ id ] ) ) {
+			return;
+		}
+	}
+
+	// Destroy the cache
+	if ( isNode ) {
+		jQuery.cleanData( [ elem ], true );
+
+	// Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)
+	/* jshint eqeqeq: false */
+	} else if ( support.deleteExpando || cache != cache.window ) {
+		/* jshint eqeqeq: true */
+		delete cache[ id ];
+
+	// When all else fails, null
+	} else {
+		cache[ id ] = null;
+	}
+}
+
+jQuery.extend({
+	cache: {},
+
+	// The following elements (space-suffixed to avoid Object.prototype collisions)
+	// throw uncatchable exceptions if you attempt to set expando properties
+	noData: {
+		"applet ": true,
+		"embed ": true,
+		// ...but Flash objects (which have this classid) *can* handle expandos
+		"object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
 	},
 
-	propFix: {
-		tabindex: "tabIndex",
-		readonly: "readOnly",
-		"for": "htmlFor",
-		"class": "className",
-		maxlength: "maxLength",
-		cellspacing: "cellSpacing",
-		cellpadding: "cellPadding",
-		rowspan: "rowSpan",
-		colspan: "colSpan",
-		usemap: "useMap",
-		frameborder: "frameBorder",
-		contenteditable: "contentEditable"
+	hasData: function( elem ) {
+		elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];
+		return !!elem && !isEmptyDataObject( elem );
 	},
-	
-	prop: function( elem, name, value ) {
-		var nType = elem.nodeType;
 
-		// don't get/set properties on text, comment and attribute nodes
-		if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
-			return undefined;
-		}
+	data: function( elem, name, data ) {
+		return internalData( elem, name, data );
+	},
 
-		var ret, hooks,
-			notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
+	removeData: function( elem, name ) {
+		return internalRemoveData( elem, name );
+	},
 
-		// Try to normalize/fix the name
-		name = notxml && jQuery.propFix[ name ] || name;
-		
-		hooks = jQuery.propHooks[ name ];
+	// For internal use only.
+	_data: function( elem, name, data ) {
+		return internalData( elem, name, data, true );
+	},
 
-		if ( value !== undefined ) {
-			if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
-				return ret;
+	_removeData: function( elem, name ) {
+		return internalRemoveData( elem, name, true );
+	}
+});
 
-			} else {
-				return (elem[ name ] = value);
-			}
+jQuery.fn.extend({
+	data: function( key, value ) {
+		var i, name, data,
+			elem = this[0],
+			attrs = elem && elem.attributes;
 
-		} else {
-			if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== undefined ) {
-				return ret;
+		// Special expections of .data basically thwart jQuery.access,
+		// so implement the relevant behavior ourselves
 
-			} else {
-				return elem[ name ];
+		// Gets all values
+		if ( key === undefined ) {
+			if ( this.length ) {
+				data = jQuery.data( elem );
+
+				if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) {
+					i = attrs.length;
+					while ( i-- ) {
+						name = attrs[i].name;
+
+						if ( name.indexOf("data-") === 0 ) {
+							name = jQuery.camelCase( name.slice(5) );
+
+							dataAttr( elem, name, data[ name ] );
+						}
+					}
+					jQuery._data( elem, "parsedAttrs", true );
+				}
 			}
+
+			return data;
 		}
+
+		// Sets multiple values
+		if ( typeof key === "object" ) {
+			return this.each(function() {
+				jQuery.data( this, key );
+			});
+		}
+
+		return arguments.length > 1 ?
+
+			// Sets one value
+			this.each(function() {
+				jQuery.data( this, key, value );
+			}) :
+
+			// Gets one value
+			// Try to fetch any internally stored data first
+			elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : undefined;
 	},
-	
-	propHooks: {}
+
+	removeData: function( key ) {
+		return this.each(function() {
+			jQuery.removeData( this, key );
+		});
+	}
 });
 
-// Hook for boolean attributes
-boolHook = {
-	get: function( elem, name ) {
-		// Align boolean attributes with corresponding properties
-		return elem[ jQuery.propFix[ name ] || name ] ?
-			name.toLowerCase() :
-			undefined;
+
+jQuery.extend({
+	queue: function( elem, type, data ) {
+		var queue;
+
+		if ( elem ) {
+			type = ( type || "fx" ) + "queue";
+			queue = jQuery._data( elem, type );
+
+			// Speed up dequeue by getting out quickly if this is just a lookup
+			if ( data ) {
+				if ( !queue || jQuery.isArray(data) ) {
+					queue = jQuery._data( elem, type, jQuery.makeArray(data) );
+				} else {
+					queue.push( data );
+				}
+			}
+			return queue || [];
+		}
 	},
-	set: function( elem, value, name ) {
-		var propName;
-		if ( value === false ) {
-			// Remove boolean attributes when set to false
-			jQuery.removeAttr( elem, name );
-		} else {
-			// value is true since we know at this point it's type boolean and not false
-			// Set boolean attributes to the same name and set the DOM property
-			propName = jQuery.propFix[ name ] || name;
-			if ( propName in elem ) {
-				// Only set the IDL specifically if it already exists on the element
-				elem[ propName ] = value;
+
+	dequeue: function( elem, type ) {
+		type = type || "fx";
+
+		var queue = jQuery.queue( elem, type ),
+			startLength = queue.length,
+			fn = queue.shift(),
+			hooks = jQuery._queueHooks( elem, type ),
+			next = function() {
+				jQuery.dequeue( elem, type );
+			};
+
+		// If the fx queue is dequeued, always remove the progress sentinel
+		if ( fn === "inprogress" ) {
+			fn = queue.shift();
+			startLength--;
+		}
+
+		if ( fn ) {
+
+			// Add a progress sentinel to prevent the fx queue from being
+			// automatically dequeued
+			if ( type === "fx" ) {
+				queue.unshift( "inprogress" );
 			}
 
-			elem.setAttribute( name, name.toLowerCase() );
+			// clear up the last queue stop function
+			delete hooks.stop;
+			fn.call( elem, next, hooks );
 		}
-		return name;
-	}
-};
 
-// Use the value property for back compat
-// Use the formHook for button elements in IE6/7 (#1954)
-jQuery.attrHooks.value = {
-	get: function( elem, name ) {
-		if ( formHook && jQuery.nodeName( elem, "button" ) ) {
-			return formHook.get( elem, name );
+		if ( !startLength && hooks ) {
+			hooks.empty.fire();
 		}
-		return elem.value;
 	},
-	set: function( elem, value, name ) {
-		if ( formHook && jQuery.nodeName( elem, "button" ) ) {
-			return formHook.set( elem, value, name );
-		}
-		// Does not return so that setAttribute is also used
-		elem.value = value;
+
+	// not intended for public consumption - generates a queueHooks object, or returns the current one
+	_queueHooks: function( elem, type ) {
+		var key = type + "queueHooks";
+		return jQuery._data( elem, key ) || jQuery._data( elem, key, {
+			empty: jQuery.Callbacks("once memory").add(function() {
+				jQuery._removeData( elem, type + "queue" );
+				jQuery._removeData( elem, key );
+			})
+		});
 	}
-};
+});
 
-// IE6/7 do not support getting/setting some attributes with get/setAttribute
-if ( !jQuery.support.getSetAttribute ) {
+jQuery.fn.extend({
+	queue: function( type, data ) {
+		var setter = 2;
 
-	// propFix is more comprehensive and contains all fixes
-	jQuery.attrFix = jQuery.propFix;
-	
-	// Use this for any attribute on a form in IE6/7
-	formHook = jQuery.attrHooks.name = jQuery.valHooks.button = {
-		get: function( elem, name ) {
-			var ret;
-			ret = elem.getAttributeNode( name );
-			// Return undefined if nodeValue is empty string
-			return ret && ret.nodeValue !== "" ?
-				ret.nodeValue :
-				undefined;
-		},
-		set: function( elem, value, name ) {
-			// Check form objects in IE (multiple bugs related)
-			// Only use nodeValue if the attribute node exists on the form
-			var ret = elem.getAttributeNode( name );
-			if ( ret ) {
-				ret.nodeValue = value;
-				return value;
-			}
+		if ( typeof type !== "string" ) {
+			data = type;
+			type = "fx";
+			setter--;
 		}
-	};
 
-	// Set width and height to auto instead of 0 on empty string( Bug #8150 )
-	// This is for removals
-	jQuery.each([ "width", "height" ], function( i, name ) {
-		jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
-			set: function( elem, value ) {
-				if ( value === "" ) {
-					elem.setAttribute( name, "auto" );
-					return value;
+		if ( arguments.length < setter ) {
+			return jQuery.queue( this[0], type );
+		}
+
+		return data === undefined ?
+			this :
+			this.each(function() {
+				var queue = jQuery.queue( this, type, data );
+
+				// ensure a hooks for this queue
+				jQuery._queueHooks( this, type );
+
+				if ( type === "fx" && queue[0] !== "inprogress" ) {
+					jQuery.dequeue( this, type );
 				}
-			}
+			});
+	},
+	dequeue: function( type ) {
+		return this.each(function() {
+			jQuery.dequeue( this, type );
 		});
-	});
-}
+	},
+	clearQueue: function( type ) {
+		return this.queue( type || "fx", [] );
+	},
+	// Get a promise resolved when queues of a certain type
+	// are emptied (fx is the type by default)
+	promise: function( type, obj ) {
+		var tmp,
+			count = 1,
+			defer = jQuery.Deferred(),
+			elements = this,
+			i = this.length,
+			resolve = function() {
+				if ( !( --count ) ) {
+					defer.resolveWith( elements, [ elements ] );
+				}
+			};
 
+		if ( typeof type !== "string" ) {
+			obj = type;
+			type = undefined;
+		}
+		type = type || "fx";
 
-// Some attributes require a special call on IE
-if ( !jQuery.support.hrefNormalized ) {
-	jQuery.each([ "href", "src", "width", "height" ], function( i, name ) {
-		jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
-			get: function( elem ) {
-				var ret = elem.getAttribute( name, 2 );
-				return ret === null ? undefined : ret;
+		while ( i-- ) {
+			tmp = jQuery._data( elements[ i ], type + "queueHooks" );
+			if ( tmp && tmp.empty ) {
+				count++;
+				tmp.empty.add( resolve );
 			}
-		});
-	});
-}
-
-if ( !jQuery.support.style ) {
-	jQuery.attrHooks.style = {
-		get: function( elem ) {
-			// Return undefined in the case of empty string
-			// Normalize to lowercase since IE uppercases css property names
-			return elem.style.cssText.toLowerCase() || undefined;
-		},
-		set: function( elem, value ) {
-			return (elem.style.cssText = "" + value);
 		}
+		resolve();
+		return defer.promise( obj );
+	}
+});
+var pnum = (/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source;
+
+var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
+
+var isHidden = function( elem, el ) {
+		// isHidden might be called from jQuery#filter function;
+		// in that case, element will be second argument
+		elem = el || elem;
+		return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem );
 	};
-}
 
-// Safari mis-reports the default selected property of an option
-// Accessing the parent's selectedIndex property fixes it
-if ( !jQuery.support.optSelected ) {
-	jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, {
-		get: function( elem ) {
-			var parent = elem.parentNode;
 
-			if ( parent ) {
-				parent.selectedIndex;
 
-				// Make sure that it also works with optgroups, see #5701
-				if ( parent.parentNode ) {
-					parent.parentNode.selectedIndex;
-				}
+// Multifunctional method to get and set values of a collection
+// The value/s can optionally be executed if it's a function
+var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
+	var i = 0,
+		length = elems.length,
+		bulk = key == null;
+
+	// Sets many values
+	if ( jQuery.type( key ) === "object" ) {
+		chainable = true;
+		for ( i in key ) {
+			jQuery.access( elems, fn, i, key[i], true, emptyGet, raw );
+		}
+
+	// Sets one value
+	} else if ( value !== undefined ) {
+		chainable = true;
+
+		if ( !jQuery.isFunction( value ) ) {
+			raw = true;
+		}
+
+		if ( bulk ) {
+			// Bulk operations run against the entire set
+			if ( raw ) {
+				fn.call( elems, value );
+				fn = null;
+
+			// ...except when executing function values
+			} else {
+				bulk = fn;
+				fn = function( elem, key, value ) {
+					return bulk.call( jQuery( elem ), value );
+				};
 			}
 		}
-	});
-}
 
-// Radios and checkboxes getter/setter
-if ( !jQuery.support.checkOn ) {
-	jQuery.each([ "radio", "checkbox" ], function() {
-		jQuery.valHooks[ this ] = {
-			get: function( elem ) {
-				// Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified
-				return elem.getAttribute("value") === null ? "on" : elem.value;
+		if ( fn ) {
+			for ( ; i < length; i++ ) {
+				fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );
 			}
-		};
-	});
-}
-jQuery.each([ "radio", "checkbox" ], function() {
-	jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], {
-		set: function( elem, value ) {
-			if ( jQuery.isArray( value ) ) {
-				return (elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0);
-			}
 		}
-	});
-});
+	}
 
+	return chainable ?
+		elems :
 
+		// Gets
+		bulk ?
+			fn.call( elems ) :
+			length ? fn( elems[0], key ) : emptyGet;
+};
+var rcheckableType = (/^(?:checkbox|radio)$/i);
 
 
-var hasOwn = Object.prototype.hasOwnProperty,
-	rnamespaces = /\.(.*)$/,
-	rformElems = /^(?:textarea|input|select)$/i,
-	rperiod = /\./g,
-	rspaces = / /g,
-	rescape = /[^\w\s.|`]/g,
-	fcleanup = function( nm ) {
-		return nm.replace(rescape, "\\$&");
-	};
 
+(function() {
+	var fragment = document.createDocumentFragment(),
+		div = document.createElement("div"),
+		input = document.createElement("input");
+
+	// Setup
+	div.setAttribute( "className", "t" );
+	div.innerHTML = "  <link/><table></table><a href='/a'>a</a>";
+
+	// IE strips leading whitespace when .innerHTML is used
+	support.leadingWhitespace = div.firstChild.nodeType === 3;
+
+	// Make sure that tbody elements aren't automatically inserted
+	// IE will insert them into empty tables
+	support.tbody = !div.getElementsByTagName( "tbody" ).length;
+
+	// Make sure that link elements get serialized correctly by innerHTML
+	// This requires a wrapper element in IE
+	support.htmlSerialize = !!div.getElementsByTagName( "link" ).length;
+
+	// Makes sure cloning an html5 element does not cause problems
+	// Where outerHTML is undefined, this still works
+	support.html5Clone =
+		document.createElement( "nav" ).cloneNode( true ).outerHTML !== "<:nav></:nav>";
+
+	// Check if a disconnected checkbox will retain its checked
+	// value of true after appended to the DOM (IE6/7)
+	input.type = "checkbox";
+	input.checked = true;
+	fragment.appendChild( input );
+	support.appendChecked = input.checked;
+
+	// Make sure textarea (and checkbox) defaultValue is properly cloned
+	// Support: IE6-IE11+
+	div.innerHTML = "<textarea>x</textarea>";
+	support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
+
+	// #11217 - WebKit loses check when the name is after the checked attribute
+	fragment.appendChild( div );
+	div.innerHTML = "<input type='radio' checked='checked' name='t'/>";
+
+	// Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3
+	// old WebKit doesn't clone checked state correctly in fragments
+	support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+	// Support: IE<9
+	// Opera does not clone events (and typeof div.attachEvent === undefined).
+	// IE9-10 clones events bound via attachEvent, but they don't trigger with .click()
+	support.noCloneEvent = true;
+	if ( div.attachEvent ) {
+		div.attachEvent( "onclick", function() {
+			support.noCloneEvent = false;
+		});
+
+		div.cloneNode( true ).click();
+	}
+
+	// Execute the test only if not already executed in another module.
+	if (support.deleteExpando == null) {
+		// Support: IE<9
+		support.deleteExpando = true;
+		try {
+			delete div.test;
+		} catch( e ) {
+			support.deleteExpando = false;
+		}
+	}
+
+	// Null elements to avoid leaks in IE.
+	fragment = div = input = null;
+})();
+
+
+(function() {
+	var i, eventName,
+		div = document.createElement( "div" );
+
+	// Support: IE<9 (lack submit/change bubble), Firefox 23+ (lack focusin event)
+	for ( i in { submit: true, change: true, focusin: true }) {
+		eventName = "on" + i;
+
+		if ( !(support[ i + "Bubbles" ] = eventName in window) ) {
+			// Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP)
+			div.setAttribute( eventName, "t" );
+			support[ i + "Bubbles" ] = div.attributes[ eventName ].expando === false;
+		}
+	}
+
+	// Null elements to avoid leaks in IE.
+	div = null;
+})();
+
+
+var rformElems = /^(?:input|select|textarea)$/i,
+	rkeyEvent = /^key/,
+	rmouseEvent = /^(?:mouse|contextmenu)|click/,
+	rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
+	rtypenamespace = /^([^.]*)(?:\.(.+)|)$/;
+
+function returnTrue() {
+	return true;
+}
+
+function returnFalse() {
+	return false;
+}
+
+function safeActiveElement() {
+	try {
+		return document.activeElement;
+	} catch ( err ) { }
+}
+
 /*
- * A number of helper functions used for managing events.
- * Many of the ideas behind this code originated from
- * Dean Edwards' addEvent library.
+ * Helper functions for managing events -- not part of the public interface.
+ * Props to Dean Edwards' addEvent library for many of the ideas.
  */
 jQuery.event = {
 
-	// Bind an event to an element
-	// Original by Dean Edwards
-	add: function( elem, types, handler, data ) {
-		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
-			return;
-		}
+	global: {},
 
-		if ( handler === false ) {
-			handler = returnFalse;
-		} else if ( !handler ) {
-			// Fixes bug #7229. Fix recommended by jdalton
+	add: function( elem, types, handler, data, selector ) {
+		var tmp, events, t, handleObjIn,
+			special, eventHandle, handleObj,
+			handlers, type, namespaces, origType,
+			elemData = jQuery._data( elem );
+
+		// Don't attach events to noData or text/comment nodes (but allow plain objects)
+		if ( !elemData ) {
 			return;
 		}
 
-		var handleObjIn, handleObj;
-
+		// Caller can pass in an object of custom data in lieu of the handler
 		if ( handler.handler ) {
 			handleObjIn = handler;
 			handler = handleObjIn.handler;
+			selector = handleObjIn.selector;
 		}
 
-		// Make sure that the function being executed has a unique ID
+		// Make sure that the handler has a unique ID, used to find/remove it later
 		if ( !handler.guid ) {
 			handler.guid = jQuery.guid++;
 		}
 
-		// Init the element's event structure
-		var elemData = jQuery._data( elem );
-
-		// If no elemData is found then we must be trying to bind to one of the
-		// banned noData elements
-		if ( !elemData ) {
-			return;
+		// Init the element's event structure and main handler, if this is the first
+		if ( !(events = elemData.events) ) {
+			events = elemData.events = {};
 		}
-
-		var events = elemData.events,
-			eventHandle = elemData.handle;
-
-		if ( !events ) {
-			elemData.events = events = {};
-		}
-
-		if ( !eventHandle ) {
-			elemData.handle = eventHandle = function( e ) {
+		if ( !(eventHandle = elemData.handle) ) {
+			eventHandle = elemData.handle = function( e ) {
 				// Discard the second event of a jQuery.event.trigger() and
 				// when an event is called after a page has unloaded
-				return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ?
-					jQuery.event.handle.apply( eventHandle.elem, arguments ) :
+				return typeof jQuery !== strundefined && (!e || jQuery.event.triggered !== e.type) ?
+					jQuery.event.dispatch.apply( eventHandle.elem, arguments ) :
 					undefined;
 			};
+			// Add elem as a property of the handle fn to prevent a memory leak with IE non-native events
+			eventHandle.elem = elem;
 		}
 
-		// Add elem as a property of the handle function
-		// This is to prevent a memory leak with non-native events in IE.
-		eventHandle.elem = elem;
-
 		// Handle multiple events separated by a space
-		// jQuery(...).bind("mouseover mouseout", fn);
-		types = types.split(" ");
+		types = ( types || "" ).match( rnotwhite ) || [ "" ];
+		t = types.length;
+		while ( t-- ) {
+			tmp = rtypenamespace.exec( types[t] ) || [];
+			type = origType = tmp[1];
+			namespaces = ( tmp[2] || "" ).split( "." ).sort();
 
-		var type, i = 0, namespaces;
+			// There *must* be a type, no attaching namespace-only handlers
+			if ( !type ) {
+				continue;
+			}
 
-		while ( (type = types[ i++ ]) ) {
-			handleObj = handleObjIn ?
-				jQuery.extend({}, handleObjIn) :
-				{ handler: handler, data: data };
+			// If event changes its type, use the special event handlers for the changed type
+			special = jQuery.event.special[ type ] || {};
 
-			// Namespaced event handlers
-			if ( type.indexOf(".") > -1 ) {
-				namespaces = type.split(".");
-				type = namespaces.shift();
-				handleObj.namespace = namespaces.slice(0).sort().join(".");
+			// If selector defined, determine special event api type, otherwise given type
+			type = ( selector ? special.delegateType : special.bindType ) || type;
 
-			} else {
-				namespaces = [];
-				handleObj.namespace = "";
-			}
+			// Update special based on newly reset type
+			special = jQuery.event.special[ type ] || {};
 
-			handleObj.type = type;
-			if ( !handleObj.guid ) {
-				handleObj.guid = handler.guid;
-			}
+			// handleObj is passed to all event handlers
+			handleObj = jQuery.extend({
+				type: type,
+				origType: origType,
+				data: data,
+				handler: handler,
+				guid: handler.guid,
+				selector: selector,
+				needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
+				namespace: namespaces.join(".")
+			}, handleObjIn );
 
-			// Get the current list of functions bound to this event
-			var handlers = events[ type ],
-				special = jQuery.event.special[ type ] || {};
-
-			// Init the event handler queue
-			if ( !handlers ) {
+			// Init the event handler queue if we're the first
+			if ( !(handlers = events[ type ]) ) {
 				handlers = events[ type ] = [];
+				handlers.delegateCount = 0;
 
-				// Check for a special event handler
-				// Only use addEventListener/attachEvent if the special
-				// events handler returns false
+				// Only use addEventListener/attachEvent if the special events handler returns false
 				if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
 					// Bind the global event handler to the element
 					if ( elem.addEventListener ) {
@@ -2623,425 +4355,514 @@
 				}
 			}
 
-			// Add the function to the element's handler list
-			handlers.push( handleObj );
+			// Add to the element's handler list, delegates in front
+			if ( selector ) {
+				handlers.splice( handlers.delegateCount++, 0, handleObj );
+			} else {
+				handlers.push( handleObj );
+			}
 
-			// Keep track of which events have been used, for event optimization
+			// Keep track of which events have ever been used, for event optimization
 			jQuery.event.global[ type ] = true;
 		}
 
 		// Nullify elem to prevent memory leaks in IE
 		elem = null;
 	},
 
-	global: {},
-
 	// Detach an event or set of events from an element
-	remove: function( elem, types, handler, pos ) {
-		// don't do events on text and comment nodes
-		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
-			return;
-		}
+	remove: function( elem, types, handler, selector, mappedTypes ) {
+		var j, handleObj, tmp,
+			origCount, t, events,
+			special, handlers, type,
+			namespaces, origType,
+			elemData = jQuery.hasData( elem ) && jQuery._data( elem );
 
-		if ( handler === false ) {
-			handler = returnFalse;
-		}
-
-		var ret, type, fn, j, i = 0, all, namespaces, namespace, special, eventType, handleObj, origType,
-			elemData = jQuery.hasData( elem ) && jQuery._data( elem ),
-			events = elemData && elemData.events;
-
-		if ( !elemData || !events ) {
+		if ( !elemData || !(events = elemData.events) ) {
 			return;
 		}
 
-		// types is actually an event object here
-		if ( types && types.type ) {
-			handler = types.handler;
-			types = types.type;
-		}
+		// Once for each type.namespace in types; type may be omitted
+		types = ( types || "" ).match( rnotwhite ) || [ "" ];
+		t = types.length;
+		while ( t-- ) {
+			tmp = rtypenamespace.exec( types[t] ) || [];
+			type = origType = tmp[1];
+			namespaces = ( tmp[2] || "" ).split( "." ).sort();
 
-		// Unbind all events for the element
-		if ( !types || typeof types === "string" && types.charAt(0) === "." ) {
-			types = types || "";
-
-			for ( type in events ) {
-				jQuery.event.remove( elem, type + types );
-			}
-
-			return;
-		}
-
-		// Handle multiple events separated by a space
-		// jQuery(...).unbind("mouseover mouseout", fn);
-		types = types.split(" ");
-
-		while ( (type = types[ i++ ]) ) {
-			origType = type;
-			handleObj = null;
-			all = type.indexOf(".") < 0;
-			namespaces = [];
-
-			if ( !all ) {
-				// Namespaced event handlers
-				namespaces = type.split(".");
-				type = namespaces.shift();
-
-				namespace = new RegExp("(^|\\.)" +
-					jQuery.map( namespaces.slice(0).sort(), fcleanup ).join("\\.(?:.*\\.)?") + "(\\.|$)");
-			}
-
-			eventType = events[ type ];
-
-			if ( !eventType ) {
-				continue;
-			}
-
-			if ( !handler ) {
-				for ( j = 0; j < eventType.length; j++ ) {
-					handleObj = eventType[ j ];
-
-					if ( all || namespace.test( handleObj.namespace ) ) {
-						jQuery.event.remove( elem, origType, handleObj.handler, j );
-						eventType.splice( j--, 1 );
-					}
+			// Unbind all events (on this namespace, if provided) for the element
+			if ( !type ) {
+				for ( type in events ) {
+					jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
 				}
-
 				continue;
 			}
 
 			special = jQuery.event.special[ type ] || {};
+			type = ( selector ? special.delegateType : special.bindType ) || type;
+			handlers = events[ type ] || [];
+			tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" );
 
-			for ( j = pos || 0; j < eventType.length; j++ ) {
-				handleObj = eventType[ j ];
+			// Remove matching events
+			origCount = j = handlers.length;
+			while ( j-- ) {
+				handleObj = handlers[ j ];
 
-				if ( handler.guid === handleObj.guid ) {
-					// remove the given handler for the given type
-					if ( all || namespace.test( handleObj.namespace ) ) {
-						if ( pos == null ) {
-							eventType.splice( j--, 1 );
-						}
+				if ( ( mappedTypes || origType === handleObj.origType ) &&
+					( !handler || handler.guid === handleObj.guid ) &&
+					( !tmp || tmp.test( handleObj.namespace ) ) &&
+					( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) {
+					handlers.splice( j, 1 );
 
-						if ( special.remove ) {
-							special.remove.call( elem, handleObj );
-						}
+					if ( handleObj.selector ) {
+						handlers.delegateCount--;
 					}
-
-					if ( pos != null ) {
-						break;
+					if ( special.remove ) {
+						special.remove.call( elem, handleObj );
 					}
 				}
 			}
 
-			// remove generic event handler if no more handlers exist
-			if ( eventType.length === 0 || pos != null && eventType.length === 1 ) {
-				if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) {
+			// Remove generic event handler if we removed something and no more handlers exist
+			// (avoids potential for endless recursion during removal of special event handlers)
+			if ( origCount && !handlers.length ) {
+				if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
 					jQuery.removeEvent( elem, type, elemData.handle );
 				}
 
-				ret = null;
 				delete events[ type ];
 			}
 		}
 
 		// Remove the expando if it's no longer used
 		if ( jQuery.isEmptyObject( events ) ) {
-			var handle = elemData.handle;
-			if ( handle ) {
-				handle.elem = null;
-			}
-
-			delete elemData.events;
 			delete elemData.handle;
 
-			if ( jQuery.isEmptyObject( elemData ) ) {
-				jQuery.removeData( elem, undefined, true );
-			}
+			// removeData also checks for emptiness and clears the expando if empty
+			// so use it instead of delete
+			jQuery._removeData( elem, "events" );
 		}
 	},
-	
-	// Events that are safe to short-circuit if no handlers are attached.
-	// Native DOM events should not be added, they may have inline handlers.
-	customEvent: {
-		"getData": true,
-		"setData": true,
-		"changeData": true
-	},
 
 	trigger: function( event, data, elem, onlyHandlers ) {
-		// Event object or event type
-		var type = event.type || event,
-			namespaces = [],
-			exclusive;
+		var handle, ontype, cur,
+			bubbleType, special, tmp, i,
+			eventPath = [ elem || document ],
+			type = hasOwn.call( event, "type" ) ? event.type : event,
+			namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : [];
 
-		if ( type.indexOf("!") >= 0 ) {
-			// Exclusive events trigger only for the exact event (no namespaces)
-			type = type.slice(0, -1);
-			exclusive = true;
+		cur = tmp = elem = elem || document;
+
+		// Don't do events on text and comment nodes
+		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
+			return;
 		}
 
+		// focus/blur morphs to focusin/out; ensure we're not firing them right now
+		if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
+			return;
+		}
+
 		if ( type.indexOf(".") >= 0 ) {
 			// Namespaced trigger; create a regexp to match event type in handle()
 			namespaces = type.split(".");
 			type = namespaces.shift();
 			namespaces.sort();
 		}
+		ontype = type.indexOf(":") < 0 && "on" + type;
 
-		if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) {
-			// No jQuery handlers for this event type, and it can't have inline handlers
-			return;
-		}
+		// Caller can pass in a jQuery.Event object, Object, or just an event type string
+		event = event[ jQuery.expando ] ?
+			event :
+			new jQuery.Event( type, typeof event === "object" && event );
 
-		// Caller can pass in an Event, Object, or just an event type string
-		event = typeof event === "object" ?
-			// jQuery.Event object
-			event[ jQuery.expando ] ? event :
-			// Object literal
-			new jQuery.Event( type, event ) :
-			// Just the event type (string)
-			new jQuery.Event( type );
-
-		event.type = type;
-		event.exclusive = exclusive;
+		// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
+		event.isTrigger = onlyHandlers ? 2 : 3;
 		event.namespace = namespaces.join(".");
-		event.namespace_re = new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)");
-		
-		// triggerHandler() and global events don't bubble or run the default action
-		if ( onlyHandlers || !elem ) {
-			event.preventDefault();
-			event.stopPropagation();
-		}
+		event.namespace_re = event.namespace ?
+			new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) :
+			null;
 
-		// Handle a global trigger
-		if ( !elem ) {
-			// TODO: Stop taunting the data cache; remove global events and always attach to document
-			jQuery.each( jQuery.cache, function() {
-				// internalKey variable is just used to make it easier to find
-				// and potentially change this stuff later; currently it just
-				// points to jQuery.expando
-				var internalKey = jQuery.expando,
-					internalCache = this[ internalKey ];
-				if ( internalCache && internalCache.events && internalCache.events[ type ] ) {
-					jQuery.event.trigger( event, data, internalCache.handle.elem );
-				}
-			});
-			return;
+		// Clean up the event in case it is being reused
+		event.result = undefined;
+		if ( !event.target ) {
+			event.target = elem;
 		}
 
-		// Don't do events on text and comment nodes
-		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
+		// Clone any incoming data and prepend the event, creating the handler arg list
+		data = data == null ?
+			[ event ] :
+			jQuery.makeArray( data, [ event ] );
+
+		// Allow special events to draw outside the lines
+		special = jQuery.event.special[ type ] || {};
+		if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
 			return;
 		}
 
-		// Clean up the event in case it is being reused
-		event.result = undefined;
-		event.target = elem;
+		// Determine event propagation path in advance, per W3C events spec (#9951)
+		// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
+		if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
 
-		// Clone any incoming data and prepend the event, creating the handler arg list
-		data = data ? jQuery.makeArray( data ) : [];
-		data.unshift( event );
+			bubbleType = special.delegateType || type;
+			if ( !rfocusMorph.test( bubbleType + type ) ) {
+				cur = cur.parentNode;
+			}
+			for ( ; cur; cur = cur.parentNode ) {
+				eventPath.push( cur );
+				tmp = cur;
+			}
 
-		var cur = elem,
-			// IE doesn't like method names with a colon (#3533, #8272)
-			ontype = type.indexOf(":") < 0 ? "on" + type : "";
+			// Only add window if we got to document (e.g., not plain obj or detached DOM)
+			if ( tmp === (elem.ownerDocument || document) ) {
+				eventPath.push( tmp.defaultView || tmp.parentWindow || window );
+			}
+		}
 
-		// Fire event on the current element, then bubble up the DOM tree
-		do {
-			var handle = jQuery._data( cur, "handle" );
+		// Fire handlers on the event path
+		i = 0;
+		while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {
 
-			event.currentTarget = cur;
+			event.type = i > 1 ?
+				bubbleType :
+				special.bindType || type;
+
+			// jQuery handler
+			handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" );
 			if ( handle ) {
 				handle.apply( cur, data );
 			}
 
-			// Trigger an inline bound script
-			if ( ontype && jQuery.acceptData( cur ) && cur[ ontype ] && cur[ ontype ].apply( cur, data ) === false ) {
-				event.result = false;
-				event.preventDefault();
+			// Native handler
+			handle = ontype && cur[ ontype ];
+			if ( handle && handle.apply && jQuery.acceptData( cur ) ) {
+				event.result = handle.apply( cur, data );
+				if ( event.result === false ) {
+					event.preventDefault();
+				}
 			}
+		}
+		event.type = type;
 
-			// Bubble up to document, then to window
-			cur = cur.parentNode || cur.ownerDocument || cur === event.target.ownerDocument && window;
-		} while ( cur && !event.isPropagationStopped() );
-
 		// If nobody prevented the default action, do it now
-		if ( !event.isDefaultPrevented() ) {
-			var old,
-				special = jQuery.event.special[ type ] || {};
+		if ( !onlyHandlers && !event.isDefaultPrevented() ) {
 
-			if ( (!special._default || special._default.call( elem.ownerDocument, event ) === false) &&
-				!(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) {
+			if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) &&
+				jQuery.acceptData( elem ) ) {
 
 				// Call a native DOM method on the target with the same name name as the event.
-				// Can't use an .isFunction)() check here because IE6/7 fails that test.
-				// IE<9 dies on focus to hidden element (#1486), may want to revisit a try/catch.
-				try {
-					if ( ontype && elem[ type ] ) {
-						// Don't re-trigger an onFOO event when we call its FOO() method
-						old = elem[ ontype ];
+				// Can't use an .isFunction() check here because IE6/7 fails that test.
+				// Don't do default actions on window, that's where global variables be (#6170)
+				if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) {
 
-						if ( old ) {
-							elem[ ontype ] = null;
-						}
+					// Don't re-trigger an onFOO event when we call its FOO() method
+					tmp = elem[ ontype ];
 
-						jQuery.event.triggered = type;
+					if ( tmp ) {
+						elem[ ontype ] = null;
+					}
+
+					// Prevent re-triggering of the same event, since we already bubbled it above
+					jQuery.event.triggered = type;
+					try {
 						elem[ type ]();
+					} catch ( e ) {
+						// IE<9 dies on focus/blur to hidden element (#1486,#12518)
+						// only reproducible on winXP IE8 native, not IE9 in IE8 mode
 					}
-				} catch ( ieError ) {}
+					jQuery.event.triggered = undefined;
 
-				if ( old ) {
-					elem[ ontype ] = old;
+					if ( tmp ) {
+						elem[ ontype ] = tmp;
+					}
 				}
-
-				jQuery.event.triggered = undefined;
 			}
 		}
-		
+
 		return event.result;
 	},
 
-	handle: function( event ) {
-		event = jQuery.event.fix( event || window.event );
-		// Snapshot the handlers list since a called handler may add/remove events.
-		var handlers = ((jQuery._data( this, "events" ) || {})[ event.type ] || []).slice(0),
-			run_all = !event.exclusive && !event.namespace,
-			args = Array.prototype.slice.call( arguments, 0 );
+	dispatch: function( event ) {
 
-		// Use the fix-ed Event rather than the (read-only) native event
+		// Make a writable jQuery.Event from the native event object
+		event = jQuery.event.fix( event );
+
+		var i, ret, handleObj, matched, j,
+			handlerQueue = [],
+			args = slice.call( arguments ),
+			handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [],
+			special = jQuery.event.special[ event.type ] || {};
+
+		// Use the fix-ed jQuery.Event rather than the (read-only) native event
 		args[0] = event;
-		event.currentTarget = this;
+		event.delegateTarget = this;
 
-		for ( var j = 0, l = handlers.length; j < l; j++ ) {
-			var handleObj = handlers[ j ];
+		// Call the preDispatch hook for the mapped type, and let it bail if desired
+		if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
+			return;
+		}
 
-			// Triggered event must 1) be non-exclusive and have no namespace, or
-			// 2) have namespace(s) a subset or equal to those in the bound event.
-			if ( run_all || event.namespace_re.test( handleObj.namespace ) ) {
-				// Pass in a reference to the handler function itself
-				// So that we can later remove it
-				event.handler = handleObj.handler;
-				event.data = handleObj.data;
-				event.handleObj = handleObj;
+		// Determine handlers
+		handlerQueue = jQuery.event.handlers.call( this, event, handlers );
 
-				var ret = handleObj.handler.apply( this, args );
+		// Run delegates first; they may want to stop propagation beneath us
+		i = 0;
+		while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {
+			event.currentTarget = matched.elem;
 
-				if ( ret !== undefined ) {
-					event.result = ret;
-					if ( ret === false ) {
-						event.preventDefault();
-						event.stopPropagation();
+			j = 0;
+			while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {
+
+				// Triggered event must either 1) have no namespace, or
+				// 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).
+				if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {
+
+					event.handleObj = handleObj;
+					event.data = handleObj.data;
+
+					ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )
+							.apply( matched.elem, args );
+
+					if ( ret !== undefined ) {
+						if ( (event.result = ret) === false ) {
+							event.preventDefault();
+							event.stopPropagation();
+						}
 					}
 				}
-
-				if ( event.isImmediatePropagationStopped() ) {
-					break;
-				}
 			}
 		}
+
+		// Call the postDispatch hook for the mapped type
+		if ( special.postDispatch ) {
+			special.postDispatch.call( this, event );
+		}
+
 		return event.result;
 	},
 
-	props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
+	handlers: function( event, handlers ) {
+		var sel, handleObj, matches, i,
+			handlerQueue = [],
+			delegateCount = handlers.delegateCount,
+			cur = event.target;
 
+		// Find delegate handlers
+		// Black-hole SVG <use> instance trees (#13180)
+		// Avoid non-left-click bubbling in Firefox (#3861)
+		if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) {
+
+			/* jshint eqeqeq: false */
+			for ( ; cur != this; cur = cur.parentNode || this ) {
+				/* jshint eqeqeq: true */
+
+				// Don't check non-elements (#13208)
+				// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
+				if ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click") ) {
+					matches = [];
+					for ( i = 0; i < delegateCount; i++ ) {
+						handleObj = handlers[ i ];
+
+						// Don't conflict with Object.prototype properties (#13203)
+						sel = handleObj.selector + " ";
+
+						if ( matches[ sel ] === undefined ) {
+							matches[ sel ] = handleObj.needsContext ?
+								jQuery( sel, this ).index( cur ) >= 0 :
+								jQuery.find( sel, this, null, [ cur ] ).length;
+						}
+						if ( matches[ sel ] ) {
+							matches.push( handleObj );
+						}
+					}
+					if ( matches.length ) {
+						handlerQueue.push({ elem: cur, handlers: matches });
+					}
+				}
+			}
+		}
+
+		// Add the remaining (directly-bound) handlers
+		if ( delegateCount < handlers.length ) {
+			handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) });
+		}
+
+		return handlerQueue;
+	},
+
 	fix: function( event ) {
 		if ( event[ jQuery.expando ] ) {
 			return event;
 		}
 
-		// store a copy of the original event object
-		// and "clone" to set read-only properties
-		var originalEvent = event;
-		event = jQuery.Event( originalEvent );
+		// Create a writable copy of the event object and normalize some properties
+		var i, prop, copy,
+			type = event.type,
+			originalEvent = event,
+			fixHook = this.fixHooks[ type ];
 
-		for ( var i = this.props.length, prop; i; ) {
-			prop = this.props[ --i ];
+		if ( !fixHook ) {
+			this.fixHooks[ type ] = fixHook =
+				rmouseEvent.test( type ) ? this.mouseHooks :
+				rkeyEvent.test( type ) ? this.keyHooks :
+				{};
+		}
+		copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;
+
+		event = new jQuery.Event( originalEvent );
+
+		i = copy.length;
+		while ( i-- ) {
+			prop = copy[ i ];
 			event[ prop ] = originalEvent[ prop ];
 		}
 
-		// Fix target property, if necessary
+		// Support: IE<9
+		// Fix target property (#1925)
 		if ( !event.target ) {
-			// Fixes #1925 where srcElement might not be defined either
-			event.target = event.srcElement || document;
+			event.target = originalEvent.srcElement || document;
 		}
 
-		// check if target is a textnode (safari)
+		// Support: Chrome 23+, Safari?
+		// Target should not be a text node (#504, #13143)
 		if ( event.target.nodeType === 3 ) {
 			event.target = event.target.parentNode;
 		}
 
-		// Add relatedTarget, if necessary
-		if ( !event.relatedTarget && event.fromElement ) {
-			event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement;
-		}
+		// Support: IE<9
+		// For mouse/key events, metaKey==false if it's undefined (#3368, #11328)
+		event.metaKey = !!event.metaKey;
 
-		// Calculate pageX/Y if missing and clientX/Y available
-		if ( event.pageX == null && event.clientX != null ) {
-			var eventDocument = event.target.ownerDocument || document,
-				doc = eventDocument.documentElement,
-				body = eventDocument.body;
+		return fixHook.filter ? fixHook.filter( event, originalEvent ) : event;
+	},
 
-			event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);
-			event.pageY = event.clientY + (doc && doc.scrollTop  || body && body.scrollTop  || 0) - (doc && doc.clientTop  || body && body.clientTop  || 0);
-		}
+	// Includes some event props shared by KeyEvent and MouseEvent
+	props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
 
-		// Add which for key events
-		if ( event.which == null && (event.charCode != null || event.keyCode != null) ) {
-			event.which = event.charCode != null ? event.charCode : event.keyCode;
-		}
+	fixHooks: {},
 
-		// Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs)
-		if ( !event.metaKey && event.ctrlKey ) {
-			event.metaKey = event.ctrlKey;
-		}
+	keyHooks: {
+		props: "char charCode key keyCode".split(" "),
+		filter: function( event, original ) {
 
-		// Add which for click: 1 === left; 2 === middle; 3 === right
-		// Note: button is not normalized, so don't use it
-		if ( !event.which && event.button !== undefined ) {
-			event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) ));
-		}
+			// Add which for key events
+			if ( event.which == null ) {
+				event.which = original.charCode != null ? original.charCode : original.keyCode;
+			}
 
-		return event;
+			return event;
+		}
 	},
 
-	// Deprecated, use jQuery.guid instead
-	guid: 1E8,
+	mouseHooks: {
+		props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
+		filter: function( event, original ) {
+			var body, eventDoc, doc,
+				button = original.button,
+				fromElement = original.fromElement;
 
-	// Deprecated, use jQuery.proxy instead
-	proxy: jQuery.proxy,
+			// Calculate pageX/Y if missing and clientX/Y available
+			if ( event.pageX == null && original.clientX != null ) {
+				eventDoc = event.target.ownerDocument || document;
+				doc = eventDoc.documentElement;
+				body = eventDoc.body;
 
+				event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );
+				event.pageY = original.clientY + ( doc && doc.scrollTop  || body && body.scrollTop  || 0 ) - ( doc && doc.clientTop  || body && body.clientTop  || 0 );
+			}
+
+			// Add relatedTarget, if necessary
+			if ( !event.relatedTarget && fromElement ) {
+				event.relatedTarget = fromElement === event.target ? original.toElement : fromElement;
+			}
+
+			// Add which for click: 1 === left; 2 === middle; 3 === right
+			// Note: button is not normalized, so don't use it
+			if ( !event.which && button !== undefined ) {
+				event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
+			}
+
+			return event;
+		}
+	},
+
 	special: {
-		ready: {
-			// Make sure the ready event is setup
-			setup: jQuery.bindReady,
-			teardown: jQuery.noop
+		load: {
+			// Prevent triggered image.load events from bubbling to window.load
+			noBubble: true
 		},
-
-		live: {
-			add: function( handleObj ) {
-				jQuery.event.add( this,
-					liveConvert( handleObj.origType, handleObj.selector ),
-					jQuery.extend({}, handleObj, {handler: liveHandler, guid: handleObj.handler.guid}) );
+		focus: {
+			// Fire native event if possible so blur/focus sequence is correct
+			trigger: function() {
+				if ( this !== safeActiveElement() && this.focus ) {
+					try {
+						this.focus();
+						return false;
+					} catch ( e ) {
+						// Support: IE<9
+						// If we error on focus to hidden element (#1486, #12518),
+						// let .trigger() run the handlers
+					}
+				}
 			},
+			delegateType: "focusin"
+		},
+		blur: {
+			trigger: function() {
+				if ( this === safeActiveElement() && this.blur ) {
+					this.blur();
+					return false;
+				}
+			},
+			delegateType: "focusout"
+		},
+		click: {
+			// For checkbox, fire native event so checked state will be right
+			trigger: function() {
+				if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) {
+					this.click();
+					return false;
+				}
+			},
 
-			remove: function( handleObj ) {
-				jQuery.event.remove( this, liveConvert( handleObj.origType, handleObj.selector ), handleObj );
+			// For cross-browser consistency, don't fire native .click() on links
+			_default: function( event ) {
+				return jQuery.nodeName( event.target, "a" );
 			}
 		},
 
 		beforeunload: {
-			setup: function( data, namespaces, eventHandle ) {
-				// We only want to do this special case on windows
-				if ( jQuery.isWindow( this ) ) {
-					this.onbeforeunload = eventHandle;
-				}
-			},
+			postDispatch: function( event ) {
 
-			teardown: function( namespaces, eventHandle ) {
-				if ( this.onbeforeunload === eventHandle ) {
-					this.onbeforeunload = null;
+				// Even when returnValue equals to undefined Firefox will still show alert
+				if ( event.result !== undefined ) {
+					event.originalEvent.returnValue = event.result;
 				}
 			}
 		}
+	},
+
+	simulate: function( type, elem, event, bubble ) {
+		// Piggyback on a donor event to simulate a different one.
+		// Fake originalEvent to avoid donor's stopPropagation, but if the
+		// simulated event prevents default then we do the same on the donor.
+		var e = jQuery.extend(
+			new jQuery.Event(),
+			event,
+			{
+				type: type,
+				isSimulated: true,
+				originalEvent: {}
+			}
+		);
+		if ( bubble ) {
+			jQuery.event.trigger( e, null, elem );
+		} else {
+			jQuery.event.dispatch.call( elem, e );
+		}
+		if ( e.isDefaultPrevented() ) {
+			event.preventDefault();
+		}
 	}
 };
 
@@ -3052,14 +4873,23 @@
 		}
 	} :
 	function( elem, type, handle ) {
+		var name = "on" + type;
+
 		if ( elem.detachEvent ) {
-			elem.detachEvent( "on" + type, handle );
+
+			// #8545, #7054, preventing memory leaks for custom events in IE6-8
+			// detachEvent needed property on element, by name of that event, to properly expose it to GC
+			if ( typeof elem[ name ] === strundefined ) {
+				elem[ name ] = null;
+			}
+
+			elem.detachEvent( name, handle );
 		}
 	};
 
 jQuery.Event = function( src, props ) {
 	// Allow instantiation without the 'new' keyword
-	if ( !this.preventDefault ) {
+	if ( !(this instanceof jQuery.Event) ) {
 		return new jQuery.Event( src, props );
 	}
 
@@ -3070,8 +4900,14 @@
 
 		// Events bubbling up the document may have been marked as prevented
 		// by a handler lower down the tree; reflect the correct value.
-		this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false ||
-			src.getPreventDefault && src.getPreventDefault()) ? returnTrue : returnFalse;
+		this.isDefaultPrevented = src.defaultPrevented ||
+				src.defaultPrevented === undefined && (
+				// Support: IE < 9
+				src.returnValue === false ||
+				// Support: Android < 4.0
+				src.getPreventDefault && src.getPreventDefault() ) ?
+			returnTrue :
+			returnFalse;
 
 	// Event type
 	} else {
@@ -3083,3523 +4919,3678 @@
 		jQuery.extend( this, props );
 	}
 
-	// timeStamp is buggy for some events on Firefox(#3843)
-	// So we won't rely on the native value
-	this.timeStamp = jQuery.now();
+	// Create a timestamp if incoming event doesn't have one
+	this.timeStamp = src && src.timeStamp || jQuery.now();
 
 	// Mark it as fixed
 	this[ jQuery.expando ] = true;
 };
 
-function returnFalse() {
-	return false;
-}
-function returnTrue() {
-	return true;
-}
-
 // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
 // http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
 jQuery.Event.prototype = {
-	preventDefault: function() {
-		this.isDefaultPrevented = returnTrue;
+	isDefaultPrevented: returnFalse,
+	isPropagationStopped: returnFalse,
+	isImmediatePropagationStopped: returnFalse,
 
+	preventDefault: function() {
 		var e = this.originalEvent;
+
+		this.isDefaultPrevented = returnTrue;
 		if ( !e ) {
 			return;
 		}
 
-		// if preventDefault exists run it on the original event
+		// If preventDefault exists, run it on the original event
 		if ( e.preventDefault ) {
 			e.preventDefault();
 
-		// otherwise set the returnValue property of the original event to false (IE)
+		// Support: IE
+		// Otherwise set the returnValue property of the original event to false
 		} else {
 			e.returnValue = false;
 		}
 	},
 	stopPropagation: function() {
-		this.isPropagationStopped = returnTrue;
-
 		var e = this.originalEvent;
+
+		this.isPropagationStopped = returnTrue;
 		if ( !e ) {
 			return;
 		}
-		// if stopPropagation exists run it on the original event
+		// If stopPropagation exists, run it on the original event
 		if ( e.stopPropagation ) {
 			e.stopPropagation();
 		}
-		// otherwise set the cancelBubble property of the original event to true (IE)
+
+		// Support: IE
+		// Set the cancelBubble property of the original event to true
 		e.cancelBubble = true;
 	},
 	stopImmediatePropagation: function() {
 		this.isImmediatePropagationStopped = returnTrue;
 		this.stopPropagation();
-	},
-	isDefaultPrevented: returnFalse,
-	isPropagationStopped: returnFalse,
-	isImmediatePropagationStopped: returnFalse
+	}
 };
 
-// Checks if an event happened on an element within another element
-// Used in jQuery.event.special.mouseenter and mouseleave handlers
-var withinElement = function( event ) {
-	// Check if mouse(over|out) are still within the same parent element
-	var parent = event.relatedTarget;
-
-	// set the correct event type
-	event.type = event.data;
-
-	// Firefox sometimes assigns relatedTarget a XUL element
-	// which we cannot access the parentNode property of
-	try {
-
-		// Chrome does something similar, the parentNode property
-		// can be accessed but is null.
-		if ( parent && parent !== document && !parent.parentNode ) {
-			return;
-		}
-
-		// Traverse up the tree
-		while ( parent && parent !== this ) {
-			parent = parent.parentNode;
-		}
-
-		if ( parent !== this ) {
-			// handle event if we actually just moused on to a non sub-element
-			jQuery.event.handle.apply( this, arguments );
-		}
-
-	// assuming we've left the element since we most likely mousedover a xul element
-	} catch(e) { }
-},
-
-// In case of event delegation, we only need to rename the event.type,
-// liveHandler will take care of the rest.
-delegate = function( event ) {
-	event.type = event.data;
-	jQuery.event.handle.apply( this, arguments );
-};
-
-// Create mouseenter and mouseleave events
+// Create mouseenter/leave events using mouseover/out and event-time checks
 jQuery.each({
 	mouseenter: "mouseover",
 	mouseleave: "mouseout"
 }, function( orig, fix ) {
 	jQuery.event.special[ orig ] = {
-		setup: function( data ) {
-			jQuery.event.add( this, fix, data && data.selector ? delegate : withinElement, orig );
-		},
-		teardown: function( data ) {
-			jQuery.event.remove( this, fix, data && data.selector ? delegate : withinElement );
+		delegateType: fix,
+		bindType: fix,
+
+		handle: function( event ) {
+			var ret,
+				target = this,
+				related = event.relatedTarget,
+				handleObj = event.handleObj;
+
+			// For mousenter/leave call the handler if related is outside the target.
+			// NB: No relatedTarget if the mouse left/entered the browser window
+			if ( !related || (related !== target && !jQuery.contains( target, related )) ) {
+				event.type = handleObj.origType;
+				ret = handleObj.handler.apply( this, arguments );
+				event.type = fix;
+			}
+			return ret;
 		}
 	};
 });
 
-// submit delegation
-if ( !jQuery.support.submitBubbles ) {
+// IE submit delegation
+if ( !support.submitBubbles ) {
 
 	jQuery.event.special.submit = {
-		setup: function( data, namespaces ) {
-			if ( !jQuery.nodeName( this, "form" ) ) {
-				jQuery.event.add(this, "click.specialSubmit", function( e ) {
-					var elem = e.target,
-						type = elem.type;
+		setup: function() {
+			// Only need this for delegated form submit events
+			if ( jQuery.nodeName( this, "form" ) ) {
+				return false;
+			}
 
-					if ( (type === "submit" || type === "image") && jQuery( elem ).closest("form").length ) {
-						trigger( "submit", this, arguments );
-					}
-				});
+			// Lazy-add a submit handler when a descendant form may potentially be submitted
+			jQuery.event.add( this, "click._submit keypress._submit", function( e ) {
+				// Node name check avoids a VML-related crash in IE (#9807)
+				var elem = e.target,
+					form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined;
+				if ( form && !jQuery._data( form, "submitBubbles" ) ) {
+					jQuery.event.add( form, "submit._submit", function( event ) {
+						event._submit_bubble = true;
+					});
+					jQuery._data( form, "submitBubbles", true );
+				}
+			});
+			// return undefined since we don't need an event listener
+		},
 
-				jQuery.event.add(this, "keypress.specialSubmit", function( e ) {
-					var elem = e.target,
-						type = elem.type;
+		postDispatch: function( event ) {
+			// If form was submitted by the user, bubble the event up the tree
+			if ( event._submit_bubble ) {
+				delete event._submit_bubble;
+				if ( this.parentNode && !event.isTrigger ) {
+					jQuery.event.simulate( "submit", this.parentNode, event, true );
+				}
+			}
+		},
 
-					if ( (type === "text" || type === "password") && jQuery( elem ).closest("form").length && e.keyCode === 13 ) {
-						trigger( "submit", this, arguments );
-					}
-				});
-
-			} else {
+		teardown: function() {
+			// Only need this for delegated form submit events
+			if ( jQuery.nodeName( this, "form" ) ) {
 				return false;
 			}
-		},
 
-		teardown: function( namespaces ) {
-			jQuery.event.remove( this, ".specialSubmit" );
+			// Remove delegated handlers; cleanData eventually reaps submit handlers attached above
+			jQuery.event.remove( this, "._submit" );
 		}
 	};
-
 }
 
-// change delegation, happens here so we have bind.
-if ( !jQuery.support.changeBubbles ) {
+// IE change delegation and checkbox/radio fix
+if ( !support.changeBubbles ) {
 
-	var changeFilters,
-
-	getVal = function( elem ) {
-		var type = elem.type, val = elem.value;
-
-		if ( type === "radio" || type === "checkbox" ) {
-			val = elem.checked;
-
-		} else if ( type === "select-multiple" ) {
-			val = elem.selectedIndex > -1 ?
-				jQuery.map( elem.options, function( elem ) {
-					return elem.selected;
-				}).join("-") :
-				"";
-
-		} else if ( jQuery.nodeName( elem, "select" ) ) {
-			val = elem.selectedIndex;
-		}
-
-		return val;
-	},
-
-	testChange = function testChange( e ) {
-		var elem = e.target, data, val;
-
-		if ( !rformElems.test( elem.nodeName ) || elem.readOnly ) {
-			return;
-		}
-
-		data = jQuery._data( elem, "_change_data" );
-		val = getVal(elem);
-
-		// the current data will be also retrieved by beforeactivate
-		if ( e.type !== "focusout" || elem.type !== "radio" ) {
-			jQuery._data( elem, "_change_data", val );
-		}
-
-		if ( data === undefined || val === data ) {
-			return;
-		}
-
-		if ( data != null || val ) {
-			e.type = "change";
-			e.liveFired = undefined;
-			jQuery.event.trigger( e, arguments[1], elem );
-		}
-	};
-
 	jQuery.event.special.change = {
-		filters: {
-			focusout: testChange,
 
-			beforedeactivate: testChange,
+		setup: function() {
 
-			click: function( e ) {
-				var elem = e.target, type = jQuery.nodeName( elem, "input" ) ? elem.type : "";
-
-				if ( type === "radio" || type === "checkbox" || jQuery.nodeName( elem, "select" ) ) {
-					testChange.call( this, e );
+			if ( rformElems.test( this.nodeName ) ) {
+				// IE doesn't fire change on a check/radio until blur; trigger it on click
+				// after a propertychange. Eat the blur-change in special.change.handle.
+				// This still fires onchange a second time for check/radio after blur.
+				if ( this.type === "checkbox" || this.type === "radio" ) {
+					jQuery.event.add( this, "propertychange._change", function( event ) {
+						if ( event.originalEvent.propertyName === "checked" ) {
+							this._just_changed = true;
+						}
+					});
+					jQuery.event.add( this, "click._change", function( event ) {
+						if ( this._just_changed && !event.isTrigger ) {
+							this._just_changed = false;
+						}
+						// Allow triggered, simulated change events (#11500)
+						jQuery.event.simulate( "change", this, event, true );
+					});
 				}
-			},
+				return false;
+			}
+			// Delegated event; lazy-add a change handler on descendant inputs
+			jQuery.event.add( this, "beforeactivate._change", function( e ) {
+				var elem = e.target;
 
-			// Change has to be called before submit
-			// Keydown will be called before keypress, which is used in submit-event delegation
-			keydown: function( e ) {
-				var elem = e.target, type = jQuery.nodeName( elem, "input" ) ? elem.type : "";
-
-				if ( (e.keyCode === 13 && !jQuery.nodeName( elem, "textarea" ) ) ||
-					(e.keyCode === 32 && (type === "checkbox" || type === "radio")) ||
-					type === "select-multiple" ) {
-					testChange.call( this, e );
+				if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "changeBubbles" ) ) {
+					jQuery.event.add( elem, "change._change", function( event ) {
+						if ( this.parentNode && !event.isSimulated && !event.isTrigger ) {
+							jQuery.event.simulate( "change", this.parentNode, event, true );
+						}
+					});
+					jQuery._data( elem, "changeBubbles", true );
 				}
-			},
-
-			// Beforeactivate happens also before the previous element is blurred
-			// with this event you can't trigger a change event, but you can store
-			// information
-			beforeactivate: function( e ) {
-				var elem = e.target;
-				jQuery._data( elem, "_change_data", getVal(elem) );
-			}
+			});
 		},
 
-		setup: function( data, namespaces ) {
-			if ( this.type === "file" ) {
-				return false;
-			}
+		handle: function( event ) {
+			var elem = event.target;
 
-			for ( var type in changeFilters ) {
-				jQuery.event.add( this, type + ".specialChange", changeFilters[type] );
+			// Swallow native change events from checkbox/radio, we already triggered them above
+			if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) {
+				return event.handleObj.handler.apply( this, arguments );
 			}
-
-			return rformElems.test( this.nodeName );
 		},
 
-		teardown: function( namespaces ) {
-			jQuery.event.remove( this, ".specialChange" );
+		teardown: function() {
+			jQuery.event.remove( this, "._change" );
 
-			return rformElems.test( this.nodeName );
+			return !rformElems.test( this.nodeName );
 		}
 	};
-
-	changeFilters = jQuery.event.special.change.filters;
-
-	// Handle when the input is .focus()'d
-	changeFilters.focus = changeFilters.beforeactivate;
 }
 
-function trigger( type, elem, args ) {
-	// Piggyback on a donor event to simulate a different one.
-	// Fake originalEvent to avoid donor's stopPropagation, but if the
-	// simulated event prevents default then we do the same on the donor.
-	// Don't pass args or remember liveFired; they apply to the donor event.
-	var event = jQuery.extend( {}, args[ 0 ] );
-	event.type = type;
-	event.originalEvent = {};
-	event.liveFired = undefined;
-	jQuery.event.handle.call( elem, event );
-	if ( event.isDefaultPrevented() ) {
-		args[ 0 ].preventDefault();
-	}
-}
-
 // Create "bubbling" focus and blur events
-if ( !jQuery.support.focusinBubbles ) {
+if ( !support.focusinBubbles ) {
 	jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
 
-		// Attach a single capturing handler while someone wants focusin/focusout
-		var attaches = 0;
+		// Attach a single capturing handler on the document while someone wants focusin/focusout
+		var handler = function( event ) {
+				jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );
+			};
 
 		jQuery.event.special[ fix ] = {
 			setup: function() {
-				if ( attaches++ === 0 ) {
-					document.addEventListener( orig, handler, true );
+				var doc = this.ownerDocument || this,
+					attaches = jQuery._data( doc, fix );
+
+				if ( !attaches ) {
+					doc.addEventListener( orig, handler, true );
 				}
+				jQuery._data( doc, fix, ( attaches || 0 ) + 1 );
 			},
 			teardown: function() {
-				if ( --attaches === 0 ) {
-					document.removeEventListener( orig, handler, true );
+				var doc = this.ownerDocument || this,
+					attaches = jQuery._data( doc, fix ) - 1;
+
+				if ( !attaches ) {
+					doc.removeEventListener( orig, handler, true );
+					jQuery._removeData( doc, fix );
+				} else {
+					jQuery._data( doc, fix, attaches );
 				}
 			}
 		};
-
-		function handler( donor ) {
-			// Donor event is always a native one; fix it and switch its type.
-			// Let focusin/out handler cancel the donor focus/blur event.
-			var e = jQuery.event.fix( donor );
-			e.type = fix;
-			e.originalEvent = {};
-			jQuery.event.trigger( e, null, e.target );
-			if ( e.isDefaultPrevented() ) {
-				donor.preventDefault();
-			}
-		}
 	});
 }
 
-jQuery.each(["bind", "one"], function( i, name ) {
-	jQuery.fn[ name ] = function( type, data, fn ) {
-		var handler;
+jQuery.fn.extend({
 
-		// Handle object literals
-		if ( typeof type === "object" ) {
-			for ( var key in type ) {
-				this[ name ](key, data, type[key], fn);
+	on: function( types, selector, data, fn, /*INTERNAL*/ one ) {
+		var type, origFn;
+
+		// Types can be a map of types/handlers
+		if ( typeof types === "object" ) {
+			// ( types-Object, selector, data )
+			if ( typeof selector !== "string" ) {
+				// ( types-Object, data )
+				data = data || selector;
+				selector = undefined;
 			}
+			for ( type in types ) {
+				this.on( type, selector, data, types[ type ], one );
+			}
 			return this;
 		}
 
-		if ( arguments.length === 2 || data === false ) {
-			fn = data;
-			data = undefined;
+		if ( data == null && fn == null ) {
+			// ( types, fn )
+			fn = selector;
+			data = selector = undefined;
+		} else if ( fn == null ) {
+			if ( typeof selector === "string" ) {
+				// ( types, selector, fn )
+				fn = data;
+				data = undefined;
+			} else {
+				// ( types, data, fn )
+				fn = data;
+				data = selector;
+				selector = undefined;
+			}
 		}
+		if ( fn === false ) {
+			fn = returnFalse;
+		} else if ( !fn ) {
+			return this;
+		}
 
-		if ( name === "one" ) {
-			handler = function( event ) {
-				jQuery( this ).unbind( event, handler );
-				return fn.apply( this, arguments );
+		if ( one === 1 ) {
+			origFn = fn;
+			fn = function( event ) {
+				// Can use an empty set, since event contains the info
+				jQuery().off( event );
+				return origFn.apply( this, arguments );
 			};
-			handler.guid = fn.guid || jQuery.guid++;
-		} else {
-			handler = fn;
+			// Use same guid so caller can remove using origFn
+			fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
 		}
-
-		if ( type === "unload" && name !== "one" ) {
-			this.one( type, data, fn );
-
-		} else {
-			for ( var i = 0, l = this.length; i < l; i++ ) {
-				jQuery.event.add( this[i], type, handler, data );
-			}
+		return this.each( function() {
+			jQuery.event.add( this, types, fn, data, selector );
+		});
+	},
+	one: function( types, selector, data, fn ) {
+		return this.on( types, selector, data, fn, 1 );
+	},
+	off: function( types, selector, fn ) {
+		var handleObj, type;
+		if ( types && types.preventDefault && types.handleObj ) {
+			// ( event )  dispatched jQuery.Event
+			handleObj = types.handleObj;
+			jQuery( types.delegateTarget ).off(
+				handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType,
+				handleObj.selector,
+				handleObj.handler
+			);
+			return this;
 		}
-
-		return this;
-	};
-});
-
-jQuery.fn.extend({
-	unbind: function( type, fn ) {
-		// Handle object literals
-		if ( typeof type === "object" && !type.preventDefault ) {
-			for ( var key in type ) {
-				this.unbind(key, type[key]);
+		if ( typeof types === "object" ) {
+			// ( types-object [, selector] )
+			for ( type in types ) {
+				this.off( type, selector, types[ type ] );
 			}
-
-		} else {
-			for ( var i = 0, l = this.length; i < l; i++ ) {
-				jQuery.event.remove( this[i], type, fn );
-			}
+			return this;
 		}
-
-		return this;
-	},
-
-	delegate: function( selector, types, data, fn ) {
-		return this.live( types, data, fn, selector );
-	},
-
-	undelegate: function( selector, types, fn ) {
-		if ( arguments.length === 0 ) {
-			return this.unbind( "live" );
-
-		} else {
-			return this.die( types, null, fn, selector );
+		if ( selector === false || typeof selector === "function" ) {
+			// ( types [, fn] )
+			fn = selector;
+			selector = undefined;
 		}
+		if ( fn === false ) {
+			fn = returnFalse;
+		}
+		return this.each(function() {
+			jQuery.event.remove( this, types, fn, selector );
+		});
 	},
 
 	trigger: function( type, data ) {
 		return this.each(function() {
 			jQuery.event.trigger( type, data, this );
 		});
 	},
-
 	triggerHandler: function( type, data ) {
-		if ( this[0] ) {
-			return jQuery.event.trigger( type, data, this[0], true );
+		var elem = this[0];
+		if ( elem ) {
+			return jQuery.event.trigger( type, data, elem, true );
 		}
-	},
-
-	toggle: function( fn ) {
-		// Save reference to arguments for access in closure
-		var args = arguments,
-			guid = fn.guid || jQuery.guid++,
-			i = 0,
-			toggler = function( event ) {
-				// Figure out which function to execute
-				var lastToggle = ( jQuery.data( this, "lastToggle" + fn.guid ) || 0 ) % i;
-				jQuery.data( this, "lastToggle" + fn.guid, lastToggle + 1 );
-
-				// Make sure that clicks stop
-				event.preventDefault();
-
-				// and execute the function
-				return args[ lastToggle ].apply( this, arguments ) || false;
-			};
-
-		// link all the functions, so any of them can unbind this click handler
-		toggler.guid = guid;
-		while ( i < args.length ) {
-			args[ i++ ].guid = guid;
-		}
-
-		return this.click( toggler );
-	},
-
-	hover: function( fnOver, fnOut ) {
-		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
 	}
 });
 
-var liveMap = {
-	focus: "focusin",
-	blur: "focusout",
-	mouseenter: "mouseover",
-	mouseleave: "mouseout"
-};
 
-jQuery.each(["live", "die"], function( i, name ) {
-	jQuery.fn[ name ] = function( types, data, fn, origSelector /* Internal Use Only */ ) {
-		var type, i = 0, match, namespaces, preType,
-			selector = origSelector || this.selector,
-			context = origSelector ? this : jQuery( this.context );
+function createSafeFragment( document ) {
+	var list = nodeNames.split( "|" ),
+		safeFrag = document.createDocumentFragment();
 
-		if ( typeof types === "object" && !types.preventDefault ) {
-			for ( var key in types ) {
-				context[ name ]( key, data, types[key], selector );
-			}
-
-			return this;
+	if ( safeFrag.createElement ) {
+		while ( list.length ) {
+			safeFrag.createElement(
+				list.pop()
+			);
 		}
+	}
+	return safeFrag;
+}
 
-		if ( name === "die" && !types &&
-					origSelector && origSelector.charAt(0) === "." ) {
+var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" +
+		"header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
+	rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g,
+	rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"),
+	rleadingWhitespace = /^\s+/,
+	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
+	rtagName = /<([\w:]+)/,
+	rtbody = /<tbody/i,
+	rhtml = /<|&#?\w+;/,
+	rnoInnerhtml = /<(?:script|style|link)/i,
+	// checked="checked" or checked
+	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
+	rscriptType = /^$|\/(?:java|ecma)script/i,
+	rscriptTypeMasked = /^true\/(.*)/,
+	rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
 
-			context.unbind( origSelector );
+	// We have to close these tags to support XHTML (#13200)
+	wrapMap = {
+		option: [ 1, "<select multiple='multiple'>", "</select>" ],
+		legend: [ 1, "<fieldset>", "</fieldset>" ],
+		area: [ 1, "<map>", "</map>" ],
+		param: [ 1, "<object>", "</object>" ],
+		thead: [ 1, "<table>", "</table>" ],
+		tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+		col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ],
+		td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
 
-			return this;
-		}
+		// IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags,
+		// unless wrapped in a div with non-breaking characters in front of it.
+		_default: support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X<div>", "</div>"  ]
+	},
+	safeFragment = createSafeFragment( document ),
+	fragmentDiv = safeFragment.appendChild( document.createElement("div") );
 
-		if ( data === false || jQuery.isFunction( data ) ) {
-			fn = data || returnFalse;
-			data = undefined;
-		}
+wrapMap.optgroup = wrapMap.option;
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
 
-		types = (types || "").split(" ");
+function getAll( context, tag ) {
+	var elems, elem,
+		i = 0,
+		found = typeof context.getElementsByTagName !== strundefined ? context.getElementsByTagName( tag || "*" ) :
+			typeof context.querySelectorAll !== strundefined ? context.querySelectorAll( tag || "*" ) :
+			undefined;
 
-		while ( (type = types[ i++ ]) != null ) {
-			match = rnamespaces.exec( type );
-			namespaces = "";
-
-			if ( match )  {
-				namespaces = match[0];
-				type = type.replace( rnamespaces, "" );
-			}
-
-			if ( type === "hover" ) {
-				types.push( "mouseenter" + namespaces, "mouseleave" + namespaces );
-				continue;
-			}
-
-			preType = type;
-
-			if ( liveMap[ type ] ) {
-				types.push( liveMap[ type ] + namespaces );
-				type = type + namespaces;
-
+	if ( !found ) {
+		for ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) {
+			if ( !tag || jQuery.nodeName( elem, tag ) ) {
+				found.push( elem );
 			} else {
-				type = (liveMap[ type ] || type) + namespaces;
+				jQuery.merge( found, getAll( elem, tag ) );
 			}
+		}
+	}
 
-			if ( name === "live" ) {
-				// bind live handler
-				for ( var j = 0, l = context.length; j < l; j++ ) {
-					jQuery.event.add( context[j], "live." + liveConvert( type, selector ),
-						{ data: data, selector: selector, handler: fn, origType: type, origHandler: fn, preType: preType } );
-				}
+	return tag === undefined || tag && jQuery.nodeName( context, tag ) ?
+		jQuery.merge( [ context ], found ) :
+		found;
+}
 
-			} else {
-				// unbind live handler
-				context.unbind( "live." + liveConvert( type, selector ), fn );
-			}
-		}
+// Used in buildFragment, fixes the defaultChecked property
+function fixDefaultChecked( elem ) {
+	if ( rcheckableType.test( elem.type ) ) {
+		elem.defaultChecked = elem.checked;
+	}
+}
 
-		return this;
-	};
-});
+// Support: IE<8
+// Manipulating tables requires a tbody
+function manipulationTarget( elem, content ) {
+	return jQuery.nodeName( elem, "table" ) &&
+		jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ?
 
-function liveHandler( event ) {
-	var stop, maxLevel, related, match, handleObj, elem, j, i, l, data, close, namespace, ret,
-		elems = [],
-		selectors = [],
-		events = jQuery._data( this, "events" );
+		elem.getElementsByTagName("tbody")[0] ||
+			elem.appendChild( elem.ownerDocument.createElement("tbody") ) :
+		elem;
+}
 
-	// Make sure we avoid non-left-click bubbling in Firefox (#3861) and disabled elements in IE (#6911)
-	if ( event.liveFired === this || !events || !events.live || event.target.disabled || event.button && event.type === "click" ) {
-		return;
+// Replace/restore the type attribute of script elements for safe DOM manipulation
+function disableScript( elem ) {
+	elem.type = (jQuery.find.attr( elem, "type" ) !== null) + "/" + elem.type;
+	return elem;
+}
+function restoreScript( elem ) {
+	var match = rscriptTypeMasked.exec( elem.type );
+	if ( match ) {
+		elem.type = match[1];
+	} else {
+		elem.removeAttribute("type");
 	}
+	return elem;
+}
 
-	if ( event.namespace ) {
-		namespace = new RegExp("(^|\\.)" + event.namespace.split(".").join("\\.(?:.*\\.)?") + "(\\.|$)");
+// Mark scripts as having already been evaluated
+function setGlobalEval( elems, refElements ) {
+	var elem,
+		i = 0;
+	for ( ; (elem = elems[i]) != null; i++ ) {
+		jQuery._data( elem, "globalEval", !refElements || jQuery._data( refElements[i], "globalEval" ) );
 	}
+}
 
-	event.liveFired = this;
+function cloneCopyEvent( src, dest ) {
 
-	var live = events.live.slice(0);
+	if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {
+		return;
+	}
 
-	for ( j = 0; j < live.length; j++ ) {
-		handleObj = live[j];
+	var type, i, l,
+		oldData = jQuery._data( src ),
+		curData = jQuery._data( dest, oldData ),
+		events = oldData.events;
 
-		if ( handleObj.origType.replace( rnamespaces, "" ) === event.type ) {
-			selectors.push( handleObj.selector );
+	if ( events ) {
+		delete curData.handle;
+		curData.events = {};
 
-		} else {
-			live.splice( j--, 1 );
+		for ( type in events ) {
+			for ( i = 0, l = events[ type ].length; i < l; i++ ) {
+				jQuery.event.add( dest, type, events[ type ][ i ] );
+			}
 		}
 	}
 
-	match = jQuery( event.target ).closest( selectors, event.currentTarget );
+	// make the cloned public data object a copy from the original
+	if ( curData.data ) {
+		curData.data = jQuery.extend( {}, curData.data );
+	}
+}
 
-	for ( i = 0, l = match.length; i < l; i++ ) {
-		close = match[i];
+function fixCloneNodeIssues( src, dest ) {
+	var nodeName, e, data;
 
-		for ( j = 0; j < live.length; j++ ) {
-			handleObj = live[j];
+	// We do not need to do anything for non-Elements
+	if ( dest.nodeType !== 1 ) {
+		return;
+	}
 
-			if ( close.selector === handleObj.selector && (!namespace || namespace.test( handleObj.namespace )) && !close.elem.disabled ) {
-				elem = close.elem;
-				related = null;
+	nodeName = dest.nodeName.toLowerCase();
 
-				// Those two events require additional checking
-				if ( handleObj.preType === "mouseenter" || handleObj.preType === "mouseleave" ) {
-					event.type = handleObj.preType;
-					related = jQuery( event.relatedTarget ).closest( handleObj.selector )[0];
+	// IE6-8 copies events bound via attachEvent when using cloneNode.
+	if ( !support.noCloneEvent && dest[ jQuery.expando ] ) {
+		data = jQuery._data( dest );
 
-					// Make sure not to accidentally match a child element with the same selector
-					if ( related && jQuery.contains( elem, related ) ) {
-						related = elem;
-					}
-				}
-
-				if ( !related || related !== elem ) {
-					elems.push({ elem: elem, handleObj: handleObj, level: close.level });
-				}
-			}
+		for ( e in data.events ) {
+			jQuery.removeEvent( dest, e, data.handle );
 		}
+
+		// Event data gets referenced instead of copied if the expando gets copied too
+		dest.removeAttribute( jQuery.expando );
 	}
 
-	for ( i = 0, l = elems.length; i < l; i++ ) {
-		match = elems[i];
+	// IE blanks contents when cloning scripts, and tries to evaluate newly-set text
+	if ( nodeName === "script" && dest.text !== src.text ) {
+		disableScript( dest ).text = src.text;
+		restoreScript( dest );
 
-		if ( maxLevel && match.level > maxLevel ) {
-			break;
+	// IE6-10 improperly clones children of object elements using classid.
+	// IE10 throws NoModificationAllowedError if parent is null, #12132.
+	} else if ( nodeName === "object" ) {
+		if ( dest.parentNode ) {
+			dest.outerHTML = src.outerHTML;
 		}
 
-		event.currentTarget = match.elem;
-		event.data = match.handleObj.data;
-		event.handleObj = match.handleObj;
-
-		ret = match.handleObj.origHandler.apply( match.elem, arguments );
-
-		if ( ret === false || event.isPropagationStopped() ) {
-			maxLevel = match.level;
-
-			if ( ret === false ) {
-				stop = false;
-			}
-			if ( event.isImmediatePropagationStopped() ) {
-				break;
-			}
+		// This path appears unavoidable for IE9. When cloning an object
+		// element in IE9, the outerHTML strategy above is not sufficient.
+		// If the src has innerHTML and the destination does not,
+		// copy the src.innerHTML into the dest.innerHTML. #10324
+		if ( support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) {
+			dest.innerHTML = src.innerHTML;
 		}
-	}
 
-	return stop;
-}
+	} else if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
+		// IE6-8 fails to persist the checked state of a cloned checkbox
+		// or radio button. Worse, IE6-7 fail to give the cloned element
+		// a checked appearance if the defaultChecked value isn't also set
 
-function liveConvert( type, selector ) {
-	return (type && type !== "*" ? type + "." : "") + selector.replace(rperiod, "`").replace(rspaces, "&");
-}
+		dest.defaultChecked = dest.checked = src.checked;
 
-jQuery.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").split(" "), function( i, name ) {
-
-	// Handle event binding
-	jQuery.fn[ name ] = function( data, fn ) {
-		if ( fn == null ) {
-			fn = data;
-			data = null;
+		// IE6-7 get confused and end up setting the value of a cloned
+		// checkbox/radio button to an empty string instead of "on"
+		if ( dest.value !== src.value ) {
+			dest.value = src.value;
 		}
 
-		return arguments.length > 0 ?
-			this.bind( name, data, fn ) :
-			this.trigger( name );
-	};
+	// IE6-8 fails to return the selected option to the default selected
+	// state when cloning options
+	} else if ( nodeName === "option" ) {
+		dest.defaultSelected = dest.selected = src.defaultSelected;
 
-	if ( jQuery.attrFn ) {
-		jQuery.attrFn[ name ] = true;
+	// IE6-8 fails to set the defaultValue to the correct value when
+	// cloning other types of input fields
+	} else if ( nodeName === "input" || nodeName === "textarea" ) {
+		dest.defaultValue = src.defaultValue;
 	}
-});
+}
 
+jQuery.extend({
+	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
+		var destElements, node, clone, i, srcElements,
+			inPage = jQuery.contains( elem.ownerDocument, elem );
 
+		if ( support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) {
+			clone = elem.cloneNode( true );
 
-/*!
- * Sizzle CSS Selector Engine
- *  Copyright 2011, The Dojo Foundation
- *  Released under the MIT, BSD, and GPL Licenses.
- *  More information: http://sizzlejs.com/
- */
-(function(){
+		// IE<=8 does not properly clone detached, unknown element nodes
+		} else {
+			fragmentDiv.innerHTML = elem.outerHTML;
+			fragmentDiv.removeChild( clone = fragmentDiv.firstChild );
+		}
 
-var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
-	done = 0,
-	toString = Object.prototype.toString,
-	hasDuplicate = false,
-	baseHasDuplicate = true,
-	rBackslash = /\\/g,
-	rNonWord = /\W/;
+		if ( (!support.noCloneEvent || !support.noCloneChecked) &&
+				(elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {
 
-// Here we check if the JavaScript engine is using some sort of
-// optimization where it does not always call our comparision
-// function. If that is the case, discard the hasDuplicate value.
-//   Thus far that includes Google Chrome.
-[0, 0].sort(function() {
-	baseHasDuplicate = false;
-	return 0;
-});
+			// We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2
+			destElements = getAll( clone );
+			srcElements = getAll( elem );
 
-var Sizzle = function( selector, context, results, seed ) {
-	results = results || [];
-	context = context || document;
-
-	var origContext = context;
-
-	if ( context.nodeType !== 1 && context.nodeType !== 9 ) {
-		return [];
-	}
-	
-	if ( !selector || typeof selector !== "string" ) {
-		return results;
-	}
-
-	var m, set, checkSet, extra, ret, cur, pop, i,
-		prune = true,
-		contextXML = Sizzle.isXML( context ),
-		parts = [],
-		soFar = selector;
-	
-	// Reset the position of the chunker regexp (start from head)
-	do {
-		chunker.exec( "" );
-		m = chunker.exec( soFar );
-
-		if ( m ) {
-			soFar = m[3];
-		
-			parts.push( m[1] );
-		
-			if ( m[2] ) {
-				extra = m[3];
-				break;
+			// Fix all IE cloning issues
+			for ( i = 0; (node = srcElements[i]) != null; ++i ) {
+				// Ensure that the destination node is not null; Fixes #9587
+				if ( destElements[i] ) {
+					fixCloneNodeIssues( node, destElements[i] );
+				}
 			}
 		}
-	} while ( m );
 
-	if ( parts.length > 1 && origPOS.exec( selector ) ) {
+		// Copy the events from the original to the clone
+		if ( dataAndEvents ) {
+			if ( deepDataAndEvents ) {
+				srcElements = srcElements || getAll( elem );
+				destElements = destElements || getAll( clone );
 
-		if ( parts.length === 2 && Expr.relative[ parts[0] ] ) {
-			set = posProcess( parts[0] + parts[1], context );
-
-		} else {
-			set = Expr.relative[ parts[0] ] ?
-				[ context ] :
-				Sizzle( parts.shift(), context );
-
-			while ( parts.length ) {
-				selector = parts.shift();
-
-				if ( Expr.relative[ selector ] ) {
-					selector += parts.shift();
+				for ( i = 0; (node = srcElements[i]) != null; i++ ) {
+					cloneCopyEvent( node, destElements[i] );
 				}
-				
-				set = posProcess( selector, set );
+			} else {
+				cloneCopyEvent( elem, clone );
 			}
 		}
 
-	} else {
-		// Take a shortcut and set the context if the root selector is an ID
-		// (but not if it'll be faster if the inner selector is an ID)
-		if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML &&
-				Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) {
-
-			ret = Sizzle.find( parts.shift(), context, contextXML );
-			context = ret.expr ?
-				Sizzle.filter( ret.expr, ret.set )[0] :
-				ret.set[0];
+		// Preserve script evaluation history
+		destElements = getAll( clone, "script" );
+		if ( destElements.length > 0 ) {
+			setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
 		}
 
-		if ( context ) {
-			ret = seed ?
-				{ expr: parts.pop(), set: makeArray(seed) } :
-				Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML );
+		destElements = srcElements = node = null;
 
-			set = ret.expr ?
-				Sizzle.filter( ret.expr, ret.set ) :
-				ret.set;
+		// Return the cloned set
+		return clone;
+	},
 
-			if ( parts.length > 0 ) {
-				checkSet = makeArray( set );
+	buildFragment: function( elems, context, scripts, selection ) {
+		var j, elem, contains,
+			tmp, tag, tbody, wrap,
+			l = elems.length,
 
-			} else {
-				prune = false;
-			}
+			// Ensure a safe fragment
+			safe = createSafeFragment( context ),
 
-			while ( parts.length ) {
-				cur = parts.pop();
-				pop = cur;
+			nodes = [],
+			i = 0;
 
-				if ( !Expr.relative[ cur ] ) {
-					cur = "";
-				} else {
-					pop = parts.pop();
-				}
+		for ( ; i < l; i++ ) {
+			elem = elems[ i ];
 
-				if ( pop == null ) {
-					pop = context;
-				}
+			if ( elem || elem === 0 ) {
 
-				Expr.relative[ cur ]( checkSet, pop, contextXML );
-			}
+				// Add nodes directly
+				if ( jQuery.type( elem ) === "object" ) {
+					jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
 
-		} else {
-			checkSet = parts = [];
-		}
-	}
+				// Convert non-html into a text node
+				} else if ( !rhtml.test( elem ) ) {
+					nodes.push( context.createTextNode( elem ) );
 
-	if ( !checkSet ) {
-		checkSet = set;
-	}
+				// Convert html into DOM nodes
+				} else {
+					tmp = tmp || safe.appendChild( context.createElement("div") );
 
-	if ( !checkSet ) {
-		Sizzle.error( cur || selector );
-	}
+					// Deserialize a standard representation
+					tag = (rtagName.exec( elem ) || [ "", "" ])[ 1 ].toLowerCase();
+					wrap = wrapMap[ tag ] || wrapMap._default;
 
-	if ( toString.call(checkSet) === "[object Array]" ) {
-		if ( !prune ) {
-			results.push.apply( results, checkSet );
+					tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1></$2>" ) + wrap[2];
 
-		} else if ( context && context.nodeType === 1 ) {
-			for ( i = 0; checkSet[i] != null; i++ ) {
-				if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) {
-					results.push( set[i] );
-				}
-			}
+					// Descend through wrappers to the right content
+					j = wrap[0];
+					while ( j-- ) {
+						tmp = tmp.lastChild;
+					}
 
-		} else {
-			for ( i = 0; checkSet[i] != null; i++ ) {
-				if ( checkSet[i] && checkSet[i].nodeType === 1 ) {
-					results.push( set[i] );
-				}
-			}
-		}
+					// Manually add leading whitespace removed by IE
+					if ( !support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {
+						nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) );
+					}
 
-	} else {
-		makeArray( checkSet, results );
-	}
+					// Remove IE's autoinserted <tbody> from table fragments
+					if ( !support.tbody ) {
 
-	if ( extra ) {
-		Sizzle( extra, origContext, results, seed );
-		Sizzle.uniqueSort( results );
-	}
+						// String was a <table>, *may* have spurious <tbody>
+						elem = tag === "table" && !rtbody.test( elem ) ?
+							tmp.firstChild :
 
-	return results;
-};
+							// String was a bare <thead> or <tfoot>
+							wrap[1] === "<table>" && !rtbody.test( elem ) ?
+								tmp :
+								0;
 
-Sizzle.uniqueSort = function( results ) {
-	if ( sortOrder ) {
-		hasDuplicate = baseHasDuplicate;
-		results.sort( sortOrder );
+						j = elem && elem.childNodes.length;
+						while ( j-- ) {
+							if ( jQuery.nodeName( (tbody = elem.childNodes[j]), "tbody" ) && !tbody.childNodes.length ) {
+								elem.removeChild( tbody );
+							}
+						}
+					}
 
-		if ( hasDuplicate ) {
-			for ( var i = 1; i < results.length; i++ ) {
-				if ( results[i] === results[ i - 1 ] ) {
-					results.splice( i--, 1 );
-				}
-			}
-		}
-	}
+					jQuery.merge( nodes, tmp.childNodes );
 
-	return results;
-};
+					// Fix #12392 for WebKit and IE > 9
+					tmp.textContent = "";
 
-Sizzle.matches = function( expr, set ) {
-	return Sizzle( expr, null, null, set );
-};
+					// Fix #12392 for oldIE
+					while ( tmp.firstChild ) {
+						tmp.removeChild( tmp.firstChild );
+					}
 
-Sizzle.matchesSelector = function( node, expr ) {
-	return Sizzle( expr, null, null, [node] ).length > 0;
-};
-
-Sizzle.find = function( expr, context, isXML ) {
-	var set;
-
-	if ( !expr ) {
-		return [];
-	}
-
-	for ( var i = 0, l = Expr.order.length; i < l; i++ ) {
-		var match,
-			type = Expr.order[i];
-		
-		if ( (match = Expr.leftMatch[ type ].exec( expr )) ) {
-			var left = match[1];
-			match.splice( 1, 1 );
-
-			if ( left.substr( left.length - 1 ) !== "\\" ) {
-				match[1] = (match[1] || "").replace( rBackslash, "" );
-				set = Expr.find[ type ]( match, context, isXML );
-
-				if ( set != null ) {
-					expr = expr.replace( Expr.match[ type ], "" );
-					break;
+					// Remember the top-level container for proper cleanup
+					tmp = safe.lastChild;
 				}
 			}
 		}
-	}
 
-	if ( !set ) {
-		set = typeof context.getElementsByTagName !== "undefined" ?
-			context.getElementsByTagName( "*" ) :
-			[];
-	}
+		// Fix #11356: Clear elements from fragment
+		if ( tmp ) {
+			safe.removeChild( tmp );
+		}
 
-	return { set: set, expr: expr };
-};
+		// Reset defaultChecked for any radios and checkboxes
+		// about to be appended to the DOM in IE 6/7 (#8060)
+		if ( !support.appendChecked ) {
+			jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked );
+		}
 
-Sizzle.filter = function( expr, set, inplace, not ) {
-	var match, anyFound,
-		old = expr,
-		result = [],
-		curLoop = set,
-		isXMLFilter = set && set[0] && Sizzle.isXML( set[0] );
+		i = 0;
+		while ( (elem = nodes[ i++ ]) ) {
 
-	while ( expr && set.length ) {
-		for ( var type in Expr.filter ) {
-			if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) {
-				var found, item,
-					filter = Expr.filter[ type ],
-					left = match[1];
+			// #4087 - If origin and destination elements are the same, and this is
+			// that element, do not do anything
+			if ( selection && jQuery.inArray( elem, selection ) !== -1 ) {
+				continue;
+			}
 
-				anyFound = false;
+			contains = jQuery.contains( elem.ownerDocument, elem );
 
-				match.splice(1,1);
+			// Append to fragment
+			tmp = getAll( safe.appendChild( elem ), "script" );
 
-				if ( left.substr( left.length - 1 ) === "\\" ) {
-					continue;
-				}
+			// Preserve script evaluation history
+			if ( contains ) {
+				setGlobalEval( tmp );
+			}
 
-				if ( curLoop === result ) {
-					result = [];
+			// Capture executables
+			if ( scripts ) {
+				j = 0;
+				while ( (elem = tmp[ j++ ]) ) {
+					if ( rscriptType.test( elem.type || "" ) ) {
+						scripts.push( elem );
+					}
 				}
+			}
+		}
 
-				if ( Expr.preFilter[ type ] ) {
-					match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter );
+		tmp = null;
 
-					if ( !match ) {
-						anyFound = found = true;
+		return safe;
+	},
 
-					} else if ( match === true ) {
-						continue;
-					}
-				}
+	cleanData: function( elems, /* internal */ acceptData ) {
+		var elem, type, id, data,
+			i = 0,
+			internalKey = jQuery.expando,
+			cache = jQuery.cache,
+			deleteExpando = support.deleteExpando,
+			special = jQuery.event.special;
 
-				if ( match ) {
-					for ( var i = 0; (item = curLoop[i]) != null; i++ ) {
-						if ( item ) {
-							found = filter( item, match, i, curLoop );
-							var pass = not ^ !!found;
+		for ( ; (elem = elems[i]) != null; i++ ) {
+			if ( acceptData || jQuery.acceptData( elem ) ) {
 
-							if ( inplace && found != null ) {
-								if ( pass ) {
-									anyFound = true;
+				id = elem[ internalKey ];
+				data = id && cache[ id ];
 
-								} else {
-									curLoop[i] = false;
-								}
+				if ( data ) {
+					if ( data.events ) {
+						for ( type in data.events ) {
+							if ( special[ type ] ) {
+								jQuery.event.remove( elem, type );
 
-							} else if ( pass ) {
-								result.push( item );
-								anyFound = true;
+							// This is a shortcut to avoid jQuery.event.remove's overhead
+							} else {
+								jQuery.removeEvent( elem, type, data.handle );
 							}
 						}
 					}
-				}
 
-				if ( found !== undefined ) {
-					if ( !inplace ) {
-						curLoop = result;
-					}
+					// Remove cache only if it was not already removed by jQuery.event.remove
+					if ( cache[ id ] ) {
 
-					expr = expr.replace( Expr.match[ type ], "" );
+						delete cache[ id ];
 
-					if ( !anyFound ) {
-						return [];
-					}
+						// IE does not allow us to delete expando properties from nodes,
+						// nor does it have a removeAttribute function on Document nodes;
+						// we must handle all of these cases
+						if ( deleteExpando ) {
+							delete elem[ internalKey ];
 
-					break;
-				}
-			}
-		}
+						} else if ( typeof elem.removeAttribute !== strundefined ) {
+							elem.removeAttribute( internalKey );
 
-		// Improper expression
-		if ( expr === old ) {
-			if ( anyFound == null ) {
-				Sizzle.error( expr );
+						} else {
+							elem[ internalKey ] = null;
+						}
 
-			} else {
-				break;
+						deletedIds.push( id );
+					}
+				}
 			}
 		}
-
-		old = expr;
 	}
+});
 
-	return curLoop;
-};
+jQuery.fn.extend({
+	text: function( value ) {
+		return access( this, function( value ) {
+			return value === undefined ?
+				jQuery.text( this ) :
+				this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) );
+		}, null, value, arguments.length );
+	},
 
-Sizzle.error = function( msg ) {
-	throw "Syntax error, unrecognized expression: " + msg;
-};
-
-var Expr = Sizzle.selectors = {
-	order: [ "ID", "NAME", "TAG" ],
-
-	match: {
-		ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
-		CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
-		NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,
-		ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,
-		TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,
-		CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,
-		POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,
-		PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/
+	append: function() {
+		return this.domManip( arguments, function( elem ) {
+			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+				var target = manipulationTarget( this, elem );
+				target.appendChild( elem );
+			}
+		});
 	},
 
-	leftMatch: {},
-
-	attrMap: {
-		"class": "className",
-		"for": "htmlFor"
+	prepend: function() {
+		return this.domManip( arguments, function( elem ) {
+			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+				var target = manipulationTarget( this, elem );
+				target.insertBefore( elem, target.firstChild );
+			}
+		});
 	},
 
-	attrHandle: {
-		href: function( elem ) {
-			return elem.getAttribute( "href" );
-		},
-		type: function( elem ) {
-			return elem.getAttribute( "type" );
-		}
+	before: function() {
+		return this.domManip( arguments, function( elem ) {
+			if ( this.parentNode ) {
+				this.parentNode.insertBefore( elem, this );
+			}
+		});
 	},
 
-	relative: {
-		"+": function(checkSet, part){
-			var isPartStr = typeof part === "string",
-				isTag = isPartStr && !rNonWord.test( part ),
-				isPartStrNotTag = isPartStr && !isTag;
-
-			if ( isTag ) {
-				part = part.toLowerCase();
+	after: function() {
+		return this.domManip( arguments, function( elem ) {
+			if ( this.parentNode ) {
+				this.parentNode.insertBefore( elem, this.nextSibling );
 			}
+		});
+	},
 
-			for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) {
-				if ( (elem = checkSet[i]) ) {
-					while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {}
+	remove: function( selector, keepData /* Internal Use Only */ ) {
+		var elem,
+			elems = selector ? jQuery.filter( selector, this ) : this,
+			i = 0;
 
-					checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ?
-						elem || false :
-						elem === part;
-				}
-			}
+		for ( ; (elem = elems[i]) != null; i++ ) {
 
-			if ( isPartStrNotTag ) {
-				Sizzle.filter( part, checkSet, true );
+			if ( !keepData && elem.nodeType === 1 ) {
+				jQuery.cleanData( getAll( elem ) );
 			}
-		},
 
-		">": function( checkSet, part ) {
-			var elem,
-				isPartStr = typeof part === "string",
-				i = 0,
-				l = checkSet.length;
-
-			if ( isPartStr && !rNonWord.test( part ) ) {
-				part = part.toLowerCase();
-
-				for ( ; i < l; i++ ) {
-					elem = checkSet[i];
-
-					if ( elem ) {
-						var parent = elem.parentNode;
-						checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false;
-					}
+			if ( elem.parentNode ) {
+				if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) {
+					setGlobalEval( getAll( elem, "script" ) );
 				}
+				elem.parentNode.removeChild( elem );
+			}
+		}
 
-			} else {
-				for ( ; i < l; i++ ) {
-					elem = checkSet[i];
+		return this;
+	},
 
-					if ( elem ) {
-						checkSet[i] = isPartStr ?
-							elem.parentNode :
-							elem.parentNode === part;
-					}
-				}
+	empty: function() {
+		var elem,
+			i = 0;
 
-				if ( isPartStr ) {
-					Sizzle.filter( part, checkSet, true );
-				}
+		for ( ; (elem = this[i]) != null; i++ ) {
+			// Remove element nodes and prevent memory leaks
+			if ( elem.nodeType === 1 ) {
+				jQuery.cleanData( getAll( elem, false ) );
 			}
-		},
 
-		"": function(checkSet, part, isXML){
-			var nodeCheck,
-				doneName = done++,
-				checkFn = dirCheck;
+			// Remove any remaining nodes
+			while ( elem.firstChild ) {
+				elem.removeChild( elem.firstChild );
+			}
 
-			if ( typeof part === "string" && !rNonWord.test( part ) ) {
-				part = part.toLowerCase();
-				nodeCheck = part;
-				checkFn = dirNodeCheck;
+			// If this is a select, ensure that it displays empty (#12336)
+			// Support: IE<9
+			if ( elem.options && jQuery.nodeName( elem, "select" ) ) {
+				elem.options.length = 0;
 			}
+		}
 
-			checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML );
-		},
+		return this;
+	},
 
-		"~": function( checkSet, part, isXML ) {
-			var nodeCheck,
-				doneName = done++,
-				checkFn = dirCheck;
+	clone: function( dataAndEvents, deepDataAndEvents ) {
+		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
+		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
 
-			if ( typeof part === "string" && !rNonWord.test( part ) ) {
-				part = part.toLowerCase();
-				nodeCheck = part;
-				checkFn = dirNodeCheck;
-			}
-
-			checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML );
-		}
+		return this.map(function() {
+			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
+		});
 	},
 
-	find: {
-		ID: function( match, context, isXML ) {
-			if ( typeof context.getElementById !== "undefined" && !isXML ) {
-				var m = context.getElementById(match[1]);
-				// Check parentNode to catch when Blackberry 4.6 returns
-				// nodes that are no longer in the document #6963
-				return m && m.parentNode ? [m] : [];
+	html: function( value ) {
+		return access( this, function( value ) {
+			var elem = this[ 0 ] || {},
+				i = 0,
+				l = this.length;
+
+			if ( value === undefined ) {
+				return elem.nodeType === 1 ?
+					elem.innerHTML.replace( rinlinejQuery, "" ) :
+					undefined;
 			}
-		},
 
-		NAME: function( match, context ) {
-			if ( typeof context.getElementsByName !== "undefined" ) {
-				var ret = [],
-					results = context.getElementsByName( match[1] );
+			// See if we can take a shortcut and just use innerHTML
+			if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
+				( support.htmlSerialize || !rnoshimcache.test( value )  ) &&
+				( support.leadingWhitespace || !rleadingWhitespace.test( value ) ) &&
+				!wrapMap[ (rtagName.exec( value ) || [ "", "" ])[ 1 ].toLowerCase() ] ) {
 
-				for ( var i = 0, l = results.length; i < l; i++ ) {
-					if ( results[i].getAttribute("name") === match[1] ) {
-						ret.push( results[i] );
+				value = value.replace( rxhtmlTag, "<$1></$2>" );
+
+				try {
+					for (; i < l; i++ ) {
+						// Remove element nodes and prevent memory leaks
+						elem = this[i] || {};
+						if ( elem.nodeType === 1 ) {
+							jQuery.cleanData( getAll( elem, false ) );
+							elem.innerHTML = value;
+						}
 					}
-				}
 
-				return ret.length === 0 ? null : ret;
+					elem = 0;
+
+				// If using innerHTML throws an exception, use the fallback method
+				} catch(e) {}
 			}
-		},
 
-		TAG: function( match, context ) {
-			if ( typeof context.getElementsByTagName !== "undefined" ) {
-				return context.getElementsByTagName( match[1] );
+			if ( elem ) {
+				this.empty().append( value );
 			}
-		}
+		}, null, value, arguments.length );
 	},
-	preFilter: {
-		CLASS: function( match, curLoop, inplace, result, not, isXML ) {
-			match = " " + match[1].replace( rBackslash, "" ) + " ";
 
-			if ( isXML ) {
-				return match;
-			}
+	replaceWith: function() {
+		var arg = arguments[ 0 ];
 
-			for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) {
-				if ( elem ) {
-					if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) {
-						if ( !inplace ) {
-							result.push( elem );
-						}
+		// Make the changes, replacing each context element with the new content
+		this.domManip( arguments, function( elem ) {
+			arg = this.parentNode;
 
-					} else if ( inplace ) {
-						curLoop[i] = false;
-					}
-				}
+			jQuery.cleanData( getAll( this ) );
+
+			if ( arg ) {
+				arg.replaceChild( elem, this );
 			}
+		});
 
-			return false;
-		},
+		// Force removal if there was no new content (e.g., from empty arguments)
+		return arg && (arg.length || arg.nodeType) ? this : this.remove();
+	},
 
-		ID: function( match ) {
-			return match[1].replace( rBackslash, "" );
-		},
+	detach: function( selector ) {
+		return this.remove( selector, true );
+	},
 
-		TAG: function( match, curLoop ) {
-			return match[1].replace( rBackslash, "" ).toLowerCase();
-		},
+	domManip: function( args, callback ) {
 
-		CHILD: function( match ) {
-			if ( match[1] === "nth" ) {
-				if ( !match[2] ) {
-					Sizzle.error( match[0] );
-				}
+		// Flatten any nested arrays
+		args = concat.apply( [], args );
 
-				match[2] = match[2].replace(/^\+|\s*/g, '');
+		var first, node, hasScripts,
+			scripts, doc, fragment,
+			i = 0,
+			l = this.length,
+			set = this,
+			iNoClone = l - 1,
+			value = args[0],
+			isFunction = jQuery.isFunction( value );
 
-				// parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
-				var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec(
-					match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" ||
-					!/\D/.test( match[2] ) && "0n+" + match[2] || match[2]);
+		// We can't cloneNode fragments that contain checked, in WebKit
+		if ( isFunction ||
+				( l > 1 && typeof value === "string" &&
+					!support.checkClone && rchecked.test( value ) ) ) {
+			return this.each(function( index ) {
+				var self = set.eq( index );
+				if ( isFunction ) {
+					args[0] = value.call( this, index, self.html() );
+				}
+				self.domManip( args, callback );
+			});
+		}
 
-				// calculate the numbers (first)n+(last) including if they are negative
-				match[2] = (test[1] + (test[2] || 1)) - 0;
-				match[3] = test[3] - 0;
+		if ( l ) {
+			fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this );
+			first = fragment.firstChild;
+
+			if ( fragment.childNodes.length === 1 ) {
+				fragment = first;
 			}
-			else if ( match[2] ) {
-				Sizzle.error( match[0] );
-			}
 
-			// TODO: Move to normal caching system
-			match[0] = done++;
+			if ( first ) {
+				scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
+				hasScripts = scripts.length;
 
-			return match;
-		},
+				// Use the original fragment for the last item instead of the first because it can end up
+				// being emptied incorrectly in certain situations (#8070).
+				for ( ; i < l; i++ ) {
+					node = fragment;
 
-		ATTR: function( match, curLoop, inplace, result, not, isXML ) {
-			var name = match[1] = match[1].replace( rBackslash, "" );
-			
-			if ( !isXML && Expr.attrMap[name] ) {
-				match[1] = Expr.attrMap[name];
-			}
+					if ( i !== iNoClone ) {
+						node = jQuery.clone( node, true, true );
 
-			// Handle if an un-quoted value was used
-			match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" );
+						// Keep references to cloned scripts for later restoration
+						if ( hasScripts ) {
+							jQuery.merge( scripts, getAll( node, "script" ) );
+						}
+					}
 
-			if ( match[2] === "~=" ) {
-				match[4] = " " + match[4] + " ";
-			}
+					callback.call( this[i], node, i );
+				}
 
-			return match;
-		},
+				if ( hasScripts ) {
+					doc = scripts[ scripts.length - 1 ].ownerDocument;
 
-		PSEUDO: function( match, curLoop, inplace, result, not ) {
-			if ( match[1] === "not" ) {
-				// If we're dealing with a complex expression, or a simple one
-				if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) {
-					match[3] = Sizzle(match[3], null, null, curLoop);
+					// Reenable scripts
+					jQuery.map( scripts, restoreScript );
 
-				} else {
-					var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
+					// Evaluate executable scripts on first document insertion
+					for ( i = 0; i < hasScripts; i++ ) {
+						node = scripts[ i ];
+						if ( rscriptType.test( node.type || "" ) &&
+							!jQuery._data( node, "globalEval" ) && jQuery.contains( doc, node ) ) {
 
-					if ( !inplace ) {
-						result.push.apply( result, ret );
+							if ( node.src ) {
+								// Optional AJAX dependency, but won't run scripts if not present
+								if ( jQuery._evalUrl ) {
+									jQuery._evalUrl( node.src );
+								}
+							} else {
+								jQuery.globalEval( ( node.text || node.textContent || node.innerHTML || "" ).replace( rcleanScript, "" ) );
+							}
+						}
 					}
-
-					return false;
 				}
 
-			} else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) {
-				return true;
+				// Fix #11809: Avoid leaking memory
+				fragment = first = null;
 			}
-			
-			return match;
-		},
+		}
 
-		POS: function( match ) {
-			match.unshift( true );
+		return this;
+	}
+});
 
-			return match;
-		}
-	},
-	
-	filters: {
-		enabled: function( elem ) {
-			return elem.disabled === false && elem.type !== "hidden";
-		},
+jQuery.each({
+	appendTo: "append",
+	prependTo: "prepend",
+	insertBefore: "before",
+	insertAfter: "after",
+	replaceAll: "replaceWith"
+}, function( name, original ) {
+	jQuery.fn[ name ] = function( selector ) {
+		var elems,
+			i = 0,
+			ret = [],
+			insert = jQuery( selector ),
+			last = insert.length - 1;
 
-		disabled: function( elem ) {
-			return elem.disabled === true;
-		},
+		for ( ; i <= last; i++ ) {
+			elems = i === last ? this : this.clone(true);
+			jQuery( insert[i] )[ original ]( elems );
 
-		checked: function( elem ) {
-			return elem.checked === true;
-		},
-		
-		selected: function( elem ) {
-			// Accessing this property makes selected-by-default
-			// options in Safari work properly
-			if ( elem.parentNode ) {
-				elem.parentNode.selectedIndex;
-			}
-			
-			return elem.selected === true;
-		},
+			// Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get()
+			push.apply( ret, elems.get() );
+		}
 
-		parent: function( elem ) {
-			return !!elem.firstChild;
-		},
+		return this.pushStack( ret );
+	};
+});
 
-		empty: function( elem ) {
-			return !elem.firstChild;
-		},
 
-		has: function( elem, i, match ) {
-			return !!Sizzle( match[3], elem ).length;
-		},
+var iframe,
+	elemdisplay = {};
 
-		header: function( elem ) {
-			return (/h\d/i).test( elem.nodeName );
-		},
+/**
+ * Retrieve the actual display of a element
+ * @param {String} name nodeName of the element
+ * @param {Object} doc Document object
+ */
+// Called only from within defaultDisplay
+function actualDisplay( name, doc ) {
+	var elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),
 
-		text: function( elem ) {
-			var attr = elem.getAttribute( "type" ), type = elem.type;
-			// IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) 
-			// use getAttribute instead to test this case
-			return elem.nodeName.toLowerCase() === "input" && "text" === type && ( attr === type || attr === null );
-		},
+		// getDefaultComputedStyle might be reliably used only on attached element
+		display = window.getDefaultComputedStyle ?
 
-		radio: function( elem ) {
-			return elem.nodeName.toLowerCase() === "input" && "radio" === elem.type;
-		},
+			// Use of this method is a temporary fix (more like optmization) until something better comes along,
+			// since it was removed from specification and supported only in FF
+			window.getDefaultComputedStyle( elem[ 0 ] ).display : jQuery.css( elem[ 0 ], "display" );
 
-		checkbox: function( elem ) {
-			return elem.nodeName.toLowerCase() === "input" && "checkbox" === elem.type;
-		},
+	// We don't have any data stored on the element,
+	// so use "detach" method as fast way to get rid of the element
+	elem.detach();
 
-		file: function( elem ) {
-			return elem.nodeName.toLowerCase() === "input" && "file" === elem.type;
-		},
+	return display;
+}
 
-		password: function( elem ) {
-			return elem.nodeName.toLowerCase() === "input" && "password" === elem.type;
-		},
+/**
+ * Try to determine the default display value of an element
+ * @param {String} nodeName
+ */
+function defaultDisplay( nodeName ) {
+	var doc = document,
+		display = elemdisplay[ nodeName ];
 
-		submit: function( elem ) {
-			var name = elem.nodeName.toLowerCase();
-			return (name === "input" || name === "button") && "submit" === elem.type;
-		},
+	if ( !display ) {
+		display = actualDisplay( nodeName, doc );
 
-		image: function( elem ) {
-			return elem.nodeName.toLowerCase() === "input" && "image" === elem.type;
-		},
+		// If the simple way fails, read from inside an iframe
+		if ( display === "none" || !display ) {
 
-		reset: function( elem ) {
-			var name = elem.nodeName.toLowerCase();
-			return (name === "input" || name === "button") && "reset" === elem.type;
-		},
+			// Use the already-created iframe if possible
+			iframe = (iframe || jQuery( "<iframe frameborder='0' width='0' height='0'/>" )).appendTo( doc.documentElement );
 
-		button: function( elem ) {
-			var name = elem.nodeName.toLowerCase();
-			return name === "input" && "button" === elem.type || name === "button";
-		},
+			// Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse
+			doc = ( iframe[ 0 ].contentWindow || iframe[ 0 ].contentDocument ).document;
 
-		input: function( elem ) {
-			return (/input|select|textarea|button/i).test( elem.nodeName );
-		},
+			// Support: IE
+			doc.write();
+			doc.close();
 
-		focus: function( elem ) {
-			return elem === elem.ownerDocument.activeElement;
+			display = actualDisplay( nodeName, doc );
+			iframe.detach();
 		}
-	},
-	setFilters: {
-		first: function( elem, i ) {
-			return i === 0;
-		},
 
-		last: function( elem, i, match, array ) {
-			return i === array.length - 1;
-		},
+		// Store the correct default display
+		elemdisplay[ nodeName ] = display;
+	}
 
-		even: function( elem, i ) {
-			return i % 2 === 0;
-		},
+	return display;
+}
 
-		odd: function( elem, i ) {
-			return i % 2 === 1;
-		},
 
-		lt: function( elem, i, match ) {
-			return i < match[3] - 0;
-		},
+(function() {
+	var a, shrinkWrapBlocksVal,
+		div = document.createElement( "div" ),
+		divReset =
+			"-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;" +
+			"display:block;padding:0;margin:0;border:0";
 
-		gt: function( elem, i, match ) {
-			return i > match[3] - 0;
-		},
+	// Setup
+	div.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";
+	a = div.getElementsByTagName( "a" )[ 0 ];
 
-		nth: function( elem, i, match ) {
-			return match[3] - 0 === i;
-		},
+	a.style.cssText = "float:left;opacity:.5";
 
-		eq: function( elem, i, match ) {
-			return match[3] - 0 === i;
-		}
-	},
-	filter: {
-		PSEUDO: function( elem, match, i, array ) {
-			var name = match[1],
-				filter = Expr.filters[ name ];
+	// Make sure that element opacity exists
+	// (IE uses filter instead)
+	// Use a regex to work around a WebKit issue. See #5145
+	support.opacity = /^0.5/.test( a.style.opacity );
 
-			if ( filter ) {
-				return filter( elem, i, match, array );
+	// Verify style float existence
+	// (IE uses styleFloat instead of cssFloat)
+	support.cssFloat = !!a.style.cssFloat;
 
-			} else if ( name === "contains" ) {
-				return (elem.textContent || elem.innerText || Sizzle.getText([ elem ]) || "").indexOf(match[3]) >= 0;
+	div.style.backgroundClip = "content-box";
+	div.cloneNode( true ).style.backgroundClip = "";
+	support.clearCloneStyle = div.style.backgroundClip === "content-box";
 
-			} else if ( name === "not" ) {
-				var not = match[3];
+	// Null elements to avoid leaks in IE.
+	a = div = null;
 
-				for ( var j = 0, l = not.length; j < l; j++ ) {
-					if ( not[j] === elem ) {
-						return false;
-					}
-				}
+	support.shrinkWrapBlocks = function() {
+		var body, container, div, containerStyles;
 
-				return true;
+		if ( shrinkWrapBlocksVal == null ) {
+			body = document.getElementsByTagName( "body" )[ 0 ];
+			if ( !body ) {
+				// Test fired too early or in an unsupported environment, exit.
+				return;
+			}
 
-			} else {
-				Sizzle.error( name );
+			containerStyles = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px";
+			container = document.createElement( "div" );
+			div = document.createElement( "div" );
+
+			body.appendChild( container ).appendChild( div );
+
+			// Will be changed later if needed.
+			shrinkWrapBlocksVal = false;
+
+			if ( typeof div.style.zoom !== strundefined ) {
+				// Support: IE6
+				// Check if elements with layout shrink-wrap their children
+				div.style.cssText = divReset + ";width:1px;padding:1px;zoom:1";
+				div.innerHTML = "<div></div>";
+				div.firstChild.style.width = "5px";
+				shrinkWrapBlocksVal = div.offsetWidth !== 3;
 			}
-		},
 
-		CHILD: function( elem, match ) {
-			var type = match[1],
-				node = elem;
+			body.removeChild( container );
 
-			switch ( type ) {
-				case "only":
-				case "first":
-					while ( (node = node.previousSibling) )	 {
-						if ( node.nodeType === 1 ) { 
-							return false; 
-						}
-					}
+			// Null elements to avoid leaks in IE.
+			body = container = div = null;
+		}
 
-					if ( type === "first" ) { 
-						return true; 
-					}
+		return shrinkWrapBlocksVal;
+	};
 
-					node = elem;
+})();
+var rmargin = (/^margin/);
 
-				case "last":
-					while ( (node = node.nextSibling) )	 {
-						if ( node.nodeType === 1 ) { 
-							return false; 
-						}
-					}
+var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
 
-					return true;
 
-				case "nth":
-					var first = match[2],
-						last = match[3];
 
-					if ( first === 1 && last === 0 ) {
-						return true;
-					}
-					
-					var doneName = match[0],
-						parent = elem.parentNode;
-	
-					if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) {
-						var count = 0;
-						
-						for ( node = parent.firstChild; node; node = node.nextSibling ) {
-							if ( node.nodeType === 1 ) {
-								node.nodeIndex = ++count;
-							}
-						} 
+var getStyles, curCSS,
+	rposition = /^(top|right|bottom|left)$/;
 
-						parent.sizcache = doneName;
-					}
-					
-					var diff = elem.nodeIndex - last;
+if ( window.getComputedStyle ) {
+	getStyles = function( elem ) {
+		return elem.ownerDocument.defaultView.getComputedStyle( elem, null );
+	};
 
-					if ( first === 0 ) {
-						return diff === 0;
+	curCSS = function( elem, name, computed ) {
+		var width, minWidth, maxWidth, ret,
+			style = elem.style;
 
-					} else {
-						return ( diff % first === 0 && diff / first >= 0 );
-					}
-			}
-		},
+		computed = computed || getStyles( elem );
 
-		ID: function( elem, match ) {
-			return elem.nodeType === 1 && elem.getAttribute("id") === match;
-		},
+		// getPropertyValue is only needed for .css('filter') in IE9, see #12537
+		ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined;
 
-		TAG: function( elem, match ) {
-			return (match === "*" && elem.nodeType === 1) || elem.nodeName.toLowerCase() === match;
-		},
-		
-		CLASS: function( elem, match ) {
-			return (" " + (elem.className || elem.getAttribute("class")) + " ")
-				.indexOf( match ) > -1;
-		},
+		if ( computed ) {
 
-		ATTR: function( elem, match ) {
-			var name = match[1],
-				result = Expr.attrHandle[ name ] ?
-					Expr.attrHandle[ name ]( elem ) :
-					elem[ name ] != null ?
-						elem[ name ] :
-						elem.getAttribute( name ),
-				value = result + "",
-				type = match[2],
-				check = match[4];
+			if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
+				ret = jQuery.style( elem, name );
+			}
 
-			return result == null ?
-				type === "!=" :
-				type === "=" ?
-				value === check :
-				type === "*=" ?
-				value.indexOf(check) >= 0 :
-				type === "~=" ?
-				(" " + value + " ").indexOf(check) >= 0 :
-				!check ?
-				value && result !== false :
-				type === "!=" ?
-				value !== check :
-				type === "^=" ?
-				value.indexOf(check) === 0 :
-				type === "$=" ?
-				value.substr(value.length - check.length) === check :
-				type === "|=" ?
-				value === check || value.substr(0, check.length + 1) === check + "-" :
-				false;
-		},
+			// A tribute to the "awesome hack by Dean Edwards"
+			// Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right
+			// Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels
+			// this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values
+			if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) {
 
-		POS: function( elem, match, i, array ) {
-			var name = match[2],
-				filter = Expr.setFilters[ name ];
+				// Remember the original values
+				width = style.width;
+				minWidth = style.minWidth;
+				maxWidth = style.maxWidth;
 
-			if ( filter ) {
-				return filter( elem, i, match, array );
+				// Put in the new values to get a computed value out
+				style.minWidth = style.maxWidth = style.width = ret;
+				ret = computed.width;
+
+				// Revert the changed values
+				style.width = width;
+				style.minWidth = minWidth;
+				style.maxWidth = maxWidth;
 			}
 		}
-	}
-};
 
-var origPOS = Expr.match.POS,
-	fescape = function(all, num){
-		return "\\" + (num - 0 + 1);
+		// Support: IE
+		// IE returns zIndex value as an integer.
+		return ret === undefined ?
+			ret :
+			ret + "";
 	};
+} else if ( document.documentElement.currentStyle ) {
+	getStyles = function( elem ) {
+		return elem.currentStyle;
+	};
 
-for ( var type in Expr.match ) {
-	Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) );
-	Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) );
-}
+	curCSS = function( elem, name, computed ) {
+		var left, rs, rsLeft, ret,
+			style = elem.style;
 
-var makeArray = function( array, results ) {
-	array = Array.prototype.slice.call( array, 0 );
+		computed = computed || getStyles( elem );
+		ret = computed ? computed[ name ] : undefined;
 
-	if ( results ) {
-		results.push.apply( results, array );
-		return results;
-	}
-	
-	return array;
-};
+		// Avoid setting ret to empty string here
+		// so we don't default to auto
+		if ( ret == null && style && style[ name ] ) {
+			ret = style[ name ];
+		}
 
-// Perform a simple check to determine if the browser is capable of
-// converting a NodeList to an array using builtin methods.
-// Also verifies that the returned array holds DOM nodes
-// (which is not the case in the Blackberry browser)
-try {
-	Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType;
+		// From the awesome hack by Dean Edwards
+		// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
 
-// Provide a fallback method if it does not work
-} catch( e ) {
-	makeArray = function( array, results ) {
-		var i = 0,
-			ret = results || [];
+		// If we're not dealing with a regular pixel number
+		// but a number that has a weird ending, we need to convert it to pixels
+		// but not position css attributes, as those are proportional to the parent element instead
+		// and we can't measure the parent instead because it might trigger a "stacking dolls" problem
+		if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) {
 
-		if ( toString.call(array) === "[object Array]" ) {
-			Array.prototype.push.apply( ret, array );
+			// Remember the original values
+			left = style.left;
+			rs = elem.runtimeStyle;
+			rsLeft = rs && rs.left;
 
-		} else {
-			if ( typeof array.length === "number" ) {
-				for ( var l = array.length; i < l; i++ ) {
-					ret.push( array[i] );
-				}
+			// Put in the new values to get a computed value out
+			if ( rsLeft ) {
+				rs.left = elem.currentStyle.left;
+			}
+			style.left = name === "fontSize" ? "1em" : ret;
+			ret = style.pixelLeft + "px";
 
-			} else {
-				for ( ; array[i]; i++ ) {
-					ret.push( array[i] );
-				}
+			// Revert the changed values
+			style.left = left;
+			if ( rsLeft ) {
+				rs.left = rsLeft;
 			}
 		}
 
-		return ret;
+		// Support: IE
+		// IE returns zIndex value as an integer.
+		return ret === undefined ?
+			ret :
+			ret + "" || "auto";
 	};
 }
 
-var sortOrder, siblingCheck;
 
-if ( document.documentElement.compareDocumentPosition ) {
-	sortOrder = function( a, b ) {
-		if ( a === b ) {
-			hasDuplicate = true;
-			return 0;
-		}
 
-		if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) {
-			return a.compareDocumentPosition ? -1 : 1;
-		}
 
-		return a.compareDocumentPosition(b) & 4 ? -1 : 1;
-	};
+function addGetHookIf( conditionFn, hookFn ) {
+	// Define the hook, we'll check on the first run if it's really needed.
+	return {
+		get: function() {
+			var condition = conditionFn();
 
-} else {
-	sortOrder = function( a, b ) {
-		// The nodes are identical, we can exit early
-		if ( a === b ) {
-			hasDuplicate = true;
-			return 0;
+			if ( condition == null ) {
+				// The test was not ready at this point; screw the hook this time
+				// but check again when needed next time.
+				return;
+			}
 
-		// Fallback to using sourceIndex (in IE) if it's available on both nodes
-		} else if ( a.sourceIndex && b.sourceIndex ) {
-			return a.sourceIndex - b.sourceIndex;
-		}
+			if ( condition ) {
+				// Hook not needed (or it's not possible to use it due to missing dependency),
+				// remove it.
+				// Since there are no other hooks for marginRight, remove the whole object.
+				delete this.get;
+				return;
+			}
 
-		var al, bl,
-			ap = [],
-			bp = [],
-			aup = a.parentNode,
-			bup = b.parentNode,
-			cur = aup;
+			// Hook needed; redefine it so that the support test is not executed again.
 
-		// If the nodes are siblings (or identical) we can do a quick check
-		if ( aup === bup ) {
-			return siblingCheck( a, b );
-
-		// If no parents were found then the nodes are disconnected
-		} else if ( !aup ) {
-			return -1;
-
-		} else if ( !bup ) {
-			return 1;
+			return (this.get = hookFn).apply( this, arguments );
 		}
+	};
+}
 
-		// Otherwise they're somewhere else in the tree so we need
-		// to build up a full list of the parentNodes for comparison
-		while ( cur ) {
-			ap.unshift( cur );
-			cur = cur.parentNode;
-		}
 
-		cur = bup;
+(function() {
+	var a, reliableHiddenOffsetsVal, boxSizingVal, boxSizingReliableVal,
+		pixelPositionVal, reliableMarginRightVal,
+		div = document.createElement( "div" ),
+		containerStyles = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px",
+		divReset =
+			"-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;" +
+			"display:block;padding:0;margin:0;border:0";
 
-		while ( cur ) {
-			bp.unshift( cur );
-			cur = cur.parentNode;
-		}
+	// Setup
+	div.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";
+	a = div.getElementsByTagName( "a" )[ 0 ];
 
-		al = ap.length;
-		bl = bp.length;
+	a.style.cssText = "float:left;opacity:.5";
 
-		// Start walking down the tree looking for a discrepancy
-		for ( var i = 0; i < al && i < bl; i++ ) {
-			if ( ap[i] !== bp[i] ) {
-				return siblingCheck( ap[i], bp[i] );
-			}
-		}
+	// Make sure that element opacity exists
+	// (IE uses filter instead)
+	// Use a regex to work around a WebKit issue. See #5145
+	support.opacity = /^0.5/.test( a.style.opacity );
 
-		// We ended someplace up the tree so do a sibling check
-		return i === al ?
-			siblingCheck( a, bp[i], -1 ) :
-			siblingCheck( ap[i], b, 1 );
-	};
+	// Verify style float existence
+	// (IE uses styleFloat instead of cssFloat)
+	support.cssFloat = !!a.style.cssFloat;
 
-	siblingCheck = function( a, b, ret ) {
-		if ( a === b ) {
-			return ret;
-		}
+	div.style.backgroundClip = "content-box";
+	div.cloneNode( true ).style.backgroundClip = "";
+	support.clearCloneStyle = div.style.backgroundClip === "content-box";
 
-		var cur = a.nextSibling;
+	// Null elements to avoid leaks in IE.
+	a = div = null;
 
-		while ( cur ) {
-			if ( cur === b ) {
-				return -1;
+	jQuery.extend(support, {
+		reliableHiddenOffsets: function() {
+			if ( reliableHiddenOffsetsVal != null ) {
+				return reliableHiddenOffsetsVal;
 			}
 
-			cur = cur.nextSibling;
-		}
+			var container, tds, isSupported,
+				div = document.createElement( "div" ),
+				body = document.getElementsByTagName( "body" )[ 0 ];
 
-		return 1;
-	};
-}
+			if ( !body ) {
+				// Return for frameset docs that don't have a body
+				return;
+			}
 
-// Utility function for retreiving the text value of an array of DOM nodes
-Sizzle.getText = function( elems ) {
-	var ret = "", elem;
+			// Setup
+			div.setAttribute( "className", "t" );
+			div.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";
 
-	for ( var i = 0; elems[i]; i++ ) {
-		elem = elems[i];
+			container = document.createElement( "div" );
+			container.style.cssText = containerStyles;
 
-		// Get the text from text nodes and CDATA nodes
-		if ( elem.nodeType === 3 || elem.nodeType === 4 ) {
-			ret += elem.nodeValue;
+			body.appendChild( container ).appendChild( div );
 
-		// Traverse everything else, except comment nodes
-		} else if ( elem.nodeType !== 8 ) {
-			ret += Sizzle.getText( elem.childNodes );
-		}
-	}
+			// Support: IE8
+			// Check if table cells still have offsetWidth/Height when they are set
+			// to display:none and there are still other visible table cells in a
+			// table row; if so, offsetWidth/Height are not reliable for use when
+			// determining if an element has been hidden directly using
+			// display:none (it is still safe to use offsets if a parent element is
+			// hidden; don safety goggles and see bug #4512 for more information).
+			div.innerHTML = "<table><tr><td></td><td>t</td></tr></table>";
+			tds = div.getElementsByTagName( "td" );
+			tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none";
+			isSupported = ( tds[ 0 ].offsetHeight === 0 );
 
-	return ret;
-};
+			tds[ 0 ].style.display = "";
+			tds[ 1 ].style.display = "none";
 
-// Check to see if the browser returns elements by name when
-// querying by getElementById (and provide a workaround)
-(function(){
-	// We're going to inject a fake input element with a specified name
-	var form = document.createElement("div"),
-		id = "script" + (new Date()).getTime(),
-		root = document.documentElement;
+			// Support: IE8
+			// Check if empty table cells still have offsetWidth/Height
+			reliableHiddenOffsetsVal = isSupported && ( tds[ 0 ].offsetHeight === 0 );
 
-	form.innerHTML = "<a name='" + id + "'/>";
+			body.removeChild( container );
 
-	// Inject it into the root element, check its status, and remove it quickly
-	root.insertBefore( form, root.firstChild );
+			// Null elements to avoid leaks in IE.
+			div = body = null;
 
-	// The workaround has to do additional checks after a getElementById
-	// Which slows things down for other browsers (hence the branching)
-	if ( document.getElementById( id ) ) {
-		Expr.find.ID = function( match, context, isXML ) {
-			if ( typeof context.getElementById !== "undefined" && !isXML ) {
-				var m = context.getElementById(match[1]);
+			return reliableHiddenOffsetsVal;
+		},
 
-				return m ?
-					m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ?
-						[m] :
-						undefined :
-					[];
+		boxSizing: function() {
+			if ( boxSizingVal == null ) {
+				computeStyleTests();
 			}
-		};
+			return boxSizingVal;
+		},
 
-		Expr.filter.ID = function( elem, match ) {
-			var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
+		boxSizingReliable: function() {
+			if ( boxSizingReliableVal == null ) {
+				computeStyleTests();
+			}
+			return boxSizingReliableVal;
+		},
 
-			return elem.nodeType === 1 && node && node.nodeValue === match;
-		};
-	}
+		pixelPosition: function() {
+			if ( pixelPositionVal == null ) {
+				computeStyleTests();
+			}
+			return pixelPositionVal;
+		},
 
-	root.removeChild( form );
+		reliableMarginRight: function() {
+			var body, container, div, marginDiv;
 
-	// release memory in IE
-	root = form = null;
-})();
+			// Use window.getComputedStyle because jsdom on node.js will break without it.
+			if ( reliableMarginRightVal == null && window.getComputedStyle ) {
+				body = document.getElementsByTagName( "body" )[ 0 ];
+				if ( !body ) {
+					// Test fired too early or in an unsupported environment, exit.
+					return;
+				}
 
-(function(){
-	// Check to see if the browser returns only elements
-	// when doing getElementsByTagName("*")
+				container = document.createElement( "div" );
+				div = document.createElement( "div" );
+				container.style.cssText = containerStyles;
 
-	// Create a fake element
-	var div = document.createElement("div");
-	div.appendChild( document.createComment("") );
+				body.appendChild( container ).appendChild( div );
 
-	// Make sure no comments are found
-	if ( div.getElementsByTagName("*").length > 0 ) {
-		Expr.find.TAG = function( match, context ) {
-			var results = context.getElementsByTagName( match[1] );
+				// Check if div with explicit width and no margin-right incorrectly
+				// gets computed margin-right based on width of container. (#3333)
+				// Fails in WebKit before Feb 2011 nightlies
+				// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
+				marginDiv = div.appendChild( document.createElement( "div" ) );
+				marginDiv.style.cssText = div.style.cssText = divReset;
+				marginDiv.style.marginRight = marginDiv.style.width = "0";
+				div.style.width = "1px";
 
-			// Filter out possible comments
-			if ( match[1] === "*" ) {
-				var tmp = [];
+				reliableMarginRightVal =
+					!parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight );
 
-				for ( var i = 0; results[i]; i++ ) {
-					if ( results[i].nodeType === 1 ) {
-						tmp.push( results[i] );
-					}
-				}
-
-				results = tmp;
+				body.removeChild( container );
 			}
 
-			return results;
-		};
-	}
+			return reliableMarginRightVal;
+		}
+	});
 
-	// Check to see if an attribute returns normalized href attributes
-	div.innerHTML = "<a href='#'></a>";
+	function computeStyleTests() {
+		var container, div,
+			body = document.getElementsByTagName( "body" )[ 0 ];
 
-	if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" &&
-			div.firstChild.getAttribute("href") !== "#" ) {
+		if ( !body ) {
+			// Test fired too early or in an unsupported environment, exit.
+			return;
+		}
 
-		Expr.attrHandle.href = function( elem ) {
-			return elem.getAttribute( "href", 2 );
-		};
-	}
+		container = document.createElement( "div" );
+		div = document.createElement( "div" );
+		container.style.cssText = containerStyles;
 
-	// release memory in IE
-	div = null;
-})();
+		body.appendChild( container ).appendChild( div );
 
-if ( document.querySelectorAll ) {
-	(function(){
-		var oldSizzle = Sizzle,
-			div = document.createElement("div"),
-			id = "__sizzle__";
+		div.style.cssText =
+			"-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;" +
+				"position:absolute;display:block;padding:1px;border:1px;width:4px;" +
+				"margin-top:1%;top:1%";
 
-		div.innerHTML = "<p class='TEST'></p>";
+		// Workaround failing boxSizing test due to offsetWidth returning wrong value
+		// with some non-1 values of body zoom, ticket #13543
+		jQuery.swap( body, body.style.zoom != null ? { zoom: 1 } : {}, function() {
+			boxSizingVal = div.offsetWidth === 4;
+		});
 
-		// Safari can't handle uppercase or unicode characters when
-		// in quirks mode.
-		if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {
-			return;
+		// Will be changed later if needed.
+		boxSizingReliableVal = true;
+		pixelPositionVal = false;
+		reliableMarginRightVal = true;
+
+		// Use window.getComputedStyle because jsdom on node.js will break without it.
+		if ( window.getComputedStyle ) {
+			pixelPositionVal = ( window.getComputedStyle( div, null ) || {} ).top !== "1%";
+			boxSizingReliableVal =
+				( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px";
 		}
-	
-		Sizzle = function( query, context, extra, seed ) {
-			context = context || document;
 
-			// Only use querySelectorAll on non-XML documents
-			// (ID selectors don't work in non-HTML documents)
-			if ( !seed && !Sizzle.isXML(context) ) {
-				// See if we find a selector to speed up
-				var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query );
-				
-				if ( match && (context.nodeType === 1 || context.nodeType === 9) ) {
-					// Speed-up: Sizzle("TAG")
-					if ( match[1] ) {
-						return makeArray( context.getElementsByTagName( query ), extra );
-					
-					// Speed-up: Sizzle(".CLASS")
-					} else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) {
-						return makeArray( context.getElementsByClassName( match[2] ), extra );
-					}
-				}
-				
-				if ( context.nodeType === 9 ) {
-					// Speed-up: Sizzle("body")
-					// The body element only exists once, optimize finding it
-					if ( query === "body" && context.body ) {
-						return makeArray( [ context.body ], extra );
-						
-					// Speed-up: Sizzle("#ID")
-					} else if ( match && match[3] ) {
-						var elem = context.getElementById( match[3] );
+		body.removeChild( container );
 
-						// Check parentNode to catch when Blackberry 4.6 returns
-						// nodes that are no longer in the document #6963
-						if ( elem && elem.parentNode ) {
-							// Handle the case where IE and Opera return items
-							// by name instead of ID
-							if ( elem.id === match[3] ) {
-								return makeArray( [ elem ], extra );
-							}
-							
-						} else {
-							return makeArray( [], extra );
-						}
-					}
-					
-					try {
-						return makeArray( context.querySelectorAll(query), extra );
-					} catch(qsaError) {}
+		// Null elements to avoid leaks in IE.
+		div = body = null;
+	}
 
-				// qSA works strangely on Element-rooted queries
-				// We can work around this by specifying an extra ID on the root
-				// and working up from there (Thanks to Andrew Dupont for the technique)
-				// IE 8 doesn't work on object elements
-				} else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
-					var oldContext = context,
-						old = context.getAttribute( "id" ),
-						nid = old || id,
-						hasParent = context.parentNode,
-						relativeHierarchySelector = /^\s*[+~]/.test( query );
+})();
 
-					if ( !old ) {
-						context.setAttribute( "id", nid );
-					} else {
-						nid = nid.replace( /'/g, "\\$&" );
-					}
-					if ( relativeHierarchySelector && hasParent ) {
-						context = context.parentNode;
-					}
 
-					try {
-						if ( !relativeHierarchySelector || hasParent ) {
-							return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra );
-						}
+// A method for quickly swapping in/out CSS properties to get correct calculations.
+jQuery.swap = function( elem, options, callback, args ) {
+	var ret, name,
+		old = {};
 
-					} catch(pseudoError) {
-					} finally {
-						if ( !old ) {
-							oldContext.removeAttribute( "id" );
-						}
-					}
-				}
-			}
-		
-			return oldSizzle(query, context, extra, seed);
-		};
+	// Remember the old values, and insert the new ones
+	for ( name in options ) {
+		old[ name ] = elem.style[ name ];
+		elem.style[ name ] = options[ name ];
+	}
 
-		for ( var prop in oldSizzle ) {
-			Sizzle[ prop ] = oldSizzle[ prop ];
-		}
+	ret = callback.apply( elem, args || [] );
 
-		// release memory in IE
-		div = null;
-	})();
-}
+	// Revert the old values
+	for ( name in options ) {
+		elem.style[ name ] = old[ name ];
+	}
 
-(function(){
-	var html = document.documentElement,
-		matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector;
+	return ret;
+};
 
-	if ( matches ) {
-		// Check to see if it's possible to do matchesSelector
-		// on a disconnected node (IE 9 fails this)
-		var disconnectedMatch = !matches.call( document.createElement( "div" ), "div" ),
-			pseudoWorks = false;
 
-		try {
-			// This should fail with an exception
-			// Gecko does not error, returns false instead
-			matches.call( document.documentElement, "[test!='']:sizzle" );
-	
-		} catch( pseudoError ) {
-			pseudoWorks = true;
-		}
+var
+		ralpha = /alpha\([^)]*\)/i,
+	ropacity = /opacity\s*=\s*([^)]*)/,
 
-		Sizzle.matchesSelector = function( node, expr ) {
-			// Make sure that attribute selectors are quoted
-			expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");
+	// swappable if display is none or starts with table except "table", "table-cell", or "table-caption"
+	// see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
+	rdisplayswap = /^(none|table(?!-c[ea]).+)/,
+	rnumsplit = new RegExp( "^(" + pnum + ")(.*)$", "i" ),
+	rrelNum = new RegExp( "^([+-])=(" + pnum + ")", "i" ),
 
-			if ( !Sizzle.isXML( node ) ) {
-				try { 
-					if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) {
-						var ret = matches.call( node, expr );
+	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+	cssNormalTransform = {
+		letterSpacing: 0,
+		fontWeight: 400
+	},
 
-						// IE 9's matchesSelector returns false on disconnected nodes
-						if ( ret || !disconnectedMatch ||
-								// As well, disconnected nodes are said to be in a document
-								// fragment in IE 9, so check for that
-								node.document && node.document.nodeType !== 11 ) {
-							return ret;
-						}
-					}
-				} catch(e) {}
-			}
+	cssPrefixes = [ "Webkit", "O", "Moz", "ms" ];
 
-			return Sizzle(expr, null, null, [node]).length > 0;
-		};
-	}
-})();
 
-(function(){
-	var div = document.createElement("div");
+// return a css property mapped to a potentially vendor prefixed property
+function vendorPropName( style, name ) {
 
-	div.innerHTML = "<div class='test e'></div><div class='test'></div>";
-
-	// Opera can't find a second classname (in 9.6)
-	// Also, make sure that getElementsByClassName actually exists
-	if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) {
-		return;
+	// shortcut for names that are not vendor prefixed
+	if ( name in style ) {
+		return name;
 	}
 
-	// Safari caches class attributes, doesn't catch changes (in 3.2)
-	div.lastChild.className = "e";
+	// check for vendor prefixed names
+	var capName = name.charAt(0).toUpperCase() + name.slice(1),
+		origName = name,
+		i = cssPrefixes.length;
 
-	if ( div.getElementsByClassName("e").length === 1 ) {
-		return;
-	}
-	
-	Expr.order.splice(1, 0, "CLASS");
-	Expr.find.CLASS = function( match, context, isXML ) {
-		if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) {
-			return context.getElementsByClassName(match[1]);
+	while ( i-- ) {
+		name = cssPrefixes[ i ] + capName;
+		if ( name in style ) {
+			return name;
 		}
-	};
+	}
 
-	// release memory in IE
-	div = null;
-})();
+	return origName;
+}
 
-function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
-	for ( var i = 0, l = checkSet.length; i < l; i++ ) {
-		var elem = checkSet[i];
+function showHide( elements, show ) {
+	var display, elem, hidden,
+		values = [],
+		index = 0,
+		length = elements.length;
 
-		if ( elem ) {
-			var match = false;
+	for ( ; index < length; index++ ) {
+		elem = elements[ index ];
+		if ( !elem.style ) {
+			continue;
+		}
 
-			elem = elem[dir];
+		values[ index ] = jQuery._data( elem, "olddisplay" );
+		display = elem.style.display;
+		if ( show ) {
+			// Reset the inline display of this element to learn if it is
+			// being hidden by cascaded rules or not
+			if ( !values[ index ] && display === "none" ) {
+				elem.style.display = "";
+			}
 
-			while ( elem ) {
-				if ( elem.sizcache === doneName ) {
-					match = checkSet[elem.sizset];
-					break;
-				}
+			// Set elements which have been overridden with display: none
+			// in a stylesheet to whatever the default browser style is
+			// for such an element
+			if ( elem.style.display === "" && isHidden( elem ) ) {
+				values[ index ] = jQuery._data( elem, "olddisplay", defaultDisplay(elem.nodeName) );
+			}
+		} else {
 
-				if ( elem.nodeType === 1 && !isXML ){
-					elem.sizcache = doneName;
-					elem.sizset = i;
-				}
+			if ( !values[ index ] ) {
+				hidden = isHidden( elem );
 
-				if ( elem.nodeName.toLowerCase() === cur ) {
-					match = elem;
-					break;
+				if ( display && display !== "none" || !hidden ) {
+					jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) );
 				}
-
-				elem = elem[dir];
 			}
+		}
+	}
 
-			checkSet[i] = match;
+	// Set the display of most of the elements in a second loop
+	// to avoid the constant reflow
+	for ( index = 0; index < length; index++ ) {
+		elem = elements[ index ];
+		if ( !elem.style ) {
+			continue;
 		}
+		if ( !show || elem.style.display === "none" || elem.style.display === "" ) {
+			elem.style.display = show ? values[ index ] || "" : "none";
+		}
 	}
+
+	return elements;
 }
 
-function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
-	for ( var i = 0, l = checkSet.length; i < l; i++ ) {
-		var elem = checkSet[i];
+function setPositiveNumber( elem, value, subtract ) {
+	var matches = rnumsplit.exec( value );
+	return matches ?
+		// Guard against undefined "subtract", e.g., when used as in cssHooks
+		Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) :
+		value;
+}
 
-		if ( elem ) {
-			var match = false;
-			
-			elem = elem[dir];
+function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
+	var i = extra === ( isBorderBox ? "border" : "content" ) ?
+		// If we already have the right measurement, avoid augmentation
+		4 :
+		// Otherwise initialize for horizontal or vertical properties
+		name === "width" ? 1 : 0,
 
-			while ( elem ) {
-				if ( elem.sizcache === doneName ) {
-					match = checkSet[elem.sizset];
-					break;
-				}
+		val = 0;
 
-				if ( elem.nodeType === 1 ) {
-					if ( !isXML ) {
-						elem.sizcache = doneName;
-						elem.sizset = i;
-					}
+	for ( ; i < 4; i += 2 ) {
+		// both box models exclude margin, so add it if we want it
+		if ( extra === "margin" ) {
+			val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
+		}
 
-					if ( typeof cur !== "string" ) {
-						if ( elem === cur ) {
-							match = true;
-							break;
-						}
+		if ( isBorderBox ) {
+			// border-box includes padding, so remove it if we want content
+			if ( extra === "content" ) {
+				val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+			}
 
-					} else if ( Sizzle.filter( cur, [elem] ).length > 0 ) {
-						match = elem;
-						break;
-					}
-				}
-
-				elem = elem[dir];
+			// at this point, extra isn't border nor margin, so remove border
+			if ( extra !== "margin" ) {
+				val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
 			}
+		} else {
+			// at this point, extra isn't content, so add padding
+			val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
 
-			checkSet[i] = match;
+			// at this point, extra isn't content nor padding, so add border
+			if ( extra !== "padding" ) {
+				val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			}
 		}
 	}
+
+	return val;
 }
 
-if ( document.documentElement.contains ) {
-	Sizzle.contains = function( a, b ) {
-		return a !== b && (a.contains ? a.contains(b) : true);
-	};
+function getWidthOrHeight( elem, name, extra ) {
 
-} else if ( document.documentElement.compareDocumentPosition ) {
-	Sizzle.contains = function( a, b ) {
-		return !!(a.compareDocumentPosition(b) & 16);
-	};
+	// Start with offset property, which is equivalent to the border-box value
+	var valueIsBorderBox = true,
+		val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
+		styles = getStyles( elem ),
+		isBorderBox = support.boxSizing() && jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
 
-} else {
-	Sizzle.contains = function() {
-		return false;
-	};
-}
+	// some non-html elements return undefined for offsetWidth, so check for null/undefined
+	// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
+	// MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668
+	if ( val <= 0 || val == null ) {
+		// Fall back to computed then uncomputed css if necessary
+		val = curCSS( elem, name, styles );
+		if ( val < 0 || val == null ) {
+			val = elem.style[ name ];
+		}
 
-Sizzle.isXML = function( elem ) {
-	// documentElement is verified for cases where it doesn't yet exist
-	// (such as loading iframes in IE - #4833) 
-	var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement;
+		// Computed unit is not pixels. Stop here and return.
+		if ( rnumnonpx.test(val) ) {
+			return val;
+		}
 
-	return documentElement ? documentElement.nodeName !== "HTML" : false;
-};
+		// we need the check for style in case a browser which returns unreliable values
+		// for getComputedStyle silently falls back to the reliable elem.style
+		valueIsBorderBox = isBorderBox && ( support.boxSizingReliable() || val === elem.style[ name ] );
 
-var posProcess = function( selector, context ) {
-	var match,
-		tmpSet = [],
-		later = "",
-		root = context.nodeType ? [context] : context;
-
-	// Position selectors must be done after the filter
-	// And so must :not(positional) so we move all PSEUDOs to the end
-	while ( (match = Expr.match.PSEUDO.exec( selector )) ) {
-		later += match[0];
-		selector = selector.replace( Expr.match.PSEUDO, "" );
+		// Normalize "", auto, and prepare for extra
+		val = parseFloat( val ) || 0;
 	}
 
-	selector = Expr.relative[selector] ? selector + "*" : selector;
+	// use the active box-sizing model to add/subtract irrelevant styles
+	return ( val +
+		augmentWidthOrHeight(
+			elem,
+			name,
+			extra || ( isBorderBox ? "border" : "content" ),
+			valueIsBorderBox,
+			styles
+		)
+	) + "px";
+}
 
-	for ( var i = 0, l = root.length; i < l; i++ ) {
-		Sizzle( selector, root[i], tmpSet );
-	}
+jQuery.extend({
+	// Add in style property hooks for overriding the default
+	// behavior of getting and setting a style property
+	cssHooks: {
+		opacity: {
+			get: function( elem, computed ) {
+				if ( computed ) {
+					// We should always get a number back from opacity
+					var ret = curCSS( elem, "opacity" );
+					return ret === "" ? "1" : ret;
+				}
+			}
+		}
+	},
 
-	return Sizzle.filter( later, tmpSet );
-};
+	// Don't automatically add "px" to these possibly-unitless properties
+	cssNumber: {
+		"columnCount": true,
+		"fillOpacity": true,
+		"fontWeight": true,
+		"lineHeight": true,
+		"opacity": true,
+		"order": true,
+		"orphans": true,
+		"widows": true,
+		"zIndex": true,
+		"zoom": true
+	},
 
-// EXPOSE
-jQuery.find = Sizzle;
-jQuery.expr = Sizzle.selectors;
-jQuery.expr[":"] = jQuery.expr.filters;
-jQuery.unique = Sizzle.uniqueSort;
-jQuery.text = Sizzle.getText;
-jQuery.isXMLDoc = Sizzle.isXML;
-jQuery.contains = Sizzle.contains;
+	// Add in properties whose names you wish to fix before
+	// setting or getting the value
+	cssProps: {
+		// normalize float css property
+		"float": support.cssFloat ? "cssFloat" : "styleFloat"
+	},
 
+	// Get and set the style property on a DOM Node
+	style: function( elem, name, value, extra ) {
+		// Don't set styles on text and comment nodes
+		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
+			return;
+		}
 
-})();
+		// Make sure that we're working with the right name
+		var ret, type, hooks,
+			origName = jQuery.camelCase( name ),
+			style = elem.style;
 
+		name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) );
 
-var runtil = /Until$/,
-	rparentsprev = /^(?:parents|prevUntil|prevAll)/,
-	// Note: This RegExp should be improved, or likely pulled from Sizzle
-	rmultiselector = /,/,
-	isSimple = /^.[^:#\[\.,]*$/,
-	slice = Array.prototype.slice,
-	POS = jQuery.expr.match.POS,
-	// methods guaranteed to produce a unique set when starting from a unique set
-	guaranteedUnique = {
-		children: true,
-		contents: true,
-		next: true,
-		prev: true
-	};
+		// gets hook for the prefixed version
+		// followed by the unprefixed version
+		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
 
-jQuery.fn.extend({
-	find: function( selector ) {
-		var self = this,
-			i, l;
+		// Check if we're setting a value
+		if ( value !== undefined ) {
+			type = typeof value;
 
-		if ( typeof selector !== "string" ) {
-			return jQuery( selector ).filter(function() {
-				for ( i = 0, l = self.length; i < l; i++ ) {
-					if ( jQuery.contains( self[ i ], this ) ) {
-						return true;
-					}
-				}
-			});
-		}
+			// convert relative number strings (+= or -=) to relative numbers. #7345
+			if ( type === "string" && (ret = rrelNum.exec( value )) ) {
+				value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) );
+				// Fixes bug #9237
+				type = "number";
+			}
 
-		var ret = this.pushStack( "", "find", selector ),
-			length, n, r;
+			// Make sure that null and NaN values aren't set. See: #7116
+			if ( value == null || value !== value ) {
+				return;
+			}
 
-		for ( i = 0, l = this.length; i < l; i++ ) {
-			length = ret.length;
-			jQuery.find( selector, this[i], ret );
+			// If a number was passed in, add 'px' to the (except for certain CSS properties)
+			if ( type === "number" && !jQuery.cssNumber[ origName ] ) {
+				value += "px";
+			}
 
-			if ( i > 0 ) {
-				// Make sure that the results are unique
-				for ( n = length; n < ret.length; n++ ) {
-					for ( r = 0; r < length; r++ ) {
-						if ( ret[r] === ret[n] ) {
-							ret.splice(n--, 1);
-							break;
-						}
-					}
-				}
+			// Fixes #8908, it can be done more correctly by specifing setters in cssHooks,
+			// but it would mean to define eight (for every problematic property) identical functions
+			if ( !support.clearCloneStyle && value === "" && name.indexOf("background") === 0 ) {
+				style[ name ] = "inherit";
 			}
-		}
 
-		return ret;
-	},
+			// If a hook was provided, use that value, otherwise just set the specified value
+			if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) {
 
-	has: function( target ) {
-		var targets = jQuery( target );
-		return this.filter(function() {
-			for ( var i = 0, l = targets.length; i < l; i++ ) {
-				if ( jQuery.contains( this, targets[i] ) ) {
-					return true;
-				}
+				// Support: IE
+				// Swallow errors from 'invalid' CSS values (#5509)
+				try {
+					// Support: Chrome, Safari
+					// Setting style to blank string required to delete "style: x !important;"
+					style[ name ] = "";
+					style[ name ] = value;
+				} catch(e) {}
 			}
-		});
-	},
 
-	not: function( selector ) {
-		return this.pushStack( winnow(this, selector, false), "not", selector);
-	},
+		} else {
+			// If a hook was provided get the non-computed value from there
+			if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {
+				return ret;
+			}
 
-	filter: function( selector ) {
-		return this.pushStack( winnow(this, selector, true), "filter", selector );
+			// Otherwise just get the value from the style object
+			return style[ name ];
+		}
 	},
 
-	is: function( selector ) {
-		return !!selector && ( typeof selector === "string" ?
-			jQuery.filter( selector, this ).length > 0 :
-			this.filter( selector ).length > 0 );
-	},
+	css: function( elem, name, extra, styles ) {
+		var num, val, hooks,
+			origName = jQuery.camelCase( name );
 
-	closest: function( selectors, context ) {
-		var ret = [], i, l, cur = this[0];
-		
-		// Array
-		if ( jQuery.isArray( selectors ) ) {
-			var match, selector,
-				matches = {},
-				level = 1;
+		// Make sure that we're working with the right name
+		name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) );
 
-			if ( cur && selectors.length ) {
-				for ( i = 0, l = selectors.length; i < l; i++ ) {
-					selector = selectors[i];
+		// gets hook for the prefixed version
+		// followed by the unprefixed version
+		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
 
-					if ( !matches[ selector ] ) {
-						matches[ selector ] = POS.test( selector ) ?
-							jQuery( selector, context || this.context ) :
-							selector;
-					}
-				}
+		// If a hook was provided get the computed value from there
+		if ( hooks && "get" in hooks ) {
+			val = hooks.get( elem, true, extra );
+		}
 
-				while ( cur && cur.ownerDocument && cur !== context ) {
-					for ( selector in matches ) {
-						match = matches[ selector ];
+		// Otherwise, if a way to get the computed value exists, use that
+		if ( val === undefined ) {
+			val = curCSS( elem, name, styles );
+		}
 
-						if ( match.jquery ? match.index( cur ) > -1 : jQuery( cur ).is( match ) ) {
-							ret.push({ selector: selector, elem: cur, level: level });
-						}
-					}
+		//convert "normal" to computed value
+		if ( val === "normal" && name in cssNormalTransform ) {
+			val = cssNormalTransform[ name ];
+		}
 
-					cur = cur.parentNode;
-					level++;
-				}
+		// Return, converting to number if forced or a qualifier was provided and val looks numeric
+		if ( extra === "" || extra ) {
+			num = parseFloat( val );
+			return extra === true || jQuery.isNumeric( num ) ? num || 0 : val;
+		}
+		return val;
+	}
+});
+
+jQuery.each([ "height", "width" ], function( i, name ) {
+	jQuery.cssHooks[ name ] = {
+		get: function( elem, computed, extra ) {
+			if ( computed ) {
+				// certain elements can have dimension info if we invisibly show them
+				// however, it must have a current display style that would benefit from this
+				return elem.offsetWidth === 0 && rdisplayswap.test( jQuery.css( elem, "display" ) ) ?
+					jQuery.swap( elem, cssShow, function() {
+						return getWidthOrHeight( elem, name, extra );
+					}) :
+					getWidthOrHeight( elem, name, extra );
 			}
+		},
 
-			return ret;
+		set: function( elem, value, extra ) {
+			var styles = extra && getStyles( elem );
+			return setPositiveNumber( elem, value, extra ?
+				augmentWidthOrHeight(
+					elem,
+					name,
+					extra,
+					support.boxSizing() && jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+					styles
+				) : 0
+			);
 		}
+	};
+});
 
-		// String
-		var pos = POS.test( selectors ) || typeof selectors !== "string" ?
-				jQuery( selectors, context || this.context ) :
-				0;
+if ( !support.opacity ) {
+	jQuery.cssHooks.opacity = {
+		get: function( elem, computed ) {
+			// IE uses filters for opacity
+			return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ?
+				( 0.01 * parseFloat( RegExp.$1 ) ) + "" :
+				computed ? "1" : "";
+		},
 
-		for ( i = 0, l = this.length; i < l; i++ ) {
-			cur = this[i];
+		set: function( elem, value ) {
+			var style = elem.style,
+				currentStyle = elem.currentStyle,
+				opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "",
+				filter = currentStyle && currentStyle.filter || style.filter || "";
 
-			while ( cur ) {
-				if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) {
-					ret.push( cur );
-					break;
+			// IE has trouble with opacity if it does not have layout
+			// Force it by setting the zoom level
+			style.zoom = 1;
 
-				} else {
-					cur = cur.parentNode;
-					if ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) {
-						break;
-					}
+			// if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652
+			// if value === "", then remove inline opacity #12685
+			if ( ( value >= 1 || value === "" ) &&
+					jQuery.trim( filter.replace( ralpha, "" ) ) === "" &&
+					style.removeAttribute ) {
+
+				// Setting style.filter to null, "" & " " still leave "filter:" in the cssText
+				// if "filter:" is present at all, clearType is disabled, we want to avoid this
+				// style.removeAttribute is IE Only, but so apparently is this code path...
+				style.removeAttribute( "filter" );
+
+				// if there is no filter style applied in a css rule or unset inline opacity, we are done
+				if ( value === "" || currentStyle && !currentStyle.filter ) {
+					return;
 				}
 			}
+
+			// otherwise, set new filter values
+			style.filter = ralpha.test( filter ) ?
+				filter.replace( ralpha, opacity ) :
+				filter + " " + opacity;
 		}
+	};
+}
 
-		ret = ret.length > 1 ? jQuery.unique( ret ) : ret;
+jQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight,
+	function( elem, computed ) {
+		if ( computed ) {
+			// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
+			// Work around by temporarily setting element display to inline-block
+			return jQuery.swap( elem, { "display": "inline-block" },
+				curCSS, [ elem, "marginRight" ] );
+		}
+	}
+);
 
-		return this.pushStack( ret, "closest", selectors );
-	},
+// These hooks are used by animate to expand properties
+jQuery.each({
+	margin: "",
+	padding: "",
+	border: "Width"
+}, function( prefix, suffix ) {
+	jQuery.cssHooks[ prefix + suffix ] = {
+		expand: function( value ) {
+			var i = 0,
+				expanded = {},
 
-	// Determine the position of an element within
-	// the matched set of elements
-	index: function( elem ) {
-		if ( !elem || typeof elem === "string" ) {
-			return jQuery.inArray( this[0],
-				// If it receives a string, the selector is used
-				// If it receives nothing, the siblings are used
-				elem ? jQuery( elem ) : this.parent().children() );
-		}
-		// Locate the position of the desired element
-		return jQuery.inArray(
-			// If it receives a jQuery object, the first element is used
-			elem.jquery ? elem[0] : elem, this );
-	},
+				// assumes a single number if not a string
+				parts = typeof value === "string" ? value.split(" ") : [ value ];
 
-	add: function( selector, context ) {
-		var set = typeof selector === "string" ?
-				jQuery( selector, context ) :
-				jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ),
-			all = jQuery.merge( this.get(), set );
+			for ( ; i < 4; i++ ) {
+				expanded[ prefix + cssExpand[ i ] + suffix ] =
+					parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
+			}
 
-		return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ?
-			all :
-			jQuery.unique( all ) );
-	},
+			return expanded;
+		}
+	};
 
-	andSelf: function() {
-		return this.add( this.prevObject );
+	if ( !rmargin.test( prefix ) ) {
+		jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
 	}
 });
 
-// A painfully simple check to see if an element is disconnected
-// from a document (should be improved, where feasible).
-function isDisconnected( node ) {
-	return !node || !node.parentNode || node.parentNode.nodeType === 11;
-}
+jQuery.fn.extend({
+	css: function( name, value ) {
+		return access( this, function( elem, name, value ) {
+			var styles, len,
+				map = {},
+				i = 0;
 
-jQuery.each({
-	parent: function( elem ) {
-		var parent = elem.parentNode;
-		return parent && parent.nodeType !== 11 ? parent : null;
+			if ( jQuery.isArray( name ) ) {
+				styles = getStyles( elem );
+				len = name.length;
+
+				for ( ; i < len; i++ ) {
+					map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
+				}
+
+				return map;
+			}
+
+			return value !== undefined ?
+				jQuery.style( elem, name, value ) :
+				jQuery.css( elem, name );
+		}, name, value, arguments.length > 1 );
 	},
-	parents: function( elem ) {
-		return jQuery.dir( elem, "parentNode" );
+	show: function() {
+		return showHide( this, true );
 	},
-	parentsUntil: function( elem, i, until ) {
-		return jQuery.dir( elem, "parentNode", until );
+	hide: function() {
+		return showHide( this );
 	},
-	next: function( elem ) {
-		return jQuery.nth( elem, 2, "nextSibling" );
-	},
-	prev: function( elem ) {
-		return jQuery.nth( elem, 2, "previousSibling" );
-	},
-	nextAll: function( elem ) {
-		return jQuery.dir( elem, "nextSibling" );
-	},
-	prevAll: function( elem ) {
-		return jQuery.dir( elem, "previousSibling" );
-	},
-	nextUntil: function( elem, i, until ) {
-		return jQuery.dir( elem, "nextSibling", until );
-	},
-	prevUntil: function( elem, i, until ) {
-		return jQuery.dir( elem, "previousSibling", until );
-	},
-	siblings: function( elem ) {
-		return jQuery.sibling( elem.parentNode.firstChild, elem );
-	},
-	children: function( elem ) {
-		return jQuery.sibling( elem.firstChild );
-	},
-	contents: function( elem ) {
-		return jQuery.nodeName( elem, "iframe" ) ?
-			elem.contentDocument || elem.contentWindow.document :
-			jQuery.makeArray( elem.childNodes );
+	toggle: function( state ) {
+		if ( typeof state === "boolean" ) {
+			return state ? this.show() : this.hide();
+		}
+
+		return this.each(function() {
+			if ( isHidden( this ) ) {
+				jQuery( this ).show();
+			} else {
+				jQuery( this ).hide();
+			}
+		});
 	}
-}, function( name, fn ) {
-	jQuery.fn[ name ] = function( until, selector ) {
-		var ret = jQuery.map( this, fn, until ),
-			// The variable 'args' was introduced in
-			// https://github.com/jquery/jquery/commit/52a0238
-			// to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed.
-			// http://code.google.com/p/v8/issues/detail?id=1050
-			args = slice.call(arguments);
+});
 
-		if ( !runtil.test( name ) ) {
-			selector = until;
-		}
 
-		if ( selector && typeof selector === "string" ) {
-			ret = jQuery.filter( selector, ret );
-		}
+function Tween( elem, options, prop, end, easing ) {
+	return new Tween.prototype.init( elem, options, prop, end, easing );
+}
+jQuery.Tween = Tween;
 
-		ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret;
+Tween.prototype = {
+	constructor: Tween,
+	init: function( elem, options, prop, end, easing, unit ) {
+		this.elem = elem;
+		this.prop = prop;
+		this.easing = easing || "swing";
+		this.options = options;
+		this.start = this.now = this.cur();
+		this.end = end;
+		this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
+	},
+	cur: function() {
+		var hooks = Tween.propHooks[ this.prop ];
 
-		if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) {
-			ret = ret.reverse();
+		return hooks && hooks.get ?
+			hooks.get( this ) :
+			Tween.propHooks._default.get( this );
+	},
+	run: function( percent ) {
+		var eased,
+			hooks = Tween.propHooks[ this.prop ];
+
+		if ( this.options.duration ) {
+			this.pos = eased = jQuery.easing[ this.easing ](
+				percent, this.options.duration * percent, 0, 1, this.options.duration
+			);
+		} else {
+			this.pos = eased = percent;
 		}
+		this.now = ( this.end - this.start ) * eased + this.start;
 
-		return this.pushStack( ret, name, args.join(",") );
-	};
-});
+		if ( this.options.step ) {
+			this.options.step.call( this.elem, this.now, this );
+		}
 
-jQuery.extend({
-	filter: function( expr, elems, not ) {
-		if ( not ) {
-			expr = ":not(" + expr + ")";
+		if ( hooks && hooks.set ) {
+			hooks.set( this );
+		} else {
+			Tween.propHooks._default.set( this );
 		}
+		return this;
+	}
+};
 
-		return elems.length === 1 ?
-			jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] :
-			jQuery.find.matches(expr, elems);
-	},
+Tween.prototype.init.prototype = Tween.prototype;
 
-	dir: function( elem, dir, until ) {
-		var matched = [],
-			cur = elem[ dir ];
+Tween.propHooks = {
+	_default: {
+		get: function( tween ) {
+			var result;
 
-		while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {
-			if ( cur.nodeType === 1 ) {
-				matched.push( cur );
+			if ( tween.elem[ tween.prop ] != null &&
+				(!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) {
+				return tween.elem[ tween.prop ];
 			}
-			cur = cur[dir];
+
+			// passing an empty string as a 3rd parameter to .css will automatically
+			// attempt a parseFloat and fallback to a string if the parse fails
+			// so, simple values such as "10px" are parsed to Float.
+			// complex values such as "rotate(1rad)" are returned as is.
+			result = jQuery.css( tween.elem, tween.prop, "" );
+			// Empty strings, null, undefined and "auto" are converted to 0.
+			return !result || result === "auto" ? 0 : result;
+		},
+		set: function( tween ) {
+			// use step hook for back compat - use cssHook if its there - use .style if its
+			// available and use plain properties where available
+			if ( jQuery.fx.step[ tween.prop ] ) {
+				jQuery.fx.step[ tween.prop ]( tween );
+			} else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) {
+				jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
+			} else {
+				tween.elem[ tween.prop ] = tween.now;
+			}
 		}
-		return matched;
-	},
+	}
+};
 
-	nth: function( cur, result, dir, elem ) {
-		result = result || 1;
-		var num = 0;
+// Support: IE <=9
+// Panic based approach to setting things on disconnected nodes
 
-		for ( ; cur; cur = cur[dir] ) {
-			if ( cur.nodeType === 1 && ++num === result ) {
-				break;
-			}
+Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
+	set: function( tween ) {
+		if ( tween.elem.nodeType && tween.elem.parentNode ) {
+			tween.elem[ tween.prop ] = tween.now;
 		}
+	}
+};
 
-		return cur;
+jQuery.easing = {
+	linear: function( p ) {
+		return p;
 	},
+	swing: function( p ) {
+		return 0.5 - Math.cos( p * Math.PI ) / 2;
+	}
+};
 
-	sibling: function( n, elem ) {
-		var r = [];
+jQuery.fx = Tween.prototype.init;
 
-		for ( ; n; n = n.nextSibling ) {
-			if ( n.nodeType === 1 && n !== elem ) {
-				r.push( n );
-			}
-		}
+// Back Compat <1.8 extension point
+jQuery.fx.step = {};
 
-		return r;
-	}
-});
 
-// Implement the identical functionality for filter and not
-function winnow( elements, qualifier, keep ) {
 
-	// Can't pass null or undefined to indexOf in Firefox 4
-	// Set to 0 to skip string check
-	qualifier = qualifier || 0;
 
-	if ( jQuery.isFunction( qualifier ) ) {
-		return jQuery.grep(elements, function( elem, i ) {
-			var retVal = !!qualifier.call( elem, i, elem );
-			return retVal === keep;
-		});
+var
+	fxNow, timerId,
+	rfxtypes = /^(?:toggle|show|hide)$/,
+	rfxnum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ),
+	rrun = /queueHooks$/,
+	animationPrefilters = [ defaultPrefilter ],
+	tweeners = {
+		"*": [ function( prop, value ) {
+			var tween = this.createTween( prop, value ),
+				target = tween.cur(),
+				parts = rfxnum.exec( value ),
+				unit = parts && parts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
 
-	} else if ( qualifier.nodeType ) {
-		return jQuery.grep(elements, function( elem, i ) {
-			return (elem === qualifier) === keep;
-		});
+				// Starting value computation is required for potential unit mismatches
+				start = ( jQuery.cssNumber[ prop ] || unit !== "px" && +target ) &&
+					rfxnum.exec( jQuery.css( tween.elem, prop ) ),
+				scale = 1,
+				maxIterations = 20;
 
-	} else if ( typeof qualifier === "string" ) {
-		var filtered = jQuery.grep(elements, function( elem ) {
-			return elem.nodeType === 1;
-		});
+			if ( start && start[ 3 ] !== unit ) {
+				// Trust units reported by jQuery.css
+				unit = unit || start[ 3 ];
 
-		if ( isSimple.test( qualifier ) ) {
-			return jQuery.filter(qualifier, filtered, !keep);
-		} else {
-			qualifier = jQuery.filter( qualifier, filtered );
-		}
-	}
+				// Make sure we update the tween properties later on
+				parts = parts || [];
 
-	return jQuery.grep(elements, function( elem, i ) {
-		return (jQuery.inArray( elem, qualifier ) >= 0) === keep;
-	});
-}
+				// Iteratively approximate from a nonzero starting point
+				start = +target || 1;
 
+				do {
+					// If previous iteration zeroed out, double until we get *something*
+					// Use a string for doubling factor so we don't accidentally see scale as unchanged below
+					scale = scale || ".5";
 
+					// Adjust and apply
+					start = start / scale;
+					jQuery.style( tween.elem, prop, start + unit );
 
+				// Update scale, tolerating zero or NaN from tween.cur()
+				// And breaking the loop if scale is unchanged or perfect, or if we've just had enough
+				} while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations );
+			}
 
-var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g,
-	rleadingWhitespace = /^\s+/,
-	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,
-	rtagName = /<([\w:]+)/,
-	rtbody = /<tbody/i,
-	rhtml = /<|&#?\w+;/,
-	rnocache = /<(?:script|object|embed|option|style)/i,
-	// checked="checked" or checked
-	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
-	rscriptType = /\/(java|ecma)script/i,
-	rcleanScript = /^\s*<!(?:\[CDATA\[|\-\-)/,
-	wrapMap = {
-		option: [ 1, "<select multiple='multiple'>", "</select>" ],
-		legend: [ 1, "<fieldset>", "</fieldset>" ],
-		thead: [ 1, "<table>", "</table>" ],
-		tr: [ 2, "<table><tbody>", "</tbody></table>" ],
-		td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
-		col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ],
-		area: [ 1, "<map>", "</map>" ],
-		_default: [ 0, "", "" ]
+			// Update tween properties
+			if ( parts ) {
+				start = tween.start = +start || +target || 0;
+				tween.unit = unit;
+				// If a +=/-= token was provided, we're doing a relative animation
+				tween.end = parts[ 1 ] ?
+					start + ( parts[ 1 ] + 1 ) * parts[ 2 ] :
+					+parts[ 2 ];
+			}
+
+			return tween;
+		} ]
 	};
 
-wrapMap.optgroup = wrapMap.option;
-wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
-wrapMap.th = wrapMap.td;
-
-// IE can't serialize <link> and <script> tags normally
-if ( !jQuery.support.htmlSerialize ) {
-	wrapMap._default = [ 1, "div<div>", "</div>" ];
+// Animations created synchronously will run synchronously
+function createFxNow() {
+	setTimeout(function() {
+		fxNow = undefined;
+	});
+	return ( fxNow = jQuery.now() );
 }
 
-jQuery.fn.extend({
-	text: function( text ) {
-		if ( jQuery.isFunction(text) ) {
-			return this.each(function(i) {
-				var self = jQuery( this );
+// Generate parameters to create a standard animation
+function genFx( type, includeWidth ) {
+	var which,
+		attrs = { height: type },
+		i = 0;
 
-				self.text( text.call(this, i, self.text()) );
-			});
-		}
+	// if we include width, step value is 1 to do all cssExpand values,
+	// if we don't include width, step value is 2 to skip over Left and Right
+	includeWidth = includeWidth ? 1 : 0;
+	for ( ; i < 4 ; i += 2 - includeWidth ) {
+		which = cssExpand[ i ];
+		attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
+	}
 
-		if ( typeof text !== "object" && text !== undefined ) {
-			return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) );
-		}
+	if ( includeWidth ) {
+		attrs.opacity = attrs.width = type;
+	}
 
-		return jQuery.text( this );
-	},
+	return attrs;
+}
 
-	wrapAll: function( html ) {
-		if ( jQuery.isFunction( html ) ) {
-			return this.each(function(i) {
-				jQuery(this).wrapAll( html.call(this, i) );
-			});
+function createTween( value, prop, animation ) {
+	var tween,
+		collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ),
+		index = 0,
+		length = collection.length;
+	for ( ; index < length; index++ ) {
+		if ( (tween = collection[ index ].call( animation, prop, value )) ) {
+
+			// we're done with this property
+			return tween;
 		}
+	}
+}
 
-		if ( this[0] ) {
-			// The elements to wrap the target around
-			var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true);
+function defaultPrefilter( elem, props, opts ) {
+	/* jshint validthis: true */
+	var prop, value, toggle, tween, hooks, oldfire, display, dDisplay,
+		anim = this,
+		orig = {},
+		style = elem.style,
+		hidden = elem.nodeType && isHidden( elem ),
+		dataShow = jQuery._data( elem, "fxshow" );
 
-			if ( this[0].parentNode ) {
-				wrap.insertBefore( this[0] );
-			}
+	// handle queue: false promises
+	if ( !opts.queue ) {
+		hooks = jQuery._queueHooks( elem, "fx" );
+		if ( hooks.unqueued == null ) {
+			hooks.unqueued = 0;
+			oldfire = hooks.empty.fire;
+			hooks.empty.fire = function() {
+				if ( !hooks.unqueued ) {
+					oldfire();
+				}
+			};
+		}
+		hooks.unqueued++;
 
-			wrap.map(function() {
-				var elem = this;
-
-				while ( elem.firstChild && elem.firstChild.nodeType === 1 ) {
-					elem = elem.firstChild;
+		anim.always(function() {
+			// doing this makes sure that the complete handler will be called
+			// before this completes
+			anim.always(function() {
+				hooks.unqueued--;
+				if ( !jQuery.queue( elem, "fx" ).length ) {
+					hooks.empty.fire();
 				}
+			});
+		});
+	}
 
-				return elem;
-			}).append( this );
+	// height/width overflow pass
+	if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) {
+		// Make sure that nothing sneaks out
+		// Record all 3 overflow attributes because IE does not
+		// change the overflow attribute when overflowX and
+		// overflowY are set to the same value
+		opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
+
+		// Set display property to inline-block for height/width
+		// animations on inline elements that are having width/height animated
+		display = jQuery.css( elem, "display" );
+		dDisplay = defaultDisplay( elem.nodeName );
+		if ( display === "none" ) {
+			display = dDisplay;
 		}
+		if ( display === "inline" &&
+				jQuery.css( elem, "float" ) === "none" ) {
 
-		return this;
-	},
+			// inline-level elements accept inline-block;
+			// block-level elements need to be inline with layout
+			if ( !support.inlineBlockNeedsLayout || dDisplay === "inline" ) {
+				style.display = "inline-block";
+			} else {
+				style.zoom = 1;
+			}
+		}
+	}
 
-	wrapInner: function( html ) {
-		if ( jQuery.isFunction( html ) ) {
-			return this.each(function(i) {
-				jQuery(this).wrapInner( html.call(this, i) );
+	if ( opts.overflow ) {
+		style.overflow = "hidden";
+		if ( !support.shrinkWrapBlocks() ) {
+			anim.always(function() {
+				style.overflow = opts.overflow[ 0 ];
+				style.overflowX = opts.overflow[ 1 ];
+				style.overflowY = opts.overflow[ 2 ];
 			});
 		}
+	}
 
-		return this.each(function() {
-			var self = jQuery( this ),
-				contents = self.contents();
+	// show/hide pass
+	for ( prop in props ) {
+		value = props[ prop ];
+		if ( rfxtypes.exec( value ) ) {
+			delete props[ prop ];
+			toggle = toggle || value === "toggle";
+			if ( value === ( hidden ? "hide" : "show" ) ) {
 
-			if ( contents.length ) {
-				contents.wrapAll( html );
-
-			} else {
-				self.append( html );
+				// If there is dataShow left over from a stopped hide or show and we are going to proceed with show, we should pretend to be hidden
+				if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
+					hidden = true;
+				} else {
+					continue;
+				}
 			}
-		});
-	},
+			orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
+		}
+	}
 
-	wrap: function( html ) {
-		return this.each(function() {
-			jQuery( this ).wrapAll( html );
-		});
-	},
-
-	unwrap: function() {
-		return this.parent().each(function() {
-			if ( !jQuery.nodeName( this, "body" ) ) {
-				jQuery( this ).replaceWith( this.childNodes );
+	if ( !jQuery.isEmptyObject( orig ) ) {
+		if ( dataShow ) {
+			if ( "hidden" in dataShow ) {
+				hidden = dataShow.hidden;
 			}
-		}).end();
-	},
+		} else {
+			dataShow = jQuery._data( elem, "fxshow", {} );
+		}
 
-	append: function() {
-		return this.domManip(arguments, true, function( elem ) {
-			if ( this.nodeType === 1 ) {
-				this.appendChild( elem );
+		// store state if its toggle - enables .stop().toggle() to "reverse"
+		if ( toggle ) {
+			dataShow.hidden = !hidden;
+		}
+		if ( hidden ) {
+			jQuery( elem ).show();
+		} else {
+			anim.done(function() {
+				jQuery( elem ).hide();
+			});
+		}
+		anim.done(function() {
+			var prop;
+			jQuery._removeData( elem, "fxshow" );
+			for ( prop in orig ) {
+				jQuery.style( elem, prop, orig[ prop ] );
 			}
 		});
-	},
+		for ( prop in orig ) {
+			tween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
 
-	prepend: function() {
-		return this.domManip(arguments, true, function( elem ) {
-			if ( this.nodeType === 1 ) {
-				this.insertBefore( elem, this.firstChild );
+			if ( !( prop in dataShow ) ) {
+				dataShow[ prop ] = tween.start;
+				if ( hidden ) {
+					tween.end = tween.start;
+					tween.start = prop === "width" || prop === "height" ? 1 : 0;
+				}
 			}
-		});
-	},
+		}
+	}
+}
 
-	before: function() {
-		if ( this[0] && this[0].parentNode ) {
-			return this.domManip(arguments, false, function( elem ) {
-				this.parentNode.insertBefore( elem, this );
-			});
-		} else if ( arguments.length ) {
-			var set = jQuery(arguments[0]);
-			set.push.apply( set, this.toArray() );
-			return this.pushStack( set, "before", arguments );
+function propFilter( props, specialEasing ) {
+	var index, name, easing, value, hooks;
+
+	// camelCase, specialEasing and expand cssHook pass
+	for ( index in props ) {
+		name = jQuery.camelCase( index );
+		easing = specialEasing[ name ];
+		value = props[ index ];
+		if ( jQuery.isArray( value ) ) {
+			easing = value[ 1 ];
+			value = props[ index ] = value[ 0 ];
 		}
-	},
 
-	after: function() {
-		if ( this[0] && this[0].parentNode ) {
-			return this.domManip(arguments, false, function( elem ) {
-				this.parentNode.insertBefore( elem, this.nextSibling );
-			});
-		} else if ( arguments.length ) {
-			var set = this.pushStack( this, "after", arguments );
-			set.push.apply( set, jQuery(arguments[0]).toArray() );
-			return set;
+		if ( index !== name ) {
+			props[ name ] = value;
+			delete props[ index ];
 		}
-	},
 
-	// keepData is for internal use only--do not document
-	remove: function( selector, keepData ) {
-		for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
-			if ( !selector || jQuery.filter( selector, [ elem ] ).length ) {
-				if ( !keepData && elem.nodeType === 1 ) {
-					jQuery.cleanData( elem.getElementsByTagName("*") );
-					jQuery.cleanData( [ elem ] );
-				}
+		hooks = jQuery.cssHooks[ name ];
+		if ( hooks && "expand" in hooks ) {
+			value = hooks.expand( value );
+			delete props[ name ];
 
-				if ( elem.parentNode ) {
-					elem.parentNode.removeChild( elem );
+			// not quite $.extend, this wont overwrite keys already present.
+			// also - reusing 'index' from above because we have the correct "name"
+			for ( index in value ) {
+				if ( !( index in props ) ) {
+					props[ index ] = value[ index ];
+					specialEasing[ index ] = easing;
 				}
 			}
+		} else {
+			specialEasing[ name ] = easing;
 		}
+	}
+}
 
-		return this;
-	},
+function Animation( elem, properties, options ) {
+	var result,
+		stopped,
+		index = 0,
+		length = animationPrefilters.length,
+		deferred = jQuery.Deferred().always( function() {
+			// don't match elem in the :animated selector
+			delete tick.elem;
+		}),
+		tick = function() {
+			if ( stopped ) {
+				return false;
+			}
+			var currentTime = fxNow || createFxNow(),
+				remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
+				// archaic crash bug won't allow us to use 1 - ( 0.5 || 0 ) (#12497)
+				temp = remaining / animation.duration || 0,
+				percent = 1 - temp,
+				index = 0,
+				length = animation.tweens.length;
 
-	empty: function() {
-		for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
-			// Remove element nodes and prevent memory leaks
-			if ( elem.nodeType === 1 ) {
-				jQuery.cleanData( elem.getElementsByTagName("*") );
+			for ( ; index < length ; index++ ) {
+				animation.tweens[ index ].run( percent );
 			}
 
-			// Remove any remaining nodes
-			while ( elem.firstChild ) {
-				elem.removeChild( elem.firstChild );
+			deferred.notifyWith( elem, [ animation, percent, remaining ]);
+
+			if ( percent < 1 && length ) {
+				return remaining;
+			} else {
+				deferred.resolveWith( elem, [ animation ] );
+				return false;
 			}
-		}
+		},
+		animation = deferred.promise({
+			elem: elem,
+			props: jQuery.extend( {}, properties ),
+			opts: jQuery.extend( true, { specialEasing: {} }, options ),
+			originalProperties: properties,
+			originalOptions: options,
+			startTime: fxNow || createFxNow(),
+			duration: options.duration,
+			tweens: [],
+			createTween: function( prop, end ) {
+				var tween = jQuery.Tween( elem, animation.opts, prop, end,
+						animation.opts.specialEasing[ prop ] || animation.opts.easing );
+				animation.tweens.push( tween );
+				return tween;
+			},
+			stop: function( gotoEnd ) {
+				var index = 0,
+					// if we are going to the end, we want to run all the tweens
+					// otherwise we skip this part
+					length = gotoEnd ? animation.tweens.length : 0;
+				if ( stopped ) {
+					return this;
+				}
+				stopped = true;
+				for ( ; index < length ; index++ ) {
+					animation.tweens[ index ].run( 1 );
+				}
 
-		return this;
-	},
+				// resolve when we played the last frame
+				// otherwise, reject
+				if ( gotoEnd ) {
+					deferred.resolveWith( elem, [ animation, gotoEnd ] );
+				} else {
+					deferred.rejectWith( elem, [ animation, gotoEnd ] );
+				}
+				return this;
+			}
+		}),
+		props = animation.props;
 
-	clone: function( dataAndEvents, deepDataAndEvents ) {
-		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
-		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
+	propFilter( props, animation.opts.specialEasing );
 
-		return this.map( function () {
-			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
-		});
-	},
+	for ( ; index < length ; index++ ) {
+		result = animationPrefilters[ index ].call( animation, elem, props, animation.opts );
+		if ( result ) {
+			return result;
+		}
+	}
 
-	html: function( value ) {
-		if ( value === undefined ) {
-			return this[0] && this[0].nodeType === 1 ?
-				this[0].innerHTML.replace(rinlinejQuery, "") :
-				null;
+	jQuery.map( props, createTween, animation );
 
-		// See if we can take a shortcut and just use innerHTML
-		} else if ( typeof value === "string" && !rnocache.test( value ) &&
-			(jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value )) &&
-			!wrapMap[ (rtagName.exec( value ) || ["", ""])[1].toLowerCase() ] ) {
+	if ( jQuery.isFunction( animation.opts.start ) ) {
+		animation.opts.start.call( elem, animation );
+	}
 
-			value = value.replace(rxhtmlTag, "<$1></$2>");
+	jQuery.fx.timer(
+		jQuery.extend( tick, {
+			elem: elem,
+			anim: animation,
+			queue: animation.opts.queue
+		})
+	);
 
-			try {
-				for ( var i = 0, l = this.length; i < l; i++ ) {
-					// Remove element nodes and prevent memory leaks
-					if ( this[i].nodeType === 1 ) {
-						jQuery.cleanData( this[i].getElementsByTagName("*") );
-						this[i].innerHTML = value;
-					}
-				}
+	// attach callbacks from options
+	return animation.progress( animation.opts.progress )
+		.done( animation.opts.done, animation.opts.complete )
+		.fail( animation.opts.fail )
+		.always( animation.opts.always );
+}
 
-			// If using innerHTML throws an exception, use the fallback method
-			} catch(e) {
-				this.empty().append( value );
-			}
+jQuery.Animation = jQuery.extend( Animation, {
+	tweener: function( props, callback ) {
+		if ( jQuery.isFunction( props ) ) {
+			callback = props;
+			props = [ "*" ];
+		} else {
+			props = props.split(" ");
+		}
 
-		} else if ( jQuery.isFunction( value ) ) {
-			this.each(function(i){
-				var self = jQuery( this );
+		var prop,
+			index = 0,
+			length = props.length;
 
-				self.html( value.call(this, i, self.html()) );
-			});
+		for ( ; index < length ; index++ ) {
+			prop = props[ index ];
+			tweeners[ prop ] = tweeners[ prop ] || [];
+			tweeners[ prop ].unshift( callback );
+		}
+	},
 
+	prefilter: function( callback, prepend ) {
+		if ( prepend ) {
+			animationPrefilters.unshift( callback );
 		} else {
-			this.empty().append( value );
+			animationPrefilters.push( callback );
 		}
+	}
+});
 
-		return this;
-	},
+jQuery.speed = function( speed, easing, fn ) {
+	var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
+		complete: fn || !fn && easing ||
+			jQuery.isFunction( speed ) && speed,
+		duration: speed,
+		easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
+	};
 
-	replaceWith: function( value ) {
-		if ( this[0] && this[0].parentNode ) {
-			// Make sure that the elements are removed from the DOM before they are inserted
-			// this can help fix replacing a parent with child elements
-			if ( jQuery.isFunction( value ) ) {
-				return this.each(function(i) {
-					var self = jQuery(this), old = self.html();
-					self.replaceWith( value.call( this, i, old ) );
-				});
-			}
+	opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
+		opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;
 
-			if ( typeof value !== "string" ) {
-				value = jQuery( value ).detach();
-			}
+	// normalize opt.queue - true/undefined/null -> "fx"
+	if ( opt.queue == null || opt.queue === true ) {
+		opt.queue = "fx";
+	}
 
-			return this.each(function() {
-				var next = this.nextSibling,
-					parent = this.parentNode;
+	// Queueing
+	opt.old = opt.complete;
 
-				jQuery( this ).remove();
+	opt.complete = function() {
+		if ( jQuery.isFunction( opt.old ) ) {
+			opt.old.call( this );
+		}
 
-				if ( next ) {
-					jQuery(next).before( value );
-				} else {
-					jQuery(parent).append( value );
-				}
-			});
-		} else {
-			return this.length ?
-				this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value ) :
-				this;
+		if ( opt.queue ) {
+			jQuery.dequeue( this, opt.queue );
 		}
-	},
+	};
 
-	detach: function( selector ) {
-		return this.remove( selector, true );
+	return opt;
+};
+
+jQuery.fn.extend({
+	fadeTo: function( speed, to, easing, callback ) {
+
+		// show any hidden elements after setting opacity to 0
+		return this.filter( isHidden ).css( "opacity", 0 ).show()
+
+			// animate to the value specified
+			.end().animate({ opacity: to }, speed, easing, callback );
 	},
+	animate: function( prop, speed, easing, callback ) {
+		var empty = jQuery.isEmptyObject( prop ),
+			optall = jQuery.speed( speed, easing, callback ),
+			doAnimation = function() {
+				// Operate on a copy of prop so per-property easing won't be lost
+				var anim = Animation( this, jQuery.extend( {}, prop ), optall );
 
-	domManip: function( args, table, callback ) {
-		var results, first, fragment, parent,
-			value = args[0],
-			scripts = [];
+				// Empty animations, or finishing resolves immediately
+				if ( empty || jQuery._data( this, "finish" ) ) {
+					anim.stop( true );
+				}
+			};
+			doAnimation.finish = doAnimation;
 
-		// We can't cloneNode fragments that contain checked, in WebKit
-		if ( !jQuery.support.checkClone && arguments.length === 3 && typeof value === "string" && rchecked.test( value ) ) {
-			return this.each(function() {
-				jQuery(this).domManip( args, table, callback, true );
-			});
-		}
+		return empty || optall.queue === false ?
+			this.each( doAnimation ) :
+			this.queue( optall.queue, doAnimation );
+	},
+	stop: function( type, clearQueue, gotoEnd ) {
+		var stopQueue = function( hooks ) {
+			var stop = hooks.stop;
+			delete hooks.stop;
+			stop( gotoEnd );
+		};
 
-		if ( jQuery.isFunction(value) ) {
-			return this.each(function(i) {
-				var self = jQuery(this);
-				args[0] = value.call(this, i, table ? self.html() : undefined);
-				self.domManip( args, table, callback );
-			});
+		if ( typeof type !== "string" ) {
+			gotoEnd = clearQueue;
+			clearQueue = type;
+			type = undefined;
 		}
+		if ( clearQueue && type !== false ) {
+			this.queue( type || "fx", [] );
+		}
 
-		if ( this[0] ) {
-			parent = value && value.parentNode;
+		return this.each(function() {
+			var dequeue = true,
+				index = type != null && type + "queueHooks",
+				timers = jQuery.timers,
+				data = jQuery._data( this );
 
-			// If we're in a fragment, just use that instead of building a new one
-			if ( jQuery.support.parentNode && parent && parent.nodeType === 11 && parent.childNodes.length === this.length ) {
-				results = { fragment: parent };
-
+			if ( index ) {
+				if ( data[ index ] && data[ index ].stop ) {
+					stopQueue( data[ index ] );
+				}
 			} else {
-				results = jQuery.buildFragment( args, this, scripts );
+				for ( index in data ) {
+					if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
+						stopQueue( data[ index ] );
+					}
+				}
 			}
 
-			fragment = results.fragment;
+			for ( index = timers.length; index--; ) {
+				if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) {
+					timers[ index ].anim.stop( gotoEnd );
+					dequeue = false;
+					timers.splice( index, 1 );
+				}
+			}
 
-			if ( fragment.childNodes.length === 1 ) {
-				first = fragment = fragment.firstChild;
-			} else {
-				first = fragment.firstChild;
+			// start the next in the queue if the last step wasn't forced
+			// timers currently will call their complete callbacks, which will dequeue
+			// but only if they were gotoEnd
+			if ( dequeue || !gotoEnd ) {
+				jQuery.dequeue( this, type );
 			}
+		});
+	},
+	finish: function( type ) {
+		if ( type !== false ) {
+			type = type || "fx";
+		}
+		return this.each(function() {
+			var index,
+				data = jQuery._data( this ),
+				queue = data[ type + "queue" ],
+				hooks = data[ type + "queueHooks" ],
+				timers = jQuery.timers,
+				length = queue ? queue.length : 0;
 
-			if ( first ) {
-				table = table && jQuery.nodeName( first, "tr" );
+			// enable finishing flag on private data
+			data.finish = true;
 
-				for ( var i = 0, l = this.length, lastIndex = l - 1; i < l; i++ ) {
-					callback.call(
-						table ?
-							root(this[i], first) :
-							this[i],
-						// Make sure that we do not leak memory by inadvertently discarding
-						// the original fragment (which might have attached data) instead of
-						// using it; in addition, use the original fragment object for the last
-						// item instead of first because it can end up being emptied incorrectly
-						// in certain situations (Bug #8070).
-						// Fragments from the fragment cache must always be cloned and never used
-						// in place.
-						results.cacheable || (l > 1 && i < lastIndex) ?
-							jQuery.clone( fragment, true, true ) :
-							fragment
-					);
+			// empty the queue first
+			jQuery.queue( this, type, [] );
+
+			if ( hooks && hooks.stop ) {
+				hooks.stop.call( this, true );
+			}
+
+			// look for any active animations, and finish them
+			for ( index = timers.length; index--; ) {
+				if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
+					timers[ index ].anim.stop( true );
+					timers.splice( index, 1 );
 				}
 			}
 
-			if ( scripts.length ) {
-				jQuery.each( scripts, evalScript );
+			// look for any animations in the old queue and finish them
+			for ( index = 0; index < length; index++ ) {
+				if ( queue[ index ] && queue[ index ].finish ) {
+					queue[ index ].finish.call( this );
+				}
 			}
-		}
 
-		return this;
+			// turn off finishing flag
+			delete data.finish;
+		});
 	}
 });
 
-function root( elem, cur ) {
-	return jQuery.nodeName(elem, "table") ?
-		(elem.getElementsByTagName("tbody")[0] ||
-		elem.appendChild(elem.ownerDocument.createElement("tbody"))) :
-		elem;
-}
+jQuery.each([ "toggle", "show", "hide" ], function( i, name ) {
+	var cssFn = jQuery.fn[ name ];
+	jQuery.fn[ name ] = function( speed, easing, callback ) {
+		return speed == null || typeof speed === "boolean" ?
+			cssFn.apply( this, arguments ) :
+			this.animate( genFx( name, true ), speed, easing, callback );
+	};
+});
 
-function cloneCopyEvent( src, dest ) {
+// Generate shortcuts for custom animations
+jQuery.each({
+	slideDown: genFx("show"),
+	slideUp: genFx("hide"),
+	slideToggle: genFx("toggle"),
+	fadeIn: { opacity: "show" },
+	fadeOut: { opacity: "hide" },
+	fadeToggle: { opacity: "toggle" }
+}, function( name, props ) {
+	jQuery.fn[ name ] = function( speed, easing, callback ) {
+		return this.animate( props, speed, easing, callback );
+	};
+});
 
-	if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {
-		return;
-	}
+jQuery.timers = [];
+jQuery.fx.tick = function() {
+	var timer,
+		timers = jQuery.timers,
+		i = 0;
 
-	var internalKey = jQuery.expando,
-		oldData = jQuery.data( src ),
-		curData = jQuery.data( dest, oldData );
+	fxNow = jQuery.now();
 
-	// Switch to use the internal data object, if it exists, for the next
-	// stage of data copying
-	if ( (oldData = oldData[ internalKey ]) ) {
-		var events = oldData.events;
-				curData = curData[ internalKey ] = jQuery.extend({}, oldData);
-
-		if ( events ) {
-			delete curData.handle;
-			curData.events = {};
-
-			for ( var type in events ) {
-				for ( var i = 0, l = events[ type ].length; i < l; i++ ) {
-					jQuery.event.add( dest, type + ( events[ type ][ i ].namespace ? "." : "" ) + events[ type ][ i ].namespace, events[ type ][ i ], events[ type ][ i ].data );
-				}
-			}
+	for ( ; i < timers.length; i++ ) {
+		timer = timers[ i ];
+		// Checks the timer has not already been removed
+		if ( !timer() && timers[ i ] === timer ) {
+			timers.splice( i--, 1 );
 		}
 	}
-}
 
-function cloneFixAttributes( src, dest ) {
-	var nodeName;
-
-	// We do not need to do anything for non-Elements
-	if ( dest.nodeType !== 1 ) {
-		return;
+	if ( !timers.length ) {
+		jQuery.fx.stop();
 	}
+	fxNow = undefined;
+};
 
-	// clearAttributes removes the attributes, which we don't want,
-	// but also removes the attachEvent events, which we *do* want
-	if ( dest.clearAttributes ) {
-		dest.clearAttributes();
+jQuery.fx.timer = function( timer ) {
+	jQuery.timers.push( timer );
+	if ( timer() ) {
+		jQuery.fx.start();
+	} else {
+		jQuery.timers.pop();
 	}
+};
 
-	// mergeAttributes, in contrast, only merges back on the
-	// original attributes, not the events
-	if ( dest.mergeAttributes ) {
-		dest.mergeAttributes( src );
+jQuery.fx.interval = 13;
+
+jQuery.fx.start = function() {
+	if ( !timerId ) {
+		timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval );
 	}
+};
 
-	nodeName = dest.nodeName.toLowerCase();
+jQuery.fx.stop = function() {
+	clearInterval( timerId );
+	timerId = null;
+};
 
-	// IE6-8 fail to clone children inside object elements that use
-	// the proprietary classid attribute value (rather than the type
-	// attribute) to identify the type of content to display
-	if ( nodeName === "object" ) {
-		dest.outerHTML = src.outerHTML;
+jQuery.fx.speeds = {
+	slow: 600,
+	fast: 200,
+	// Default speed
+	_default: 400
+};
 
-	} else if ( nodeName === "input" && (src.type === "checkbox" || src.type === "radio") ) {
-		// IE6-8 fails to persist the checked state of a cloned checkbox
-		// or radio button. Worse, IE6-7 fail to give the cloned element
-		// a checked appearance if the defaultChecked value isn't also set
-		if ( src.checked ) {
-			dest.defaultChecked = dest.checked = src.checked;
-		}
 
-		// IE6-7 get confused and end up setting the value of a cloned
-		// checkbox/radio button to an empty string instead of "on"
-		if ( dest.value !== src.value ) {
-			dest.value = src.value;
-		}
+// Based off of the plugin by Clint Helfers, with permission.
+// http://blindsignals.com/index.php/2009/07/jquery-delay/
+jQuery.fn.delay = function( time, type ) {
+	time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
+	type = type || "fx";
 
-	// IE6-8 fails to return the selected option to the default selected
-	// state when cloning options
-	} else if ( nodeName === "option" ) {
-		dest.selected = src.defaultSelected;
+	return this.queue( type, function( next, hooks ) {
+		var timeout = setTimeout( next, time );
+		hooks.stop = function() {
+			clearTimeout( timeout );
+		};
+	});
+};
 
-	// IE6-8 fails to set the defaultValue to the correct value when
-	// cloning other types of input fields
-	} else if ( nodeName === "input" || nodeName === "textarea" ) {
-		dest.defaultValue = src.defaultValue;
-	}
 
-	// Event data gets referenced instead of copied if the expando
-	// gets copied too
-	dest.removeAttribute( jQuery.expando );
-}
+(function() {
+	var a, input, select, opt,
+		div = document.createElement("div" );
 
-jQuery.buildFragment = function( args, nodes, scripts ) {
-	var fragment, cacheable, cacheresults,
-		doc = (nodes && nodes[0] ? nodes[0].ownerDocument || nodes[0] : document);
+	// Setup
+	div.setAttribute( "className", "t" );
+	div.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";
+	a = div.getElementsByTagName("a")[ 0 ];
 
-	// Only cache "small" (1/2 KB) HTML strings that are associated with the main document
-	// Cloning options loses the selected state, so don't cache them
-	// IE 6 doesn't like it when you put <object> or <embed> elements in a fragment
-	// Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache
-	if ( args.length === 1 && typeof args[0] === "string" && args[0].length < 512 && doc === document &&
-		args[0].charAt(0) === "<" && !rnocache.test( args[0] ) && (jQuery.support.checkClone || !rchecked.test( args[0] )) ) {
+	// First batch of tests.
+	select = document.createElement("select");
+	opt = select.appendChild( document.createElement("option") );
+	input = div.getElementsByTagName("input")[ 0 ];
 
-		cacheable = true;
+	a.style.cssText = "top:1px";
 
-		cacheresults = jQuery.fragments[ args[0] ];
-		if ( cacheresults && cacheresults !== 1 ) {
-			fragment = cacheresults;
-		}
-	}
+	// Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)
+	support.getSetAttribute = div.className !== "t";
 
-	if ( !fragment ) {
-		fragment = doc.createDocumentFragment();
-		jQuery.clean( args, doc, fragment, scripts );
-	}
+	// Get the style information from getAttribute
+	// (IE uses .cssText instead)
+	support.style = /top/.test( a.getAttribute("style") );
 
-	if ( cacheable ) {
-		jQuery.fragments[ args[0] ] = cacheresults ? fragment : 1;
-	}
+	// Make sure that URLs aren't manipulated
+	// (IE normalizes it by default)
+	support.hrefNormalized = a.getAttribute("href") === "/a";
 
-	return { fragment: fragment, cacheable: cacheable };
-};
+	// Check the default checkbox/radio value ("" on WebKit; "on" elsewhere)
+	support.checkOn = !!input.value;
 
-jQuery.fragments = {};
+	// Make sure that a selected-by-default option has a working selected property.
+	// (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
+	support.optSelected = opt.selected;
 
-jQuery.each({
-	appendTo: "append",
-	prependTo: "prepend",
-	insertBefore: "before",
-	insertAfter: "after",
-	replaceAll: "replaceWith"
-}, function( name, original ) {
-	jQuery.fn[ name ] = function( selector ) {
-		var ret = [],
-			insert = jQuery( selector ),
-			parent = this.length === 1 && this[0].parentNode;
+	// Tests for enctype support on a form (#6743)
+	support.enctype = !!document.createElement("form").enctype;
 
-		if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) {
-			insert[ original ]( this[0] );
-			return this;
+	// Make sure that the options inside disabled selects aren't marked as disabled
+	// (WebKit marks them as disabled)
+	select.disabled = true;
+	support.optDisabled = !opt.disabled;
 
-		} else {
-			for ( var i = 0, l = insert.length; i < l; i++ ) {
-				var elems = (i > 0 ? this.clone(true) : this).get();
-				jQuery( insert[i] )[ original ]( elems );
-				ret = ret.concat( elems );
-			}
+	// Support: IE8 only
+	// Check if we can trust getAttribute("value")
+	input = document.createElement( "input" );
+	input.setAttribute( "value", "" );
+	support.input = input.getAttribute( "value" ) === "";
 
-			return this.pushStack( ret, name, insert.selector );
-		}
-	};
-});
+	// Check if an input maintains its value after becoming a radio
+	input.value = "t";
+	input.setAttribute( "type", "radio" );
+	support.radioValue = input.value === "t";
 
-function getAll( elem ) {
-	if ( "getElementsByTagName" in elem ) {
-		return elem.getElementsByTagName( "*" );
+	// Null elements to avoid leaks in IE.
+	a = input = select = opt = div = null;
+})();
 
-	} else if ( "querySelectorAll" in elem ) {
-		return elem.querySelectorAll( "*" );
 
-	} else {
-		return [];
-	}
-}
+var rreturn = /\r/g;
 
-// Used in clean, fixes the defaultChecked property
-function fixDefaultChecked( elem ) {
-	if ( elem.type === "checkbox" || elem.type === "radio" ) {
-		elem.defaultChecked = elem.checked;
-	}
-}
-// Finds all inputs and passes them to fixDefaultChecked
-function findInputs( elem ) {
-	if ( jQuery.nodeName( elem, "input" ) ) {
-		fixDefaultChecked( elem );
-	} else if ( elem.getElementsByTagName ) {
-		jQuery.grep( elem.getElementsByTagName("input"), fixDefaultChecked );
-	}
-}
+jQuery.fn.extend({
+	val: function( value ) {
+		var hooks, ret, isFunction,
+			elem = this[0];
 
-jQuery.extend({
-	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
-		var clone = elem.cloneNode(true),
-				srcElements,
-				destElements,
-				i;
+		if ( !arguments.length ) {
+			if ( elem ) {
+				hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ];
 
-		if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) &&
-				(elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {
-			// IE copies events bound via attachEvent when using cloneNode.
-			// Calling detachEvent on the clone will also remove the events
-			// from the original. In order to get around this, we use some
-			// proprietary methods to clear the events. Thanks to MooTools
-			// guys for this hotness.
+				if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {
+					return ret;
+				}
 
-			cloneFixAttributes( elem, clone );
+				ret = elem.value;
 
-			// Using Sizzle here is crazy slow, so we use getElementsByTagName
-			// instead
-			srcElements = getAll( elem );
-			destElements = getAll( clone );
-
-			// Weird iteration because IE will replace the length property
-			// with an element if you are cloning the body and one of the
-			// elements on the page has a name or id of "length"
-			for ( i = 0; srcElements[i]; ++i ) {
-				cloneFixAttributes( srcElements[i], destElements[i] );
+				return typeof ret === "string" ?
+					// handle most common string cases
+					ret.replace(rreturn, "") :
+					// handle cases where value is null/undef or number
+					ret == null ? "" : ret;
 			}
+
+			return;
 		}
 
-		// Copy the events from the original to the clone
-		if ( dataAndEvents ) {
-			cloneCopyEvent( elem, clone );
+		isFunction = jQuery.isFunction( value );
 
-			if ( deepDataAndEvents ) {
-				srcElements = getAll( elem );
-				destElements = getAll( clone );
+		return this.each(function( i ) {
+			var val;
 
-				for ( i = 0; srcElements[i]; ++i ) {
-					cloneCopyEvent( srcElements[i], destElements[i] );
-				}
+			if ( this.nodeType !== 1 ) {
+				return;
 			}
-		}
 
-		// Return the cloned set
-		return clone;
-	},
+			if ( isFunction ) {
+				val = value.call( this, i, jQuery( this ).val() );
+			} else {
+				val = value;
+			}
 
-	clean: function( elems, context, fragment, scripts ) {
-		var checkScriptType;
+			// Treat null/undefined as ""; convert numbers to string
+			if ( val == null ) {
+				val = "";
+			} else if ( typeof val === "number" ) {
+				val += "";
+			} else if ( jQuery.isArray( val ) ) {
+				val = jQuery.map( val, function( value ) {
+					return value == null ? "" : value + "";
+				});
+			}
 
-		context = context || document;
+			hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
 
-		// !context.createElement fails in IE with an error but returns typeof 'object'
-		if ( typeof context.createElement === "undefined" ) {
-			context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
-		}
-
-		var ret = [], j;
-
-		for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
-			if ( typeof elem === "number" ) {
-				elem += "";
+			// If set returns undefined, fall back to normal setting
+			if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) {
+				this.value = val;
 			}
+		});
+	}
+});
 
-			if ( !elem ) {
-				continue;
+jQuery.extend({
+	valHooks: {
+		option: {
+			get: function( elem ) {
+				var val = jQuery.find.attr( elem, "value" );
+				return val != null ?
+					val :
+					jQuery.text( elem );
 			}
+		},
+		select: {
+			get: function( elem ) {
+				var value, option,
+					options = elem.options,
+					index = elem.selectedIndex,
+					one = elem.type === "select-one" || index < 0,
+					values = one ? null : [],
+					max = one ? index + 1 : options.length,
+					i = index < 0 ?
+						max :
+						one ? index : 0;
 
-			// Convert html string into DOM nodes
-			if ( typeof elem === "string" ) {
-				if ( !rhtml.test( elem ) ) {
-					elem = context.createTextNode( elem );
-				} else {
-					// Fix "XHTML"-style tags in all browsers
-					elem = elem.replace(rxhtmlTag, "<$1></$2>");
+				// Loop through all the selected options
+				for ( ; i < max; i++ ) {
+					option = options[ i ];
 
-					// Trim whitespace, otherwise indexOf won't work as expected
-					var tag = (rtagName.exec( elem ) || ["", ""])[1].toLowerCase(),
-						wrap = wrapMap[ tag ] || wrapMap._default,
-						depth = wrap[0],
-						div = context.createElement("div");
+					// oldIE doesn't update selected after form reset (#2551)
+					if ( ( option.selected || i === index ) &&
+							// Don't return options that are disabled or in a disabled optgroup
+							( support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) &&
+							( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) {
 
-					// Go to html and back, then peel off extra wrappers
-					div.innerHTML = wrap[1] + elem + wrap[2];
+						// Get the specific value for the option
+						value = jQuery( option ).val();
 
-					// Move to the right depth
-					while ( depth-- ) {
-						div = div.lastChild;
+						// We don't need an array for one selects
+						if ( one ) {
+							return value;
+						}
+
+						// Multi-Selects return an array
+						values.push( value );
 					}
+				}
 
-					// Remove IE's autoinserted <tbody> from table fragments
-					if ( !jQuery.support.tbody ) {
+				return values;
+			},
 
-						// String was a <table>, *may* have spurious <tbody>
-						var hasBody = rtbody.test(elem),
-							tbody = tag === "table" && !hasBody ?
-								div.firstChild && div.firstChild.childNodes :
+			set: function( elem, value ) {
+				var optionSet, option,
+					options = elem.options,
+					values = jQuery.makeArray( value ),
+					i = options.length;
 
-								// String was a bare <thead> or <tfoot>
-								wrap[1] === "<table>" && !hasBody ?
-									div.childNodes :
-									[];
+				while ( i-- ) {
+					option = options[ i ];
 
-						for ( j = tbody.length - 1; j >= 0 ; --j ) {
-							if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) {
-								tbody[ j ].parentNode.removeChild( tbody[ j ] );
-							}
+					if ( jQuery.inArray( jQuery.valHooks.option.get( option ), values ) >= 0 ) {
+
+						// Support: IE6
+						// When new option element is added to select box we need to
+						// force reflow of newly added node in order to workaround delay
+						// of initialization properties
+						try {
+							option.selected = optionSet = true;
+
+						} catch ( _ ) {
+
+							// Will be executed only in IE6
+							option.scrollHeight;
 						}
-					}
 
-					// IE completely kills leading whitespace when innerHTML is used
-					if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {
-						div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild );
+					} else {
+						option.selected = false;
 					}
-
-					elem = div.childNodes;
 				}
-			}
 
-			// Resets defaultChecked for any radios and checkboxes
-			// about to be appended to the DOM in IE 6/7 (#8060)
-			var len;
-			if ( !jQuery.support.appendChecked ) {
-				if ( elem[0] && typeof (len = elem.length) === "number" ) {
-					for ( j = 0; j < len; j++ ) {
-						findInputs( elem[j] );
-					}
-				} else {
-					findInputs( elem );
+				// Force browsers to behave consistently when non-matching value is set
+				if ( !optionSet ) {
+					elem.selectedIndex = -1;
 				}
+
+				return options;
 			}
+		}
+	}
+});
 
-			if ( elem.nodeType ) {
-				ret.push( elem );
-			} else {
-				ret = jQuery.merge( ret, elem );
+// Radios and checkboxes getter/setter
+jQuery.each([ "radio", "checkbox" ], function() {
+	jQuery.valHooks[ this ] = {
+		set: function( elem, value ) {
+			if ( jQuery.isArray( value ) ) {
+				return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 );
 			}
 		}
+	};
+	if ( !support.checkOn ) {
+		jQuery.valHooks[ this ].get = function( elem ) {
+			// Support: Webkit
+			// "" is returned instead of "on" if a value isn't specified
+			return elem.getAttribute("value") === null ? "on" : elem.value;
+		};
+	}
+});
 
-		if ( fragment ) {
-			checkScriptType = function( elem ) {
-				return !elem.type || rscriptType.test( elem.type );
-			};
-			for ( i = 0; ret[i]; i++ ) {
-				if ( scripts && jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) {
-					scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] );
 
-				} else {
-					if ( ret[i].nodeType === 1 ) {
-						var jsTags = jQuery.grep( ret[i].getElementsByTagName( "script" ), checkScriptType );
 
-						ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) );
-					}
-					fragment.appendChild( ret[i] );
-				}
-			}
-		}
 
-		return ret;
+var nodeHook, boolHook,
+	attrHandle = jQuery.expr.attrHandle,
+	ruseDefault = /^(?:checked|selected)$/i,
+	getSetAttribute = support.getSetAttribute,
+	getSetInput = support.input;
+
+jQuery.fn.extend({
+	attr: function( name, value ) {
+		return access( this, jQuery.attr, name, value, arguments.length > 1 );
 	},
 
-	cleanData: function( elems ) {
-		var data, id, cache = jQuery.cache, internalKey = jQuery.expando, special = jQuery.event.special,
-			deleteExpando = jQuery.support.deleteExpando;
+	removeAttr: function( name ) {
+		return this.each(function() {
+			jQuery.removeAttr( this, name );
+		});
+	}
+});
 
-		for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
-			if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) {
-				continue;
+jQuery.extend({
+	attr: function( elem, name, value ) {
+		var hooks, ret,
+			nType = elem.nodeType;
+
+		// don't get/set attributes on text, comment and attribute nodes
+		if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		// Fallback to prop when attributes are not supported
+		if ( typeof elem.getAttribute === strundefined ) {
+			return jQuery.prop( elem, name, value );
+		}
+
+		// All attributes are lowercase
+		// Grab necessary hook if one is defined
+		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+			name = name.toLowerCase();
+			hooks = jQuery.attrHooks[ name ] ||
+				( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook );
+		}
+
+		if ( value !== undefined ) {
+
+			if ( value === null ) {
+				jQuery.removeAttr( elem, name );
+
+			} else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
+				return ret;
+
+			} else {
+				elem.setAttribute( name, value + "" );
+				return value;
 			}
 
-			id = elem[ jQuery.expando ];
+		} else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {
+			return ret;
 
-			if ( id ) {
-				data = cache[ id ] && cache[ id ][ internalKey ];
+		} else {
+			ret = jQuery.find.attr( elem, name );
 
-				if ( data && data.events ) {
-					for ( var type in data.events ) {
-						if ( special[ type ] ) {
-							jQuery.event.remove( elem, type );
+			// Non-existent attributes return null, we normalize to undefined
+			return ret == null ?
+				undefined :
+				ret;
+		}
+	},
 
-						// This is a shortcut to avoid jQuery.event.remove's overhead
-						} else {
-							jQuery.removeEvent( elem, type, data.handle );
-						}
-					}
+	removeAttr: function( elem, value ) {
+		var name, propName,
+			i = 0,
+			attrNames = value && value.match( rnotwhite );
 
-					// Null the DOM reference to avoid IE6/7/8 leak (#7054)
-					if ( data.handle ) {
-						data.handle.elem = null;
+		if ( attrNames && elem.nodeType === 1 ) {
+			while ( (name = attrNames[i++]) ) {
+				propName = jQuery.propFix[ name ] || name;
+
+				// Boolean attributes get special treatment (#10870)
+				if ( jQuery.expr.match.bool.test( name ) ) {
+					// Set corresponding property to false
+					if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {
+						elem[ propName ] = false;
+					// Support: IE<9
+					// Also clear defaultChecked/defaultSelected (if appropriate)
+					} else {
+						elem[ jQuery.camelCase( "default-" + name ) ] =
+							elem[ propName ] = false;
 					}
+
+				// See #9699 for explanation of this approach (setting first, then removal)
+				} else {
+					jQuery.attr( elem, name, "" );
 				}
 
-				if ( deleteExpando ) {
-					delete elem[ jQuery.expando ];
+				elem.removeAttribute( getSetAttribute ? name : propName );
+			}
+		}
+	},
 
-				} else if ( elem.removeAttribute ) {
-					elem.removeAttribute( jQuery.expando );
+	attrHooks: {
+		type: {
+			set: function( elem, value ) {
+				if ( !support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) {
+					// Setting the type on a radio button after the value resets the value in IE6-9
+					// Reset value to default in case type is set after value during creation
+					var val = elem.value;
+					elem.setAttribute( "type", value );
+					if ( val ) {
+						elem.value = val;
+					}
+					return value;
 				}
-
-				delete cache[ id ];
 			}
 		}
 	}
 });
 
-function evalScript( i, elem ) {
-	if ( elem.src ) {
-		jQuery.ajax({
-			url: elem.src,
-			async: false,
-			dataType: "script"
-		});
-	} else {
-		jQuery.globalEval( ( elem.text || elem.textContent || elem.innerHTML || "" ).replace( rcleanScript, "/*$0*/" ) );
-	}
+// Hook for boolean attributes
+boolHook = {
+	set: function( elem, value, name ) {
+		if ( value === false ) {
+			// Remove boolean attributes when set to false
+			jQuery.removeAttr( elem, name );
+		} else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {
+			// IE<8 needs the *property* name
+			elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name );
 
-	if ( elem.parentNode ) {
-		elem.parentNode.removeChild( elem );
+		// Use defaultChecked and defaultSelected for oldIE
+		} else {
+			elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true;
+		}
+
+		return name;
 	}
-}
+};
 
+// Retrieve booleans specially
+jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
 
+	var getter = attrHandle[ name ] || jQuery.find.attr;
 
+	attrHandle[ name ] = getSetInput && getSetAttribute || !ruseDefault.test( name ) ?
+		function( elem, name, isXML ) {
+			var ret, handle;
+			if ( !isXML ) {
+				// Avoid an infinite loop by temporarily removing this function from the getter
+				handle = attrHandle[ name ];
+				attrHandle[ name ] = ret;
+				ret = getter( elem, name, isXML ) != null ?
+					name.toLowerCase() :
+					null;
+				attrHandle[ name ] = handle;
+			}
+			return ret;
+		} :
+		function( elem, name, isXML ) {
+			if ( !isXML ) {
+				return elem[ jQuery.camelCase( "default-" + name ) ] ?
+					name.toLowerCase() :
+					null;
+			}
+		};
+});
 
-var ralpha = /alpha\([^)]*\)/i,
-	ropacity = /opacity=([^)]*)/,
-	rdashAlpha = /-([a-z])/ig,
-	// fixed for IE9, see #8346
-	rupper = /([A-Z]|^ms)/g,
-	rnumpx = /^-?\d+(?:px)?$/i,
-	rnum = /^-?\d/,
-	rrelNum = /^[+\-]=/,
-	rrelNumFilter = /[^+\-\.\de]+/g,
-
-	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
-	cssWidth = [ "Left", "Right" ],
-	cssHeight = [ "Top", "Bottom" ],
-	curCSS,
-
-	getComputedStyle,
-	currentStyle,
-
-	fcamelCase = function( all, letter ) {
-		return letter.toUpperCase();
+// fix oldIE attroperties
+if ( !getSetInput || !getSetAttribute ) {
+	jQuery.attrHooks.value = {
+		set: function( elem, value, name ) {
+			if ( jQuery.nodeName( elem, "input" ) ) {
+				// Does not return so that setAttribute is also used
+				elem.defaultValue = value;
+			} else {
+				// Use nodeHook if defined (#1954); otherwise setAttribute is fine
+				return nodeHook && nodeHook.set( elem, value, name );
+			}
+		}
 	};
+}
 
-jQuery.fn.css = function( name, value ) {
-	// Setting 'undefined' is a no-op
-	if ( arguments.length === 2 && value === undefined ) {
-		return this;
-	}
+// IE6/7 do not support getting/setting some attributes with get/setAttribute
+if ( !getSetAttribute ) {
 
-	return jQuery.access( this, name, value, true, function( elem, name, value ) {
-		return value !== undefined ?
-			jQuery.style( elem, name, value ) :
-			jQuery.css( elem, name );
-	});
-};
+	// Use this for any attribute in IE6/7
+	// This fixes almost every IE6/7 issue
+	nodeHook = {
+		set: function( elem, value, name ) {
+			// Set the existing or create a new attribute node
+			var ret = elem.getAttributeNode( name );
+			if ( !ret ) {
+				elem.setAttributeNode(
+					(ret = elem.ownerDocument.createAttribute( name ))
+				);
+			}
 
-jQuery.extend({
-	// Add in style property hooks for overriding the default
-	// behavior of getting and setting a style property
-	cssHooks: {
-		opacity: {
-			get: function( elem, computed ) {
-				if ( computed ) {
-					// We should always get a number back from opacity
-					var ret = curCSS( elem, "opacity", "opacity" );
-					return ret === "" ? "1" : ret;
+			ret.value = value += "";
 
-				} else {
-					return elem.style.opacity;
-				}
+			// Break association with cloned elements by also using setAttribute (#9646)
+			if ( name === "value" || value === elem.getAttribute( name ) ) {
+				return value;
 			}
 		}
-	},
+	};
 
-	// Exclude the following css properties to add px
-	cssNumber: {
-		"zIndex": true,
-		"fontWeight": true,
-		"opacity": true,
-		"zoom": true,
-		"lineHeight": true,
-		"widows": true,
-		"orphans": true
-	},
+	// Some attributes are constructed with empty-string values when not defined
+	attrHandle.id = attrHandle.name = attrHandle.coords =
+		function( elem, name, isXML ) {
+			var ret;
+			if ( !isXML ) {
+				return (ret = elem.getAttributeNode( name )) && ret.value !== "" ?
+					ret.value :
+					null;
+			}
+		};
 
-	// Add in properties whose names you wish to fix before
-	// setting or getting the value
-	cssProps: {
-		// normalize float css property
-		"float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat"
-	},
+	// Fixing value retrieval on a button requires this module
+	jQuery.valHooks.button = {
+		get: function( elem, name ) {
+			var ret = elem.getAttributeNode( name );
+			if ( ret && ret.specified ) {
+				return ret.value;
+			}
+		},
+		set: nodeHook.set
+	};
 
-	// Get and set the style property on a DOM Node
-	style: function( elem, name, value, extra ) {
-		// Don't set styles on text and comment nodes
-		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
-			return;
+	// Set contenteditable to false on removals(#10429)
+	// Setting to empty string throws an error as an invalid value
+	jQuery.attrHooks.contenteditable = {
+		set: function( elem, value, name ) {
+			nodeHook.set( elem, value === "" ? false : value, name );
 		}
+	};
 
-		// Make sure that we're working with the right name
-		var ret, type, origName = jQuery.camelCase( name ),
-			style = elem.style, hooks = jQuery.cssHooks[ origName ];
+	// Set width and height to auto instead of 0 on empty string( Bug #8150 )
+	// This is for removals
+	jQuery.each([ "width", "height" ], function( i, name ) {
+		jQuery.attrHooks[ name ] = {
+			set: function( elem, value ) {
+				if ( value === "" ) {
+					elem.setAttribute( name, "auto" );
+					return value;
+				}
+			}
+		};
+	});
+}
 
-		name = jQuery.cssProps[ origName ] || origName;
+if ( !support.style ) {
+	jQuery.attrHooks.style = {
+		get: function( elem ) {
+			// Return undefined in the case of empty string
+			// Note: IE uppercases css property names, but if we were to .toLowerCase()
+			// .cssText, that would destroy case senstitivity in URL's, like in "background"
+			return elem.style.cssText || undefined;
+		},
+		set: function( elem, value ) {
+			return ( elem.style.cssText = value + "" );
+		}
+	};
+}
 
-		// Check if we're setting a value
-		if ( value !== undefined ) {
-			type = typeof value;
 
-			// Make sure that NaN and null values aren't set. See: #7116
-			if ( type === "number" && isNaN( value ) || value == null ) {
-				return;
-			}
 
-			// convert relative number strings (+= or -=) to relative numbers. #7345
-			if ( type === "string" && rrelNum.test( value ) ) {
-				value = +value.replace( rrelNumFilter, "" ) + parseFloat( jQuery.css( elem, name ) );
-			}
 
-			// If a number was passed in, add 'px' to the (except for certain CSS properties)
-			if ( type === "number" && !jQuery.cssNumber[ origName ] ) {
-				value += "px";
-			}
+var rfocusable = /^(?:input|select|textarea|button|object)$/i,
+	rclickable = /^(?:a|area)$/i;
 
-			// If a hook was provided, use that value, otherwise just set the specified value
-			if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value )) !== undefined ) {
-				// Wrapped to prevent IE from throwing errors when 'invalid' values are provided
-				// Fixes bug #5509
-				try {
-					style[ name ] = value;
-				} catch(e) {}
-			}
+jQuery.fn.extend({
+	prop: function( name, value ) {
+		return access( this, jQuery.prop, name, value, arguments.length > 1 );
+	},
 
-		} else {
-			// If a hook was provided get the non-computed value from there
-			if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {
-				return ret;
-			}
+	removeProp: function( name ) {
+		name = jQuery.propFix[ name ] || name;
+		return this.each(function() {
+			// try/catch handles cases where IE balks (such as removing a property on window)
+			try {
+				this[ name ] = undefined;
+				delete this[ name ];
+			} catch( e ) {}
+		});
+	}
+});
 
-			// Otherwise just get the value from the style object
-			return style[ name ];
-		}
+jQuery.extend({
+	propFix: {
+		"for": "htmlFor",
+		"class": "className"
 	},
 
-	css: function( elem, name, extra ) {
-		var ret, hooks;
+	prop: function( elem, name, value ) {
+		var ret, hooks, notxml,
+			nType = elem.nodeType;
 
-		// Make sure that we're working with the right name
-		name = jQuery.camelCase( name );
-		hooks = jQuery.cssHooks[ name ];
-		name = jQuery.cssProps[ name ] || name;
+		// don't get/set properties on text, comment and attribute nodes
+		if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
 
-		// cssFloat needs a special treatment
-		if ( name === "cssFloat" ) {
-			name = "float";
+		notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
+
+		if ( notxml ) {
+			// Fix name and attach hooks
+			name = jQuery.propFix[ name ] || name;
+			hooks = jQuery.propHooks[ name ];
 		}
 
-		// If a hook was provided get the computed value from there
-		if ( hooks && "get" in hooks && (ret = hooks.get( elem, true, extra )) !== undefined ) {
-			return ret;
+		if ( value !== undefined ) {
+			return hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ?
+				ret :
+				( elem[ name ] = value );
 
-		// Otherwise, if a way to get the computed value exists, use that
-		} else if ( curCSS ) {
-			return curCSS( elem, name );
+		} else {
+			return hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ?
+				ret :
+				elem[ name ];
 		}
 	},
 
-	// A method for quickly swapping in/out CSS properties to get correct calculations
-	swap: function( elem, options, callback ) {
-		var old = {};
+	propHooks: {
+		tabIndex: {
+			get: function( elem ) {
+				// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
+				// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+				// Use proper attribute retrieval(#12072)
+				var tabindex = jQuery.find.attr( elem, "tabindex" );
 
-		// Remember the old values, and insert the new ones
-		for ( var name in options ) {
-			old[ name ] = elem.style[ name ];
-			elem.style[ name ] = options[ name ];
+				return tabindex ?
+					parseInt( tabindex, 10 ) :
+					rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?
+						0 :
+						-1;
+			}
 		}
+	}
+});
 
-		callback.call( elem );
+// Some attributes require a special call on IE
+// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !support.hrefNormalized ) {
+	// href/src property should get the full normalized URL (#10299/#12915)
+	jQuery.each([ "href", "src" ], function( i, name ) {
+		jQuery.propHooks[ name ] = {
+			get: function( elem ) {
+				return elem.getAttribute( name, 4 );
+			}
+		};
+	});
+}
 
-		// Revert the old values
-		for ( name in options ) {
-			elem.style[ name ] = old[ name ];
+// Support: Safari, IE9+
+// mis-reports the default selected property of an option
+// Accessing the parent's selectedIndex property fixes it
+if ( !support.optSelected ) {
+	jQuery.propHooks.selected = {
+		get: function( elem ) {
+			var parent = elem.parentNode;
+
+			if ( parent ) {
+				parent.selectedIndex;
+
+				// Make sure that it also works with optgroups, see #5701
+				if ( parent.parentNode ) {
+					parent.parentNode.selectedIndex;
+				}
+			}
+			return null;
 		}
-	},
+	};
+}
 
-	camelCase: function( string ) {
-		return string.replace( rdashAlpha, fcamelCase );
-	}
+jQuery.each([
+	"tabIndex",
+	"readOnly",
+	"maxLength",
+	"cellSpacing",
+	"cellPadding",
+	"rowSpan",
+	"colSpan",
+	"useMap",
+	"frameBorder",
+	"contentEditable"
+], function() {
+	jQuery.propFix[ this.toLowerCase() ] = this;
 });
 
-// DEPRECATED, Use jQuery.css() instead
-jQuery.curCSS = jQuery.css;
+// IE6/7 call enctype encoding
+if ( !support.enctype ) {
+	jQuery.propFix.enctype = "encoding";
+}
 
-jQuery.each(["height", "width"], function( i, name ) {
-	jQuery.cssHooks[ name ] = {
-		get: function( elem, computed, extra ) {
-			var val;
 
-			if ( computed ) {
-				if ( elem.offsetWidth !== 0 ) {
-					val = getWH( elem, name, extra );
 
-				} else {
-					jQuery.swap( elem, cssShow, function() {
-						val = getWH( elem, name, extra );
-					});
-				}
 
-				if ( val <= 0 ) {
-					val = curCSS( elem, name, name );
+var rclass = /[\t\r\n\f]/g;
 
-					if ( val === "0px" && currentStyle ) {
-						val = currentStyle( elem, name, name );
+jQuery.fn.extend({
+	addClass: function( value ) {
+		var classes, elem, cur, clazz, j, finalValue,
+			i = 0,
+			len = this.length,
+			proceed = typeof value === "string" && value;
+
+		if ( jQuery.isFunction( value ) ) {
+			return this.each(function( j ) {
+				jQuery( this ).addClass( value.call( this, j, this.className ) );
+			});
+		}
+
+		if ( proceed ) {
+			// The disjunction here is for better compressibility (see removeClass)
+			classes = ( value || "" ).match( rnotwhite ) || [];
+
+			for ( ; i < len; i++ ) {
+				elem = this[ i ];
+				cur = elem.nodeType === 1 && ( elem.className ?
+					( " " + elem.className + " " ).replace( rclass, " " ) :
+					" "
+				);
+
+				if ( cur ) {
+					j = 0;
+					while ( (clazz = classes[j++]) ) {
+						if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
+							cur += clazz + " ";
+						}
 					}
 
-					if ( val != null ) {
-						// Should return "auto" instead of 0, use 0 for
-						// temporary backwards-compat
-						return val === "" || val === "auto" ? "0px" : val;
+					// only assign if different to avoid unneeded rendering.
+					finalValue = jQuery.trim( cur );
+					if ( elem.className !== finalValue ) {
+						elem.className = finalValue;
 					}
 				}
+			}
+		}
 
-				if ( val < 0 || val == null ) {
-					val = elem.style[ name ];
+		return this;
+	},
 
-					// Should return "auto" instead of 0, use 0 for
-					// temporary backwards-compat
-					return val === "" || val === "auto" ? "0px" : val;
-				}
+	removeClass: function( value ) {
+		var classes, elem, cur, clazz, j, finalValue,
+			i = 0,
+			len = this.length,
+			proceed = arguments.length === 0 || typeof value === "string" && value;
 
-				return typeof val === "string" ? val : val + "px";
-			}
-		},
+		if ( jQuery.isFunction( value ) ) {
+			return this.each(function( j ) {
+				jQuery( this ).removeClass( value.call( this, j, this.className ) );
+			});
+		}
+		if ( proceed ) {
+			classes = ( value || "" ).match( rnotwhite ) || [];
 
-		set: function( elem, value ) {
-			if ( rnumpx.test( value ) ) {
-				// ignore negative width and height values #1599
-				value = parseFloat(value);
+			for ( ; i < len; i++ ) {
+				elem = this[ i ];
+				// This expression is here for better compressibility (see addClass)
+				cur = elem.nodeType === 1 && ( elem.className ?
+					( " " + elem.className + " " ).replace( rclass, " " ) :
+					""
+				);
 
-				if ( value >= 0 ) {
-					return value + "px";
-				}
+				if ( cur ) {
+					j = 0;
+					while ( (clazz = classes[j++]) ) {
+						// Remove *all* instances
+						while ( cur.indexOf( " " + clazz + " " ) >= 0 ) {
+							cur = cur.replace( " " + clazz + " ", " " );
+						}
+					}
 
-			} else {
-				return value;
+					// only assign if different to avoid unneeded rendering.
+					finalValue = value ? jQuery.trim( cur ) : "";
+					if ( elem.className !== finalValue ) {
+						elem.className = finalValue;
+					}
+				}
 			}
 		}
-	};
-});
 
-if ( !jQuery.support.opacity ) {
-	jQuery.cssHooks.opacity = {
-		get: function( elem, computed ) {
-			// IE uses filters for opacity
-			return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ?
-				( parseFloat( RegExp.$1 ) / 100 ) + "" :
-				computed ? "1" : "";
-		},
+		return this;
+	},
 
-		set: function( elem, value ) {
-			var style = elem.style,
-				currentStyle = elem.currentStyle;
+	toggleClass: function( value, stateVal ) {
+		var type = typeof value;
 
-			// IE has trouble with opacity if it does not have layout
-			// Force it by setting the zoom level
-			style.zoom = 1;
+		if ( typeof stateVal === "boolean" && type === "string" ) {
+			return stateVal ? this.addClass( value ) : this.removeClass( value );
+		}
 
-			// Set the alpha filter to set the opacity
-			var opacity = jQuery.isNaN( value ) ?
-				"" :
-				"alpha(opacity=" + value * 100 + ")",
-				filter = currentStyle && currentStyle.filter || style.filter || "";
-
-			style.filter = ralpha.test( filter ) ?
-				filter.replace( ralpha, opacity ) :
-				filter + " " + opacity;
+		if ( jQuery.isFunction( value ) ) {
+			return this.each(function( i ) {
+				jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );
+			});
 		}
-	};
-}
 
-jQuery(function() {
-	// This hook cannot be added until DOM ready because the support test
-	// for it is not run until after DOM ready
-	if ( !jQuery.support.reliableMarginRight ) {
-		jQuery.cssHooks.marginRight = {
-			get: function( elem, computed ) {
-				// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
-				// Work around by temporarily setting element display to inline-block
-				var ret;
-				jQuery.swap( elem, { "display": "inline-block" }, function() {
-					if ( computed ) {
-						ret = curCSS( elem, "margin-right", "marginRight" );
+		return this.each(function() {
+			if ( type === "string" ) {
+				// toggle individual class names
+				var className,
+					i = 0,
+					self = jQuery( this ),
+					classNames = value.match( rnotwhite ) || [];
+
+				while ( (className = classNames[ i++ ]) ) {
+					// check each className given, space separated list
+					if ( self.hasClass( className ) ) {
+						self.removeClass( className );
 					} else {
-						ret = elem.style.marginRight;
+						self.addClass( className );
 					}
-				});
-				return ret;
+				}
+
+			// Toggle whole class name
+			} else if ( type === strundefined || type === "boolean" ) {
+				if ( this.className ) {
+					// store className if set
+					jQuery._data( this, "__className__", this.className );
+				}
+
+				// If the element has a class name or if we're passed "false",
+				// then remove the whole classname (if there was one, the above saved it).
+				// Otherwise bring back whatever was previously saved (if anything),
+				// falling back to the empty string if nothing was stored.
+				this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || "";
 			}
-		};
+		});
+	},
+
+	hasClass: function( selector ) {
+		var className = " " + selector + " ",
+			i = 0,
+			l = this.length;
+		for ( ; i < l; i++ ) {
+			if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) {
+				return true;
+			}
+		}
+
+		return false;
 	}
 });
 
-if ( document.defaultView && document.defaultView.getComputedStyle ) {
-	getComputedStyle = function( elem, name ) {
-		var ret, defaultView, computedStyle;
 
-		name = name.replace( rupper, "-$1" ).toLowerCase();
 
-		if ( !(defaultView = elem.ownerDocument.defaultView) ) {
-			return undefined;
-		}
 
-		if ( (computedStyle = defaultView.getComputedStyle( elem, null )) ) {
-			ret = computedStyle.getPropertyValue( name );
-			if ( ret === "" && !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) {
-				ret = jQuery.style( elem, name );
-			}
-		}
+// Return jQuery for attributes-only inclusion
 
-		return ret;
+
+jQuery.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( i, name ) {
+
+	// Handle event binding
+	jQuery.fn[ name ] = function( data, fn ) {
+		return arguments.length > 0 ?
+			this.on( name, null, data, fn ) :
+			this.trigger( name );
 	};
-}
+});
 
-if ( document.documentElement.currentStyle ) {
-	currentStyle = function( elem, name ) {
-		var left,
-			ret = elem.currentStyle && elem.currentStyle[ name ],
-			rsLeft = elem.runtimeStyle && elem.runtimeStyle[ name ],
-			style = elem.style;
+jQuery.fn.extend({
+	hover: function( fnOver, fnOut ) {
+		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+	},
 
-		// From the awesome hack by Dean Edwards
-		// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
+	bind: function( types, data, fn ) {
+		return this.on( types, null, data, fn );
+	},
+	unbind: function( types, fn ) {
+		return this.off( types, null, fn );
+	},
 
-		// If we're not dealing with a regular pixel number
-		// but a number that has a weird ending, we need to convert it to pixels
-		if ( !rnumpx.test( ret ) && rnum.test( ret ) ) {
-			// Remember the original values
-			left = style.left;
+	delegate: function( selector, types, data, fn ) {
+		return this.on( types, selector, data, fn );
+	},
+	undelegate: function( selector, types, fn ) {
+		// ( namespace ) or ( selector, types [, fn] )
+		return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn );
+	}
+});
 
-			// Put in the new values to get a computed value out
-			if ( rsLeft ) {
-				elem.runtimeStyle.left = elem.currentStyle.left;
-			}
-			style.left = name === "fontSize" ? "1em" : (ret || 0);
-			ret = style.pixelLeft + "px";
 
-			// Revert the changed values
-			style.left = left;
-			if ( rsLeft ) {
-				elem.runtimeStyle.left = rsLeft;
-			}
-		}
+var nonce = jQuery.now();
 
-		return ret === "" ? "auto" : ret;
-	};
-}
+var rquery = (/\?/);
 
-curCSS = getComputedStyle || currentStyle;
 
-function getWH( elem, name, extra ) {
-	var which = name === "width" ? cssWidth : cssHeight,
-		val = name === "width" ? elem.offsetWidth : elem.offsetHeight;
 
-	if ( extra === "border" ) {
-		return val;
+var rvalidtokens = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;
+
+jQuery.parseJSON = function( data ) {
+	// Attempt to parse using the native JSON parser first
+	if ( window.JSON && window.JSON.parse ) {
+		// Support: Android 2.3
+		// Workaround failure to string-cast null input
+		return window.JSON.parse( data + "" );
 	}
 
-	jQuery.each( which, function() {
-		if ( !extra ) {
-			val -= parseFloat(jQuery.css( elem, "padding" + this )) || 0;
-		}
+	var requireNonComma,
+		depth = null,
+		str = jQuery.trim( data + "" );
 
-		if ( extra === "margin" ) {
-			val += parseFloat(jQuery.css( elem, "margin" + this )) || 0;
+	// Guard against invalid (and possibly dangerous) input by ensuring that nothing remains
+	// after removing valid tokens
+	return str && !jQuery.trim( str.replace( rvalidtokens, function( token, comma, open, close ) {
 
-		} else {
-			val -= parseFloat(jQuery.css( elem, "border" + this + "Width" )) || 0;
+		// Force termination if we see a misplaced comma
+		if ( requireNonComma && comma ) {
+			depth = 0;
 		}
-	});
 
-	return val;
-}
+		// Perform no more replacements after returning to outermost depth
+		if ( depth === 0 ) {
+			return token;
+		}
 
-if ( jQuery.expr && jQuery.expr.filters ) {
-	jQuery.expr.filters.hidden = function( elem ) {
-		var width = elem.offsetWidth,
-			height = elem.offsetHeight;
+		// Commas must not follow "[", "{", or ","
+		requireNonComma = open || comma;
 
-		return (width === 0 && height === 0) || (!jQuery.support.reliableHiddenOffsets && (elem.style.display || jQuery.css( elem, "display" )) === "none");
-	};
+		// Determine new depth
+		// array/object open ("[" or "{"): depth += true - false (increment)
+		// array/object close ("]" or "}"): depth += false - true (decrement)
+		// other cases ("," or primitive): depth += true - true (numeric cast)
+		depth += !close - !open;
 
-	jQuery.expr.filters.visible = function( elem ) {
-		return !jQuery.expr.filters.hidden( elem );
-	};
-}
+		// Remove this token
+		return "";
+	}) ) ?
+		( Function( "return " + str ) )() :
+		jQuery.error( "Invalid JSON: " + data );
+};
 
 
+// Cross-browser xml parsing
+jQuery.parseXML = function( data ) {
+	var xml, tmp;
+	if ( !data || typeof data !== "string" ) {
+		return null;
+	}
+	try {
+		if ( window.DOMParser ) { // Standard
+			tmp = new DOMParser();
+			xml = tmp.parseFromString( data, "text/xml" );
+		} else { // IE
+			xml = new ActiveXObject( "Microsoft.XMLDOM" );
+			xml.async = "false";
+			xml.loadXML( data );
+		}
+	} catch( e ) {
+		xml = undefined;
+	}
+	if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) {
+		jQuery.error( "Invalid XML: " + data );
+	}
+	return xml;
+};
 
 
-var r20 = /%20/g,
-	rbracket = /\[\]$/,
-	rCRLF = /\r?\n/g,
+var
+	// Document location
+	ajaxLocParts,
+	ajaxLocation,
+
 	rhash = /#.*$/,
+	rts = /([?&])_=[^&]*/,
 	rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL
-	rinput = /^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
 	// #7653, #8125, #8152: local protocol detection
-	rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|widget):$/,
+	rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
 	rnoContent = /^(?:GET|HEAD)$/,
 	rprotocol = /^\/\//,
-	rquery = /\?/,
-	rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
-	rselectTextarea = /^(?:select|textarea)/i,
-	rspacesAjax = /\s+/,
-	rts = /([?&])_=[^&]*/,
-	rurl = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,
+	rurl = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,
 
-	// Keep a copy of the old load method
-	_load = jQuery.fn.load,
-
 	/* Prefilters
 	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
 	 * 2) These are called:
@@ -6618,12 +8609,9 @@
 	 */
 	transports = {},
 
-	// Document location
-	ajaxLocation,
+	// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
+	allTypes = "*/".concat("*");
 
-	// Document location segments
-	ajaxLocParts;
-
 // #8138, IE may throw an exception when accessing
 // a field from window.location if document.domain has been set
 try {
@@ -6650,259 +8638,256 @@
 			dataTypeExpression = "*";
 		}
 
-		if ( jQuery.isFunction( func ) ) {
-			var dataTypes = dataTypeExpression.toLowerCase().split( rspacesAjax ),
-				i = 0,
-				length = dataTypes.length,
-				dataType,
-				list,
-				placeBefore;
+		var dataType,
+			i = 0,
+			dataTypes = dataTypeExpression.toLowerCase().match( rnotwhite ) || [];
 
+		if ( jQuery.isFunction( func ) ) {
 			// For each dataType in the dataTypeExpression
-			for(; i < length; i++ ) {
-				dataType = dataTypes[ i ];
-				// We control if we're asked to add before
-				// any existing element
-				placeBefore = /^\+/.test( dataType );
-				if ( placeBefore ) {
-					dataType = dataType.substr( 1 ) || "*";
+			while ( (dataType = dataTypes[i++]) ) {
+				// Prepend if requested
+				if ( dataType.charAt( 0 ) === "+" ) {
+					dataType = dataType.slice( 1 ) || "*";
+					(structure[ dataType ] = structure[ dataType ] || []).unshift( func );
+
+				// Otherwise append
+				} else {
+					(structure[ dataType ] = structure[ dataType ] || []).push( func );
 				}
-				list = structure[ dataType ] = structure[ dataType ] || [];
-				// then we add to the structure accordingly
-				list[ placeBefore ? "unshift" : "push" ]( func );
 			}
 		}
 	};
 }
 
 // Base inspection function for prefilters and transports
-function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR,
-		dataType /* internal */, inspected /* internal */ ) {
+function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
 
-	dataType = dataType || options.dataTypes[ 0 ];
-	inspected = inspected || {};
+	var inspected = {},
+		seekingTransport = ( structure === transports );
 
-	inspected[ dataType ] = true;
+	function inspect( dataType ) {
+		var selected;
+		inspected[ dataType ] = true;
+		jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
+			var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
+			if ( typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[ dataTypeOrTransport ] ) {
+				options.dataTypes.unshift( dataTypeOrTransport );
+				inspect( dataTypeOrTransport );
+				return false;
+			} else if ( seekingTransport ) {
+				return !( selected = dataTypeOrTransport );
+			}
+		});
+		return selected;
+	}
 
-	var list = structure[ dataType ],
-		i = 0,
-		length = list ? list.length : 0,
-		executeOnly = ( structure === prefilters ),
-		selection;
+	return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
+}
 
-	for(; i < length && ( executeOnly || !selection ); i++ ) {
-		selection = list[ i ]( options, originalOptions, jqXHR );
-		// If we got redirected to another dataType
-		// we try there if executing only and not done already
-		if ( typeof selection === "string" ) {
-			if ( !executeOnly || inspected[ selection ] ) {
-				selection = undefined;
-			} else {
-				options.dataTypes.unshift( selection );
-				selection = inspectPrefiltersOrTransports(
-						structure, options, originalOptions, jqXHR, selection, inspected );
-			}
+// A special extend for ajax options
+// that takes "flat" options (not to be deep extended)
+// Fixes #9887
+function ajaxExtend( target, src ) {
+	var deep, key,
+		flatOptions = jQuery.ajaxSettings.flatOptions || {};
+
+	for ( key in src ) {
+		if ( src[ key ] !== undefined ) {
+			( flatOptions[ key ] ? target : ( deep || (deep = {}) ) )[ key ] = src[ key ];
 		}
 	}
-	// If we're only executing or nothing was selected
-	// we try the catchall dataType if not done already
-	if ( ( executeOnly || !selection ) && !inspected[ "*" ] ) {
-		selection = inspectPrefiltersOrTransports(
-				structure, options, originalOptions, jqXHR, "*", inspected );
+	if ( deep ) {
+		jQuery.extend( true, target, deep );
 	}
-	// unnecessary when only executing (prefilters)
-	// but it'll be ignored by the caller in that case
-	return selection;
+
+	return target;
 }
 
-jQuery.fn.extend({
-	load: function( url, params, callback ) {
-		if ( typeof url !== "string" && _load ) {
-			return _load.apply( this, arguments );
+/* Handles responses to an ajax request:
+ * - finds the right dataType (mediates between content-type and expected dataType)
+ * - returns the corresponding response
+ */
+function ajaxHandleResponses( s, jqXHR, responses ) {
+	var firstDataType, ct, finalDataType, type,
+		contents = s.contents,
+		dataTypes = s.dataTypes;
 
-		// Don't do a request if no elements are being requested
-		} else if ( !this.length ) {
-			return this;
+	// Remove auto dataType and get content-type in the process
+	while ( dataTypes[ 0 ] === "*" ) {
+		dataTypes.shift();
+		if ( ct === undefined ) {
+			ct = s.mimeType || jqXHR.getResponseHeader("Content-Type");
 		}
+	}
 
-		var off = url.indexOf( " " );
-		if ( off >= 0 ) {
-			var selector = url.slice( off, url.length );
-			url = url.slice( 0, off );
+	// Check if we're dealing with a known content-type
+	if ( ct ) {
+		for ( type in contents ) {
+			if ( contents[ type ] && contents[ type ].test( ct ) ) {
+				dataTypes.unshift( type );
+				break;
+			}
 		}
+	}
 
-		// Default to a GET request
-		var type = "GET";
+	// Check to see if we have a response for the expected dataType
+	if ( dataTypes[ 0 ] in responses ) {
+		finalDataType = dataTypes[ 0 ];
+	} else {
+		// Try convertible dataTypes
+		for ( type in responses ) {
+			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) {
+				finalDataType = type;
+				break;
+			}
+			if ( !firstDataType ) {
+				firstDataType = type;
+			}
+		}
+		// Or just use first one
+		finalDataType = finalDataType || firstDataType;
+	}
 
-		// If the second parameter was provided
-		if ( params ) {
-			// If it's a function
-			if ( jQuery.isFunction( params ) ) {
-				// We assume that it's the callback
-				callback = params;
-				params = undefined;
+	// If we found a dataType
+	// We add the dataType to the list if needed
+	// and return the corresponding response
+	if ( finalDataType ) {
+		if ( finalDataType !== dataTypes[ 0 ] ) {
+			dataTypes.unshift( finalDataType );
+		}
+		return responses[ finalDataType ];
+	}
+}
 
-			// Otherwise, build a param string
-			} else if ( typeof params === "object" ) {
-				params = jQuery.param( params, jQuery.ajaxSettings.traditional );
-				type = "POST";
-			}
+/* Chain conversions given the request and the original response
+ * Also sets the responseXXX fields on the jqXHR instance
+ */
+function ajaxConvert( s, response, jqXHR, isSuccess ) {
+	var conv2, current, conv, tmp, prev,
+		converters = {},
+		// Work with a copy of dataTypes in case we need to modify it for conversion
+		dataTypes = s.dataTypes.slice();
+
+	// Create converters map with lowercased keys
+	if ( dataTypes[ 1 ] ) {
+		for ( conv in s.converters ) {
+			converters[ conv.toLowerCase() ] = s.converters[ conv ];
 		}
+	}
 
-		var self = this;
+	current = dataTypes.shift();
 
-		// Request the remote document
-		jQuery.ajax({
-			url: url,
-			type: type,
-			dataType: "html",
-			data: params,
-			// Complete callback (responseText is used internally)
-			complete: function( jqXHR, status, responseText ) {
-				// Store the response as specified by the jqXHR object
-				responseText = jqXHR.responseText;
-				// If successful, inject the HTML into all the matched elements
-				if ( jqXHR.isResolved() ) {
-					// #4825: Get the actual response in case
-					// a dataFilter is present in ajaxSettings
-					jqXHR.done(function( r ) {
-						responseText = r;
-					});
-					// See if a selector was specified
-					self.html( selector ?
-						// Create a dummy div to hold the results
-						jQuery("<div>")
-							// inject the contents of the document in, removing the scripts
-							// to avoid any 'Permission Denied' errors in IE
-							.append(responseText.replace(rscript, ""))
+	// Convert to each sequential dataType
+	while ( current ) {
 
-							// Locate the specified elements
-							.find(selector) :
+		if ( s.responseFields[ current ] ) {
+			jqXHR[ s.responseFields[ current ] ] = response;
+		}
 
-						// If not, just inject the full result
-						responseText );
-				}
+		// Apply the dataFilter if provided
+		if ( !prev && isSuccess && s.dataFilter ) {
+			response = s.dataFilter( response, s.dataType );
+		}
 
-				if ( callback ) {
-					self.each( callback, [ responseText, status, jqXHR ] );
-				}
-			}
-		});
+		prev = current;
+		current = dataTypes.shift();
 
-		return this;
-	},
+		if ( current ) {
 
-	serialize: function() {
-		return jQuery.param( this.serializeArray() );
-	},
+			// There's only work to do if current dataType is non-auto
+			if ( current === "*" ) {
 
-	serializeArray: function() {
-		return this.map(function(){
-			return this.elements ? jQuery.makeArray( this.elements ) : this;
-		})
-		.filter(function(){
-			return this.name && !this.disabled &&
-				( this.checked || rselectTextarea.test( this.nodeName ) ||
-					rinput.test( this.type ) );
-		})
-		.map(function( i, elem ){
-			var val = jQuery( this ).val();
+				current = prev;
 
-			return val == null ?
-				null :
-				jQuery.isArray( val ) ?
-					jQuery.map( val, function( val, i ){
-						return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
-					}) :
-					( current === "*" ) {
 
-	serializeArray: function() {
-		return this.map(function(){
-			return tkap(fuMooTool ) };
-		guys	list,
isorktness., // IE leaype encodi )  ( !support ( oponseT];
 		torejqXHR ] ings
-		)/ don't get/set propertie {
-	jQuens ) {
-cket = /e {
+					(structure(?:aboulue: 		if ( jQue	return [ 0 ] ) {
};
-		Ution(Sizzif eType;
 crazy s numbeozeArray:rent ) {
 
-	seriali{
};
-		 else i{
};
.makeArray(	rehe scripts
-		;ection = keArray(	rehe scripulue: 		i-{
};
-		Weird thi		for ( "string" &val.rets the	};
-}n(){
-the full r};
-		= s.ca.split(" t = his.e,
+election};
-:GETataTyue: taType r};
-		 ""))
+	/name, vpre;
ataTyption nctiuteOnl}n(){
"allback (reTypeEx .makeArray(fie; ++iete: functe {
+					(structure[ dkeArray(fieataTypkeArray(fie+		if ( jQuery.is === uQue	r) {
+			ct =?opertie elem, valmostry mmnam			if (casesopertie {
lean" && tQuery.tyle.filpertie elem, valcases +		iffunction(  {
 true;
 nctselectopertie {
				cur = c"	datuens  nc = "falsepe ] ||  r dataType
-e oln(){
-			re				}) :
-					( cready
-	ils = /(,rse( datan this.map(functi	of the old load (?:aboulue: 		if (current da =Put in the new valu
-			if ( et = /\[\]$-		return this.map(functi;
.makeArray(	rehe scripts
-		;ectioon = keArray(	rehe scripulue: 		iQuery.expr.filters ) {
-	jQue i ? this.off( -		;
-	};
+		// DeTypeEx .makeArray(fie; ++iete: funct	of the old load [ dkeArray(fieataTypkeArray(fie+		i/ Prepeeturn thiript/
+				// e have a rf ( jQuery.;sword|range|searc" + v #9887
+f
+}
 
- list[ ry.expr
+}
 ) : "";
+on( dataurrent da  a rf ( jue;
+	 false ? "" : jQuery.LowerCase();
 
ns, " ) < 0 )" " + elem.claue;
+	 falsasync = 			if -		 
-	serializeArr
-		Typextk;
+			}
+			if ( !fifunction(){val 
+	ajaT {
-				eataTed()  {
 true;
t/settaTXHR		Ty deptselectl data		if ;
+on( datue;
++	});
+}
 
-		naue;
+	"" < 0 )" " + edeType === 1 &&tion( selector}
 
-		naue;
++	"" < 0 )" " + edeTypor ( name in option		if ( !extrue;
+	yle.filter) ue;,
-	},
+			// There's onl( jQuery.ithe docu	cur = c"	datthe do+	"" < 0 )ft + "pxge|searc	Typext) {
Typext) ] =.isReso+ "pxgs.disabled &&
-				( thisbrary/ed || rselectTextarea.testript/
+		deName ) ||
-					rinput.teata!
Typextlved() ) {
-		tchall ch se	= s.ca.sprr// funcQuery.spe === 1'h ) {
' /(,rse( e === 1
Typextlved() ) {
-		tion( rue;
t/se].classNam	Typext) {
Typext);
+/* Handles res
Typext/ If th
Typext/ I);
+/* Handles res=.isReso+ 			// jqXHR, isSuccess  j	i-{
};+					( " " + elem.className + eArr
	"maxLength",
+	"cellSpacing",
e === 1mentsByTa selector}
 
/ Prements++	"" < 0 )ht;
 
aTypQuery.sprue;
t/seit
+il	inspeto that ig only a;
+on( dat {
+		unctiwith  ( !supporlue;
];
 		}orej: jQueue;,
tings
-					jq't get/set propertiript/eVal === "bafter returning toveClass( cln( dat 			.find(selnodes
+		if ( ( current === "y() )ea.te			// T;
+	cu:values
-et 
-	serializeArrif ( !extruer ue;
+	yle.filelf.. 0 ]ejqXHR ] ings
-			if ( jQuery.iue;
me === "?opertieue;
ilpertieiginalOpentipts
-		;eter returnyle( e.resp:values
-et 
-	serializeArrif ( !extruer ue;peof;
+	cu	jQuery(;
+	currreturn " || val === 	var whichturn  jQuery.Irs.hidden =	-			return 	if ( !pre jQuer-ooks.e;
*?):[ \t		jQuery(ue;pe().man
-		=== "s, elem, c		max).man
-		*?):[ +ame ]ion( valction( valu	taType*?):[ \t	"?opertie	max)ilpertie	an
-		*?):[ return (wide
-e y dept.isXM			if ( !to whol, use 0 fong",
e === 1mentsByTa this[i].className( dat r
-			ype ||eArrif te: funct	Name + 
Typextlved() irstelemepts
-		;ectioomputedStyle.getlter(x "Xfina"-e = fitagbject"il	i addctl funct	Name + empat
-n" && type === "string" ) {
+			rgetlteLoop be aughs.classNaunction ajaxExtsopertiquested
+			maxe.charAt( 0 )ry(;
+	cuile ( Exts					da yle.getlteTrimfunct| "*";
++		}
+		if*?):[Ofyle = ee ];ttaTexp{
+	var extruer tagR, s	var type = typeArrif e;
 
-			// IE has trouble wi- true (dVal R, Val ) {
+tagR| rseVal ) {		if ( th- true (ddepmma =Val 
-		// ht	ction;
+
Typextlved() ) {
-		
-jQue+	return pes[ldse	ted
-		}upd.fn.lnction aector  it f
-		t (#2551)valu	taTt( the ( Extkey in srce;
*sByTa) {
-		i !hooks rn pesDe = e mouseover	curr, type,
+type: typnctioTyptype: typn{
-				hooks rn ( aType: "html",
-			d?ta: pExtktype: typ ]ion( vrams = undefinetype: ty	// If });
+}
 !hooks rn (ta: pExtk ) {
-	jQuetype: typnction( i,  status, j: pExtk ) {
-	jQu,ons |-							}
-At(  yle.getlteGoeto .isXMtaTy	delega funpeelns.daextra=Val pctl funct	 content-type anVal 
1]e = ents+nVal 
2elem, namType ) {
+			ngth >ctthe dolist,
-	: pExtem, namT + " ").replace(;
+	cui 
ns, "da yle.getlteMrCRLFady
-	ren;
 depmmyle.getr
-					depmm-- te: funct	tion;
+
conetur		} else {
	s, null, "*" )ypes[ oTyin oolistan
-shift()se {
	s,ly incnere's onl( j jQuery.ithe dlse {
	s,= "falsegetlteM thi-Shift();n( value Tyin oem, namT + " l */ ) {-			if ( e{
	s,= "
	s,=  yle.getlte value IE's autothere wa <?:GET>				}) tyle.dTypes.unyle.get number
-		// but a n?:GETe a rf ( jQuery.{-			i= 0 ) {
,  yle.get			//		if (wtaTyp dataTy, *may* 
-	jQspurious <?:GET>yle.get	y worasBGETe= r?:GET	ype |ull :	// ht	ct	?:GETe= tagR,umentdget) val rasBGETe
+	}
+	try	 con === "" || Respcon === "" ||a hook was pilpertset 
-	serializeArr,// There's onl( 		self.ialSetof;
+	cu	jQuery(;
+	currreturn " || val === 	vue;pe().myle.filteke in options )  valu	taTypeion( valction(da yle.getet			//		if (wtaTypbe,
+<y
-ad-			retfoot>yle.getet	Val 
1]e		var dataTy) val rasBGETe
+	}
+	try		 con hook was pil	}
+	try		eae.net/ar
-					i-- te: 0 )ry(;
+	cuile ( Exts					da yle.getiquesteje= t:GET	}n(){
-("[" j >+ eed
--j te: funct	tresponseText, status, jt:GET[ j ]tes ooks = jval t:GET[ j ]) {
+		for ( conv ite: funct	tr	t:GET[ j ]) ) {
-	jQuery.cssHooks[ t:GET[ j ]	filter.rep,= "
	s,		// Put in thn in optlectTextarea.te.ion( vramse(;
+	cui ,// The!fif>+ ee keyup ertet			// If succes6se {
	s, nul funokens
+	cuiplit(" t s		re func e
+	whiboxataTypes[tose {
	s, nu + "WQuerompr= 1okely		re fu staoesn't=== "*"e ];
 
-	se, jqXse {
	s, nucted[itis;
-	for (rds-compatse {
	s,r opaconl( j j ( Extkey in src=elf.ialSetpe,
-			dase {
	s,=-	// f/ P_e keyup ertet	, nulal.rb
 	}ecuon aj commnces6se {
	s,j ( ExtkecrollHstyle( e{
	s,ilter + ,=  yle.getlte.isAr see acomkal.s le;
+	tfunct| "*";l, funtent-type  s	{
+	var xml number
-		// but a nStyle = elem.curreich,le;
+	toggleClass: functeArrif te: funct		 contes.selected =
Typextlved() irstelemep,le;
+	toggleClass: = tyull :onver,spcon === "" ||t(jQuery.cs " + elem.clasj ( Extkey in src=elValue;
 				// jqXH	t	Name +  con hook was %20/g,
-	-+ ,=  yle.glte vsssar.dataFilter ) {xLocatiov && dataTyter if pe ) };
-		abing "*"b
 	type  func the wholch se	6/7 (#8060)) };
		selen;( cln( dat r
-		// but a n	if ( cts, originalOptrn this.na/ If the === 1(lis.leturn  conv )sByTa selector}
 
/ Preiquesteje= 0" j \t]*(" jement
-				pl	elf.each( callba[j]	filter.relter + "putedStyle.getelf.each( callback			rgetlteF+ "WQi addctl "*"b

-	jQ
Ty
-		 Force  funoon-0,
+	+	tfunction(  lis // IE lea!lf.ialSetpte: 0 )ry(turn  jQuery.Irs.he= -1%20/g,
-	+rf ( jQuery.{ ( Exts;eter returng toveClass( cln( dat = prev;
 
-		eE][+-]?\d+t */ ) {ts
-		;ectio{
+		// Support:t).myle.filtport	responllback			lte  && dataTyter if pe ehe torry ctctopl = /^\/\//,
-	v && i,ilter if pro = /<script\spected /* intarea.testript ajax{le( e.t 
-	serializeArr,// There's onl(
-		for ( name in options ) {
-			elejQuery.{(+			response  =Put in thn in optlectTeyull :
ns, ",// There'>+ ee 		// Shouurng to| [];
-			inalDataType !==tersOrTransportarea.testript aramsjaxConvert( seArrif ( !ext		// If succWebkit !ext		/""on( Query.end( true, tarType s sp) {
-		selectength > 0 ?
+	in IE
-							.tched elements
-		/ If });
+?rType :eturn [ 0 ] ) selectedveClass( clfter removing.classNam	val 
+	ajaT {
jaxConvert( seArrif ( -elejQuery.{!turn 	if (nctrs+	ajaT {
: functeArr.ments afctio{;allback (reTypeEx Quefie; mplete: funct\[\]$/,
-	rCuery.support.reliableQuefie= /\,
-	r = jval(!Quefie 	if (nctruefie 	if me ) ||
-					r				struc/java\,
-	r f te: funct	/,
-	rCR*/ ) {ruefie "\\\r\n]|\\?{ruefie "\\\r\n]|\ery.cssHooks[ ruefie?/,
 ruefie?/da yle.ge"putedStyle.getry.suppte.filter || style.filter || ""		sejsTagbj=Put in t+		if ppte.fi		.append(responseText.\,
-	r = ,){val 
+	ajaT {
?/da yle.ge?\d+t c );
+([^\/?#:espon[i +am, 
 		 jqXHR.jsTagbj)	filter.relter + type + " +	if ( ct ) {
ruefie?/da-/g,
-	-+ ,= ange|searc {
-	jQuens )tructureea.t, [\w\ea.t,uentcheHm, val 
-		if ( jQr.tcheHm, va,uenr{
+	return = /^(?:sponse | jQuery.)$/i,uen( type in response
+		for ( type in respo,uen( typeIdataType a dataFilte;eout mouseenter mouseleavtche:XXX fields on the/ There's onln( valueccurn tver: functiontche, on the/ The,s a weird ending, >// Other
,  yle	style.fi 
-	serializeArr
fifunction()data, idataTypel 
-		if (aType, = "*";
 		}
 
-		if ( jQuery. "auto" 
 
-		if ( e = /"auto" ,ection ee aE it'll eft,
-			r a datan ee aE it'll ] !==g (prefi:XXX fields on t
+	allTypes = "*/".cers ) {
-	jQuery.expr.t,
-			==g (prefi tver: fon t
+;eturning toveClass( cl+					( " " + elem.className + eArr
	"maxLength",
+	"cellSpacing",
( this.nodeNauery.support. jQue( this.nodeName ) ||
-					 rquery = odes
+		if ( ( current === "y(tche:XXX fields eArr,/on the/ There's only work to do ifexpr.nT {
jax = prev;
 
-	;yup error "*" )/ Try c
+	while ( datapextk;y mming.taTy] ) {
+			, use +ln( dat 			.fresp || style3fresp || style8fresp || style2if ( !extpe ] || []
-	+rf (lteFtion segers ut )  fun+	while ( de,
+typer a datture[ dataTe === 1ment			.tched elestyles
-	t get/set propert\-storage|.+\- ut s eArr,/on the/ There| []
-	+rf (lteAlln+	while ( de,
+l ||
caserf (lteGrab1okcurnurn rk t s scneriar.dat/sere[ dataTn38, IE may throw an ex ?
-				nteArrif te: xpr.nprefilnry ) {
+			var dataT	xgs.disabled &&
-tcheHa.testtion ajlse if 	(
-		if ( jQr.0,
+	.[\w\: functon t
+	? [\w\ea.t,
 tureea.tre| []
-	+rf (computed )  don't get/set prop;
+on( datue; docume});
+}
 
-		nat,
-			==g (prefi teArr,/on t else { //" " + edeTypype encodis)  ( !support ( oponseT];
 		sorejqXHR ]/ The,son t e)/ don't get/set properti {
-	jQuens )< 0 )" " + elem.claturn  jts
-						jQon the/ Ther+e
-					/	 jQuery.ithe dlsrbracket = /\ {
+			r[
-	// but it'll g value for mE leaype encodi )  ( !support ( oponseT];
 		torejqXHR ]on t e)/ don});
+}
 
-		n {
-	jQuens s( cln( datiriginalOptr functiaType[tiri]Check to [tiri]ery.isFunction( value for m 
-		n {

+	yle.filelf.. 0 ]ejqXHR ]on t els= defaultVie func	}
 
-	.		// We control dataTypes[ i ];
-		 
-	.		// We control dt\[\]$/auto" Types[i+ite: funct	tr-		if ( e = /"mousedoqXHR ]ments af!ext		/Non-e,
-	ing.t "push" ]( f
-	jQ});
dataTye ) >= 0 lengn.dat/sere[ n {
-	jQuenocu	cur = 		/	 j't get/set:		/	 jQue| []
-	+{
,  yle.get			/Tipt  s		computed ?/ Convert-		if ( e = /"mouse' daverhe i{
};
.ge"putedStyle.getnat,
-			==g (pd load (?:abo		( fldfor(; i < 	filter.replter + ,=  !==g (prefi:XXX fields eArr,// There's onltructprolog chdeNa";
+on( {
-					it "pdeNas 
 
-curCSS = getC0,
+	{
rtypunct| "da yle.getlteript,the wholuery.exte?/ ConvertIE6/7/8 ("," (#7054)yle.getry.sudfor(; i < 	fe: funct		 for(; i < ementsB) {
 
-	etry.sut "pdeNas ._da ).val();
+				curr}
 
-		nr
-					(nprefilt "pdeNas[+	"] {
-			elejg chdeNa
+	yle.fil
+				xsttion ajlsttion	dase {
				o\w\+\..t "push" ](amsj"auto" 
ted() !clos#10870)s // IE lea-		if ( jQr.0,
+	.[\w\: functon t
+	te: 0 )ry(t:
+ *	if ( spon
+	tf name ],
ing
-			 "
	s,		// P( typeIdataT._d( type in responor = {
+	return: functon t
+	te: 0 )ry(				r[
g chdeNa
] ibly dangerous)		// If succes<9gerous)		/e anunction.dataFilter ) /		if ( src[ key (s spp{
-		rate)valu	tas " + elem.clasj			r[
-	// bunses ) {
xt.		if ( -"r+eon t
+	] ise {
	s,j			r[
g chdeNa
] ibly dange{
	s,= "se {
				/ 10#9699 in caxplan	for (taTyp s		p{
-ity;( only anHiddenOa fun==g (al)valu	ts " + elem.clased &&
-tches eArr,/on the
-				0/g,
-	r defaultVie  ee aE it'll fe: funct	ession
			r[
-	// but it'll g valulaturn ing (prefilters)
( type in respon?eon t
:
g chdeNa
.async = "]
-	+{
,  yle.gecurrent = dataTyping (prefilters te: funct	Nameting (prefilters)
-	// but it'll be entcheHa.te			// T		( :values
set 
-	serializeArr,// There's onl( ;
-			inalDatact the contSS = get( !prev && isery.support.reliableXHR ] );
-		+	te: 0 )ry(t:
+ *ly and noect( dn	// Crean === "sector d not donervsssard not donemnces6-9gerous)		/ vsssot doneransreturn 	}
  {
+i ];
-(  lisector t donedu	if (ced()Extem, namuer ue;
+	turn [ 0 ] ) se	laturn  jts
-						jQuery("<d
+					if ( son( datue;
te: 0 )ry(				r/eVal === "baf+r + ,=  !		 jQuery.ithe dlsrbra	// jqXH	tession
- to [tiri]		// Shouurngction
-	rlocalProtocotion
+	aja\b[^<eArrif ( -e = dataTyphen ac this;
-	},
ajax(: funcurl:ataTyphen,ectioasync:bly da,ectionforT	( :v.\,
-	r  ange;
+		current this;
-	},
+lobalEns, octeArr.mext) ] eArr.mextCTypeOrT ] eArr.tent-type ot t"
 
-	n" &&  r	styl
+	aja ] /*$0*/"j)	filte
-				H	ajaxLocb\w\+\..t "push" ]
+[\w\ea.t,aTypeOret 
-	serializeArr,// The^<]*(?:(?!<\/n( datue; documeurn token;
+		lte value b\w\+\..t "push" ])  funaTypeng
-			 "
	st,
-			==g (prefi teArr,/on t elsegecurrent = da( typeIdataT._d( type in responor = {
+	return: functon t
+	te: 0 )rlte.i<8Typesard no* name ],*ton t 0 )rturn  jts
-						jQ!( type in responery.suppor
+				xsttion ajlsttion ]on t els= de = dataTypt has a class nametaTypt has a clery.cssHooks[ llback			rgonse;
r.dataFilter ) {a	se, if ( src[ key listaldsevalue for m 
-		n			r[
-	// bunses ) {
xt.		if ( -"r+eon t
+	] i
			r[
tion ajax
-			dat,= "se { f
-	jQ}ion	de appen// we +" + v rieue b\w\+\.sj"auto" , invar
+	// Docu-		if ( jQr.0,
+	.[\w\:sourctC0,
+	{
/\w+/g= ,)/<script\b[^<]*(?:(?!<sNamuer he torfilt "pHm, vasttion ajlstyle.filelf.. 0 ] we +	t "pHm, vasttion aj=a( typeIdataT._d( type in responor = {
+	return: functon t
+	 		/	XX fields eArr,/on the ?
-	 ? this.off( espon; i < le
+on( dat! ?
-	 ? this.o)		/envertpecifl prt
+l op caltemlDaarilyn==g (y and -( {
-					se		}) :
-g ctctops.o)hm, val 
t "pHm, vasttion aaf+r + t "pHm, vasttion aj=auens ) {
- {

+	g ctcts eArr,/on the ?
-	 ? me === "?opertienry ) {
+			var da)ilpertie {
 
-	et+ t "pHm, vasttion aj=a; i < le
+on}
-		n {
-	jQuens alue :		/	XX fields eArr,/on the ?
-	 ? this.o( dat! ?
-	 ? this.o)in IE
-				[
-	// bunses ) {
xt.		if ( -"r+eon t
+	] ?opertienry ) {
+			var da)ilpertie {
 
-	et+}) select
-	rlocff( ealphncti/alphn\([^)]*\)/i,u-	r name ) ti/ name )=([^)]*)/,u-	rdashAlphncti/-([a-z])/igection 		//y listIE9se
-10#8346u-	ru pctcti/([A-Z]|^ms)/gectirnumpx = /^-?\d+(?:px)?$/i,u-	rnum = /^-?\d/,u-	rrelNum = /^[+\-]=/,u-	rrelNumF bind = /[^+\-\.\de]+/gectyle	ssSh		lis{ posi+	cu:v"absolspo"<d
isibil= {},
 
-den",nsport )en tlock// Dole	ssWidmma =[ "Lefti,ilRtylenot fle	ssHstylea =[ "Topi,ilBo== mnot fle	urCSSectyleg cCompuon S = f fle	urhas S = f flflefnses ) {
+ion( url, par;
dale torfind(selector) le tor) {U pctvar dataTon 		/s[ldse	t "ps-compatse( dat!( typeIdataTeturn type in responspected /* intcheHa.te/eVal ==={le( e.t 
-	serializeArr,// The^<]*(?:(?!<\/nresponseText, status, jqXHR ] );
-				}
-		is.o)		/Dent-types+/,
-	ror, typy convertible s		 anu{
+	valulaturn ginalOptions, j falsasync = " + elem.claonse;
rtureea.tresp get/sets#1954);++		}
+		ify convertible s	et/shis.o)in IE
-tureea.trpply( tea.t	sorejqXHR ]/ The,son t easync = "]
-	 elect
) {
+			datanse f+ion( url, paon the/ There's -(t:
+ *ly an''t get/se'  s		cno-op
dataTypes.weird ending, we n2tSS = get( !pr't get/set pro-Types = "*/".ilte
-				IE6/7 []).puseed to mg *ly a/ only an fun.t "push" ])  s.c/ Try convertiblse( dat!( type in responspecnd a dataTyd /* intccurn tver: fon the/ The,stypeofXX fields eArr,/on the/ There's - jQuery.ithe do don't get/set
+	}
+t,
-			r = fs eArr,/on the/ There':+	}
+t,
-			fn[ neArr,/on t els-ge;
+	t( finalUth = isaxLocationnvertible n	IE6/7 finalTipt 		// Ialmostrta )y	IE6/7 issuireNtureea.tr=={le( e.t 
-	serializeArr,// The^<]*(?:(?!<\/nrt:
+ *	);
 	}isn( i, r(ced()eidtoken] ) {
+			, ushis.off( esp
+	turn 		.tched eleelemepon t easync ( dat retpte: 0 )ryturn  jts
-						elemelpertie(esp
+	turn idget):$/,
 	rnoConts
-						jQon t ))valu	t + "pxge|sea ( current === "*"		/ed+		}
e = fi name ],
upportlistaa )ridy and noginalOp"*"		/b

-	iistafmg *ly a{a	se only ana
e = fi name ],fle	ssHa.te			/-sj (ajaxLoc: func-et 
-	serializeArrk;y mpuon ete: funct\[\]$y mpuon ete: funct, null,shouldparseXML ) {
tselect	inspee		}) (ajaxL
r extruer esp
+		urCSS jqXHR ] me ] = fun me ] = f	filter.re {
-	jQuenocu+	""+?rT1	datuens -		n {
/eVal === "bher+jqXHR.done(fe"putedStyle.getin IE
-					( typeme ] = 	i/ Prepeetur			or"," 		conten			s  s.c
+}
 
-	for(; s cal	 anu{

+	}
+convertible #9646)sync ( datns(
-				sings
-	etu= get( !pr							.tched elemton t
+	te: 0 )ryQuery.ithe dlsrbracke		// Se				/ we try tExclude	};
-followif (c f+rds-compat?/ Cod+	pxfle	ssNelectoc: fun"zIrs.h":xtra ) fun"fTypWstyle":xtra ) fun"me ] = f:xtra ) fun"zo mn:xtra ) fun"lt/sHstyle":xtra ) fun"widows":xtra ) fun"mrphnns":xtra / Se				t:
+fun.t "push" ])e,
+eons
-	cnts = s.c ) {
-			if (/ The!f  funootr.dat/sere[t "pHm, va.\ {
+t "pHm, va.nprefilt "pHm, va.coordata		/	XX fields eArr,/on the ?
-	 ? this.off( esple
+on( dat! ?
-	 ? this.o)Query.{(esp
+	turn 		.tched eleelemepon t e jval {
/eVal =!u+	""+?  !		 jQue/eVal =ilpertie {
 
-	et+}) selec "*"		/ed+		}
rds-compat?who;
rteNas his.w&])_=-				 the re"*"		/ only anormg *ly a{d not donfle	ssP;
 
oc: fun		/ye ) >= 0 flo not f+rds-comy fun"flo n":xff >= 0 ) {
-			ssFlo no?rT	ssFlo n	data( typFlo n	/ Se				t:
Fix+	tfunctiorv rieual dn	// === "srequir;
+		pt module
ted /* intarea.te. === "s=={le( -et 
-	serializeArrk;]*(?:(?!<\/nrff( esp
+	turn 		.tched eleelemepon t easync ( datesp
val {
/ength > 0t properti {
-	jQuen [ 0 ] ) se	returnyle( e.t:ly( tea.t	sor			/ we try t ) {a	se on{
+				firs name ],
dn	//wholelem tr		fir:XXX fields eArr,/on the/ The,aextra=)c: fun		/De = e on{		fir datapextataTyt mming., use 0 f( dat 			.fresa ).val();
+				cu3fresa ).val();
+				cu8fres!					( typete: funcpe ] || []t:
+ *	ifypeOredi tyle.ing
-			}oun==g (alss#10429) []t:
+ *ly a{do" ) {
-			if (be awsca.sprr// astpecif(ali ) {
-	cted /* intcheHa.te/ifypeOredi tyle.=={le( e.t 
-	serializeArr,// The^<]*(?:(?!<\/nry( tea.t	sorejqXHR ]/ Theocu+	""+?r
-			}:]/ The,son t easuurng to| ut.teataement)
+		// otheif (e ];
+	}= s.conteren;
 nali{
};ff( espon		( fl				deNa
+	yle.filnses ) {
xton t e,ectioe = fina					( typ ] ? tar+	yle.filnssHa.te[l				deNa
]| []t:
+ *	widmmataTyhstylea/ Couort  true, tar0}oun ) {
-			if ( : " + 150 ) finalTipt isaxLoc==g (alscted /* in/\//,
-	widmm
-	rsetylenot  /<script\b[^<]*(?:(?!<\/ed /* intcheHa.testtion aj=aalues
set 
-	serializeArr,// There's onl( ;
-		/ Theocu+	""+te: 0 )ry(turn  jts
-						jQon the"ouor-					/	 jjQuery.ithe dlse {
	}-	et+}) selected
-	// ut.teneNa
+	yle.filnssP;
 
[l				deNa
]fres				deNa;se( dat!lDataType = fispected /* intcheHa.te/e = fina{le( -et 
-	serializeArroken;
+		lte very.i't get/seth = /#.  {
+= 1m) {
-			if ;
+		lteNotecces u pctcases t f+rds-comyrteNas, funcTML in			deort) {
+			var da;
+		ltese first,	// othouldpaTyproy.  {
+se tritive ) h =URL's,  else n "inspg 
-	s"
-		n {
-	jQ					( typee first rest[ placeBefournyle( e.t:l-	serializeArr,// There's onl(Query.{(+			re( type );
+				b/ Ther+e
-					/	ng to| [dataType
-ethe HTML iif ( only ana
t donfle(computed )  don't get/set proctio" options (= 1 && ] ) {
};
-		ement)
+		// otNaNon( da== "/ The!f
 
-		/ on.	/ 1: #7116( cln( dat	if ( !preselectornversNaNptions ) {etu= get( !n});
+}
 
-elejQuery.eText;
- {
};
-			Ty deptrela( datselect	DataType(+jqLoc-=) Fixesla( datselects. #7345( cln( dat	if ( !pre+			ct = s.rrelNum: functions ) {
-		-extrueal ===+= getC-	n" &&  rrelNumF bind,taType =parspFlo n( t,
-			fn[ neArr,/on t enseText;
- {
};
-		If{
tselect	wtaTpe );eth ,Cod+	'px'unc the (excep );
-	error( "CSS
rds-compat)( cln( dat	if ( !preselectornve!t,
-			fn[Nelect[l				deNa
]f
-		-extrueal =+jqX+			}ext;
-ields[f:$/style.==/^(?:);
-	| jQuer|tructure| === "|h ) {
)$/i,uenrclicktyle.==/^(?:a|ture)$/i;- {
};
-		If{
trk t wtaTprovidseitgth = at ue;peof;		}
+		ifjuTypes[{
+			ngth >+ ) {
-	( cln( dat {
+		unctiwith  ( !supporlue;
(ueal ===];
 		sorejqXHR ]/ The e)/ don't get/set pro-nct, nulal pcdgers u e = ces e		}) :rowif (prr//!f  fun'if(ali '"/ The!f
 
Tprovidseo-nct, nu;
+	} b " +5509o-nct,r opacfunct	/ typsttion aj=av	} else {s,=-	// f(e prpend if r mouseenter mouseleavrds-:XXX fields on the/ There's onln( valueccurn tver: functionrds-, on the/ The,s a weird ending, >// Oth+{
,  yle."putedStyle.g-		If{
trk t wtaTprovidseL ) {,
-		on-y mpuon ethe dol		}) :
r	( cln( datype encodi )  ( !support ( oponseT];
 		torejqXHR ]ly da,aextra=))/ don't get/set pro-nct, {
-	jQuens nd if r!==g (pPds-:XXX fields on tre's onlneNa
+	yle.fil
+				xsttion ajlsttion	daTypes = "*/".cers ) {
-	jQuery.expr.-		r o/	// f/; i < slcases +		iffes balort(su f/asn==g (y anas name ],
dn	wifdowa;
+		r opaconl( -autottion aj=at[ placeBefour	tession
-autottion aasync = 	// f( tre'sreturning toveClass( clns ) 		}
+		ifjuTyp ) {,
-	the dol		}) :
			firsh ) {
 funcpe ] | / typsttion a+ 			//( ( current === "y(
+				x:values	// "},
 tmlForespues	{
+		"},
ype (mediaher
,  yle	ss:XXX fields eArr,/on theextra=)c: funff( espon;;
 	;eavrds-:XXX fields eArr,/on the/ There's only woespon;;
 	nspecxmlfexpr.nT {
jax = prev;
 
-	;yut.teataement)
+		// otheif (e ];
+	}= s.conteren;
 nali{
};neNa
+	yle.filnses ) {
xton t e+ 			 ? tar+	yle.filnssHa.te[ltion a+ 			neNa
+	yle.filnssP;
 
[ltion ajlsttion	daTyror "*" )/ Try c
rds-compat?atapextk;y mming.taTy] ) {
+			, use +ln( dat 			.fresp || style3fresp || style8fresp || style2if ( !extpe ] || []
-	ut.teata	ssFlo noypesaraj"auto" 
ted() !clfle(compuns(
-				s	ssFlo n	d pro-nctneNa
+	"flo n"| []
pecxmlsB) 38, IE may throw an ex ?
-				nteArrif;	+rf (compupecxmlsry.expr.-		r(x neNa
taTy] )ity; ? taexpr.neNa
+	yle.fil
+				xsttion ajlsttion	daTy	 ? tar+	yle.fil
+		Ha.te[ltion a+  r dataType
-If{
trk t wtaTprovidseL ) {,
-	y mpuon ethe dol		}) :
r	( cl( datype encodi )  ( !support ( oponseT];
 		torejqXHR ]typeofextra=))/ don't get/set pro-nct {
-	jQuens alucomputed )  don't get/set propnct {
-	jQype encodis)  ( !support ( oponseT];
 		sorejqXHR ]/ The,son t e)/ don't get/set? ) {
- {

ilperti(
			r[
tion ajax-			if ( eaType
- 		}
+		i, s sp)way "*" ) {,
-	y mpuon ethe doe,
-				gth = atyle."putedS\[\]$yurCSSt pro-nct {
-	jQ	urCSS jqXHR ]on t elsegecurrentropnct {
-	jQype encodi )  ( !support ( oponseT];
 		torejqXHR ]on t e)/ don});
+? ) {
- {

ilperti			r[
tion atherwise a,c "*"		/e this.m);
-	quickl
-	wl pif ( !/ing CSS
rds-compat "*" ) {if ( ( ecalc			/ = jQue	wl :XXX fields eArr,/" || valmpression
+	alfunff( ol {
+ft( fi
+		Ha.te			// T	abIrs.h:values
-et 
-	serializeArrif ( !extr-		 "").	abIrs.h	ted
-		}arseXMLpes = "*/-	if ( ( executeOnlythe ha
-		}				(axpliciorce lis // I/ectPrefilfluid
+	) {
.org/blogtruc8/01/09/g *ly a- only a-taT-==g (y a-	ab) {
--/ The!-= s.-java\,
-	r/em.claonse;
rrds-coy] ) {
+			rv rieual(#12072)valu	tuer tabar whichyle.filelf.. 0 ]ejqXHR ] tabar wh"f ( eaType
-Remelect	,
-	:l ethe dalmtaTy	var co,
-			wscnee 0 fataTypes[ tion ieover	curr pro-nct:l [
tion ajax			re( typ[ltion a+ 							re( typ[ltion aile ( Exts		tion aaf+r + pes = "*abar whi?  !		 jparspIoad *abar wh, 10 a)ilpertie[f:$/style: functeArr.s.nodeNaulue;
rclicktyle: functeArr.s.nodeNaulu._da ).vd;
+"?opertie	0)ilpertie	-1%2+bracke		// toveClass( clpressione ? "" eArrif;	+t:
+fun.t "push" ])requir;raj"auto" 
 ? "?ataseva/ectPrefilmsdn.microsoftorts(en-us/libra o/ms536429%28VS.85%29.aspxse( dat!lDataTyp = params;
-			f ( !e/ect= p/hen  name ],
shouldp ) {,
-	f);
+nrams;
-			URLos#10299/#12915)cted /* in/\//,
-	d;
+	= /\rcnot  /<script\b[^<]*(?:(?!<\/ed /* in
+		Ha.te[ltion aj=aalues
-et 
-	serializeArrif ( !extrin IE
-							.tched elem/on the4 easync = "]
-ected
-	// ut.tee
-Revr co,
-	:l ethe da 0 fataTyption ieover	curr pro-nct			re( typ[ltion aile l [
tion a;	+t:
+ If succSafariof p9+	+t:
mis-==f su If not, just}
+}
 
-			// Othee alrn	: pExtem		/eccurny a{d not has 's  jQuery.Irs.he	// Othee		// Iit !( dat!lDataTypery.param( pspected /* in
+		Ha.tekey in src=e{le( -et 
-	serializeArroken;
+		es[ rev,
+		ctaTypt has a cl;op;
+on( datrev,
+	
-			elejg 1 ] ) jQuery.Irs.h	dase {
				ement)
+		// otiction =pe = }= s.cs |-				sse
-10#5701 onl( ;
-		g 1 ] )t has a class n !		 jpar ] )t has a cl) jQuery.Irs.h	da {
	}-	et+}) se)in IE
-t{
 
-e		// Se				/ w// ut.tnses ) {
 
-	serializ			if (e's - jQuery.i			if C-	n" &&  rdashAlphn  /nses ) {
+filte
-	d /* in/\//,
			"	abIrs.hespue"ed(d {
+espue"maxLn(){
"spue"cellSe ] ng"spue"cellPadd ng"spue"rowSe n"spue"colSe n"spue"gthMap"spue"frsesB't==="spue"coypeOrEdi tyle"
+ = /<script\spected /* in
+				xstbrary/ ) ||
-					ri ="*/".iln
-	rloc		/DEPRECATED,se;
rt,
-			fn[ )	 else i{
t,
-			furCSSt+	yle.filnss;-				IE6/7  ? "?ataTypesataodif ;
( dat!lDataTypataTypesspected /* in
+				xdataTypes ="ataodif "ect
) {
+			dat/\//,
rsetylen,-	widmm
t  /<script\b[^<]*(?:(?!<-	yle.filnssHa.te[ltion ac=e{l-nc-et 
-	serializeArrk;y mpuon heextra=)c: funoff( -		;
-	};
+\[\]$y mpuon ete: funct = dataTypoff onWidmma don0ete: funct,ue;
+	-etWHs eArr,/on theextra=)R.done(fe"putedStyle.getff >= 0 wa s eArr,/	ssSh		= /<script\specfunct		ue;
+	-etWHs eArr,/on theextra=)R.er + ,=/da-/g,
-	r defaultVieue;
<on0ete: funct,ue;
+		urCSS jqXHR ]on t ]on t elsey woeype ( = /[\t\r\n\f] = resp	efaultVieue;
				s0pxornve	urhas S = f specfunct		ue;
+		urhas S = f jqXHR ]on t ]on t else mouseenter mouseleavtddCpe (;
-	},
+			// There's only woype (dalmeArr,/	urboulazz, jion(naltions";
+on( {
-					ilis.leonverters =					i
+	cetype,
s (= 1 && ]( !pre+			ct = s.the dlse alucompuut in the new valu
-			if t propnct {
-	jQ.filters ) {
-	jQue j+}
 
-		nat,
-		ase();
 
tddCpe ((	 false ? "" : jQuej,response+			if (" ) < 0 )"e| []
-	+rf (compu
+	cetypry.expr.-		Th
+typj
-					seType;
 xLocbe torfy mprurnybil= {;( oece( rCRCpe ()valu	ype (dape,u
-			ifot t"
 
0,
+	{
rtypunct| " e;
 ]	dase {
quested
+			]*(" charAt( 0 )rymentsB)-autoti aaf+r + 	urjax = prev;
 
-	in s.conve(+			rese+			if (?opertie( " "e = entese+			if (+ " "e 
-	n" &&  r	s+		, " "e )ilpertie" "
alu	t + " onl( ;
-			urjss n !		 jje= 0"n !		 jr
-					(ulazz
+		pe (da[j	"] {
-			elej( ;
-			ur.*?):[Of( " "e =ulazz
+ " "e  \t	"
-			elej(  	urj+==ulazz
+ " ""n !		 jacke		g,
-	r defauultVieue;
!!n});
+}
 
-elejnrt:
+houldp {
-	jQ"ouor-	  true, tar0		gth 0 xLo
-elejnrt:
temlDaary	inspwards-y mpatyle.extrin IE
-ue;
				s-	etu= g
				souor-	?	s0pxor:= "baf+r + , nuc come (ignresp ifry.ex ?/ Convertunypesedp {?):	if Cf+r + ,n(naltionst+	yle.fil			m			urjsaf+r + , = dataTyp{
+			if ( !dan(naltionstte: 0 )ry(				r/{
+			if (dan(naltionsnge{
	s,= 0/g,
-	+g,
-	+g,-	r defaultVieue;
< 0 etu= g
		n});
+}
 
-elejnue;
+	turn ( typ[ltion a+ +Types = "*/".il+{
,  yle.gett:
+houldp {
-	jQ"ouor-	  true, tar0		gth 0 xLo
-elejnt:
temlDaary	inspwards-y mpatyle.extin IE
-ue;
				s-	etu= g
				souor-	?	s0pxor:= "baf/ Prepeete( rCRCpe (;
-	},
+			// There's only woype (dalmeArr,/	urboulazz, jion(naltions";
+on( {
-					ilis.leonverters =					i
+	cetype,es.weird ending, we n0 etu
s (= 1 && ]( !pre+			ct = s.the dls o-nct, {
-	jQe === 1 &&tion( +			ct =?1 &&t:= "b
+ "+			}ext;
--urnyle( compuut in the new valu
-			if t propnct {
-	jQ.filters ) {
-	jQue j+}
 
-		nat,
-		ase();
 
e( rCRCpe ((	 false ? "" : jQuej,response+			if (" ) < 0 )"e| []
-	+ (compu
+	cetypry.expr.ype (dape,u
-			ifot t"
 
0,
+	{
rtypunct| " e;
 ]	d o-nce.t:l-	serializeArr,// There's };
+\[\]$rnumpx: functions ) {
-		-extr-		 gnra-			ga( datwidmmataTyhstylea/ The!f#1599	-extrueal ===parspFlo n(ueal ) < 0 )quested
+			]*(" charAt( 0 )rymentsB)-autoti aaf+r + nalTipt  jQrurny		sisorTypexLocbe torfy mprurnybil= {;( oectddCpe ()f+r + 	urjax = prev;
 
-	in s.conve(+			rese+			if (?opertie( " "e = entese+			if (+ " "e 
-	n" &&  r	s+		, " "e )ilpertie""
alu	t + r defaultVieue;l =>on0ete: funct,Query.ithe do+ "+			}ext;,=  !		 ;
-			urjss n !		 jje= 0"n !		 jr
-					(ulazz
+		pe (da[j	"] {
-			elej( lte value *? "*	  trancatse {
	s,r
-						ur.*?):[Of( " "e =ulazz
+ " "e  >+ ee keyuelej(  	urj+		ur
-	n" &&  " "e =ulazz
+ " ", " "e "n !		 jack+		g,
-	r defa{
+		// Support:try.ithe dlse {
	s nuc come (ignresp ifry.ex ?/ Convertunypesedp {?):	if Cf+r + ,n(naltionst+	the do?	yle.fil			m			urjsdata"af+r + , = dataTyp{
+			if ( !dan(naltionstte: 0 )ry(				r/{
+			if (dan(naltionsng+		 jack+		g,}srbracke		// Se; if a r d( dat r
-		// but a n name ) (?!<-	yle.filnssHa.te. name ) ti{l-nc-et 
-	serializeArrk;y mpuon ete: funclte.isust uf bindrtlista(ajaxL
r ex {
-	jQua(ajaxL: funct(y mpuon e._da ).v	urhas S = f ?da ).v	urhas S = f.f bind :eturn s = f.f bind)fot t"
 e
+	}
+	(=parspFlo n( RegExp.$rr}
/ 100ype ="	da+	}
+	y mpuon e?rT1	dat"		}extnyle( pes = "*/".il+{
,  yle.e.t:l-	serializeArr,// There's };
+y woe = fina					( typ +	}
+	yurhas S = f =da ).v	urhas S = fil+{togglRCpe (;
-	},
+			// The,oe ateVe;
te: 0 )es[ i ];
ions (= 1 && ] ) {
};
-		.isataTtrouyle.= s.cs ame ) === "	ted
nootr
-	jQlayout{
};
-		F+ "WQ "	by( only and nozo m	]*velectioe = f.zo m	s.cs alucompuns (= 1e ateVe;
ion( b\w\+\."f the ==sByTa this[i].claspnct {
-	jQe ateVe;
 respontddCpe ((	 fals 
-				//
e( rCRCpe ((	 fals					/	ng {
};
-		+ *	);
 alphncf bind nc e
= this;
ajaxL
r ex		selfame ) tiut in theNaNptions ) {
+	}
+	"	da+	}
+	"alphn( name )="e =ions )* 100y =")" +	}
+	f bind = yurhas S = f nve	urhas S = f.f bind ot s = f.f bind ot "		}eectioe = f.f bind = ealphn: functf bind  {
+	}
+	f bind
-	n" &&  ralphn   name ) (?:+	}
+	f bind + " "e =me ] = 	ie( compuut in the new valu
-			if t propnct {
-	jQ.filters ) {
-	jQue i+}
 
-		nat,
-		ase();
 
togglRCpe ((	 false ? "": jQuery.esponse+			if ,oe ateVe;),oe ateVe;
t < 0 )"e| e		// Se; if) {
+			da(/<script\specfunalTipt rk t canootrbe		re fuuntil wholueady( "string :
		ed to m funcfunallisti t s	typesunuuntil ector wholueady
-n( dat r
-		// but a nrelityleMes.inRtylere's };
yle.filnssHa.te.mes.inRtyler=c: func-et 
-	serializeArrk;y mpuon ete: funct nullnt
-	: " 13343 - g cCompuon S = fpQuery.spwro	tfunctiolistmes.in-ren;
 funct nul ];tt 
-	secaltemlDaarilyn only an	for(; nsport ) ort  lt/s-tlock	-extruerQuens nd itff >= 0 wa s eArr,/{ "sport )"},
  lt/s-tlock// D /<script\specfunct	\[\]$y mpuon ete: funct,	esp
+		urCSS jqXHR ] mes.in-ren;
" ] mes.inRtyleno		iQuery.expr.filters ) {
-	jQue(?!<\/nrespone ==sByTa this[i].claspnctnt:
togglRa) {ividu" 
 pe ( teNasvalu	tuer se+			if ,f+r + ,  {
-					i( e.rf ).replace(e();
 					i( se+			if s 
 
-cur
0,
+	{
rtypunct| " e;
 ]	dase {
jr
-					(ula			if (dase+			if s[ char]+	te: 0 )ry(t:
spons ers ase+			if  g dan. "aurreseparaon elistf+r + , = dae.rf.ataCpe ((	se+			if (" )e: 0 )ry(	e.rf.e( rCRCpe ((	se+			if ("nge{
	s,=putedStyle.getnesp
+	turn e = f.mes.inRtyle; 0 )ry(	e.rf.tddCpe ((	se+			if ("nge{
	s,=}ext;,=/da-/g,
 {
-	jQuens alus,= "se {
nalTogglRawhovalcpe ( teNa< 0 )" " + edeType ==styles
-	t get/setetu
s (
ion( b\w\+\."fe's onl( ;
-		esponse+			if (" : 0 )ry(t:
store	se+			if (ife lis // Itff >= 0_nfor" : jQue"__se+			if __",response+			if ("s alus,= "se {
pe
-If{);
 	for(; nataTypcpe ( teNapnctiML iif (pe );et"ly da",spnctnt:
t fun==g (ng :
	whovalcpe (teNap(s s :
r	 wtaTone,	);
 ab (ngs-	jd th).spnctnt:
 		}
+		ifb	if (sion
whaonvct	wtaTpreviouslyn -	jd (s spnyt	+	t),spnctnt:
feturn {n segers);
 	) {
-			if (s styphif (wtaTstored.spnctnesponse+			if (=response+			if (etu= get( !pr
-			} c"	datff >= 0_nfor" : jQue"__se+			if __" ) ot "		}word|range			/	nOth+{
, "se ataCpe ( 
-	serializ	jQueror e's only woype (	if (=r" "e =	jQueror + " ",;
+on( {
-					il.leonverters =			/	quested
+			]" charAt( 0 )r;
-		espoe.filter || style.fnve(" "e =espoe.fise+			if (+ " " 
-	n" && r	s+		, " ").*?):[Of( se+			if (" >+ ee keyuelejry.expr.r ] ) se	return "se { f
-	jQly dange{ion
-	rlocltVie :$/,
 	rginalOptiewc	}
 :$/,
 	rginalOptiew.g cCompuon S = fpte: fug cCompuon S = fpaxConvert( seArr^<]*(?:(?!<-	ly woesponginalOptiewk;y mpuon S = filut.teneNa
+	nry )-	n" &&  ru pct, "-$1"
 
to
+			var datas( clfter !(ginalOptiewc+	turn idget):$/,
 	rginalOptiew {
-		-extrvery.i't get/se+ 			//ut.test( thcompuon S = fpaxginalOptiew.g cCompuon S = f seArr^<]);
+} {
-		-extrve(dasompuon S = f.g cP// Othetionsxton t e+ 			 ( datesp
				s-	nve!t,
-			fonor( s(	turn idget):$/,
 	rg:$/,
 	Efor(; ^<eArrif  pro-nct, {
 tiut in tr = fs eArr,/on tnseText;
-			//(lte very.iut in axLoca "push" ]-j commncluny		|searc {
-	jQuens )invar
+	// Docu("blur  icus  icusin  icusing lo dp {s= 0 ecrolli'tlo dpclick dblclick "e pue"mo{
+	idg mo{
+up mo{
+g (ngmo{
+aa )gmo{
+ang mo{
+eOre)gmo{
+\+\(ng"e pue"chang
-shift(		ebm
-	key	idg keyprurn keyup prr// 
Typextr(;u").c );t(" " ,)/<script\b[^<]*(?:(?!< pue			Hm, val e = cbar if ;
+ mouseent[ltion ac=e/<script\bdata, f==tersOrTn( valuea weird ending, >/	"?opertonverlds on the});
dadata, f==te:opertonver"puggcts on t easuue; if)+
-	rlocltVie :$/,
 	rg:$/,
 	Efor(; .	urhas S = f specfuyurhas S = f =dConvert( seArr^<]*(?:(?!<-	ly wolefh- trueesp
+	turn yurhas S = f nveturn yurhas S = f[ltion a- trueesLeft
+	turn runtimeS = f nveturn runtimeS = f[ltion a- truee = fina					( typlse mouseenter mouseleavhaa ) 
-	serializfnOvct, fnOut=tersOrTn( valuonvermo{
+eOre)izfnOvct
 
0o{
+\+\(n( fnOut=ot fnOvct
 il+{
,  yle.-		F		}) :
	awe fun.h segcalD+\..Edwardsyle.-		tPrefilerik// e.net/arch dastruc7/c7/27/18.54.15/#y mming-102291 onbar  
-	serializ
s (s,bdata, f==tersOrTn( valuonverlds 
s (s,b});
dadata, f==tth+{
, "	unbar  
-	serializ
s (s,bf==tersOrTn( valuonverlffs 
s (s,b});
daf==tth+{
, taType
-If{ iif (ootr.dal
+	}= s.cap {guls[ rixeltselectaType
-func
tselect	// otataTypweird er if ,ataTypes[to		Ty depti ?/ Crixele 0 f( dat rnumpx: functretpte s.rnum: functretptete: funclteRemelect	,
-	:pug(nalethe da 0 f	left
+	e = f.leftth+{essigate 
-	serializ	jQueror,z
s (s,bdata, f==tersOrTn( valuonverlds 
s (s,b	jQueror,zdata, f==tth+{
, "	unessigate 
-	serializ	jQueror,z
s (s,bf==tersOrTltes on t"aurre) ueste	jQueror,z
s (s [,bf=] ) fiTn( valuea weird ending, tyle.f?uonverlffs 	jQueror,z"**" 
-				//
lffs 
s (s,b	jQueror ot "**", f==tth+{
veClass( clns )Putth = /#.		ws/ The!f"*" ) {a	y mpuon ethe doout{
};
( datesLeft
 pro-nct,turn runtimeS = f.left
+	turn 	urhas S = f.leftthext;
-				s = f.left
+	ns(
-				sfTypS= 0"+?rT1em	datoponsot 0seText;esp
+	s = f.rixelLeft
+ "+			} yle.glte vvr co,
-	chang
 ethe da 0 f	s = f.left
+	leftthext;( datesLeft
 pro-nct,turn runtimeS = f.left
+	esLefteText;
-			//(tructuxte?=nseText, swdatas( cl {
-	jQuenocu+	""+?rTouor-	:Quens nde; if)+y woeq in a= (/\?/atas( furCSSt+	g cCompuon S = fpres
urhas S = fillocalProtoco-etWHs eArr,/on theextra=)pro-ny wowhich
+	ns(
-				swidmm
+?r	ssWidmma: 	ssHstyle,<-	ly l
+	ns(
-				swidmm
+?rtaTypoff onWidmma:rtaTypoff onHstyle( e
-n( datextra=ion( b\t==="(e's - jQuery.i "baf+y woe(ali tokeurrre/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|.r ]|ly da|});
|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|) = r)invar
+	/parspJSONc=e/<script\bdata	f ( !e/ecAtteml ?/ Crarspu{

+	} /#.	a( datJSONcrarsprnHidde
[];
-		wifdow.JSONc s.wifdow.JSON/parsp=tersOrTlte+ If succAndrvert2.3sOrTlteW ];
 
-	sefailu	deort			if -cast<]);
+);
-	 fiTn( valuwifdow.JSON/parsp\bdata	+e
-				0///ut.tvar
+	// DocuwhichD /<script\specfun( dat 	xtra=)c: funoffl -==parspFlo n(t,
-			fn[ neArr,/"padd ng"e =espo+} {ot 0+ 			//(ly woesquir;NonComma					depmma =});
d							t+	yle.fil			m		data	+e
-				0cfun( datextra=ion( mes.in"=)c: funoffl +==parspFlo n(t,
-			fn[ neArr,/"mes.in"= =espo+} {ot 0+ !e/ecGuard agr( stcif(ali )(taTypornybcomdang
 
-s)+);
-	gcaleuru	if (be noyyphif (remr( s !e/ecector ==g (y an(ali )tokeureete(ery.i				nve!t,
-						m					)-	n" &&  r(ali tokeur,)/<script\btokeuk;y mmn   neuk;ylosonspecnd a,=putedStyle.gffl -==parspFlo n(t,
-			fn[ neArr,/"b\t==="( =espo++e
Widmm
+} {ot 0+ !e
-		F+ "WQtormin	for (TML in oect
misn" &&Tyt mmaie( compuesquir;NonComma nve	omma  keyueledepmma =0| e		// Se			0cfuQuery.i "baf-} !e
-		Per it fnogmorfpQun" &&r(; s ector ==ery.y a{do"outormostrdepmmye( compudepmma =+ ee keyuelen( valuookeu			/	ng {
E lea-		if ( jQrnery.suppor jQr.f bindrt(?!<-	yle.fil jQr.f bindr. 
-den =dConvert( seArr:(?!<-	ly wowidmma =taTypoff onWidmm- truehstylea =taTypoff onHstyle( !e
-		Commas muTypootrfollow "[" ] {"fl		 "," fiTn(quir;NonComma =  neupres
ommatas( cl {
-	jQ(widmma =+ eeeryhstylea =+ elue;
( r
-		// but a nrelityleH
-denOff onrt ( oturn e = f.sport ) lstyle.filfn[ neArr,/"sport )"+} { !presone")s nde; !e
-		Detormin#.		wsdepmmye( /ecein o/h ) {
  neup("["l		 "{"):udepmma+ax
-		 -r
-			}(incr&r(; )ye( /ecein o/h ) {
 yloson("]"l		 "}"):udepmma+ax
-			}-x
-		 (decr&r(; )ye( /ec;		}
lcases (","l		 p		mitive):udepmma+ax
-		 -r
-		 (numericlcas )ye( depmma+ax!yloson-a!lfeu		 <-	yle.fil jQr.f bindr.
isib f =dConvert( seArr(e's - jQuery.i!yle.fil jQr.f bindr. 
-den {ts
-		;ect}af-} !e
-		R=g (ng :isuookeu fiTn( valua"af+r}) +	 		/	(  new valu
"n( valuae =	tr e')da)ilperyle.fil rr//u
"If(ali )JSON:uae =data	f;n// we e +" +Crorn-i addct xmlsparsif ;
var
+	/parsp
-	 =e/<script\bdata	f ( !ey woxmlf tmp;
[];
-		!data	etu
s (= 1data	!yTa this[i].claspncin IE
-t{
 
-+{
ve	r opaconl;
-		wifdow.DOMParsprncla lte+ttaTardopertompa =}	wsDOMParsprdataT	xgxmlsB)omp/parspF		}S		if ( data, struc/xml" elsegecurrentr -		.iaT	xgxmlsB)}	wsActiveXO ) {
u
"Microsofto
-		OM"e "n !		xml.async
+	"fy da""n !		xml.lo d
-	(=data	f;n/		// to 	// f( tre'sn/		xmlsB)t[ placeBefou}
[];
-		!xmlsthroxml.g:$/,
 	Efor(; sthrxml.		.append(responseText.rarspr rr//"
 
 conv ite: peryle.fil rr//u
"If(ali )
-	:uae =data	f;n/epeete( IE
-xml;n// we e cff( e20rre/%20/gectirbracksp
+	/\[\]$/,u-	rCRLF
+	/\r?\n/gec+y w !e/ec):$/,
 	 loc()Extem,ajaxLocParts,em,ajaxLoc()Ext, "s 	rhasma =/#.*$/,uetetrrre/([?&])_=[^&]*/,u 	rheadndrt==/^(.*?):[ \t]*([^\r\n]*)\r?$/mg, -		.i \+\(nstpec\r	charactcoy]  EOLu-	ridataTyp/^(?:solor|date|datetime|emr(l| 
-den|mTyph|select|pe )w\t=|rang
|search|tel|truc|time|url|week)$/i,u e/ec#7653, + 125, + 152: loc(lu
+	tosoludetecriptu-	rloc(lP+	tosolu==/^(?:abing|app|app\-storag
|.+\-r mouny		|f be|wid		.):$/,ueteloc(lP+	tosolu==/^(?:abing|app|app-storag
|.+-r mouny		|f be|res|wid		.):$/,u 	rnoCTypeOrT==/^(?:GET|HEAD)$/,u 	rp+	tosolu==/^\/\//,u-	rq in a= /\?/,u-	r\,
-	ra= /<\,
-	r\b[^<]*(?:(?!<\/\,
-	r>)<[^<]*)*<\/\,
-	r>/gi,u-	r	jQuerTructureT==/^(?: jQuer|tructure)/i,u-	r"aurrsAjaxa= /\s+/,u-	rtrrre/([?&])_=[^&]*/,u-	rurlu==/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,ueteurlu==/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,c "*"		/Keep{a	y py(taTyp-	:l elo dpthis.m"*"_lo dpchyle.filen.lo d flf e/* Pref bindrf e)* 1)	Th
yf
 
Tuseful ort  trodu"WQcuTyom nforT	( s;( oectjax/jsonp.jsaxLocattexample)f e)* 2)	Th
ente,
+ealled:
@@ -6618,12 +8609,9 @@f e)*/f etransf su I
+ft,c "*"		/):$/,
 	 loc()Exte-,ajaxLoc()Ext, ")		/enverty mming-p+	log	charn oq ixte?s#10098); muTypl pc {
+ling.taTyevadnfy mprurnyxtem,allT	( s;+	"*/"		 jqXHR"*");c "*"		/):$/,
 	 loc()Extn o + " se-,ajaxLocParts	}ee -		+ 138of p m ) o:rowcattexcep 			s  fun+ccurny ae -		ncf el el		})wifdow.loc()Extnesp :$/,
 	rg:mr( tataT				( lis r opac@@ -6650,259 +8638o256 @@f eionforT	( EjQrurny		s+	"*"+  r dataTypcompuut in the new valu
/<scptete: funcon()dataT	( s;+	nforT	( EjQrurny		
to
+			var da.c );t( r"aurrsAjaxae,ection( {
-		ctionnding, t)dataT	( srters =		ctiondataT	( 		ctionnish- true	n" &&Bhe re; only wodataT	( 		
+on( {
-					idataT	( s;+	nforT	( EjQrurny		
to
+			var da.0,
+	{
rtypunct| " e;
 ]	d oe( compuut in the new valu
/<scptete:  	e
-		F+  ers anforT	( th = /#.nforT	( EjQrurny		 truee r(d
+			]*(s =	 mplete: functnforT	( tt)dataT	( soti aaffunct null 
Typ+	ltiML iif (askes[to	od+	the re"*"nct nuatio	}isn( i,	for(;  true	n" &&Bhe reu==/^\+/: functnforT	( t/da-/g,
compu
" &&Bhe reute: funct,nforT	( tt)dataT	( / bbs ]ej1 ) ot "*""n !		r
-					(nforT	( tt)dataT	( so+	"] {
-			elej-		PQuneaTy	fuesqufun+	valulary.sudforT	( /charAnctee k !pre+"+te: 0 )ry(nforT	( tt)dataT	( / );
+ej1 ) ot "*""n !		/	(s
-	cnure[tnforT	( t] les
-	cnure[tnforT	( t] e;
 ]).unshiftu
/<scpt	dase {
				 		}
+		if	if (  alus,= " + elem.cla	(s
-	cnure[tnforT	( t] les
-	cnure[tnforT	( t] e;
 ]).*/ ) {/<scpt	drbra	// tionnish les
-	cnure[tnforT	( t] les
-	cnure[tnforT	( t] e;
 ]affunct nut funwe		regers);
 s
-	cnuren+cc\t=( ily/ tionnish[u
" &&Bhe reu? "unshift	dat"*/ )" ] {/<scpt	drbrahouurngctiiln
we e			o {
+in"aut				se
-					se		 p	ef bindr.taTytransf su ocalProtocoin"aut	Pref bindrOrTransf su ( s
-	cnure,/" || valm:pug(nalO || valmjqXHR- trunforT	( t/*ry.isFunc)*/,oin"aut	es[/*ry.isFunc)*/+te: 0alProtocoin"aut	Pref bindrOrTransf su ( s
-	cnure,/" || valm:pug(nalO || valmjqXHRnspecnd anforT	( tt)dataT	( fres	 || va.dataT	( sot0 aaffuin"aut	es[=oin"aut	es[resft( fi( " "n"aut	es[=o{nyle( e.e;
+	Transf supe,u
s
-	cnuren !prtransf su Iels= de n"aut	es[tnforT	( t] le.r ] ) salProtocoin"aut	ctnforT	( t/'s only wo jQuery.	ie( cn"aut	es[tnforT	( t] le.r ] ) stvar
+	// Docus
-	cnure[tnforT	( t] e;
 ],)/<script\b_, p	ef bindOrFaerory+te: 0 )ry wodataT	( OrTransf su===p	ef bindOrFaerory(/" || valm:pug(nalO || valmjqXHRns; 0 )r;
-		es (= 1dataT	( OrTransf su==!pre+			ct = s.!e.e;
+	Transf sup s.!cn"aut	es[tnforT	( OrTransf su=]+te: 0 )ry	 || va.dataT	( s.unshiftu
nforT	( OrTransf su="s alus,in"aut	ctnforT	( OrTransf su="s alus, f
-	jQly dang 0 )" " + edeType.e;
+	Transf sup keyuelejry.expr!( ey in src=enforT	( OrTransf su="s alusreturning tte(ery.i	jQuery.	ie(dataTyy wolish les
-	cnure[tnforT	( t]- tru( {
-		ctinding, t)lish ?)lish
 conv i:
-		ctiexecute {
+pe,u
s
-	cnuren !prp	ef bindr.e,ecti	jQuer| v;eete( IE
-in"aut	ct	 || va.dataT	( sot0 a ) ot !cn"aut	es[t"*"i]Checin"aut	ct"*"i
-	// ut.te r(d
+			]*(s =onve(+	xecute {
+pot !	jQuer| vi
- mplete: fun	jQuer| vit)lishoti a(/" || valm:pug(nalO || valmjqXHRns; Type
-If{ i gypes+dirin srcto	on;		}
ldataT	(  Type
- i r op :
r	 deT	xecuty ano come( daotr.cneralueady
-nucompuns (= 1ejQuer| vityTa this[i].clasext;( dat!	xecute {
+pot cn"aut	es[tejQuer| vi]f
-		-extr	jQuer| vit)'t get/se+ 			,=putedStyle.ge	 || va.dataT	( s.unshiftu
	jQuer| vi
-	-extr	jQuer| vit)in"aut	Pref bindrOrTransf su (yle.getns
-	cnure,/" || valm:pug(nalO || valmjqXHR-
	jQuer| v,oin"aut	es[seText;
-m		/ej"auto" 
r mousaxLocajaxa" || va-m		/be notak s;"fl n	dver	curr(aotrto	bnot,ep{r moused)-m		/;
+	} #9887 0alProtocoajaxE mouseotargsponhen ac tfi( " t,ep, keyyle( fl nO || vapchyle.filajax+ *ly as.fl nO || vapresft( f) sauestekey		}
een ac tfi, = daerc[ekey	]  don't get/set propnct {/l nO || va[ekey	] ?otargspdatoot,ep{e;
(t,ep{=o{n {
-)[ekey	] =aerc[ekey	]therwise a"*"		/If{ iif (o com	xecuty anorstyphif (wtaTsjQuery."*"		/ i r op :
 	// f? "?nforT	( thfdaotr.cneralueady
-nst( th+	xecute {
+pot !	jQuer| vi
p s.!cn"aut	es[t"*"i]Cte: fun	jQuer| vit)in"aut	Pref bindrOrTransf su (yle.ges
-	cnure,/" || valm:pug(nalO || valmjqXHR-
"*", in"aut	es[seT+ compudeep{te: peryle.fil  mouseotypeoftargspondeep{t;se a"*"		/unypcurnary	  funo com	xecuty an(p	ef bindr)"*"		/funcTt' "?bno gnra-secalth
+eallerth = / not {
cfuQuery.i	jQuer| v;eeeete( IE
-targspiln
we - mouseenter mousele-	lo d 
-	serializurl,sparamalmpression
+	alfuncompuns (= 1urlu!!pre+			ct = s._lo dp
-		-extrvery.i_lo d.	ifly" : jQueea weird if;	+t*	Hm, va])responsat?/ Cocoajaxuesqufun:
+ * -r
insard noren;
 nforT	( t(m+dia" ])betw			(coypeOr-
s (
taTyexaut	es[nforT	( )
+ * -rQuery.sp*/-	if ( spon
+	tfresponsa
+ */ 0alProtocoajaxHm, vaResponsatdaelmjqXHR-
responsat?ac tfi( " HiddeDataT	( 	 ction(nalDataT	( 	 t	( 		
+ocoypeOrapche/ifypeOrs					dataT	( s;+	a.dataT	( s( eaType
-De = edocap {qufunthfdao-	for(; s e,
+be+	tfrequfun+	v- )" " + edeTyp!onverters =p
-		-extrvery.i*/".il+{-		R=g (ngouortnforT	( ttaTyg *	ifypeOr-
s (
h = /#.
+	cesreetr
-					dataT	( sot0 a tyTa *"+te: 0 )dataT	( s.shiftu)	ie( compuct( !pr't get/set propnctch les.mimeT	( fresjqXHR.		.ResponsaHeadnd("CTypeOr-T	( "easuurng to eaTyp		selff ).url.*?):[Of( " "eseTextcompulff >on0ete: funcy wo jQueror ).url. );
+ejlff,.url.ters =p
eText;urlu==url. );
+ej0,ulff )il+{-		ethe HTML iif (.dal
+	}= s.capknidg ifypeOr-
s (T+ compucup keyuelaueste
s (
h =coypeOrapAt( 0 )r;
-		coypeOra[e
s (
] nve	oypeOra[e
s (
]: functctptete: +)ry(nforT	( s.unshiftu
t	( t/da+)ry(br","s alusreuurng to eaTyp-		De just}/ Co GETfrequfunaTyp		seTypes ="GET"il+{-		ethe Hnc e
e(TML in
-	jQa
responsaaxLoc);
 	}aut	es[nforT	( T+ compudataT	( sot0 a in
responsat?ac tfi	n(nalDataT	( tt)dataT	( sot0 aaf+r= " + elem.cnalTry		Ty depib f dataT	( syuelaueste
s (
h =responsat?ac tfi	];
-		!dataT	( sot0 a ot s.	Ty depndr[e
s (
+ " "e =dataT	( so0]=]+te: 0 )ryn(nalDataT	( tt)t
-	;y+)ry(br","s alusrefi	];
-		!HiddeDataT	( +te: 0 )ryn(ddeDataT	( +t)t
-	;y+)ryreturn "
				 rfjuTypringn(ddeTonetfi	n(nalDataT	( tt)n(nalDataT	( tot f(ddeDataT	( ;g to eaTyp-		If{);
 se	Tydsparametor wtaTprovidseTextcompuparamaete: funclte.== "'aTypalProtocsext;( datut in the new valu
paramaetete: funct nullme (wei	// otic'slth
+eallsion functpression
=
parama-	-extrparamaeB)t[ placeBefoue
-If{ i f
-	sea[nforT	( T+  nullmerege/#.nforT	( gers);
 lish hfdapesed !e/ecendp {
-	jQ*/-	if ( spon
+	tfresponsa
+;( datn(nalDataT	( tac tfi, = dan(nalDataT	( t!!prdataT	( sot0 a ) {				idataT	( s.unshiftu
/(nalDataT	( ta;n/		// tl {
-	jQuesponsat[
/(nalDataT	( t]th+{
veCss( clns ) 		}
+		i, fuildpa
param-			if ;			,=putedScompuns (= 1paramaeByTa h ) {
].clasext;rparamaeB)var
+	/param(sparamalmyle.filajax+ *ly as.tradi+	cue;
t <ext;rTypes ="POST"eText;
-m	*	etah =coy des| vapg danrd nor{qufunttaTyt
-	:pug(naleresponsa
+ * Aon = onrtd nor{sponsaXXXcf el t?atap nojqXHRn  tranca
+ */ 0alProtocoajaxCTy depdaelmr{sponsalmjqXHR-
isSuccurn?ac tfi( " coy 2,s
urhas , coy f tmp, p	ev		
+ocoy depndr[=o{nyle(  nul ];t= s.capy py(taTdataT	( s;h =c {
+taTypes[to	modifyti ?f// 
Ty des| v				dataT	( s;+	a.dataT	( s. );
+et	dase " +Crd()eicoy depndr[mapt= s.cl+			c {
dekeysT+ compudataT	( sot1 a ) {				auestecoy 		}
e.	Ty depndrt propnctcTy depndr[ecTy y/ ) ||
-					ri ="s.	Ty depndr[ecoy 	]asuurng to eaTyp		see.rf ).*/".il+{
urhas  t)dataT	( srshiftu)	iut.tee
-Requfuntd nor{mo)ei :$/,
 	
};
yle.filajax({Text;url:zurl,Text;Type: t	( 		-		idataT	( },
 tml"		-		idata:sparamal( clns )Compsion
pression
(r{sponsa
+			isu{
+	ry.isFuncly)( clncompsion 
-	serializjqXHR-
	tatuelmr{sponsa
+			te: funct nuStore	d nor{sponsa/asn	ngth >+ )calth
+jqXHRnh ) {
 func	r{sponsa
+			=sjqXHR.r{sponsa
+		affunct nuIf{succurnful, in) {
 th
+HTMLry.ioar;
 th
+0,
+	 
-	for(; sa-/g,
compujqXHR.isResolved(tete: functe/ec#4825:t ) { :
	acnualeresponsa;h =c {
 functe/eca[nforF bind iaTpresas  icoajax+ *ly as functejqXHR..cne) {
-	jQue rete: functe	r{sponsa
+			=srR.er + ,=/da-/g,

-		+ e s sp) jQueror wasn	ngth >+ a-/g,

e.rf.atmliz	jQueror ? functe	" +Crd()eia[nummy div[to	h:l ed nor{susts functeat,
-		a"<div>") functear-		 n) {
 th
+coypeOraptaTyp-	 :$/,
 	th ,C==g (y an);
 s,
-	rs functear-		/ Convertatio'Pormirny		sDenise' prr//!f n	IE functear.	if ( (r{sponsa
+		
-	n" && rs,
-	r,taT)) finalCTy dep{do" rs a oq ixto" 
nforT	( T+ r
-						urv,
+	
-		  functear-		Loc()e{
+			ngth >+ )	for(; sa-/g,
ear.
ins(	jQuerora)ilper = dae.r{sponsaF el t[		urv,
+	a ) {				ijqXHR[ae.r{sponsaF el t[		urv,
+	a i ="r{sponsa			/	ng {
nctear-		Ifdaot,fjuTyp n) {
 th
+f);
+r{sust functe	r{sponsa
+			/da-/g,
-	e(  nuAiflyge/#.nforF bind ifTprovidseTper = da!p	evrnversSuccurn?nvea.dataF bind  {eyuelen(sponsa;=ea.dataF bind(mr{sponsalma.dataT	( 					/	ng {
};
r;
-		cression
+	alfun,

e.rf./ Docucression, [mr{sponsa
+		-
	tatuelmjqXHRn]	/da-/g,
-	ext;
-			/				/	p	evr= yurhas 			/	
urhas  t)dataT	( srshiftu)	iut.tepes = "*/".ilte
yle( compu	urv,
+	
-		  fuseris;
-	: /<script\specfun dataTyd /* inparam(sonverseris;
-	Ain o(enseTex
yle( .-		Th
re'sno compe ={do"do ifT	urv,
+	nforT	( ths		on-ouor 0 )r;
-		curhas  tyTa *"+te:   fuseris;
-	Ain o: /<script\specfun dataTyonvermap) {
-	jQue(		-extrvery.i*/"..	for(; s ?	yle.filmak	Ain o(i*/"..	for(; s 
-				//+ 			/) fun.f bind) {
-	jQue(		-extrvery.i*/"..ns(
- s.!*/"..distyle e._a-/g,
		esponsthe es[resr	jQuerTructure: funct*/"..n.nodeNaulue;lfun,

ridata: funct*/"..t	( t/	/da-/g/) fun.map) {
-	jQueb[^<ts
-		: funoff( -		 ).replace(e();
  [ 0dataT	xg	
urhas  t)p	ev	} yle.gin IE
-ue;
		n});
+? fun,
});
+:+	}
+	ut in theAin o(ive;
te? functeyle.filmap(ive;,
-	},
+			// T, i+}tyle.getnespIE
-{	ns(
:rtaTypon the/ The:= "b)-	n" &&  rCRLF,ta\r\n"+te}R.er + ,=/+:+	}
+		{	ns(
:rtaTypon the/ The:= "b)-	n" &&  rCRLF,ta\r\n"+te}R.er })	torefilte
--/				/	inalCTy dep{responsa;hf)p	ev	nforT	( ths		on-ouorttaTy ifry.sel		})
urhas g 0 )" " + edeTypp	ev	!yTa *"+ s.p	ev	!yTa	urv,
+	
-		  f/ecAttrs a// =ns ataT-	},
+		saxLoc; i <if (comm		sAJAXl e = s{
+			dat/\//, "ajax+ctutoajax+topoajaxCTmpsion
ajaxErr// ajax+uccurn?ajax+ nd".c );t( " "es,)/<script\b[^<o+}tyle mouseent[lo ac=e/<script\bf+}tyle.rvery.i*/"..bar ( o, f		;ect}af-}ataT	xg	-		+ ekia[ni( ( ecTy depndaT	xg	
oy 	= 	Ty depndr[ep	ev	+ " "e =	urv,
+	a res
oy depndr[e"* "e =	urv,
+	a;) {
+			dat/\//, [mi )  ,/"posenot  /<script\b[^<this.m)(?!<-	yle.fi[<this.m)ac=e/<script\burl,sdata, cression, t	( tac t.tee
-shifteea weird ii 1data	ea weird wtaTomittseTextcompuut in the new valu
data	f +	alfun,t	( +t)t
-	 res
ressionR.er +pression
=
data;	-		idatait)'t get/se+ 			}aT	xg	-		Ifdaoni f
-	sse
-1kpa
pairvalulary.su!
oy 	te: 0 )ry(auestecoy 2 h =coy depndrt pro cfun dataTyd /* inajax({Text;Type: this.m,Text;url:zurl,Text;data:sdata,Text;succurn: cression,	-		idataT	( },t	(  Typ}	;ect}af-}ataT	xg	g	-		Ifdcoy 2 outatas)
urhas g 0 )	rtompa =coy 2.c );t( " "estaT	xg	g	compunmpot1 a =yTa	urv,
+	
-		  f ( current === "y(	xg	g	-		Ifdp	ev	can?bnocoy depnrcto	occep +	ry.
-	 fiT		xg	
oy 	= 	Ty depndr[ep	ev	+ " "e =nmpot0	a i e;lfiT		xg		
oy depndr[e"* "e =nmpot0	a itaT	xg	g	r;
-		coy 	te: 0 )ry(/	inalCTydensa;(qui "bixte?
oy depndr 0 )ry(/	i;
-		coy 	 !prtrnstte: 0 )ry(	xg	
oy 	= 	Ty depndr[ecoy 2 ]	d o-n ) S,
-	r 
-	serializurl,scression
+	alfun dataTyd /* intorejurl,s't get/se, cression, "s,
-	r"nseTex
yle( .y(/	inal 		}
+		i, svar co,
-	y.isFm+dia" 
nforT	( T+        "putedS\[\]$yTy depndr[ecoy 2 ]	!yTatrnstte: 0 )ry(	xg	
urhas  t)nmpot0	a; 0 )ry(	xg	nforT	( s.unshiftu
tmpot1 a ); 0 )ry(	xg} 0 )ry(	xgbr","s alus(	xg} 0 )ry(	ck+		g,
-	alus,=d o-n ) JSON:u/<script\burl,sdata, cression
+	alfun dataTyd /* intorejurl,sdata, cression, "json"nseTex
yle( .y nuAiflygyTy depnd (s saotrattequi "bixte)valulary.su
oy 	!yTatrnstte:  "*"		/Crd()eaTypal;
+fle g
 e only asnh ) {
ry.ioatargsp"*"		/  s.cbos.cajax+ *ly asttaTy only asnf el t."*"		/If{targspdiaTomittse, writ s;h to	ojax+ *ly as.
-,ajax+ *u :XXX field eotargsponhonly asnspecfun( dat honly asnspecfuninal  comoni parametor,ataTr mousaajax+ *ly as funchonly asn=-targspilext;Targspd= yle.fil  mouseotypeofyle.filajax+ *ly asonhonly asns;v- )" " + eecfuninalTargspdwtaTprovidseittaTr mousah to	it funcyle.fil  mouseotypeoftargsponyle.filajax+ *ly asonhonly asns;v- )"t.tee
-Flattsncf el t?wer "*" )wa
+	n,ep{r mousedt.tee r( ( " Hiel ei
-{	
Typext: 1,.url: 1 }.clasext;( datHiel ei
-honly asnspecfuni;Targsp[tHiel ei ="sonly as[tHiel ei+ 			,=putedSifatHiel ei
-yle.filajax+ *ly asnspecfuni;Targsp[tHiel ei ="yle.filajax+ *ly as[tHiel ei+ +y(/	inalUnlurn?prr//!fe,
+allownrcto	bubyle, 	// fcendp {
-	jQ*/-m +y(/	iry.su
oy 	nvea[e"o:rows"=]+te: 0 )rylen(sponsa;=e
oy (mr{sponsa ); 0 )ry(= " + elem.cla		r opaconl( ylen(sponsa;=e
oy (mr{sponsa ); 0 )ry(to 	// f ( tre'sn/		( ylen(pIE
-{	e ate:t.rarspr rr//",?prr//:u
oy 	? tr:t.No 
Ty des| vel		})"e =p	ev	+ " to	"e =	urv,
+	}; 0 )ry(	ck+		g,
-	alus,=d us,=d us}yle.rvery.i*argspilexe				/d oe(n(pIE
-{	e ate:t.succurn",sdata:mr{sponsa / w// +/( ( current === "y finalCTuOre)gxLoc;old
+	} /#.	elect	 alrctive q ini syuerctive:
-		y finalLast-Modif>+ )headnd 	/chaaxLocn+			requfuna+	lastModif>+ :o{nyle(etag:o{nyled uajax+ *ly as:e:  	eurl: ajaxLoc()Ext, ");Type: "GET",u 		isLoc(l: eloc(lP+	tosol: functajaxLocPartsot1 a ),u 		glob(l: typeoyle.Type: "GET",u-+ocoypeOrT	( },
	iflic()Ext/x-www- it -urlataoded",u 		
+	cesrData:mtypeoy 		async:mtypeoy++ocoypeOrT	( },
	iflic()Ext/x-www- it -urlataoded;	charson=UTF-8",u 		/*u 		timeout:
-		 t;data:s});
d	 	idataT	( },});
d	 	iussFunm },});
d	 	ipe )w\t=},});
d	 	i	/cha:=});
d				o:rows:]ly da,u 		tradi+	cue;:]ly da,u 		headndr:o{nyl 		*/f y 		accep s:e: funixml},
	iflic()Ext/xmlf truc/xml"- truehtml},
truc/ tml"		alus *": allT	( syl 			pext: 
truc/n" in"- truejson},
	iflic()Ext/jsonf truc/java\,
-	r"- true *": "*/*"
alu	html},
truc/ tml"		alusxml},
	iflic()Ext/xmlf truc/xml"- +ruejson},
	iflic()Ext/jsonf truc/java\,
-	r"d us},f y 		coypeOra:pac@@ -6913,16 +8898,16 @@f y 		r{sponsaF el t:e:  	esxml},
r{sponsaXML"- truepext: 
r{sponsa
+		"
alu	pext: 
r{sponsa
+		"- +ruejson},
r{sponsaJSON"d us},f y.tee
-Lish = 1data	
oy depndr .tee
-1)ekey	 it apdiaT"source_t
-	 desn( ()Ext_t
-	" (a ny ale "aurrein-betw			) .tee
-2)p :
 	// f? "?symbola *"+can?bno{
+	rxLocsource_t
-		e(  nuData	
oy depndr e(  nuKeyseseparaoncsource (// 
// f? "?"*")ttaTy esn( ()Extz
s (s = s.capny ale "aurry 		coy depndr:e:    	e
-		CTy dep{pnyt	+	tgers)+		 true *s)+		": wifdow.S		if 		alus *s)+		": S		if 		   	e
-		
+			to	html (trnst=dao-trans it apExt)  	e

truc	html":mtypeoy@@ -6932,9 +8917,31 @@f y 		j-		Parsp=truc	taTxml  	e

truc	xml":mvar
+	/parsp
-			/	n		y fi
-		F+  ver	curr// otshould-		}			n,ep{r moused: fi
-		you+can?eregyou  vdg iuTyom ver	curr:
r	 de fi
-		taTy  funyou+crd()eioni // otshould-		}		 fi
-		n,ep{r moused;( oectjaxE mous)valu/l nO || va:values
url: typeoy++o	
Typext: typeherwise a,c "+"		/Crd()eaTypal;
+fle g
 e only asnh ) {
ry.ioatargsp"+"		/  s.cbos.cajax+ *ly asttaTy only asnf el t."+"		/If{targspdiaTomittse, writ s;h to	ojax+ *ly as.
+,ajax+ *u :XXX fieldeotargsponhonly asnspec tte(ery.i	jnly asn? "se {
nalBuild+	tgae only asnh ) {
se {
ajaxE mouseoajaxE mouseotargsponyle.filajax+ *ly asnsonhonly asnsp: "se {
nalE mous+	tgajax+ *ly as e {
ajaxE mouseoyle.filajax+ *ly asontargspdOth+{
, "s uajaxPref bind:?ereToPref bindrOrTransf su ( p	ef bindr.e,e uajaxTransf su:?ereToPref bindrOrTransf su ( transf su Ie,c "@@ -6950,76 +8957,77 @@f ei-		F+ "WQver	curr/o	bnorn	: ) {
s ge	 || va le ( Extspresft( eaTyp		se" +Crd()eith
+f(nale ( Extsph ) {
se {		se" +Crorn-g:mr( tdetecript ( "s e {
parts,em,ar-		Loop ( "ityle 0 )r;,em,ar-		URLo  s.ang a
+i-	/chaaparamy++o	
/chaURL,em,ar-		Responsa headndrttaTstrif ;
+		r{sponsaHeadndsS		if 		alusnalTimeoutc; i <e 0 )rTimeoutTimer, "se {
nalTopknidS\[\glob(ll e = sfe,
+to	bnoti"au
+	 
se {
fireGlob(ls, "se {
transf su,em,ar-		Responsa headndr;
+		r{sponsaHeadnds,em,ar-		Crd()eith
+f(nale ( Extsph ) {
s 	e
apchyle.filajax+ *up(o{nyover	curr ,  	e
-		Cressions	
Typext  	e
cressionCTypextpche/ifypex sthral( clns )Coypex sxLocglob(ll e = s funclte.c'slth
+eallsionCoypex s\[\oni wtaTprovidse
h = /#." || va-funclteaaTy	fu "'aTypwholn.nonorsaiut in asollerotocsext;glob(lEe = CTypextpcheallsionCoypex s!yTase._a-/g,
		eallsionCoypex ilter || sres
ressionCoypex s\ tranca= 1ut in ate? functeat,
-		as
ressionCoypex s)datff >= 0 e = ,em,ar-		Coypex sxLocglob(ll e = sdiaTeallsionCoypex s\[\i t s	ypwholn.nonorsut in asollerotocs+xt;glob(lEe = CTypextpche/ifypex snve(+eallsionCoypex ilter || sres
ressionCoypex .jq in ate? +cteat,
-		as
ressionCoypex s)da +cteat,
-		0 e = ,e 	e
-		Defprredsf eionefprredpchyle.filDefprred(e,ectiocompsionDefprredpchyle.fil_Defprred(e,e+tiocompsionDefprredpchyle.filCressions("uxte?memory" ,  	e
-		Statue-duneaT,
+	
ressionsf eio	tatueC.nonche/	tatueC.nonresftl( clns )ifModif>+ )keysext;( Modif>+ Keyyl 	e
-		Headnds (th
yf
 
Tsas  ? "?aeTonce)  	e
requfunHeadndrt=={nyl 		
requfunHeadndr	if s 
 ftl( clns )Responsa headndr;-+		r{sponsaHeadndsS		if 		-+		r{sponsaHeadndsl( clns )transf su truepransf su,e clns )timeoutc; i <e - )rTimeoutTimer,  clns )Crorn-g:mr( tdetecript ( "s - {
parts,e 	e
-		
h
+jqXHRne atef eio	tate {
-		ctionalTopknidS\[\glob(ll e = sfe,
+to	bnoti"au
+	 
s- {
fireGlob(ls, -,ar-		Loop ( "ityle - )r;,em,ar-		De just}ab su=murnage 0 )rstrAb su==="cancaled",u 		i-		Fmentxhru 		ijqXHRn=c: fdrbra	ueadyS ate:t0,  yle.ge-		Cr+	 slth
+headndyle.ges	.RequfunHeadnd:XXX fieldeoon the/ The
+	alfun,

( dat htate te: functe	y wolneNa
+	nry )to
+			var datafuncte	neNa
+	requfunHeadndr	if s[olneNa
]
+	requfunHeadndr	if s[olneNa
]
resneNatafuncte	requfunHeadndr[ltion ac=e && ] )er + ,=lfun,

res = "*/".ilte	/	n		-yle.ge-		Raw-			if ;			,n ) AllResponsaHeadnds: /<script\specfun,

res = "	tate {yTa2 ? r{sponsaHeadndsS		if  :-t{
 
-te	/	n		-y 	 {
nalBuilds headndrthasm tyle hfdapesed  		,n ) ResponsaHeadnd:XXX fieldeokey	te:  	e
e	y wo0,
+	nge{
	s, = daetate {yTa2 te:  	e
e	f( dat r{sponsaHeadnds te:  	e
e	f	r{sponsaHeadnds 
 fttafuncte	 r
-		 th+0,
+	
+	rheadndr.	xec( r{sponsaHeadndsS		if  ) " )e: 0 )ry(		r
-					(0,
+	
+	rheadndr.	xec( r{sponsaHeadndsS		if  )) te:  	e
e	f		r{sponsaHeadnds[+0,
+	[1]y/ ) ||
-					ri ="0,
+	[ 2	]asuurr + ,=l rr + ,=l rr + ,0,
+	
+	r{sponsaHeadnds[+keyy/ ) ||
-					ringe{
	s,=}ext;,
res = "0,
+	
+!pr't get/set?n});
+:o0,
+	ng+xt;,
res = "0,
+	
+!n});
+?n});
+:o0,
+	ng e	/	n		 le( .y nuRaw-			if ;+		,n ) AllResponsaHeadnds: /<script\spec+xt;,
res = "	tate {yTa2 ? r{sponsaHeadndsS		if  :-t{
 
-+e	/	n		ase {
				Cr+	 slth
+headndy+e.ges	.RequfunHeadnd:XXX fieldeoon the/ The
+	al+ncte	y wolneNa
+	nry )to
+			var data+y(/	iry.su htate te: +uncte	neNa
+	requfunHeadndr	if s[olneNa
]
+	requfunHeadndr	if s[olneNa
]
resneNata0 )rylen(qufunHeadndr[ltion ac=e && ] )+		g,
-	alus,trvery.i*/".il+{	/	n		as 	 {
nalOvctrids])responsa	ifypeOr-
s (
headndy 	 {
ovctridsMimeT	(  
-	serializ
s ( te:  	e
e	ry.su htate te: @@ -7028,166 +9036,58 @@f eio,trvery.i*/".il e	/	n		 le( .y nuStatue-duneaT,
+	
ressionsf+e.gestatueC.no 
-	serializmapt+	al+ncte	y woaodeta+y(/	iry.sumapt+	al+ncte	, = daetate <a2 te: 0 )ry(		auestecoda;h =mapt+	al+ncte	,ar-		Lazy-erege/#.}	wscression
icoa wty // otpresar(nst:l eonir 0 )ry(/	istatueC.no[ecoda;ac=e[ statueC.no[ecoda;a,=map[ecoda;ac]s alus(	xg} 0 )ry(	c " + elem.cla		
nalE ecute{ :
	appropria" 

ressionsf+e.ge	tejqXHR.alwtys(=map[ejqXHR.statue a ); 0 )ry(	})+		g,
-	alus,trvery.i*/".il+{	/	n		as 	 {
nalCancalrd nor{qufuns 	 {
ab su 
-	serializ	tatue
+			te: funct		tatue
+			=z	tatue
+			ot "ab su""n !		/	( " Hinal
+			=z	tatue
+			ot strAb sunge{
	s, = datransf sup keyfuncte	transf su.ab suiz	tatue
+			t; 0 )ry(	transf su.ab suizHinal
+			"nge{
	s,=}ext;,	.cne)j0,u	tatue
+			t; 0 )ry(.cne)j0,uHinal
+			"nge{
	s,rvery.i*/".il e	/	nd us,=	iut.tee
-CressionsxLoc  funvvr yt	+	tg s	.cnet.tee
-I t s	 get/set:
r	  "stringjsling.compsr( ss\[\i t s	decle,
dt.tee
-aco,
-	ousataTyp-	XX field ewhich
wouldpbegmorfplogic(luendp {adtyle) .teXX field .cne)j	tatuelm	tatue
+		-
responsat, headndrt keyf  clns )CalledToncesext;( datetate {yTa2 te: -
	s,rvery.eText;
-	  clns )S atediaT".cne"ln.w funchtate {
2;yf  clns )Cle	seTimeoutc\[\i t	}isnssext;( datTimeoutTimer te: -
	s,cle	sTimeoutatTimeoutTimer teText;
-	  clns )D
r	ry.ex"WQtransf supf+  errly garbageasollerotocsext;s )(nogma torfhidSlo+	} /#.jqXHRnh ) {
 wi "?bno{
+	) truepransf suit)'t get/se+ 	  clns )Cac nor{sponsa/headndr;-+		r{sponsaHeadndsS		if it)headndrtot "		}eectio/		+ *	ueadyS ate truejqXHR.r{adyS ate	=z	tatue ? 4i:
-	}eectio( " "sSuccurn- true	succurn- true	prr//, -
	s,rvsponsa;=eresponsat??oajaxHm, vaResponsatdaelmjqXHR-
responsat?ac:s't get/se, -
	s,lastModif>+ - true	ptag	}eectio/		If{succurnful, ; i <ez
s ( ctah if ;			,( datetatue >{
20eeeryetatue < 300	ot statue {yTa304t keyf  clno/		+ *	 /#.If-Modif>+ -Six"WQ i /+  If-Ncne-M,
+	
headnd,c\[\in)ifModif>+ )moda.  clno = dae.ifModif>+ ) keyf  clnonst( th+lastModif>+ 	=sjqXHR.		.ResponsaHeadnd( "Last-Modif>+ " ) " )e: functeat,
-		.lastModif>+ [ ( Modif>+ Key;ac=elastModif>+  )er + ,=lfun,

st( th+	tag	=sjqXHR.		.ResponsaHeadnd( "Etag" ) " )e: functeat,
-		.	tag[ ( Modif>+ Key;ac=eptag	}er + ,=lfun,
}yf  clno/		Ifdaot	modif>+ a-/g,
( datetatue {yTa304t keyf  clno		tatue
+			=z"aotmodif>+ "	}er + ,rsSuccurn?le.r ] )f  clno/		Ifd in
-	jQdatalfun,
} " + eecf}er + ,r opacfuncteasuccurn?leajaxCTy depdaelmr{sponsa atafuncte		tatue
+			=z"succurn"tafuncte	rsSuccurn?le.r ] )fr + ,= 	// f(e)e: functea nullm
-	jQa
rarspr rr//afuncte		tatue
+			=z"rarspr rr//"tafuncte	prr// =ep	}er + ,=lfun,
}yfn,
} " + eecfctea nullmextra{
 prr// l		})	tatue
+		cfctea nut funnit al= 0 etatue
+			taTy tatue xLocnon-ob su occte	prr// =eetatue
+		da-/g,
cosu htatue
+			ot statue te: funct		tatue
+			=z" rr//"tafuncte( datetatue <n0ete: funcct		tatue = 0+ 			+ ,=lfun,
}yfn,
}}eectio/		+ *	data	xLoc);
 fmentxhrnh ) {
 funcjqXHR.statue =eetatue; funcjqXHR.statue
+			=z	tatue
+			}eectio/		+uccurn/Err//afunc( datisSuccurn?ac tfun,
nefprred.r{solveWithas
ressionCoypex , [msuccurn-m	tatue
+		-
jqXHRn]	/da-/g,} " + eecfcteanefprred.r{) {
Withas
ressionCoypex , [mjqXHR-
	tatue
+		-
prr// ] teText;
-	  clns )Statue-duneaT,
+	
ressionsffuncjqXHR.statueC.no( statueC.no teText;	tatueC.nonch't get/se+ 	  cln( datHireGlob(ls?ac tfun,
glob(lEe = CTypextr"puggcts "ajax"e =atisSuccurn?? "Succurn	dat"Err//"
 , funcct	[mjqXHR-
	,tisSuccurn?? succurn?:
prr// ] teText;
-	  clns )CTmpsionectiocompsionDefprred.r{solveWithas
ressionCoypex , [mjqXHR-
	tatue
+		 ] teTe  cln( datHireGlob(ls?ac tfun,
glob(lEe = CTypextr"puggcts "ajaxCTmpsion", [mjqXHR-
	]	/da-/g,
/		Hm, val);
 glob(llAJAXlcTuOre)a-/g,
( dat!( -f ( currrctive " )e: functet,
-		0 e = r"puggcts "ajax+top"	/da-/g,
-	ext;
-			/	-y 	 /ecAttrs adefprredsf-eanefprred.promisp\bjqXHRns; 0 )nefprred.promisp\bjqXHRns.compsion dasompsionDefprred.ereil e	jqXHR.succurn?lejqXHR..cneil e	jqXHR.prr// =ejqXHR.failda-/gjqXHR.compsion dasompsionDefprred..cneil t.tee
-Statue-duneaT,
+	
ressionsffunjqXHR.statueC.noc=e/<script\bmapt+	al cln( datmapt+	al clnp		seTmp;
-/g,
( datetate <a2 te: functee r( ompah =mapt+	alfuncct		tatueC.no[eompaac=e[ statueC.no[ompa,=map[ompa aaffunct,=lfun,
}putedStyle.getompa =map[ejqXHR.statue aaffunct,jqXHR.t fu( tmp, ompa/da-/g,
-	ext;
-			
res = "*/".ilte	ttafy 	 /ecR=g (nghasmacharactcoy(#7531:	taTy t	if ipromopExt)  	e/ecAddu
+	tosolus saotrprovidse
(#5866: IE7tissue/  s.c
+	tosol-lurn?urls)ye( /ecHm, vally dy1urluh = /#. only asnh ) {
rs#10093:u
oysisnex"y/  s.c:l esignanure)  	e/ecllmeon =ring :
	urluparametor s spvailtyle - )s.urlu== th+urluot s.urlu)	+e
-		)-	n" &&  rhasm,e
-		)-	n" &&  r
+	tosol,tajaxLocPartsot1 a +e
//"estaT	xs.urlu== th+urluot s.urluot ajaxLoc()Extu)	+e
-		)-	n" &&  rhasm,e
-		)-	n" &&  r
+	tosol,tajaxLocPartsot1 a +e
//"esta ye( /ecAlias mhis.m)" || vgers)	( tts pct	,icksp
#120e4aT	xs.t	( +t)	 || va.mhis.m)res	 || va.t
-	 resa.mhis.m)resa.t
-	;	as 	 nalE mra{
 dataT	( s;listf- )s.dataT	( s;+	t,
-						m			.dataT	( 	ot "*"
 
to
+			var da.c );t( r"aurrsAjaxaetaT	xs.dataT	( s;+	t,
-						m			.dataT	( 	ot "*"
 
to
+			var da.0,
+	{
rtypunct| " e;
 e
-	]( eaType
-Detormin#.s sp)crorn-g:mr( t {qufunth!f n	\t===ye( /ecA)crorn-g:mr( t {qufunth!f n	\t===c  fun in
-	jQa

+	tosol:host:f suimis0,
+	u 		i= dae.crornD:mr( t+!n});
+te:  	e
parts;=erurl.	xec( s.urly/ ) ||
-					r"nge{
	e.crornD:mr( t+ !!(spartse._a-/g,
		partsot1 a !=tajaxLocPartsot1 a e;
partsot2 a !=tajaxLocPartsot2 i e;lfunct,		partsot3 a e;
		partsot1 a tyTa tPref
+?r80?:
443 " )e!=lfuncct	ctajaxLocPartsot3 a e;
		ajaxLocPartsot1 a tyTa tPref
+?r80?:
443 " )e)valula		partsot1 a !==tajaxLocPartsot1 a e;
partsot2 a !==tajaxLocPartsot2 i e;l+unct,		partsot3 a e;
		partsot1 a tyTa tPref
+?r"80	dat"443" " )e!== 0 )ry(	ctajaxLocPartsot3 a e;
		ajaxLocPartsot1 a tyTa tPref
+?r"80	dat"443" " )e)  	e
easuurng "@@ -7199,69 +9099,71 @@f ei-		Aiflygpref bindrf e	in"aut	Pref bindrOrTransf su ( pref bindr-
	,to || valmjqXHRns; eaTyp-		If{ {qufuntwtaTob suse
h sidsQa

+ef bnd,cstopo :
r	ye( /ecIf{ {qufuntwtaTob suse
h sidsQa

+ef btnd,cstopo :
r	y t;( datetate {yTa2 te: -
	s f
-	jQly dang 0 ) dataTydqXHRasuurng " 	e/ecllmcan?Hire\glob(ll e = sfeaptaTnidS\[\askes[to" 	eHireGlob(ls?che/glob(lta ye( /ecW,
+	
xLoca.}	ws onptaT {qufunsf+e.( datHireGlob(ls?ery.supporrctive++a =+ ee keyuelet,
-		0 e = r"puggcts"ajax+ctut"a;n/		// " 	e/ecU pctc {
+ :
	t
-		 	xs.t	( +t)s.t	( y/ U pctvar datas( ype
-Detormin#.s s {qufuntataTifypeOr	 	xs.ataCTypeOrT==!rnoCTypeOr: funct..t	( t/; eaTyp-		W,
+	
xLoca.}	ws onptaT {qufunsf-e.( datHireGlob(ls?ery.supporrctive++a =+ ee key-ctet,
-		0 e = r"puggcts "ajax+ttut"ns;v- )"te( /ecSav
+ :
	URLoh =c {
+ta',
+toy
+	}= s.c /#.If-Modif>+ -Six"W fi
-		taT/+  If-Ncne-M,
+	
headnd lator ocs+xt
/chaURL+t)s.urltas( ype
-Morfpver	curr: i <if (xLoc {qufuns}= s.cnoTifypeOr	 	xry.su h.ataCTypeOrT)e:    	e
-		I 1data	 s	yvailtyle,f	if ( 1data	ersurl  	e
i= dae.data	f ( true	s.urlu+== trq in : funct..urlu)	?r"&	dat"?"u)	+ee.datataT	xg	
/chaURL+t)ct..urlu+== trq in : funct
/chaURL+)	?r"&	dat"?"u)	+ee.data	t; 0 )ry-		#9682:C==g (jQdata so	// otic'slaotr{
+	ry.rattee = ualeretry 0 )ryessioncs.datata us,=d   clns ) ) {( Modif>+ Key;the re add ng{ :
	a
+i-	/chaaparamere)a-/g,( Modif>+ Key;t)s.urlta-  	e
-		Addua
+i-	/chaay.rurluhfdapesed  		,i= dae.c/chaa =+ 
-			}+	al+nctes.urlu==su : funct
/chaURL+)	?  yle.ge		seTs;+	t,
-			 swda, funccts )trypQun" & ng{_=s\[\i t s	 :
r	yfuncctesp
+	s.urly-	n" &&  rtalm"$1_="e =ns	t; 0 )ry(/		If{);
rediaTalueadyca.'_' parametor,a onpins	 && ] 0 )ry(
/chaURLy-	n" &&  rtalm"$1_="e =tuxteplete:  yle.ge-		s saothif (wtaT-	n" &&d,meregeimfunampaers);
  (  -nctes.urlu==sete =at(uenocu+	..urlu)	?r trq in : funct..urlu)	?r"&	dat"?"u)	+e"_="e =ns	:e
-				0 )ry(/		 		}
+		if	ddioni /rs);
  (  0 )ry(
/chaURLe =atrq in : funct
/chaURL+)	?r"&	dat"?"u)	+e"_="e =tuxtepl	drbrahouurngct.tee
-Se
 th
+cor( ( eheadnd,c\[\data	 s	be+	tfs
 	
};
i= dae.data	nvea.ataCTypeOrTnvea.coypeOrT	(  !==t
-			}res	 || va.coypeOrT	(   key-ctetqXHR.s	.RequfunHeadnds "CTypeOr-T	( ",ea.coypeOrT	(  s;v- )"t.( ype
-+ *	 /#.If-Modif>+ -Six"WQ i /+  If-Ncne-M,
+	
headnd,c\[\in)ifModif>+ )moda.  no = dae.ifModif>+ ) keyf/g,( Modif>+ Key;t)( Modif>+ Key;ot s.url;l cln( datt,
-		.lastModif>+ [ ( Modif>+ Key;acf ( true	tqXHR.s	.RequfunHeadnds "If-Modif>+ -Six"W",tt,
-		.lastModif>+ [ ( Modif>+ Key;acf; 0 )r;
-		t,
-		.lastModif>+ [ 
/chaURL+]+te: 0 )rytqXHR.s	.RequfunHeadnds "If-Modif>+ -Six"W",tt,
-		.lastModif>+ [ 
/chaURL+]+t	drbraho cln( datt,
-		.	tag[ ( Modif>+ Key;acf ( true	tqXHR.s	.RequfunHeadnds "If-Ncne-M,
+	",tt,
-		.	tag[ ( Modif>+ Key;acf; 0 )r;
-		t,
-		.	tag[ 
/chaURL+]+te: 0 )rytqXHR.s	.RequfunHeadnds "If-Ncne-M,
+	",tt,
-		.	tag[ 
/chaURL+]+t	drbrahouurngct+tee
-Se
 th
+cor( ( eheadnd,c\[\data	 s	be+	tfs
 	
+;
i= dae.data	nvea.ataCTypeOrTnvea.coypeOrT	(  !==t
-			}res	 || va.coypeOrT	(   key+ctetqXHR.s	.RequfunHeadnds "CTypeOr-T	( ",ea.coypeOrT	(  s;v/		// " 	e/ecSe
 th
+Accep s
headnd xLoc);
 sar(nrondepous+	tgo = /#.nforT	( l e	jqXHR.s	.RequfunHeadnds  	e

Accep ",u 		ia.dataT	( sot0 a nvea.accep s[	a.dataT	( so0]=]+? -nctes.accep s[	a.dataT	( so0]=]++ ( a.dataT	( sot0 a !yTa *"+?r", */*; q=0.01"	:e
-		da +cteas.accep s[	a.dataT	( so0]=]++ ( a.dataT	( sot0 a !yTa *"+?r", "e =allT	( s;+e"; q=0.01"	:e
-		da  cteas.accep s[	"*"i]  ct/; ea@@ -7272,12 +9174,13 @@f y 		/ecAllow iuTyom headndr/mime
s (s taTyerrly ob su  no = dae.the re+ ndsnve(+e.the re+ nd.
resas
ressionCoypex , jqXHR-
	 )a =+ 
-			}ot state {yTa2 tete: funct nuAb su=hfdaotr.cneralueady
-nctetqXHR.ab sui/da-/g,
 f
-	jQly dang-em,ar-		Ab su=hfdaotr.cneralueadycendp {
-	jg 0 ) dataTydqXHR.ab sui/dauurngct+tee
-ab su+	tg s	noTlo+	coy] cancall()Extem,rstrAb su==="ab su""n y 		/ecI trall	
ressionsgo =defprredsf eiauesteiei
-{	succurn: 1,?prr//:u1, compsion 
1 }.clas 		ijqXHRoti a(/soti a s;v@@ -7291,1456 +9194,883 @@f eioncne)j-1, .No Transf su-				0/
}putedSty 		ijqXHR.r{adyS ate	=z1"n y 		e/ecSeaTyglob(ll e =   		,i= daHireGlob(ls?ac t 		,n lob(lEe = CTypextr"puggcts "ajax+ nd", [mjqXHR-
	+]+t	drbrahouuronalTimeout  		,i= dae.async
nvea.Timeoutc>n0ete: funccTimeoutTimer ="sonTimeoutat {
-	jQue(		-exttetqXHR.ab sui "Timeout-				0 )ryTimeoutTimer ="sonTimeouta/<script\spec+xt;,
tqXHR.ab sui"Timeout-t	drbra	/,ea.Timeoutct	drbrahoul 			p opac cteas ate	=z1"n cteatransf su.souseon(qufunHeadndr,r.cner/da-/g,} 	// f (espec+xt;o 	// f ( tre'sn 	 {
nalPropagate	excep 			san?prr//=hfdaotr.cnea-/g,
( datetatue <a2 te: 0 )ry( datetate <a2 te: e{
	s,ncne)j-1, e	"nge{
	s/ecSimflyg da:rowco		}
+		idrbra	/putedStyle.getyle.fil rr//u
a ); 0 )ry(a:rowceil e	/	nd us,=ouurngct.te dataTydqXHRasex
yle( e
-CressionsxLoc  funvvr yt	+	tg s	.cnet+teXX field .cne)j	tatuelm ()EveStatue
+		-
responsat, headndrt key+	io( " "sSuccurn-msuccurn-mprr//,mr{sponsalmmodif>+ - +e.gestatue
+			=z ()EveStatue
+		;c "*"		/Seris;
-	Cocoain oataT-orm-	for(; s Loca. onpta"*"		/key/ && ]s;h to	o q in a			if ;		param 
-	serializa, tradi+	cue;
tStyle.		seec=e[]- tru		ddi=XXX fieldeokeyhe/ The
+	alfun,
/		If{/ The
iaTypalProtoc, svvoke\i tendp {
-	jQins	 && ] le.ge		lnst=dut in the new valu
/ The
+	?
/ Theda)ie && ] )er + s[	a.ters =pac=eptaodeURICTmpcnenteokey	te+e"="e =ptaodeURICTmpcnenteo/ The
+da-/g,}eTe  cl/ecSe
 tradi+	cue;
/rs)rnstforsut in a<=z1.3.2	behavior.
};
i= datradi+	cue;
 !pr't get/set pro-			tradi+	cue; ="yle.filajax+ *ly as.tradi+	cue;;v- )"t.(Typ-		If{ocoain oawtaTpas
+	ry.,me (wei	// otic
iaTycoain oataT-orm-	for(; s.
};
i= daut in theAin o(ia " e;
(ia.jq in a s.!ut in thePsr( O ) {
u
a ) " )e: func		/Seris;
-	CthaaxLom)	for(; sa-/g,+			dat/\//, a, /<script\specfun,
	ddct*/"..nn the*/"../ The
+da-/g,}teTe  cl" " + eecfuninalIf{)radi+	cue;,=ptaodeCthaa"old" wty (th
 wty 1.3.2	+  vldndyle.g-		ni	ryt),co		}
+		i=ptaodeCparamae( (ursEvely.  clnaueste		se
+ef x
icoa specfun,
fuildParama( pref x,me[e
+ef x
],{)radi+	cue;,=	ddi				/	inalCalledTonces0 )r;
-		etate {yTa2 te: +/g,
 f
-	j	drbraho clngct.tee
-R{
-	jQ*/-	r{sust+	tfs
ris;
-()Exte-,
res = "	.joilu
"&	d	)-	n" &&  r20,re+"+tasex
--/				/	inalS atediaT".cne"ln.w +	nchtate {
2;y ocalProtocofuildParama( pref x,mobj,{)radi+	cue;,=	ddi	pecfui= daut in theAin o(iobj " )e: fun		/Seris;
-	Coin oaitem.  cl+			dat/\//, obj,{/<script\b[^<vt+	al cln( dattradi+	cue; resrbracksp: funct
+ef x
tete: funct nuTrd()" rs aoin oaitemsan?a. 
rear.cfun,
	ddctpref x,mv teTe  cln} " + eecfctea nuIf{oin oaitemshs		on- 
rear (ain oatrnh ) {
),=ptaodeCiu occte	 nunweiric *?):[
/rsr{solvey es
ris;
-()Ext ambiguitytissues.occte	 nuNoti	// otrion
(eaptaT1.0.0) can't=	urv,
+lyg es
ris;
-e"*"nct nunfun+	{oin oaTproperly,tendpa tompt+	tgersdo so	m ) strin"*"nct nua sar(nrmprr//. Possib f f
+	} e,
+to	modifytrion' occte	 nu es
ris;
-()Ext algorithmatrnto	providsorn	:p 			s// llagoccte	 nuto	f+ "WQain oas
ris;
-()Ext to	bnoshallow.cfun,
fuildParama( pref xe+e"["e =atns (= 1veByTa h ) {
].resjt in theAin o(v+	?
i	:e
-		d+e"]", v,{)radi+	cue;,=	ddi				/	inalCle	seTimeoutc\[\i t	}isnss0 )r;
-		TimeoutTimer te: T	xg	
le	sTimeoutatTimeoutTimer teTrbraho cln/; eaTy" " + edeTyp!oradi+	cue;  s.obj !!n});
+ s.ns (= 1obj ByTa h ) {
].clasext		/Seris;
-	Ch ) {
rytem.  claueste		setion iniobj " ecfctefuildParama( pref xe+e"["e =tion +e"]", obj[ltion a,{)radi+	cue;,=	ddi			- )"te( ns )D
r	ry.ex"WQtransf supf+  errly garbageasollerotocse( ns )(nogma torfhidSlo+	} /#.jqXHRnh ) {
 wi "?bno{
+	) e {
transf sunch't get/se+ eaTy" " + easext		/Seris;
-	C 
rear ytem.  cl	ddctpref x,mobj "asex
--/		/	inalCac nor{sponsa/headndr;
+		r{sponsaHeadndsS		if it)headndrtot "		}  f/ecT();
iaTsti "?atap nojt in ah ) {
... xLocnow f/ecWa
+	to	mov
+ :irr/o	yle.filajax som#.nfy f ( current === "y(	x/		+ *	ueadyS ate +ctetqXHR.r{adyS ate	=z	tatue >n0e? 4i:
-	} "*"		/CTuOre)gxLoc;old
+	} /#.	elect	 alrctive q ini sy-erctive:
-		y( ns )D
tormin#.s ssuccurnfuls0 )r;sSuccurn?leetatue >{
20eeeryetatue < 300	ot statue {yTa304	} "*"		/Last-Modif>+ )headnd 	/chaaxLocn+			requfuna-	lastModif>+ :o{nyl-(etag:o{n	y( ns )Gep{responsa;datal0 )r;
-		responsat?ac tfi	],rvsponsa;=eajaxHm, vaResponsatdaelmjqXHR-
responsat?as alusreu--/				/	inalCTy dep{nogma torfw/ ot(// otwty r{sponsaXXXcf el t?e,
+alwtys. on);
+		r{sponsa?leajaxCTy depdaelmr{sponsalmjqXHR-
isSuccurn?a	}  f/*	Hm, va])responsat?/ Cocoajaxuesqufun:
- * -r onrtall r{sponsaXXXcf el t?ecc\t=( ily/  * -r
insard noren;
 nforT	( t(m+dia" ])betw			(coypeOr-
s (
taTyexaut	es[nforT	( )
- * -rQuery.sp*/-	if ( spon
+	tfresponsa
- */ calProtocoajaxHm, vaResponsatdaelmjqXHR-
responsat?ac tfiio/		If{succurnful, ; i <ez
s ( ctah if ;0 )r;
-		isSuccurn?ac ttaTyy wocoypeOrapche/ifypeOrs		-		dataT	( s;+	a.dataT	( s,e-,
responsaF el t;+	a.responsaF el t,u-+octoyle.Typeoyle.n(nalDataT	( 	yle.n(ddeDataT	( ;g t(	x/		+ *	 /#.If-Modif>+ -Six"WQ i /+  If-Ncne-M,
+	
headnd,c\[\in)ifModif>+ )moda. 0 )ry( date.ifModif>+ ) key0 )ry(modif>+ 	=sjqXHR.		.ResponsaHeadnd("Last-Modif>+ "ata+y(/	iry.sumodif>+ ) key0 )ry(at,
-		.lastModif>+ [ 
/chaURL+]+=umodif>+  )+		g,
-	alus,tmodif>+ 	=sjqXHR.		.ResponsaHeadnd("etag"ata+y(/	iry.sumodif>+ ) key0 )ry(at,
-		.	tag[ 
/chaURL+]+=umodif>+  )+		g,
-	alus,}} "*"		/Fill r{sponsaXXXcf el t
-ee r( os (
h =responsaF el t;specfun( dat
s (
h =responsat?ac t-ctetqXHR[=responsaF el t[
s (a i ="r{sponsaa[e
s (
];v- )"t.t}aT	xg	-		hfdaoTifypeOr	0 )ry( datetatue {yTa204)resa.t
-	 ByTa HEAD") key0 )ry(	tatue
+			=z"aoifypeOr"	} "*"		/R=g (ngouortnforT	( ttaTyg *	ifypeOr-
s (
h = /#.
+	cesre- r
-		 tdataT	( sot0 a tyTa *"+te: - )dataT	( s.shiftu)	ifun( datct( !pr't get/set proctioch les.mimeT	( fresjqXHR.		.ResponsaHeadnd( "ifypeOr-
s ("ns;v- )"t.t}aT	xg	-		hfdaot	modif>+ aalus,} " + edeTypetatue {yTa304t key0 )ry(	tatue
+			=z"aotmodif>+ "	} "*"		/Cthe HTML iif (.dal
+	}= s.capknidg ifypeOr-
s (T- compucup key-elaueste
s (
h =coypeOrapAt(  cln( datcoypeOra[e
s (
] nve	oypeOra[e
s (
]: functctptete: fun,
nforT	( s.unshiftu
t	( t/dafun,
fr","s alus(/		Ifd in
-	jQdata, lec'slcoy dep	it alus,} " + eey0 )ry(	tatue
+			=zr{sponsa.stateta+y(/	isuccurn?ler{sponsa.datataT	xg		prr// =er{sponsa.prr//ta+y(/	irsSuccurn?le!prr//ta+y(/	}c+xt;o " + eey0 )ry nullmextra{
 prr// l		})	tatue
+		c0 )ry nut funnit al= 0 etatue
+			taTy tatue xLocnon-ob su o+xg		prr// =e	tatue
+			}0 )ry( datetatue ot !	tatue
+			te: 0 )ry(	tatue
+			=z" rr//"ta+y(/	iry.suetatue <n0ete: 0 )ry(a	tatue = 0+ +		g,
-	alus,}} braho clnt.t}a "*"		/Cthe Hnc e
e(TML in
-	jQa
responsaaxLoc);
 	}aut	es[nforT	( T- compudataT	( sot0 a in
responsat?ac tle.n(nalDataT	(  t)dataT	( sot0 aafTy" " + easext		/Try		Ty depib f dataT	( sy-elaueste
s (
h =responsat?ac t-ctei
-		!dataT	( sot0 a ot s.	Ty depndr[e
s (
+ " "e =dataT	( so0]=]+te: fun,
n(nalDataT	( tt)t
-	;yfun,
fr","s alus/		+ *	data	xLoc);
 fmentxhrnh ) {
 +ctetqXHR.statue =eetatue; +ctetqXHR.statue
+			=z(z ()EveStatue
+			ot statue
+			te+ "		}"se {
nal+uccurn/Err//a0 )r;
-		isSuccurn?ac t0 )ryesfprred.r{solveWithas
ressionCoypex , [msuccurn-m	tatue
+		-
jqXHRn]	/da+xt;o " + eey0 )rynefprred.r{) {
Withas
ressionCoypex , [mjqXHR-
	tatue
+		-
prr// ] teTrbraho cln( dat!HiddeDataT	( +te: fun,
n(ddeDataT	( +t)t
-	;y-braho clnt.t(/		 rfjuTypringn(ddeTonetle.n(nalDataT	(  t)n(nalDataT	( tot f(ddeDataT	( ;g.t}a "*"		/If{ i f
-	sea[nforT	( T-e/ecllmerege/#.nforT	( gers);
 lish hfdapesed -
-		taTp {
-	jQ*/-	if ( spon
+	tfresponsa
-;( datn(nalDataT	( tac t-e.( datHinalDataT	( t!!prdataT	( sot0 a ) {	-n,
nforT	( s.unshiftu
/(nalDataT	( ta;n clnt.t( {
-	jQuesponsat[
/(nalDataT	( t]thex
--/		/	inalStatue-duneaT,
+	
ressionsf+e.gjqXHR.statueC.no( statueC.no teT+	t;	tatueC.nonch't get/se+   f/ecetah =coy des| vapg danrd nor{qufunttaTyt
-	:pug(naleresponsa
calProtocoajaxCTy depdaelmr{sponsa aeey0 )ri= daHireGlob(ls?ac t0 )ry lob(lEe = CTypextr"puggcts isSuccurn?? "ajax+uccurn"	:e
ajaxErr//"yle( .y([mjqXHR-
	,tisSuccurn?? succurn?:
prr// ] teTalusreu--i-		Aiflyge/#.nforF bind ifTprovidseT-
i= dae.dataF bind  {ey-		r{sponsa?lea.dataF bind(mr{sponsalma.dataT	( 				-)"te( ns )CTmpsionee( nsompsionDefprred.HireWithas
ressionCoypex , [mjqXHR-
	tatue
+		 ] teTtaTyy wodataT	( s;+	a.dataT	( s,e-,
coy depndr[=o{nyl-)r;,e-)rkeyhe-)rters =pt)dataT	( srters =oyle.Tmp,t.t(/		Curv,
+	taTyp	evioue dataT	( sy-el
urhas  t)dataT	( sot0 a,t.t(p	ev		-	inalCTy des| ve	}ar{ssExte-,
coy des| v		-	inalCTy des| vealProtocsextcoy f	-	inalCTy des| vealProtocs (transitive coy des| v)sextcoy 1,e-,
coy 2;yf  c/		F+   rs anforT	( thjQ*/-	itah 
-ee r( i	=z1" i	< ters =" iplete{t.(Typ-		Crd()eicoy depndr[map(Typ-		= s.cl+			c {
dekeysT-e.( dati {yTa1 ) {	-n,
e r( key		}
e.	Ty depndrt pro-/g,
( atns (= 1key	tyTa 			if ].clasext;r	
oy depndr[ekeyy/ ) ||
-					ri ="s.	Ty depndr[ekey	];y0 )ri= daHireGlob(ls?ac t0 )ry lob(lEe = CTypextr"puggcts "ajaxCTmpsion", [mjqXHR-
	 a ); 0 )ry/		Hm, val);
 glob(llAJAXlcTuOre)a0 )ry( dat!( -f ( currrctive " )e: +)ry(at,
-		.	e = r"puggcts"ajax+cop-t	drbra	/drbrahouurngct.tee
- ) { :
	dataT	( sy-elp	evr= yurhas 		-el
urhas  t)dataT	( soti	];y0 ) dataTydqXHRas+s},f y.tee
-IfT	urv,
+	iaTyuortnforT	( , updateditnto	prevT-e.( 		curhas  tyTa *"+te: ctiocurhas  t)p	ev	}.tee
-IfTaoTouorttaTy ataT	( s;e,
+acnuallyg ifry.
 	
};
" " + edeTypp	ev	!yTa *"+ s.p	ev	!yTa	urv,
+	
-		+n ) JSON:u/<script\burl,sdata, cression
+	al0 ) dataTyd /* intorejurl,sdata, cression, "json"nseT+s},f y.teee
- ) { :
	cTy depnda-	,
coy des| v t)p	ev	+ " "e =	urv,
+;a-	,
coy  = 	Ty depndr[ecoy des| v a res
oy depndr[e"* "e =	urv,
+	a;)+n ) S,
-	r 
-	serializurl,scression
+	al0 ) dataTyd /* intorejurl,s't get/se, cression, "s,
-	r"nseT+{
veC/; eaTyp(/		If{);
rediaTaoTni( ( ecTy depnd,a oars atransitivelysext;( .su!
oy 	te: -t;r	
oy 2 t)'t get/se+ 			,
e r( coy 1 h =coy depndrt proext;r	ompa =coy 1.c );t( " "esta-y(/	iry.sunmpot0	a tyTap	ev	resnmpot0	a tyTa *"+te: ctio;r	
oy 2 t)	Ty depndr[e
mpo1]	+ " "e =	urv,
+	atafuncte	ry.su
oy 2 te: functextcoy 1 = 	Ty depndr[ecoy 1	atafuncte		ry.su
oy 1	 !prtrnstte: functe		
coy  = 	Ty 2tafuncte		"putedS\[\]$yTy 2	 !prtrnstte: functe		
coy  = 	Ty 1tafuncte		"afuncte		fr","s -ncte		"afuncte=lfun,
}yfn,
}}e		"		/If{ i f
-	senoecTy depnd,ati"au
+	ratterr//afunc( dat!su
oy 	res
oy 2 tete: functyle.fil rr//u
.No 
Ty des| vel		})"e =
Ty des| v)-	n" && " "," to	")
+da-/g,}}e		"		/If{f
-	seyTy depnd issaotrattequi "bixte  cln( datcoy 	!yTatrnstte: ccte	 nuCTy dep{= s.c1s// 2=coy depndrtecc\t=( ily/ cte	n(sponsa;=e
oy ?? 
oy (mr{sponsa ) :u
oy 2su
oy 1(r{sponsa)
+da-/g,}}++			dat/\//, [mi )  ,/"posenot  /<script\b[^<this.m)(?!<+	yle.fi[<this.m)ac=e/<script\burl,sdata, cression, t	( tac te( e
-shifteea weird ii 1data	ea weird wtaTomittseT+;
i= daut in the new valu
data	f +	ale {
t	( +t)t
-	 res
ressionR.e( nsression
=
data;	+		idatait)'t get/se+  clnt.t}a-( {
-	jQuesponsa;--/	 l0 ) dataTyd /* inajax({T+		iurl:zurl,Te {
t	( : this.m,T+		idataT	( },t	( ,T+		idata:sdata,T+	t;	uccurn: cressionv/		/seT+{
;veC/; ea+/ecAttrs a// =ns ataT-	},
+		saxLoc; i <if (comm		sAJAXl e = s{++			dat/\//, [miajax+ttut", "ajax+top", "ajaxCTmpsion", 
ajaxErr//"y "ajax+uccurn", "ajax+ nd"ot  /<script\b[^<t	( tac te( mouseent[l
s (
] =e/<script\bfn
+	al0 ) dataTy*/"..aliz
s (,bfn
+eT+{
;veC/; eaeaTy wojsc;+	t,
-			 swda, fujsr +t)/(\=)\?(&|$)|\?\?/i;{++			dat_e "bUrlu==/<script\burl
+	al0  dataTyd /* inajax({T+		url:zurl,Te {Type: "GET",u+	idataT	( },"\,
-	r"- +		async:mly da,u+		glob(l: ly da,u+		"o:rows": typeh+	/seT+}+   f/ecDe just}jsonp. only as f ( currajax+ *up({ fujsonp:="caession", fujsonpCression: /<script\specfun dataTyd /* in	}a i o	+e"_"e =atjscpletasex
--/			  f/ecDetecr,nnit al= 0 ver	curraaTy	 trall	
ressionsgforsusonp. {qufunsf- ( currajaxPref bind( "jsonsusonp"  /<script\b	,topug(nal+ *ly asonjqXHRns	al0 mouseentrent === "y(wrapAll 
-	serializhtml +	al0 )i= daut in the new valu
html +	+	ale {
rvery.i*/"..	\//,-	serialiite: 0 )ryt,
-		a*/".).wrapAllu
html.
resa*/".,ti) teTalusr				/	ng {
}( " "n"aut	Datait)a.coypeOrT	(  tyTa 	iflic()Ext/x-www- it -urlataoded"e._a-/gatns (= 1e.data	tyTa 			if ].c;l0 )i= da*/".o0]=ac tfiio/		
h
+	for(; s to	wrap+ :
	targspdar
-	sy+	io( " wrap+).replace(html,a*/".o0].ownerDocweird ).eq(0).clcne)type/; eaTyi= dae.dataT	( sot0 a tyTa usonp" e;lfuns.usonp.!==t
-			}nve(+jsr : funct..urlu)	e;lfunct"n"aut	Dataiery.sr : funct..data	f +	aeey0 )ri= da*/".o0].pav,
+N.no te: 0 )rywrap.svar cBhe reda*/".o0]=aeTalusreu--io( " uesponsaCTypah er,  clnjsonpCressionit)a.jsonpCressionit functyle.filhe new valu
a.jsonpCressioni+	?
a.jsonpCressionda)iea.jsonpCression,  clnp	evioue = wifdow[ jsonpCressioni],Text;url
+	s.url,	-		idata;+	a.data		-+		r{n" &&	=z"$1"e =jsonpCressioni+e"$2"ta+y(/wrap.map) {
-	jQue(e: 0 )ry( " ts
-	=i*/".il T-e.( dats.usonp.!==t
-			}te: ccteurl
+	urly-	n" &&  .sr ,T-	n" &&
+da-/g,( dats.url
+==burl
+	al-te		ry.su"n"aut	Dataite: functedata;+	datay-	n" &&  .sr ,T-	n" &&
+da0 )ryw
-					taTypf(ddeC
-	dsnvetaTypf(ddeC
-	dilter || s{yTa1 ) {	T	xg		ps
-	=itaTypf(ddeC
-	d	drbra	/d-te		ry.sue.data	tyTadata	f ( true	
-		Addusression
manually true	
urlu+== /\?/: functurlu)	?r"&	dat"?")	+ee.usonp.+e"="e =jsonpCressionda-/g,
-	ext;
-+ +/g,
 f
-	jitaTyeTalusr	.	if ( da*/".				0/
}l T-e.s.urlu==url;l cle.data	t
data;	+		rvery.i*/".il+{},f y.tee
-I trall	
ressiony.tewifdow[ jsonpCressioni]u==/<script\br{sponsa aeey-te	n(sponsaCTypah erc=e[ r{sponsa ]ilte	ttay(wrapInnnd:XXX fieldeohtml +	al0 )i= daut in the new valu
html +	+	ale {
rvery.i*/"..	\//,-	serialiite: 0 )ryt,
-		a*/".).wrapInnndu
html.
resa*/".,ti) teTalusr				/	ng {
}inalCle	n-upealProtocsextjqXHR.alwtys(/<script\specfun,/		+ *	sression
sion
to	previoue  && ] le.gwifdow[ jsonpCressioni]u==previoue;cfun,/		Cresc\[\i twtaTo	XX field taTy in
-	jQa
responsaa-/g,( datn(sponsaCTypah ercery.supporhe new valu
previoue tete: functwifdow[ jsonpCressioni]atn(sponsaCTypah erot0 a );	+		rvery.i*/"..	\//,-	seriali key+	io( " self+).replace(*/".		yle( .ycoypeOrapcheelf/ifypeOrsdata+y0 )ri= daifypeOrs.ters =pte: T	xg	
fypeOrs.wrapAllu
html ata+y0 )ro " + eey0 )ryeelf/	if ( dahtml atarbrahouurn)il+{},f y.tee
-Usa;dataeyTy depnd /rsr{		i e  json afpnd \,
-	r e ecuttocsexts.	Ty depndr["\,
-	r json"]u==/<script\ac t-ctei
-		!n(sponsaCTypah ercte: functyle.fil rr//u
jsonpCressioni+e"twtaTaotrcalled"
+da-/g,}}e		" {
-	jQuesponsaCTypah erot0 ailte	ttay(wrap:XXX fieldeohtml +	al0 )( " "s new valt=dut in the new valu
html atary.tee
-f+ "WQjson nforT	( T-eia.dataT	( sot0 a Ta uson";	+		rvery.i*/"..	\//,-	serialiite: 0 )rreplace(*/".		.wrapAllu
"s new valt?
html.
resa*/".,ti) :
html ata+urn)il+{},f y.tee
-DtaTgate	nc e,
-	rcfun dataTy"\,
-	r"il+{unwrap:XXX fielde+	al0 ) dataTy*/"..pav,
+().	\//,-	seriali key+	ioi
-		!t,
-			 sde	if e(*/"., "body" " )e: +)ry(replace(*/".		.-	n" &&Withas*/"..c
-	dN.not?as alusre+urn). ( datarbhouC/; eaea( ( currenpr.f bindr.hiddenu==/<script\bps
-	)e: +)nal+upf su:?Operaa<=z12.12 +)nalOperaa-	n su Ioff onWidthrraaTyoff onHeen;
s lurn?t; i zero?atasom#.	for(; sa+
 f
-	jitaTy.off onWidtha<=z0snvetaTypoff onHeen;
a<=z0se;l+un(!supf su.-	lityleHiddenOff onsdae._aalus((taTypstylesnvetaTypstyle.ti"alay).resjt in tcss\bps
-, "ti"alay" )) tyTa ncne"seT+}+   ( ( currenpr.f bindr.visib f ==/<script\bps
-	)e: +) f
-	ji! ( currenpr.f bindr.hidden\bps
-	)eT+}+   f/ecI trall	\,
-	r nforT	( T- ( currajax+ *up({ fuaccep s:e: funs,
-	r 
"truc/java\,
-	r,f	iflic()Ext/java\,
-	r,f	iflic()Ext/ecma\,
-	r,f	iflic()Ext/x-ecma\,
-	r"
ex
yl-	coypeOra:pacfuns,
-	r 
/java\,
-	r|ecma\,
-	r/
ex
yl-	coy depndr:e: -e

truc	\,
-	r" 
-	serializ
+			te: funcd /* intlob(lEealiz
+			t;}e		" {
-	jQt+		da-/g}sex
--/			  f/ecHm, val
/cha's "autial=c {
+aaTyglob(lf- ( currajaxPref bind( "\,
-	r"- /<script\b	i	pecfui= dae.c/chaa =+ 't get/set proctie.c/chaa Qly dang-g}sexi= dae.crornD:mr( t proctie.t	( +t)"GET";l cle.glob(ll Qly dang-g}se/			  f/ecBiaTy ,
-	r tag	hion
transf su t ( currajaxTransf su( "\,
-	r"- /<script\sac ttaTy/ecT();
transf sunonlyg e(ls?= s.ccrorn g:mr( t {qufunssexi= dae.crornD:mr( t pro+( " u20+t)/%20/ 		alrbracksp+t)/\[\]$/		alrCRLF+t)/\r?\n/ 		alrsubmittsrT	( s;+	/^(?:submit|button|image|resat|f bn)$/i		alrsubmittab f ==/^(?:input|eelut	|t+		av,a|keygen)/i;{u--io( " \,
-	r,}e		"head	t
docweird.head	resdocweird.getEfor(; sByTag	if e("head" )o0]=resdocweird.docweirdEfor(; eT+alProtocofuildParama( pref x,mobj,{)radi+	cue;,=	ddi	pec+			setion;gct.te dataTyec+	i= daut in theAin o(iobj " )e: +un		/Seris;
-	Coin oaitem. +cl+			dat/\//, obj,{/<script\b[^<vt+	al0 )ri= da*radi+	cue; resrbracksp: funct
+ef x
tete: 0 )ry/		Trd()" rs aoin oaitemsan?a. 
rear.c0 )ry	ddctpref x,mv teTeaTyp(sous 
-	serializ_,scression
+	al0 );o " + eey0 )ry nuItemshs		on- 
rear (ain oatrnh ) {
),=ptaodeCiu unweiric *?):[.c0 )ryfuildParama( pref xe+e"["e =atns (= 1veByTa h ) {
].?
i	:e
-		d+e"]", v,{)radi+	cue;,=	ddi				/	i}a+urn)il yle.ge ,
-	r t
docweird.crd()eEfor(; ( "s,
-	r"nseT+{
 " + edeTyp!oradi+	cue;  s.t,
-				s ((iobj " ByTa h ) {
].clas+un		/Seris;
-	Ch ) {
rytem. +elauestetion iniobj " ec+)ryfuildParama( pref xe+e"["e =tion +e"]", obj[ltion a,{)radi+	cue;,=	ddi				/	ng {
}ige ,
-	r.async
Ta 	sync"eT+{
 " + eas+un		/Seris;
-	C 
rear ytem. +cl	ddctpref x,mobj "as+{
veCg {
}igei= dae. ,
-	rCharsp		te: funct		,
-	r.charsp		=ae. ,
-	rCharsp	da-/g,
-	+		/Seris;
-	Cocoain oataT-orm-	for(; s Loca. onpta"+		/key/ && ]s;h to	o q in a			if ;( ( currparam ==/<script\ba, tradi+	cue;
tSty+			sepref x, +clec=e[]- +u		ddi=XXX fieldeokeyhe/ The
+	al+		"		/If{/ The
iaTypalProtoc, svvoke\i tendp {
-	jQins	 && ] +	io( lnst=dut in the new valu
/ The
+	?
/ Theda)ieu
/ The
+!n});
+?n"")ie && ] teT+	t;	[	a.ters =pac=eptaodeURICTmpcnenteokey	te+e"="e =ptaodeURICTmpcnenteo/ The
+da+s,=	iut.tet		,
-	r.src;t)s.urlta+l/ecSe
 tradi+	cue;
/rs)rnstforsut in a<=z1.3.2	behavior.
+
i= datradi+	cue;
 !pr't get/set pro+		tradi+	cue; ="yle.filajax+ *ly as?ery.supporrjax+ *ly as.tradi+	cue;;v+	ng {
}ige/ecAttrs a; i <ersgforsall	browsndr;-+				,
-	r.onload	t
	,
-	r.onr{adystatechangf ==/<script\b_,tisAb su=)e: +)nalIf{ocoain oawtaTpas
+	ry.,me (wei	// otic
iaTycoain oataT-orm-	for(; s.
+	i= daut in theAin o(ia " e;
(ia.jq in a s.!ut in thePsr( O ) {
u
a ) " )e: +un		/Seris;
-	CthaaxLom)	for(; sa+cl+			dat/\//, a, /<script\spec+	,
	ddct*/"..nn the*/"../ The
+da+urn)il yle.ger;
-		isAb su=ot !	,
-	r.r{adyS ate	ot /loaded|sompsion/: funct	,
-	r.r{adyS ate	" )e: +u
 " + eas+un		/If{)radi+	cue;,=ptaodeCthaa"old" wty (th
 wty 1.3.2	+  vldndy+.g-		ni	ryt),co		}
+		i=ptaodeCparamae( (ursEvely. +elaueste
+ef x
icoa spec+)ryfuildParama( pref x,me[e
+ef x
],{)radi+	cue;,=	ddi				/	}v+	ng {
}igery/		Hm, valmemory luan
icoIE{
}igery	,
-	r.onload	t
	,
-	r.onr{adystatechangf ==t{
 
-+ee
-R{
-	jQ*/-	r{sust+	tfs
ris;
-()Exte+) f
-	ji	.joilu
"&	d	)-	n" &&  r20,re+"+tas+=	iut.tet		 /ecR=g (ng);
 s,
-	rcfun.ger;
-		head	erye,
-	r.pav,
+N.no te: functe		head.==g (jC
-	dct	,
-	r atafuncte	}l0 mouseentrent === "y(s
ris;
-e:XXX fielde+	al0 ) dataTy ( currparamct*/"..s
ris;
-eAin o()nseT+s},fy(s
ris;
-eAin o:XXX fielde+	al0 ) dataTy*/"..map) {
-	jQue(e: 0 )r/		Crn=	ddipropHoonsxLoc"	for(; s" to	f bind LocaddixLom)	for(; sa+cly( " ts
-eOrapch ( currprope(*/"., "	for(; s" teT+	t; f
-	jitaTyeOrap?h ( currmakeAin o(itaTyeOrapa)ie*/".il+{	});
+	.f bind,-	seriali key+	io( " t	( +t)t/"..t	( ;g t(	e
-Usa;the(":disab fd") so	// otf el tet[disab fd] worksT+	t; f
-	ji*/"..nn ta s.!ut in e(*/".		.he( ":disab fd" ae._aaluslrsubmittab f: funct*/"..nsde	if  ae._ !rsubmittsrT	( s: funct*	( tac._aaluslas*/"..c
eckes[ot !rc
eckab fT	( y/funct*	( tac)il+{	});
+	.map) {
-	jQueb[^<ps
-	)e: +)io( " ve; ="yle.fie(*/".		.eali)	iut.tet		 /ecD
r	ry.ex"WQt;
 s,
-	rcfun.ger ,
-	r t
't get/se+ 	  clnun,/		Cression
ifdaot	ob su fun.ger;
-		!isAb su=)e: functextcressiond
20e,z"succurn" atafuncte	}lfuncte=lfun,
};{
}ige/ecUsa;svar cBhe rey	 tread	 alrif ( C
-	ds to	circwev,
+	taoIE6ofug.occte	 nuT();
arisat?  funa b {
+n.non);
{
+	r(#2709tendp#4378).occte	head.svar cBhe reda\,
-	r,fhead.f(ddeC
-	ds+da-/g,}		-yle.gab su 
-	seriali+	al-te		ry.su	,
-	r ae: funct		,
-	r.onload)j0,u1	/da-/g,
-	ext;
-			/eT+	t; f
-	jive; =!n});
+?aalusl});
+: +)ry(replactheAin o(ive;
tS?aalusl	 ( currmap(ive;,{/<script\bve;
tSty+						 dataTyeltion:etaTypon the/ Theie &&)-	n" &&  rCRLF,z"\r\n"ns /eT+	t;{	})+: +)ry(	eltion:etaTypon the/ Theie &&)-	n" &&  rCRLF,z"\r\n"ns /eT+	t})ntoreatarbhouC/; eaea-a-a-( "  nu#5280: IOre)ne
 Expl rer wi "?keepeyTyne,
+		sas;
ve(TML indon't=ab su=on
'tload-		xhrOnUtloadAb su===wifdow.ActiveXO ) {
p?h-	seriali+	al-te-		Ab su=all	pous+	tg {qufunsf-e.aueste		sekey		}
xhrCressionrt proext;xhrCressionr[ekey	])j0,u1	/da-/g}sex
 : ly da,u		xhrId	t
0,u		xhrCressionr+ 	  /		F	},
+		sato	crd()eixhrs
calProtococrd()eS andardXHRi+	al-tr opacfun dataTy}	wswifdow.XMLHttpRequfunu)	ifu= 	// f( tre's
--/	-
calProtococrd()eActiveXHRi+	al-tr opacfun dataTy}	wswifdow.ActiveXO ) {
( "Microroft.XMLHTTP"+tasex
 	// f( tre's
--/	-
 -		Crd()eid nor{qufunth ) {
  -		(T();
iaTsti "?attrs es[to ajax+ *ly as?auessionward comp()Ebility)T- ( currajax+ *ly as.xhrn==wifdow.ActiveXO ) {
p?aTy/* Microroft failes[to properlyaTy * imflTyeOrid noXMLHttpRequfun
icoIE7 (can't=r{qufuntloc(luf bnsa, fu * so	we=ring :
	ActiveXO ) {
p  funic
iaTyvailtyle -  * Addi+	cue;lyoXMLHttpRequfun
can?be disab fd
icoIE7/IE8 so -  * wedapesTyparession. -  */l0 mouseeajax+ *ly as.xhrn==wifdow.ActiveXO ) {
p!!pr't get/set? +)nal+upf su:?IE6 y 	/<script\specfun dataTy!*/"..isLoc(lunve	rd()eS andardXHRi+	res
rd()eActiveXHRi+ta+y0 )nalXHRncanaot	occurn?loc(luf bns,+alwtys.ringActiveX	xLoc);at=c {
l0 ) dataTy!*/"..isLoc(lunv}"se {
nal+upf su:?IE7-8se {
nalvldIElXHRndoeaTaotrsupf su		on-RFC2616 this.msrs#13240)se {
nal+ee tPref//msdn.microroft.com/en-us/library/ie/ms536648(v=vs.85).aspxse {
nalendptPref//www.w3.org/P+	tosols/rfc2616/rfc2616-sec9.html#sec9se {
nalAlis.ugh(*/".	c
eck	xLocs x
this.msr	 tread	 aleen;
se {
nalsix"WQIEleon =doeaTaotrsupf su	"tra{e"lendp"yTyne,
"se {
n^(tor|pose|head|put|ession|ver	cur)$/i: funct*/"..*	( tac._aase {
	rd()eS andardXHRi+	res
rd()eActiveXHRi+ta x
 :a x/		F+  all	o		}
	browsndr,=ring :
	s andardoXMLHttpRequfun
h ) {
  
	rd()eS andardXHR		  f/ecDetermin#.supf su	properti sy-) {
-	jQuebxhrnspecfu ( current ===h ( currsupf su,pecfunajax: !!xhr,e-,
codr:e!!xhr}nve(+"= s.CrdT,
+is;n" 	}
xhre)va		sexhrId	t
0,u+	xhrCressionr[=o{nyl+	xhr+upf su+ 	=sjmouseeajax+ *ly as.xhri+ta+y0nal+upf su:?IE<10y0nalOpouc {qufuns}muTypbegmanuallyTob suse
on
'tload
(#5280)vary.suwifdow.ActiveXO ) {
pac te( mousesuwifdow		.Queb"'tload", /<script\spec+	,aueste		sekey		}
xhrCressionrt pro+xt;xhrCressionr[ekey	])j't get/se, trnstt			/	ng ,}teTe})(sjmouseeajax+ *ly as.xhri++tas+= ea+/ecDetermin#.supf su	properti sy+supf su.codr?le!!xhr+upf su+ 	nve(+"= s.CrdT,
+is;n" 	}
xhr+upf su+ 	tas+xhr+upf su+ 	=ssupf su.ajaxule!!xhr+upf su+ ta+y -		Crd()eidransf suniaTyp-	browsnd
can?providsorn	xhr
-i= daut in tsupf su.ajaxu pro+i= daxhr+upf su+ 	tc ttaTy ( currajaxTransf su(/<script\b	i	pec+y ( currajaxTransf su(/<script\bver	currtc ttyp-		Crorn g:mr( tonlygallowfd
ifssupf sues[thr.ugh(XMLHttpRequfunT-e.( dat!e.crornD:mr( tresjt in tsupf su.codr?+	al0 )i= da!	 || va.crornD:mr( tressupf su.codr?+	alul 			y wocressiondaul 			 dataTyec cteasous 
-	serializheadndr,rcompsion tSty+					( " "yle( .y(	xhrn==	 || va.xhri+yle( .y(	i 	=s++xhrId	iut.tet		e
- ) {a.}	wsxhr
-					( " xhrn==a.xhri+ylfuncte	; i <eylfuncte	i;a-  	e
		nalOpouc :
	sockspt.tet		e
-Pass+	tg});
+rinron thegenera" ])aplogin?popup
on
Operaa(#2865)yle.ger;
-		s.rinron t=)e: functexxhr.openct..t	( ,	s.url,ae.async,	s.rinron t,	s.pas
word atafuncte/putedStyle.getxxhr.openct..t	( ,	s.url,ae.async atafuncte/le( .y(xhr.openct	 || va.t
-	,to || va.url,ao || va.async,	o || va.uinron t,	o || va.pas
word ata   	e
		nalAiflygiuTyom f el t?ifTprovidseT-
.ger;
-		s.xhrF el t;specfunnnnnauesteiei
-s.xhrF el t;specfunnnnn(xhroti a =-s.xhrF el toti	];y0 )ger;
-			 || va.xhrF el t;spec+unnnnnauesteiei
-	 || va.xhrF el t;spec+unnnnn(xhroti a =-	 || va.xhrF el toti	];y 	e
			/drbrarahoul 					nalOverridsomimee
s (
hfdapesed -
.ger;
-		s.mimeT	( fnvexhr.overridsMimeT	( f)e: functexxhr.overridsMimeT	( 		s.mimeT	( f);y0 )ger;
-			 || va.mimeT	( fnvexhr.overridsMimeT	( f)e: +unctexxhr.overridsMimeT	( 			 || va.mimeT	( ft	drbra	ahoul 					nalX-Requfuned-Withzheadndl 					nalF+  crorn-g:mr( t {qufunn-m	ee+	tftaTifydi+	cusgforsae
+eflen;
aarel 					nalakit to	a jigsaw puzzle,fwedsimflygnvvr a onpin to	bnosura.  no			nal(in
can?alwtys.be. onptuna per-r{qufuntbasis Loc e =+ri+	tftjax+ *up)l 					nalF+  sn t-g:mr( t {qufunn-mwon't=changf headnd ;
-alueadycprovidse. -
.ger;
-		!e.crornD:mr( t._ !headndr["X-Requfuned-With"]f)e: functexheadndr[ "X-Requfuned-With" a Ta XMLHttpRequfun";y0 )ger;
-		!	 || va.crornD:mr( t._ !headndr["X-Requfuned-With"]f)e: +unctexheadndr["X-Requfuned-With"]fTa XMLHttpRequfun";yrbra	ahoul.tet		e
-NpesTynmextra)try/c,
+	
xLoccrorn g:mr( t {qufunsei
-Fi+efox 3l.tet		r opacfunnnnnauesteiei
-headndrt keyfunnnnn(xhr.s	.RequfunHeadnds i, headndroti a s;v+tet		e
-Se
 headndr;
+		nnauesteiei
-headndrt key+unctexnal+upf su:?IE<9y+unctexnalIE's	ActiveXO ) {
po:rowsca.'T	( fMis0,
+	'	excep 			s  fun only ay+unctexnal {qufuntaeadnd to	a });
-/ The.y+unctexnay+unctexnalTo?keepeyTysisnexp{= s.co		}
	XHRnimflTyeOr()Extr,rcasrid no && ] 0 )ry(	 nuto	 t	if iaaTy	gn rey`'t get/se`.y+unctex;
-		headndroti a !!pr't get/set pro+		nnnn(xhr.s	.RequfunHeadnds i, headndroti a +e
-				 	e
			/dfuncte/p	// f( _re's
-+bra	ahoul 					nalDc e
aTyt
-	requfuna 					nalT();
m ) ra		if	n	excep 			s  i+	
iaTycnuallya 					nal; i <ed
icoyle.filajax (n =no)try/c,
+	
;
re)yle.gerxhr.s	===h(ea.ataCTypeOrTnvea.data	f res});
+t;le( .y(xhr.s	===h(e	 || va.ataCTypeOrTnve	 || va.data	f res});
+t;lul 					nalLisnexndl 					sression
=
/<script\b_,tisAb su=)e: +))))))( " \tatuelm	tatue
+		-
uesponsat	iut.tet		 ( " \tatuelyfunnnnn(	tatue
+		-yfunnnnn(r{sponsaHeadnds-yfunnnnn(r{sponsas-yfunnnnn(xml; 0 )ry(	 nuWtaTavvr acallediaaTy	aTob suse
LoccTmpsionee( ntex;
-		sression
nve(+isAb su=ot xhr.r{adyS ate	=!pr4 " )e: +)ry(a}inalCle	n up +)ry(a}iessioncxhrCressionr[ei 	];y0 )ger		sression
=
't get/se+ +		nnnn(xhr.onr{adystatechangf ==t,
-			 sop	iut.tet		 /ecFi+efox o:rowscexcep 			t?  funaccurnif iproperti sy-tet		 /ecoforn	xhr?  funa network
prr// occurady-tet		 /ectPref//helpful.knobn-gis;n.com/*?):[.php/CTmpcnent_ dataTed_failura_aode:_0x80040111_(NS_ERROR_NOT_AVAILABLE)yle.ger	r opacfyfunnnnn( nuWtaTavvr acallediaaTy	aTob suse
LoccTmpsionefunnnnn(;
-		sression
nve(+isAb su=ot xhr.r{adyS ate	=!pr4 " )e: fyfunnnnn(	nalOnlygcalledToncesfunnnnn(	sression
=
't get/se+ fyfunnnnn(	nalDoTaotrkeepeaslrctive anymoresfunnnnn(	;
-		hm, valte: functe		
(xhr.onr{adystatechangf ==t,
-			 sop	ifuncte		
(i= daxhrOnUtloadAb su=te: functe		
(iessioncxhrCressionr[ehm, val]	ifuncte		
(} +)ry(a}inalAb su=manuallyThfdapesed +cte		
(i= daisAb su=)e: +))))))
(i= daxhr.r{adyS ate	!!pr4 " : +))))))
((xhr.ab sui/dauurte		
(} +)ry(a}i} " + eey0 )ry(	n(r{sponsas[=o{n+ +		nnnn(a	tatue = xhr.statue;  yfunnnnn(	nalIftic'slan?ab su fun.ger
(i= daisAb su=)e: functe		
(nalAb su=iu=manuallyThfdapesed functe		
(i= daxhr.r{adyS ate	!!pr4 " : functe		
(ixhr.ab sui/dafuncte		
(} functe		
/putedStyle.getxn(a	tatue = xhr.statue; le.getxn(ar{sponsaHeadnds = xhr.getAllResponsaHeadndsi/dafuncte		
(r{sponsas[=o{n+ functe		
(xml = xhr.r{sponsaXML+ fyfunnnnn(		 nuCTy t	ucp{responsa;listf- )cte		
(i= daxmlunvexml.docweirdEfor(;  /* #4958 */ " : functe		
(ir{sponsas.xml = xml	ifuncte		
(} +)ry(a}ixnal+upf su:?IE<10y0ncte		
(nalAccurnif ibinary-data	r{sponsa
+		 o:rowscan	excep 			y0ncte		
(nal(#11426) +))))))
(i= dans (= 1xhr.r{sponsa
+			=yTa 			if ].clasuurte		
(ir{sponsas.t+			=zxhr.r{sponsa
+		+ +		nnnn(a}  yfunnnnn(	 /ecFi+efox o:rowsc	n	excep 			s  funaccurnif yfunnnnn(	 /ec	tatue
+		 aues justy crorn-g:mr( t {qufunnyfunnnnn(	 r opacfunnnnnxn(a	tatueT+			=zxhr.	tatue
+			}functe		
(} 	// f( tre'scfunnnnnxn(a/ecllmnit al= 0 = s.cWebkiu=givif iaa ompty)	tatue
+		cfunnnnnxn(a	tatueT+			=z""	ifuncte		
(} +)ry(a}ixnalFi+efox o:rowsc	n	excep 			s  funaccurnif y+)ry(a}ixnal	tatue
+		 aues justy crorn-g:mr( t {qufunny+)ry(a}ixr opac+nnnnnxn(a	tatueT+			=zxhr.	tatue
+			}+		nnnn(a} 	// f( tre'sc+nnnnnxn(a/ecllmnit al= 0 = s.cWebkiu=givif iaa ompty)	tatue
+		c+nnnnnxn(a	tatueT+			=z""+ +		nnnn(a}  yfunnnnn(	 /ecFibind  tatue xLocnon	s andardobehaviors +)ry(a}ixnalFibind  tatue xLocnon	s andardobehaviors  yfunnnnn(	 /ecIf{);
l {qufuntin?loc(lutaTy in
-	jQdata:se (wei	a succurnyfunnnnn(	 /ec(succurn?= s.cnoTdata	won't=gspdaotif>+ -c);at'sp*/-	bfuntweyfunnnnn(	 /eccan?dopg danr	urv,
+	imflTyeOr()Extr)f- )cte		
(i= da!	tatueTnvea.isLoc(lunve!e.crornD:mr( t proctinnnnxn(a	tatue =er{sponsas.t+			?
20ee: 404	}funnnnn(	 /ecIE - #1450:asom#eimfurQuery.sp1223p  funic
shouldobea204}functe		
(} " + edeTypetatue {yTa1223p proctinnnnxn(a	tatue =e204	}funnnnn(	 } +)ry(a}ixnalIf{);
l {qufuntin?loc(lutaTy in
-	jQdata:se (wei	a succurny0ncte		
(nal(succurn?= s.cnoTdata	won't=gspdaotif>+ -c);at'sp*/-	bfuntwey0ncte		
(nalcan?dopg danr	urv,
+	imflTyeOr()Extr)f+))))))
(i= da!	tatueTnve	 || va.isLoc(lunve!	 || va.crornD:mr( t)pac+nnnnnxn(a	tatue =er{sponsas.t+			?
20ee: 404	}+)ry(a}ixnalIE - #1450:asom#eimfurQuery.sp1223p  funic
shouldobea204}+		nnnn(a} " + edeTypetatue {yTa1223p pro+nnnnnxn(a	tatue =e204	}uurte		
(}  rte		
(} functe	} 	// f( fi+efoxAccurnExcep 			s proctinnnnx;
-		!isAb su=)e: functextnsompsion)j-1, fi+efoxAccurnExcep 			s tafuncte		"a 	e
			/dra 	e
			/		Cresccompsion ifdapesed  		,nnx;
-		responsat?ac t-cteextnsompsion)j\tatuelm	tatue
+		-
uesponsat-
uesponsaHeadnds );y0 )ger		sompsion)j\tatuelm	tatue
+		-
uesponsat-
xhr.getAllResponsaHeadndsi/				 	e
			/drbra	ah	iut.tet		e
-TML iif (i
-sync moda
Locic'slh =crs et.tet		e
-endptas.beouc {		i e dTni( ( lyT(IE6o&?IE7)t.tet		e
-wedapesTto	manuallyTfi+e{ :
	cressiony.te)
(i= da!	.async ot xhr.r{adyS ate	=!pr4 " ro+nnnnn;
-		!	 || va.async akey+unctexnalTML iif (i
-sync moda
weTfi+e{ :
	cressiony 	e
			cressiond);y0 )ger} " + edeTypxhr.r{adyS ate	=!pr4 " ro+nnnnn(nal(IE6o&?IE7)c\[\i 'slh =crs e-endptas.beouy+unctexnal {		i e dTni( ( lyTwedapesTto	fi+e{ :
	cressiony+unctexsonTimeoutatcression
+;yrbra	ahputedStyle.getxhm, val=s++xhrId	ifun.ger;
-		xhrOnUtloadAb su=te: functe		-		Crd()eid norctive xhrs	
ressionsglish hfdapesed -
ncte		-		endpa trs ad no'tload
; i <eroctinnnnx;
-		!xhrCressionrt proext;;;;;;xhrCressionr[=o{n	}funnnnn(	 mousesuwifdow		.unload)jxhrOnUtloadAb su=ttafuncte		"afuncte		-		Adduto	lish  alrctive xhrs	
ressionsyfunnnnn(xhrCressionr[ehm, val];=e
ressionda-/g,
		"afuncte	xhr.onr{adystatechangf ==
ressionR.e( ne		-		Adduto	);
 lish  alrctive xhr	
ressionsf+e.gte	xhr.onr{adystatechangf ==xhrCressionr[ei 	] ==
ressionR.rbra	ahoura	ah,dra 	e
	ab su 
-	seriali+	al nnnnx;
-		cression
+	al-	e
			cressiond0,1);y0 )ger	cressiond
't get/se, trnstt		rbra	ahoura	aharbrah		0/
}l rn)il = ea+/ecF	},
+		sato	crd()eixhrs
+alProtococrd()eS andardXHRi+	al+xr opac+nn dataTy}	wswifdow.XMLHttpRequfunu)	i+x
 	// f( tre's
-+= ea+alProtococrd()eActiveXHRi+	al+xr opac+nn dataTy}	wswifdow.ActiveXO ) {
( "Microroft.XMLHTTP"+tas+x
 	// f( tre's
-+= eaeaTy wotaTyti"alay[=o{nyl-)ifrn t,	ifrn tDocyl-)rfxt	( s;+	/^(?:toggle|show|hidn)$/yl-)rfxnum;+	/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i		-yTimerId		-yfxAttds = [l-te-		heen;
aanim()Extrl-te[("heen;
", "marginTop", "marginBottom ,/"pads+	tTop", "pads+	tBottom i],Texte
-widthaanim()Extrl-te[("width", "marginLef
", "marginRen;
", "pads+	tLef
", "pads+	tRen;
"i],Texte
-opacitytanim()Extrl-te[("opacity"i] -	]		-yfxNowyl-)requfunAnim()ExtFrn tn==wifdow.webkiuRequfunAnim()ExtFrn tne;lfu    wifdow.mozRequfunAnim()ExtFrn tne;lfu    wifdow.oRequfunAnim()ExtFrn t	iut. mouseentrent === "-	show 
-	serializspese, eanif ,	cression
+	al-	ey wotaTy,ati"alayil T-e.( datspesetresspeset=!pr0ete: func f
-	ji*/"..anim()n)jgenFx("show", 3),zspese, eanif ,	cressionteTe  cl" " + eecfuniaueste		sei	t
0, j+t)t/"..ters =" i < j" iplete{t.ra	ats
-	=i*/".[i]+ fyfunnn( dattaTypstyleste: functedi"alay[=otaTypstyle.ti"alay+ fyfunnnn/ecR=s) { :
	inlin#.di"alay[of(*/".	elTyeOrido lua	jQifnic
iayfunnnn/ecbe+	tfhiddenubygcascaded ruva])Locno	cfunnnni
-		!t,
-			_data(ps
-, "oldti"alay"ae._ di"alay[=yTa ncne"
+	al-	e
			di"alay[=otaTypstyle.ti"alay	=z""	ifuncte} fyfunnnn/ecSe
 taTyeOrap  i+	

-	jQbeoucoverriddenu= s.cti"alay:cnonet.tet		e
-icoa stylesheerido w/ ovvr a :
	de just}browsnd
stylesiayfunnnn/ecxLocsu+	ratteaTyeOrcfunnnni
-		di"alay[=yTa "?ery.supporcss\bps
-, "ti"alay" )[=yTa ncne"
+	al-	e
			t,
-			_data(ps
-, "oldti"alay",	de justDi"alay(taTypnsde	if )atafuncte/l-ncte/l-nct} fyfunn/		+ *	 /#.di"alay[of(mosh  alth
+	for(; s icoa seifyd?loopyfunn/		to	avoid{ :
	cTys anp{reflow f	nnauesteie= 0+ i < j" iplete{t.ra	ats
-	=i*/".[i]+ fyfunnn( dattaTypstyleste: functedi"alay[=otaTypstyle.ti"alay+ fyfunnnni
-		di"alay[=yTa "?resdi"alay[=yTa ncne"
+	al-	e
			taTypstyle.ti"alay	=zt,
-			_data(ps
-, "oldti"alay"aeot "		}functe/l-ncte/l-nct} fyfunnrvery.i*/".il-,
-	+		/I trall	\,
-	r nforT	( T0 mouseeajax+ *up({ +uaccep s:e: +uns,
-	r 
"truc/java\,
-	r,f	iflic()Ext/java\,
-	r,f	iflic()Ext/ecma\,
-	r,f	iflic()Ext/x-ecma\,
-	r"
 ,}		-ylehidn 
-	serializspese, eanif ,	cression
+	al-	e( datspesetresspeset=!pr0ete: func f
-	ji*/"..anim()n)jgenFx("hidn", 3),zspese, eanif ,	cressionteTe  cl" " + eecfuniaueste		sei	t
0, j+t)t/"..ters =" i < j" iplete{t.ra	ai= da*/".oi]pstyleste: functey wodi"alay	=zt,
-			css\b*/".oi], "ti"alay" )+ fyfunnnni
-		di"alay[!yTa ncne"
 s.!ut in t_data(b*/".oi], "oldti"alay" tete: funct		t,
-			_data(b*/".oi], "oldti"alay",ati"alay atafuncte/l-ncte/l-nct} fyfunn/		+ *	 /#.di"alay[of(th
+	for(; s icoa seifyd?loopyfunn/		to	avoid{ :
	cTys anp{reflow f	nnauesteie= 0+ i < j" iplete{t.ra	ai= da*/".oi]pstyleste: functe*/".oi]pstyle.ti"alay	=z"ncne"da-/g,
-	ext;
-	yfunnrvery.i*/".il-,
-	+	coypeOra:pac+uns,
-	r 
/(?:java|ecma)\,
-	r/
 ,}		-yle/		+a(ng);
 old toggleealProtocsex_toggle:  mouseentrtoggle		-yletoggle: /<script\bfn,bfn2,	cression
+	al-	ey wobool+t)t
-	taT-n[=yTa boolean";	-l-	e( datut in the new valufn)cery.supporhe new valufn2tete: funct/".._toggle/	iflye(*/"., ea weird iteTe  cl" " + ei= daHn =!n});
+resbool+te: funct/"..	\//,-	seriali key-nctey wohtate {
bool+?aHn :  mousea*/".).he(":hidden"atafunct mousea*/".)[ohtate ? "show"	:e
hidn" ]i/dafunc}teTe  cl" " + eecfuni*/"..anim()n)genFx("toggle", 3),zfn,bfn2,	cressiontas+xcoy depndr:e: +e

truc	\,
-	r" 
-	serializ
+			te: +	ncd /* intlob(lEealiz
+			t;}+	t; f
-	ji*+			} /	}v+	ngeC/; eaTyprvery.i*/".il-,nyl+/ecHm, val
/cha's "autial=c {
+aaTyglob(lf0 mouseeajaxPref bind( "\,
-	r"- /<script\b	i	pec+ui= dae.c/chaa =+ 't get/set pro+tie.c/chaa Qly dang+	ngexi= dae.crornD:mr( t pro+tie.t	( +t)"GET";l+cle.glob(ll Qly dang+	ngeC/; eaTyfadeTo 
-	serializspese, to, eanif ,	cression
+	al-	e f
-	ji*/"..f bind(":hidden"a	css\"opacity", 0).show(). ( da functe.anim()n){opacity: to},zspese, eanif ,	cressionteTe,nyl+/ecBiaTy ,
-	r tag	hion
transf su + ( currajaxTransf su( "\,
-	r"- /<script\sac ttaTyanim()n 
-	serializprop,zspese, eanif ,	cression
+	al-	ey wooprall	=zt,
-			spese(spese, eanif ,	cressionteT+y/ecT();
transf sunonlyg e(ls?= s.ccrorn g:mr( t {qufunssexi= dae.crornD:mr( t pro l-	e( datut in theEmptyO ) {
( prop tete: funcrvery.i*/"..	\//,ooprall.sompsion, [m
-			}]i			- )"te( ( " \,
-	r,}+	t;head	t
docweird.head	res mousea"head")o0]=resdocweird.docweirdEfor(; eT y.tee
-DoTaotrchangf r	ry.ex"Wdiproperti seaslper-property eanif  wi "?bnolostf- )prop =zt,
-			ent ===h{},zprop t;c+nn dataTy{ eaTyprvery.i*/".[ooprall.qufuaa =+ 
-			}? "	\//"	:e
qufua" ]i/<script\specfun,/		XXXc'*/".'=doeaTaotralwtys.
-	jQa
nsde	if    funrunn
+	} /#yfunn/		tfuntsuionee( nsous 
-	serializ_,scression
+	alut.tet;
-			 |all.qufuaa =+ 
-			} key-nctet,
-			_markda*/".				ext;
-0 )ge ,
-	r t
docweird.crd()eEfor(; ("\,
-	r")	iut.tety woopr =zt,
-			ent ===h{},zoprall	+ylfunctheElTyeOri=t*/"..nsde || s{yTa1ylfuncthiddenu==heElTyeOriery.suppoa*/".).he(":hidden"aylfuncton the/ T,zpylfunctti"alay, eylfunctpartelm	tasu,p ==,s'ti		}+		nn ,
-	r.async
Tatrns; eaTyp(/		wi "?st reyper property eanif  aaTybe
{
+	rortnetermin#.  funantanim()Exttin?cTmpsionefunno	r.anim()ndProperti se=o{n	}f f	nnauestep icoprop te: fyfunnn/		property on t=nit al= attocsextcton t	=zt,
-			cn tl-				 p atafunctdeTypp[!yTaon t=)e: functeprop[ltion au==prop[lpl]	ifuncteessioncprop[lpl]	i+unctdeType. ,
-	rCharsp		te: 0 )ger	,
-	r.charsp		=ae. ,
-	rCharsp	daura	ahary-nctey lu==prop[ltion a	}+		nn ,
-	r.src;t)s.urlta {
}ige/eceanif  r{soluttoc:yper property >zopr."autialEanif  >zopr.eanif  >z'swif ' (de just)afunctdeTypreplactheAin o(ive;
tS)e: functeo	r.anim()ndProperti s[ltion au==ve;[ 1	atafunctey lu==prop[ltion au==ve;[ 0	atafuncthputedStyle.geto	r.anim()ndProperti s[ltion au==opr."autialEanif  nve	 |."autialEanif [ltion auresopr.eanif  res'swif 'da-/g,
-	+}ige/ecAttrs a; i <ersgforsall	browsndr;+		nn ,
-	r.onload	t
	,
-	r.onr{adystatechangf ==/<script\b_,tisAb su=)e:  {
}igei= dave;
 !pr
hidn" nvehiddenuresve;
 !pr
show"	._ !hiddenu)e: functervery.iopr.cTmpsion.
resaa*/".				ext; } +)ry(a;
-		isAb su=ot !	,
-	r.r{adyS ate	ot /loaded|sompsion/: funct	,
-	r.r{adyS ate	" )e:  {
}igei= daheElTyeOrierytetion  !pr
heen;
" res}ion  !pr
width"
tS)e: functe/ecMmentsurac);at=aoth+	tfsneaks oupt.tet		e
-Rec\t=sall	3coverflowpa tribu" ])becaringIE=doeaTaott.tet		e
-changf );
 overflowpa tribu" .  funoverflowX aaTt.tet		e
-overflowY;e,
+serido  :
	sion  && ] le.geto	r.overflowp=e[ */"..style.overflow, */"..style.overflowX, */"..style.overflowY	];y0 )ger	/		Hm, valmemory luan
icoIE{+unctexs,
-	r.onload	t
	,
-	r.onr{adystatechangf ==t{
 
-ut.tet		e
-+ *	di"alay	property do inlin#-block	xLocheen;
/widtht.tet		e
-anim()Extrptuninlin#.	for(; s t;at=e,
+havif  width/heen;
t.tet		e
-anim()ed -
.ger;
-		t,
-			css\b*/"., "ti"alay" )[=yTa inlin#"e._a-/g	nctet,
-			css\b*/"., "float" )[=yTa ncne"
+	al-	e
			i
-		!t,
-			supf su.inlin#BlockNpessLayoupt proext;;;;;*/"..style.ti"alay	=z"inlin#-block";	-l-	euncthputedStyle.gettedi"alay[=ode justDi"alay(t*/"..nsde	if  a;cfyfunnnnn( nuinlin#-level.	for(; s accep  inlin#-block;yfunnnnn( nublock-level.	for(; s apesTto	b
	inlin#.= s.clayoupyfunnnnn(i
-		di"alay[=yTa inlin#"e proext;;;;;;*/"..style.ti"alay	=z"inlin#-block";	-l-	eunct
/putedStyle.getxn(*/"..style.ti"alay	=z"inlin#"	ifuncte		
*/"..style.zoo-	=i1tafuncte		"a0 )ger	/		R=g (ng);
 s,
-	rce( ntex;
-		e,
-	r.pav,
+N.no te: 0 )ger		e,
-	r.pav,
+N.no.==g (jC
-	dct	,
-	r ata 	e
			/dfuncte/a-/g,
-	ext;
-ut.tet;
-			 |.overflowp!!n});
+ proext;;*/"..style.overflow pr
hidden"		ext;
-0 )ge	 /ecD
r	ry.ex"WQt;
 s,
-	rc+unctexs,
-	r ==t{
 
-ut.tetauestep icoprop te: fctexf ==tew  mouseenx\b*/"., o	r,fp atafuncty lu==prop[lpl]	if{
}igei= darfxt	( s: funcy ltS)e: functee[sve;
 !pr
toggle"t?
hiddenu? "show"	:e
hidn" ie && ]i/dafafuncthputedStyle.getparte =erfxnum.e ec(ive;
ttafuncte	tasu[=ot.cur()+ fyfunnnni
-		parte +	al-	e
			tnd	t
parspFloat		parte[2]=ttafuncte	'ti		t
parte[3] e;
(it,
-			cssNumberotpl]+?n"")ie"px" )+ fyfunnnna/ecllmnpesTto	sompu" .	tasuif   && ] le.getni
-		'ti		!yTa px" )Style.getxnt,
-			style\b*/"., p, (tnd	e;
1te+e'ti	ttafuncte			tasu[=o((tnd	e;
1te/ot.cur()) * stasu;yle.getxnt,
-			style\b*/"., p, 	tasu[+e'ti	tta0 )ge	 /ecCression
ifdaot	ob su e( ntex;
-		!isAb su=)e: +))))))
cressiond
20e,z"succurn" ata 	e
			/dfyfunnnna/ecIf{o +=/-Tatokenu=aslprovidse,L iif (doif  a r{lative anim()Ext le.getni
-		parte[1]f)e: functex	tnd	t
( (parte[ 1	a
 !pr
-="t?
-1)ie1) * tnd	)	+eetasu;yle.getx/dfyfunnnnat.cuTyom(m	tasu,p ==,s'ti	 )+ fyfunnnn/putedStyle.getxt.cuTyom(m	tasu,p/ T,z
-				 	e
		/a-/g,
-	ext;
-+))))}; eaTyp(/		F+  JS	 t	i( ecTmpsiancesfunnrvery.i*rns; -nc}teTes},fy(e	 /ecCircwev,
+	IE6ofugs?= s.cb {
+	for(; s (#2709tendp#4378)ubygprepous+	tfy(e	 /ecUsa;native DOM	manipul()Exttto	avoid{our g:mManipsAJAXlt	i(k-		fy(e	 head.svar cBhe reda\,
-	r,fhead.f(ddeC
-	ds+day(e	},f y.tTyop:XXX fieldeoclua	Qufua, gotoEnet procti;
-		clua	Qufua+te: funct/"..qufua([]/da-/g}sea-/gt/"..	\//,-	seriali key-nct( " timerapch ( currtimeraylfuncth
Tatimera.ters ="aTyp(/		clua	 markr acTuOre)s(TML inknow t;
y	won't=baa-/g,( dat!gotoEnet proctitet,
-			_unmarkda*ruthe*/".
+da-/g,}}e		"w
-					i--ete{t.ra	ai= da*imeraoi]pts
-	===e*/".
+Style.geti= dgotoEne)e: functex/
-f+ "WQt;
 nruc	\tepTto	b
	);
 lastf- )cte	*imeraoi])type/; functe/a- functetimera.c );ce(i, 1);y0 )gab su 
-	seriali+	al+unctdeType,
-	r ae: 0 )ger	,
-	r.onload)j't get/se, trnstt		rbra	/drbraho-nc}teTe  clnal	tartQt;
 nruc	hjQ*/-	qufuaaiaTyp-	last	\tepT=asn't=f+ "Wdocti;
-		!gotoEnet proctitt/"..dequfua(/da-/g}sea-/grvery.i*/".il+{ah		0//	-
 /			  f/ecAnim()Extrpcrd()ed-synchronouslyTwi "?run-synchronously
calProtococrd()eFxNowi key-nsonTimeoutatclua	FxNow,r0etda-/rvery.i( fxNow +	t,
-			 swdaetda-
-ut.alProtococlua	FxNowi key-nfxNow +	't get/se+ f}	  f/ecGenera" Cparamere)s(to	crd()eia	s andardoanim()Ext lalProtocogenFx(z
s (,bnum; key-ny woobje=o{n	}taTy ( curr	\//,ofxAttds.	Tycat/	iflye[t  /xAttds.s);ce(0,num)),h-	seriali+	al-teobj[l*/".
]+t)t
-	eTes});y0y wooldCressionr[=o[]- +urusonp.t)/(=)\?(?=&|$)|\?\?/	}taTyrvery.iobj;--/	-
c/ecGenera" CshortcutsgforsiuTyom anim()Extrl- ( curr	\//,ey-nslidsDown:jgenFx("show", 1aylfuslidsUp:jgenFx("hidn", 1aylfuslidsToggle: genFx("toggle", 1aylfufadeIn:j{ opacity: "show"	}ylfufadeOut:j{ opacity: "hidn" }ylfufadeToggle: { opacity: "toggle"t
--/- /<script\bon theprop.
+Style mouseent[ltion au==-	serializspese, eanif ,	cression
+	al-	e f
-	ji*/"..anim()n)jprop.,zspese, eanif ,	cression
+eTes};se/			-l- ( curr	nt === "-	spese 
-	serializspese, eanif ,	fnu)e: funy woopr =zspeset&&tns (= 1epeset=!pr h ) {
].?
 ( curr	nt === },zspesea)ieroctitsompsion:	fnuot !f t._ eanif  reoctitet,
-			he new valu
apeset)ceryspese,octitdurattoc:yspese,octiteanif :	fnu._ eanif  re eanif   s.!ut in the new valueanif )u._ eanif a-/g}eTe  cl	 |.durattoc +	t,
-			fxpoff.?
ee: ns (= 1	 |.durattoc +yTa number].?
	 |.durattoc :efunno	r.durattoc icoyle.filfxpspeseap?h ( currfxpspesea[o	r.durattoc] :h ( currfxpspesea._de justeTe  clnalQufuaif a-/g	 |.oldu==opr.sompsion;a-/g	 |.compsion ==-	serializnoUnmarkt proctit;
-			 |.qufuaa!==t
-			}te: ccteet,
-			dequfua(e*/".
+da-/g,} " + ei= danoUnmarkt!==t
-			}te: ccteet,
-			_unmarkda*/".
+da-/g,}}eoctit;
-		t,
-			he new valu
	 |.oldutS)e: funct	 |.old.
resaa*/".				ext;}a-/g}eTe  clrvery.iopreTes},fe  ceanif :	: funlin#ad:XXX fieldeop, n, fi+stNum,atiff.te: funcrvery.ifi+stNum	+etiff.* p	ifun}ylfu	swif :XXX fieldeop, n, fi+stNum,atiff.te: funcrvery.i((-Math.cos(p*Math.PI)/2)	+e0.5) * tiff.+ fi+stNumda-/g}ses},fe  ctimera:o[]- -y-nfx:XXX fieldeops
-, 	 || va,oprop te: fct*/"..ap 			t?=-	 || va;a-/gt/"..	s
-	=itaTy;a-/gt/"..prop =zpropeTe  cl	 || va.opug =-	 || va.opug re {n+ +/ecDe just}jsonp. only as 0 mouseeajax+ *up({ +ujsonp:="caession", +ujsonpCression: /<script\spec+		y wocression =-	ldCressionr.pop() e;
(it,
-				}a i o	+e"_"e =atnonceplete);y0 )*/".[ocression ]
Tatrns; +nn dataTy
ressionR.rb/	-
 /			  f ( currfxpp+	tot	( +t): fce
-+imflT	XX field xLocsonly aoa style  && ] leupd()n 
-	seriali procti;
-		*/"..ap 			t.\tepT proctitt/"..ap 			t.\tep.
resaa*/"..ps
-, */"..nswhe*/".
+da-/g}a+/ecDetecr,nnit al= 0 ver	curraaTy	 trall	
ressionsgforsusonp. {qufunsf0 mouseeajaxPref bind( "jsonsusonp"  /<script\b	,topug(nal+ *ly asonjqXHRns	aleaTyp( ( currfxpstep[t/"..prop]tresjt in tfxpstep._de just)aa*/".				ex},fy(y wocressionNn t,	overwrittsn-
uesponsaCTypah er, +lnjsonProp =zs.usonp.!==t
-			}nve(+rusonp: funct..urlu)	?aalus"url"+: +)ryns (= 1e.data	tyTa 			if ]. s.!()a.coypeOrT	(  ot "			.h?):[Of( 	iflic()Ext/x-www- it -urlataoded")u._ rusonp: funct..data	f ._ "data"se {)	iut.te
- ) { :
	curv,
+	s= 0t.tcur 
-	seriali procti;
-		*/"..ps
-[t/"..prop]t!!n});
+nve(!*/"..ps
-pstylesot */"..ps
-pstyle[t/"..prop]t=!n});
tete: funcrvery.i*/"..	s
-[ t/"..prop ]		- )"te(/		Hm, valiff.th
+	xaut	 dTnata	
s (
hsa usonp" ors in
-	jQa
paramere)uto	 etsexi= dajsonProp ress.dataT	( sot0 a tyTa usonp" s	aleaTyp		separspe,octitr	=zt,
-			css\b*/"..ps
-, */"..prop t;c clnalEmpty)	try ason});
, 't get/setendp"auto"=e,
+coy depnsTto	0,Texte
-compsix  && ]s;su+	rasa +	t()n)1rad)"=e,
+ dataTedrasais,Texte
-simflT	 && ]s;su+	rasa 10px" e,
+parspeTto	Float.  clrvery.iisNaN(+parspeTt
parspFloat		rutS)e? !r resr tyTa 	uto"=?
ee: re: parspeeTes},fy(ee
- ) {cression on therememberif ipreexisuif   && ]se (oci()ed-= s.ciu e( cressionNn t t)a.jsonpCressionit	t,
-			he new valu
a.jsonpCressioni+	?ee( ns.jsonpCressionda)iee( ns.jsonpCression	iut.te
-StartQantanim()Exttfrom one numbertto	ano		}
t.tcuTyom: /<script\bfrom, to, 'ti	 )e: funy woself+).*/".,octitfx +	t,
-			fx,octitraf;sea-/gt/"..	tartTime ==-xNow res
rd()eFxNowi ;a-/gt/"..	tart ==-rom;a-/gt/"..	nd	t
to;a-/gt/"..'ti		t
'ti		ot */"..'ti		ot (it,
-			cssNumberott/"..prop ]+?n"")ie"px" )+ f/gt/"..now +	t/"..	tart;a-/gt/"..pos +	t/"..	taon ==0;sea-/gXX field t		gotoEnet proctit f
-	ji	elf/stepdgotoEne);fy(ee
-Ivar c{cression h to	urluues Lom)data
0 )i= dajsonProp ae: 0 )gs[ajsonProp a =-s[ajsonProp a)-	n" &&  rjsonp,z"$1"e =cressionNn t t			/	n " + edeType.usonp.!==t
-			}te: e( ns.urlu+==  rq currtfunct..urlu)	?r"&	dat"?" )	+ee.usonp.+e"="e =cressionNn t		0/
}l T-e.t.ts
-	=i*/"..taTy;a-octi;
-		*()cery.supportimera.push(tae._ !TimerIdt proctit/ecUsa;requfunAnim()ExtFrn tn	 tread	 al etIOre)ve;
;
-availtyle - nx;
-		requfunAnim()ExtFrn tn proext;;*imerIdt=i1tafunctraf ==/<script\ac t-ctena/ecl fun*imerIdtgets+serido });
+at=eny poh the*/".
Tyopayfunnnni= da*imerIdt proctittit fqufunAnim()ExtFrn t		raf ttafuncte	fxptiond);yfuncte/a-/g,
-tafunctrfqufunAnim()ExtFrn t		raf ttafunc/putedStyle.ge*imerIdt=i etIOre)ve;,ofxption  /x.h?re)ve;
);fy(ee
-Usa;dataeyTy depnd /rsr{		i e  json afpnd \,
-	r e ecuttocs+xts.	Ty depndr["\,
-	r json"]u==/<script\ac t+/g,( dat!n(sponsaCTypah ercte: +cteet,
-			 rr//u
cressionNn t +e"twtaTaotrcalled"
+darbraho-nc}Tes},fy(e	 {
-	jQuesponsaCTypah erot0 ail+))}; eaTye
-+imflT	'show'ealProtocsexshow 
-	seriali procti/		R=gember.  fra
weT	tartse, so	// otwelcan?gossion do it laonr fct*/"..ap 			t.opug[t/"..prop]t= t,
-			style\b*/"..ps
-, */"..prop t;c clt/"..ap 			t.\how +	trns; +nn/
-f+ "WQjson nforT	( T+eia.dataT	( sot0 a Ta uson";	 y.tee
-BeghjQ*/-	anim()Ext le./ecMmentsurac);at=weT	tart+at=e small	width/heen;
tto	avoid{eny le./ecflash	 alcoypeOrc clt/"..cuTyom(t/"..prop =!pr
width"
ot */"..prop =!pr
heen;
" ? 1)ie0, */"..cur());fy(ee
-Ivarall	
ressionfy(eoverwrittsnn==wifdow[
cressionNn t ail+))wifdow[
cressionNn t au==/<script\ac t+/g,n(sponsaCTypah erc= ea weird il+))}; eaTyte
-StartQbyCshow
+	} /#teaTyeOrcfunyle.fie(*/"..ts
-	).show()eTes},fy(ee
-Cle	n-up	XX field (fi+es afpnd 	Ty depndr)f+))jqXHR.alwtys) {
-	jQue(e: 0 )r/		Rest reypreexisuif   && ] 0 )rwifdow[
cressionNn t au==overwrittsn; eaTye
-+imflT	'hidn'ealProtocsexhidn 
-	seriali procti/		R=gember.  fra
weT	tartse, so	// otwelcan?gossion do it laonr fct*/"..ap 			t.opug[t/"..prop]t= t,
-			style\b*/"..ps
-, */"..prop t;c clt/"..ap 			t.hidn +	trns; +nne/		+a(ngsion taTfreet+/g,( dats[
cressionNn t aute: +ctee/		mmentsurac);at=re-ri+	tf);
 oer	currdoean't=\,
ew t;y as?aro't ;+		nn .jsonpCressionit	opug(nal+ *ly as.jsonpCression	iut.tee
-BeghjQ*/-	anim()Ext le.t/"..cuTyom(t/"..cur(), 0)eTes},fe  cnalErs a\tepToforn	anim()Ext le\tep: /<script\bgotoEnet procti( " t ==-xNow res
rd()eFxNowi ,octitdone +	trns,octites
-	=i*/"..taTy,efunno	r			t?=-t/"..ap 			t,efunnion};a-octi;
-		gotoEnetot * >=-	 || va.durattoc + t/"..	tartTime  proctitt/"..now +	t/"..	nd;octitt/"..pos +	t/"..	taon ==1;octitt/"..upd()n()+ fyfunn	 || va.anim()ndProperti s[lt/"..prop ]++	trns; f f	nnauesteiei
-	 || va.anim()ndProperti sete{t.ra	ai= da	 || va.anim()ndProperti s[ia !!prtrnstte: functedone +	ly dang-g	,
-	+}ige/ecsa(ng);
 cression on t aues uturacusey0ncte	ldCressionr.push(=cressionNn t t		rbrahout.tet;
-		done te: funct/ecR=s) { :
	overflowt.ra	ai= da	 || va.overflowp!!n});
+ s.!ut in tsupf su.shrifkWrapBlocks te: fyfunnny ( curr	\//,o[n"",z"X",z"Y"i],	XX field (h?):[he/ The+	al-	e
			taTypstyle[("overflow"e = && ]sa =-	 || va.overflow[h?):[atafuncte}/da-/g,
-	e funct/ecHideCthaaelTyeOriiaTyp-	"hidn" operattoc wtaTdonet.tet	i= da	 || va.hidn +	al-	e
		yle.fieelTy).hidn(/da-/g,
-	e funct/ecR=s) { :
	properti s,iiaTyp-	itemstas.beouchiddenuLocshownt.tet	i= da	 || va.hidn resopr			t.\how +	al-	e
		aueste		sepei
-	 || va.anim()ndProperti sete{t.ra	axnt,
-			style\bps
-, p,-	 || va.opug[p]=ttafuncte}a-/g,
-	e funct/ecE ecutng);
 compsion alProtocsexunn	 || va.cTmpsion.
resaats
-	); +nne/		Crescifnic
waaTypalProtocutaTy in
-	jQa	r{sponsat+/g,( datn(sponsaCTypah ercery.supporhe new valu=overwrittsn " )e: +)ry(overwrittsnatn(sponsaCTypah erot0 a t		rbrahout.tetrvery.ify dang+	g,n(sponsaCTypah erc= overwrittsnn=='t get/se+ +		C/; eaTyp/putedStyle.g/		class+c(lueanif  canaot	be
{
+	r= s.ctaoInet/itytdurattoct.tet;
-			 || va.durattoc !prInet/ityt proext;;*/"..now +	ttafunc/putedStyle.genn==t - t/"..	tartTime;oext;;*/"..	taon ==n /		 || va.durattoc;	e funct/ecPerfLom)thaaeanif  alProtoc, de justs(to	swif oext;;*/"..pos +	 ( curr	\nif [l	 || va.anim()ndProperti s[lt/"..prop ]+](	t/"..	taon, n, 0,u1,		 || va.durattoc );oext;;*/"..now +	t/"..	tart + ((t/"..	nd	- t/"..	tart) * */"..pos+da-/g,}}e		"/ecPerfLom)thaanruc	\tepTof(th
+anim()Ext le.gt/"..upd()n()+ f/g}sea-/grvery.i*rns; +nn/
-Dts
g()eido s,
-	rc+unrvery.i"\,
-	r"R.rb/	-n+ +/			  f ( current ===h ( currfx,pecfution 
-	seriali proctiaueste		setimerapch ( currtimerayeie= 0 + i < timera.ters = + ++it proctit;
-		!*imeraoi]))n proext;;*imera.c );ce(i--, 1);yext;}a-/g}o l-	e( dat!timera.ters =  proext;jt in tfxpstop()da-/g}ses},f l-	h?re)ve;: 13,f y.tTyop:XXX fielde proextclua	IOre)ve;,o*imerIdt ;c cltimerIdt=it{
 
-e,nyl+/ecdata:s t	if iof(htmll+/eccoypeuc	(	 || val):cIf{"autif>+ -c);n aragmexp{=  "?bnocrd()ed-i.i*/".ccoypeuc, de justs(to	docweirdl+/eckeepS,
-	rs	(	 || val):cIf{*ruthe=  "?includ
 s,
-	raTpas
+	ry.c);n htmls t	if f0 mouseeparspHTML ==-	serializdata,ccoypeuc, keepS,
-	rs		pec+ui= da!dataeot *s (= 1datae!yTa 			if ].clas+nn dataTy}{
 
-+engexi= da*s (= 1coypeuc	=yTa boolean".clas+nnkeepS,
-	rs	=1coypeuc; +nncoypeuc	=Qly dang+	ngexcoypeuc	=Qcoypeuc	resdocweird; eaTyspesea:	: funslow 
600,Textfast:
20e,t.tee
-De just}speset.te_de just: 400
ex},fy(y woparspeTt
rnif leTag.e ec(idata	f,c+uns,
-	rr?le!keepS,
-	rs	ery[]; eaTystep: al-teopacity: /<script\bfx  proext;jt in tstyle\bfxpps
-, "opacity", fxpnow )	ifun}ylft.te_de just: /<script\bfx  proext;i= daHx.ps
-pstyleseryHx.ps
-pstyle[ fxpp+	p ]p!!n});
+ proext;;Hx.ps
-pstyle[ fxpp+	p ]p= (fx.prop =!pr
width"
ot fx.prop =!pr
heen;
" ? Math.max(0, fxpnowa)iefxpnowa)+efxp'ti		}func/putedStyle.geHx.ps
-[ fxpp+	p ]p= fxpnow;yext;}a-/g}o+)nal+if le taggexi= daparspeTclas+nn dataTy[Qcoypeuc.crd()eEfor(; (aparspe[1]f)e]R.rb/	-n			  f;
-		t,
-			exprcery.supporexpr.f bind.
+Style mouseeexpr.f bind..anim()nd ==-	serializps
-	)e: -/grvery.id /* intrep( ( currtimeraye/<script\bfnt proctit f
-	jits
-	===entreaTy;a-/g}).ters ="aTy};se/s+nparspeTt
 ( currbuildFragmexp,o[ndata	],ccoypeuc, s,
-	rr?			  f/ecTry /rsr{st rey :
	de just}ti"alay	 && ]soforn	eaTyeOrcfalProtocude justDi"alay(tnsde	if  aeec+ui= dae,
-	rs	erye,
-	rs.ters =  pro+unyle.fie(s,
-	rr?	.==g (ju)	i+x
f l-	h= da!taTyti"alay[tnsde	if  aute: +crvery.id /* inmerge\b[t  parspe.c
-	dN.nos );y0}; eaTyty wotaTy ="yle.fie("<"e =nsde	if  + ">			.rif ( To(a body" ),octitdi"alay[=otaTypcss\b"ti"alay" )+ eaTyttaTyp==g (ju)	i+/ecKeepeaccopy[of(th
+olduload	this.my0y wo_load	t
 mouseentrload	iut.tee
-If{);
lsimflT	way[fails,Texte
-ge
 taTyeOr'urQu(lude just}ti"alay	bypa trs if iin to	a temp	ifrn tl-	e( datdi"alay[=yTa ncne"
resdi"alay[=yTa " )Style.ge
-No	ifrn t to	ringyet, so	crd()eiitoctit;
-		!ifrn t te{t.ra	ai=rn tn==docweird.crd()eEfor(; ( "i=rn t" atafuncti=rn t.=rn tBorderc= i=rn t.widtha= i=rn t.heen;
t==0;se	,
-	+/**
+ * Load	a	urluh to	a
page
+ */l0 mouseentrload ==-	serializurl,aparams,	cression
+	alexi= da*s (= 1urlu!yTa 			if ]. s._load	clas+nn dataTy_load/	iflye(*/"., ea weird iteT+ahout.tetdocweird.body.rif ( C
-	d(	ifrn t teT+ay woselect r-
uesponsa,z
s (,c+unself+).*/".,oy(eoff+).url.h?):[Of(  ")	iut.tet-		Crd()eial
/chatyleccopy[of(th
+ifrn t docweirdptunfi+st	cres.t.tet-		IElend	Operaa=  "?allow	ri /rsr{ring :
	ifrn tDocr= s.ouptre-writ+	tf);
 fmenthtmll.tet-		docweirdpdo it,cWebkiu=&lFi+efox won't=allow	r{ri+	tf);
 ifrn t docweirdoctit;
-		!ifrn tDocrot !i=rn t.crd()eEfor(;  te{t.ra	ai=rn tDocr==  i=rn t.coypeOrWifdow	ot i=rn t.coypeOrDocweirdp).docweird; .ra	ai=rn tDoc.writee("<!doc
s (><html><body></body></html>"				ext;}aexi= daoff+>pr0ete: +unselect r+).url.s);ce(aoff,.url.ters =  ; +nnurlu).url.s);ce(a0, off+teT+ahout.tettaTy ="i=rn tDoc.crd()eEfor(; ( nsde	if  a;c+	nalIftic'sla alProtocsexi= dajsupporhe new valu=params	" )e:  {
}igi=rn tDoc.body.rif ( C
-	d(	ts
-	); +nn/ecllme (wei	);at=it'sp*/-	
ressionfy(ecression =-params; +nnparams	=='t get/se+  octitdi"alay[=o.supporcss\bps
-, "ti"alay" );	e funcdocweird.body.==g (jC
-	dctifrn t teTf/g}sea-/ge
-St rey :
	cor( ( ude just}ti"alayaTyttaTyti"alay[tnsde	if  au=ati"alayil+	nalO		}
wisa,zbuildQa
params t	if f0	n " + edeTypparams	&&tns (= 1params	=!pr h ) {
].te: +unt	( +t)"POST"R.rb/	taTyrvery.itaTyti"alay[tnsde	if  a;se/s+nnalIft in
-	jQ	for(; s to modify,	mmentt
-	requfuna+ui= daeelf/ters = >r0ete: +un mouseeajax(: +)ryurl:zurl, ea+	exnalTML"t	( "e		sitylec".c't get/se, t fun"GET"	this.m{=  "?bno{
+	 +)ryns (:z
s (,c+un	dataT	( : "html",c+un	data:1params +		C/.done(/<script\br{sponsa
+			)e:  {+nne/		+a(ngresponsa;auesringh =compsion cressiony+uncresponsa;= ea weird il ee( nsolf/html(oselect r ?aeaTy worttylec+	/^t(?:tyle|d|h)$/i		-yrroot +	/^(?:body|html)$/i;	+}ige/ecIf{o select r waaT"autif>+ -cloc(tng);
 ren;
t	for(; s icoa dummyativ	+}ige/ecExclud
 s,
-	raTto	avoid{IEl'PermisstocuDen>+ '
prr//s +cteet,
-		("<tiv>"	.rif ( dajsupporparspHTML\br{sponsa
+			)e).f ( daselect r a)ie  f;
-		"ge
Bo't if Cli(; R {
].insdocweird.docweirdEfor(; 
+Style mouseentpoffsp		=a/<script\bver	currtc tTyty wotaTy ="*/".[0t  box;	+}ige/ecO		}
wisa=ring :
	f);
+r{sust	+}iger{sponsa
+			)il T-e.( datver	currtc tTytcrvery.i*/"..	\//,/<script\bit proctite mouseeoffsp	.s	.Offsp	\b*/"., o	r| va,oi				ext;}			- )"te( C/.sompsion)jsression
nve/<script\bjqXHRlm	tatue}te: e( nsolf/	\//,osression-
uesponsa	ot [bjqXHR.r{sponsa
+		,j\tatuelmjqXHRna s;v+te}teT+ahout.teh= da!taTyrot !taTypownerDocweirdp)c tTytcrvery.it{
 
-e,)"te(rvery.i*/".il+}il T-e.( datts
-	===etaTypownerDocweird.bodyp)c tTytcrvery.i mouseeoffsp	.bodyOffsp	\bts
-	); -/g}o l-	er opacfunnbox[=otaTypge
Bo't if Cli(; R {
()da-/g} 	// f(e+	a} eaTyty wodocr==taTypownerDocweird,octitdocEaTy ="doc.docweirdEfor(; eT y.tee
-Mmentsurac iif (aot	 e(lif  wis.ctati"coynut	 dTDOM	nsdet.teh= da!box[ot !.supporcTypah s		docEaTy,zps
-	)e)c tTytcrvery.ibox[? { yop:Xbox.top,zleft:Xbox.left })ier yop:X0,zleft:X0 }
-e,)"te mouseeexpr.f bind..anim()nd ==-	serializps
-	)e: +crvery.id /* intrep( ( currtimeraye/<script\bfnt pro+it f
-	jits
-	===entreaTy;a+g}).ters ="a0}; eaTyty wobodyp="doc.body,octitwinn==ge
Wifdow(doc),octitcli(; Top p="docEaTypcli(; Top presbody.cli(; Top pres0,octitcli(; Lef
p="docEaTypcli(; Lef
presbody.cli(; Lef
pres0,octits,
ollTop p="win.pageYOffsp	tresjt in tsupf su.boxMsde
+ s.docEaTyps,
ollTop presbody.s,
ollTop,octits,
ollLef
p="win.pageXOffsp	tresjt in tsupf su.boxMsde
+ s.docEaTyps,
ollLef
presbody.s,
ollLef
,octittop p="box.top 	+ee,
ollTop p- cli(; Top,octitlef
p="box.left +ee,
ollLef
p- cli(; Lef
; eaTyprvery.ir yop:Xtop,zleft:Xleft }"aTy};seaT/putedStyle mouseentpoffsp		=a/<script\bver	currtc tTyty wotaTy ="*/".[0til T-e.( datver	currtc tTytcrvery.i*/"..	\//,/<script\bit proctite mouseeoffsp	.s	.Offsp	\b*/"., o	r| va,oi				ext;}			- )"tut.teh= da!taTyrot !taTypownerDocweirdp)c tTytcrvery.it{
 
-e,)"tey wodocEaTy ="wifdow.docweird.docweirdEfor(; eT y.te( datts
-	===etaTypownerDocweird.bodyp)c tTytcrvery.i mouseeoffsp	.bodyOffsp	\bts
-	); -/g}oea-/g mouseeoffsp	.t/itial= 0()+ fyfuny wocompu" dStyle,efunnoffsp	Pav,
+r==taTypoffsp	Pav,
+,efunnprevOffsp	Pav,
+r==taTy,octitdocr==taTypownerDocweird,octitdocEaTy ="doc.docweirdEfor(; ,cfunnbodyp="doc.body,octitde justView ="doc.de justView,efunnprevCompu" dStyle =ode justView ?ode justViewpge
Compu" dStyle\bps
-, });
+ p:otaTypcurv,
+Style,efunntop =ztaTypoffsp	Top,octitlef
p="taTypoffsp	Lef
; fyfunw
-					(	s
-	=itaTy.pav,
+N.no)u._ es
-	!yTabodyp._ es
-	!yTadocEaTy  proext;i= da mouseeoffsp	.supf susFixedPosi+	cup._ prevCompu" dStyle.posittoc +yTa fixed" )Style.gebrd(k;yext;}a-octitcompu" dStyle =ode justView ?ode justViewpge
Compu" dStyle\ps
-, });
 p:otaTypcurv,
+Style;octittop p-=otaTyps,
ollTop;octitlef
p-=otaTyps,
ollLef
; fyfune( datts
-	===eoffsp	Pav,
+r proext;;*op 	+=ztaTypoffsp	Top; .ra	aleft +="taTypoffsp	Lef
; fyfunt;i= da mouseeoffsp	.doeaNotAddBorderc s.!( mouseeoffsp	.doeaAddBorderForTtyleA( Cells	&&trttylertfunctaTypnsde	if )aete{t.ra	ax*op 	+=zparspFloat		compu" dStyle.borderTopWidtha ) e;
0tafuncteleft +="parspFloat		compu" dStyle.borderLef
Widtha) e;
0tafunct-	e functprevOffsp	Pav,
+r==offsp	Pav,
+tafunctoffsp	Pav,
+r==taTypoffsp	Pav,
+;yext;}a-octiti= da mouseeoffsp	.subtractsBorderForOverflowNotVisibleserycompu" dStyle.overflowp!!Ta visible"r proext;;*op 	+=zparspFloat		compu" dStyle.borderTopWidtha ) e;
0tafunctleft +="parspFloat		compu" dStyle.borderLef
Widtha) e;
0tafunc}a-octitprevCompu" dStyle =ocompu" dStyle; -/g}oea-/gdeTypprevCompu" dStyle.posittoc +yTa r{lative"
resprevCompu" dStyle.posittoc +yTa \tatic"r proext;*op 	+=zbody.offsp	Top; .ra	left +="body.offsp	Lef
; f/g}oea-/gdeTyp mouseeoffsp	.supf susFixedPosi+	cup._ prevCompu" dStyle.posittoc +yTa fixed" )Style.g*op 	+=zMath.max(.docEaTyps,
ollTop,sbody.s,
ollTop				ext;left +="Math.max(.docEaTyps,
ollLef
,sbody.s,
ollLef
	); -/g}oea-/grvery.ir yop:Xtop,zleft:Xleft }"aTy};s+/**
+ * Gets+auwifdow	from rn	eaTyeOrc+ */l0alProtocoge
Wifdow(zps
-	)e: +crvery.id /* inisWifdow(zps
-	)e?ee( ps
-	:ee( ps
-.nsde || s{yTa9	?ee( nps
-.de justView re eaTy.pav,
+Wifdow	iee( nly dang = eap mouseeoffsp	+t): fct/itial= 0:XXX fielde proexty wobodyp="docweird.body,ccoypah erc= docweird.crd()eEfor(; ("div"),oinnerDiv,ccheckDiv,cttyle,ctd,sbodyMarginTopTt
parspFloat		.supporcss\body,c"marginTop")a) e;
0,octithtmlsTa <tiv style='posittoc:absolute;yop:0;left:0;margin:0;border:5px solid #000;pads+	t:0;width:1px;heen;
:1px;'><tiv></tiv></tiv><ttylecstyle='posittoc:absolute;yop:0;left:0;margin:0;border:5px solid #000;pads+	t:0;width:1px;heen;
:1px;' cellpads+	t='0' cellspaci	t='0'><tr><td></td></tr></ttyle>";oea-/g mouseeent ===hcoypah erpstyle,ir posittoc: "absolute", yop:X0,zleft:X0,	mmrgin:X0,	border:X0,	width: "1px",cheen;
: "1px",cvisibility: "hidden" }))+ fyfuncoypah erpinnerHTML ==html; -/gbody.svar cBhe redacoypah er,sbody.f(ddeC
-	ds+da-/gdnnerDiv	=Qcoypah erpf(ddeC
-	dda-/gcheckDiv ="innerDivpf(ddeC
-	dda-/gtd ="innerDivpnrucSibli	tpf(ddeC
-	dpf(ddeC
-	dda-a-/gt/"..doeaNotAddBorderc= (checkDiv.offsp	Topp!!Ta5t;c clt/"..doeaAddBorderForTtyleA( Cells	= (td.offsp	Topp=!Ta5t;c a-/gcheckDiv.style.posittoc +a fixed";a-/gcheckDiv.style.top =z"20px";Te  clnal	afari subtracts pav,
+	border-widtha fra
w i+	
is 5pxc clt/"..supf susFixedPosi+	cup= (checkDiv.offsp	Topp=!Ta20 res
heckDiv.offsp	Topp=!Ta15t;c clcheckDiv.style.posittoc +acheckDiv.style.top =z"";Te  clinnerDivpstyle.overflow pr
hidden"		extinnerDivpstyle.posittoc +a r{lative"da-a-/gt/"..subtractsBorderForOverflowNotVisibles= (checkDiv.offsp	Topp=!Ta-5t;c a-/gt/"..doeaNotInclud
MarginInBodyOffsp	s= (body.offsp	Top	!yTabodyMarginTopt;c a-/gbody.==g (jC
-	dctcoypah erct;c cl mouseeoffsp	.t/itial= 0 +	t,
-			 sop; .r}ylft.tbodyOffsp	: /<script\bbodyp)c tTyt		setop =zbody.offsp	Top,octitlef
p="body.offsp	Lef
; fa-/g mouseeoffsp	.t/itial= 0()+ fyfuni= da mouseeoffsp	.doeaNotInclud
MarginInBodyOffsp	s)Style.g*op 	+=zparspFloat		.supporcss\body,c"marginTop")a) e;
0		ext;left +="parspFloat		.supporcss\body,c"marginLef
")a) e;
0		ext}oea-/grvery.ir yop:Xtop,zleft:Xleft }"aTy}ylft 	s	.Offsp	:XXX fieldeops
-, 	 || va,oip)c tTyt		seposittoc +a.supporcss\bps
-, "posittoc"+tas+xny wocurPosi+	cu,ocurLef
,scurCSSTop,scurTop,scurOffsp	,scurCSSLef
,scalcul()ePosi+	cu,ee( nposittoc +a.supporcss\bps
-, "posittoc"+t,ee( ncurEaTy ="yle.fie(ps
-	),ee( nprop.
=o{n	}ta clnal	p	sposittoc f(dde,oin-c {
+top/left e,
+seriedanron	s atic(ps
-a cldeTypposittoc +yTa \tatic"r pro 			taTypstyle.posittoc +a r{lative"da0/
}l T-e.y wocurEaTy ="yle.fie(ps
-	),e-( ncurOffsp	s= curEaTyeoffsp	(),e-( ncurCSSTop +a.supporcss\bps
-, "top" ),e-( ncurCSSLef
p=".supporcss\bps
-, "left" ),e-( ncalcul()ePosi+	cus= (posittoc +yTa absolute"
resposittoc +yTa fixed")cery.supporhnAin o( 	uto", [curCSSTop,scurCSSLef
]) >j-1,octitprop.
=o{n,ocurPosi+	cu
=o{n,ocurTop,scurLef
; + ncurOffsp	s= curEaTyeoffsp	(); + ncurCSSTop +a.supporcss\bps
-, "top" ); + ncurCSSLef
p=".supporcss\bps
-, "left" );fy(ecrecul()ePosi+	cus= ( posittoc +yTa absolute"
resposittoc +yTa fixed"	f ._
+	ncd /* inhnAin o( 	uto", [ curCSSTop,scurCSSLef
 aute>j-1	}ta clnalapesTto	b
	tylecto	crecul()esposittoc deTei		}
etop orXleft is 	utolend	posittoc dsTei		}
eabsoluteuues ixeda cldeTypcrecul()ePosi+	cus pro@@ -8756,11 +10086,11 @@o 			ap 			t?=-	 || va.
resaats
-,oi,scurOffsp	 t		rbr"tut.teh= d	 || va.top	!y });
 p{octitprop..top =zd	 || va.top	-scurOffsp	.topa)+ecurTop;
0 )i= da	 || va.top	!y });
}te: e( nprop..top =zd 	 || va.top	-scurOffsp	.top a)+ecurTop;
 t;}a-/gh= d	 || va.left !y });
 p{octitprop..lef
p="d	 || va.left -scurOffsp	.lefta)+ecurLef
; + ni= da	 || va.left !y });
}te: e( nprop..lef
p="d 	 || va.left -scurOffsp	.left a)+ecurLef
; rbr"tut cldeTyp"ri+	t"ei
-	 || vas pro@@ -8771,166 +10101,237 @@o 	"tu};seaT

 mouseentr	nt === "+toffsp	:a/<script\bver	currtc t+ ni= daea weird .ters =  pro+unlrvery.iopr			t?==+ 't get/set?ee( ngt/".	iee( ngt/"..	\//,-	serialioip)c t0 )ger mouseeoffsp	.s	.Offsp	\b*/"., o	r| va,oi				+))))}s;v+te}
+s+xny wodocEaTy,zwif,ee( nbox[=or yop:X0,zleft:X0 },ee( nps
- ="*/".[t0 a,c+un	docr==taTyp._ es
-pownerDocweird;
+s+xni= da!doc  pro+unlrvery.;v+te}
+s+xndocEaTy ="doc.docweirdEfor(; eT+ +nn/ecMmentsuracit'spaot	oati"coynut	 dTDOM	nsdet+xni= da!.supporcTypah s		docEaTy,zps
-	)e)c t+unlrvery.ibox;	+}i}T+ +nn/ecIft indon't=
-	jQgBCR, just=ring0,0 ra		}
ethrn	err// +nn/ecBlackBerry 5,oiOS 3"d	pug(nal iPhone)t+xni= dans (= 1taTypge
Bo't if Cli(; R {
	!yTastr't get/set pro+tinbox[=otaTypge
Bo't if Cli(; R {
()da+ )"te( winn==ge
Wifdow(odocrt;c+nn dataTy{ +e.g*op:"box.top 	+e("win.pageYOffsp	tresdocEaTyps,
ollTop ) p- ("docEaTypcli(; Top pres0	),ee( nleft:Xbox.left +e("win.pageXOffsp	tresdocEaTyps,
ollLef
	)p- ("docEaTypcli(; Lef
pres0 )l+))}; +x},fyo 	posittoc: -	seriali procti;
-		!*/".[0tp)c tTytcrvery.it{
 
-+ti;
-		!*/".[t0 a tpro+unlrvery.;v0/
}l T-e.y wotaTy ="*/".[0t s+xny wooffsp	Pav,
+,ooffsp	,ee( npav,
+Offsp	s= r yop:X0,zleft:X0 },ee( nps
- ="*/".[t0 aeT y.tee
- ) {*Qu(l*ooffsp	Pav,
+y.teoffsp	Pav,
+r==t/"..affsp	Pav,
+(),fy(ee
- ixed.	for(; s areooffsp		from wifdow	(pav,
+Offsp	s= ryop:0,zleft:X0n,obecaringic
iagicsnonlygoffsp		pav,
+-+ti;
-		.supporcss\bps
-, "posittoc"+t +yTa fixed" )Sty+nne/		wlme (wei	);at=ge
Bo't if Cli(; R {
	is 	vailtyle.  funcompu" d	posittoc dsT ixeda+nctoffsp	[=otaTypge
Bo't if Cli(; R {
()da+ )"putedSty+nne/		 ) {*Qu(l*ooffsp	Pav,
+y+nctoffsp	Pav,
+r==t/"..affsp	Pav,
+()eT y.tee
- ) {cor( ( uaffsp	sy.teoffsp	       ==t/"..affsp	(),e-( pav,
+Offsp	s= rrootrtfuncaffsp	Pav,
+[0tpnsde	if )[? { yop:X0,zleft:X0 } :ooffsp	Pav,
+eoffsp	(); + nee
- ) {cor( ( uaffsp	sy+nctoffsp	[=ot/"..affsp	(); + nei= da!.suppornsde	if (ooffsp	Pav,
+[t0 a, "html" " )e: +)ry(pav,
+Offsp	s= offsp	Pav,
+eoffsp	(); + ne} eaTyte
-SubtractaelTyeOrimargins + nee
-Addeoffsp	Pav,
+rbordersee( npav,
+Offsp	.*op 	+=z.supporcss\boffsp	Pav,
+[t0 a, "borderTopWidth", trnstt		e( npav,
+Offsp	.left +=".supporcss\boffsp	Pav,
+[t0 a, "borderLef
Width", trnstt		e( }T+ +nn/ecSubtractapav,
+	affsp	slend	elTyeOrimargins  clnalao)n 
  funantelTyeOritas.mmrgin:X	utolth
+offsp	Lef
lend	marginLef
  clnalarey :
	sn tn	  Safari cariif ioffsp	.left do incor( ( lygb
	0y.teoffsp	.top p-=oparspFloat		.supporcss\ps
-, "marginTop")a) e;
0		extoffsp	.left -=oparspFloat		.supporcss\ps
-, "marginLef
")a) e;
0		eaTyte
-Addeoffsp	Pav,
+rborderse- npav,
+Offsp	.*op 	+=zparspFloat		.supporcss\affsp	Pav,
+[0t, "borderTopWidth")a) e;
0		extpav,
+Offsp	.left +="parspFloat		.supporcss\affsp	Pav,
+[0t, "borderLef
Width")a) e;
0		eaTyte
-Subtracta :
	twouaffsp	sy nn dataTy{ -e.g*op:" offsp	.top p- pav,
+Offsp	.*op,octitlef
:ioffsp	.left - pav,
+Offsp	.left +e.g*op:" offsp	.top p- pav,
+Offsp	.*opp- .supporcss\bps
-, "marginTop", trnstt,ee( nleft:Xoffsp	.left - pav,
+Offsp	.leftp- .supporcss\bps
-, "marginLef
", trns)v0/
};
 ,}		ut caffsp	Pav,
+: -	seriali pro tcrvery.i*/"..map,-	seriali key-nct( " offsp	Pav,
+r==t/"..affsp	Pav,
+=resdocweird.body		ext;w
-					affsp	Pav,
+=nve(!rrootrtfuncaffsp	Pav,
+pnsde	if )[ery.supporcss\affsp	Pav,
+, "posittoc") +yTa \tatic"" )e: +)ry( " offsp	Pav,
+r==t/"..affsp	Pav,
+=resdocEaTy;a+ +)ryw
-					affsp	Pav,
+=nve(a!.suppornsde	if (ooffsp	Pav,
+, "html" " ery.supporcss\ooffsp	Pav,
+, "posittoc"+t +yTa \tatic"r p pro 			toffsp	Pav,
+r==offsp	Pav,
+eoffsp	Pav,
+;yrbraho-nclrvery.ioffsp	Pav,
+;y+nclrvery.ioffsp	Pav,
+=resdocEaTy;a 		C/; e	"tu});seaT

-		Crd()eis,
ollLef
	aaTy ,
ollTop this.mrl- ( curr	\//, ["Lef
", "Top"]ye/<script\bion}n t te{t.r( " this.m{=i"\,
oll"e =nn t		+ ( curr	\//, {is,
ollLef
ie"pageXOffsp	",y ,
ollTopie"pageYOffsp	" }ye/<script\bthis.m,oprop te: +t		setop =z/Y/: functprop t;cut c mouseent[lthis.m{au==-	serializve;
tS tTyty wotaTy,zwif;c+nn dataTyaccurn\b*/"., XX fieldeops
-, this.m,ove;
tS t+)ry( " winn==ge
Wifdow(ots
-	);  y.te( datve;
 !pr't get/set pro-( nps
- ="*/".[t0 aeT-octiti= da!ps
-	)e: functrvery.it{
 
-+tie( datve;
 !pr't get/set pro+unctrvery.iwinn?	(prop i.iwin)[? win[ p+	p ]piee( ng win.docweird.docweirdEfor(; [lthis.m{auiee( ng ps
-[lthis.m{a		rbrahout.tetwinn==ge
Wifdow(ots
-	); -octit/ecR=ery.i*/eis,
ollioffsp	o-nclrvery.iwinn?	("pageXOffsp	" i.iwin)[? win[ i	?r"pageYOffsp	" ie"pageXOffsp	"{auiectite mouseesupf su.boxMsde
+ s.win.docweird.docweirdEfor(; [lthis.m{aureoctite win.docweird.body[lthis.m{auie- ng ps
-[lthis.m{a		ext}oea-/ge
-+ *	*/eis,
ollioffsp	o-ncrvery.i*/"..	\//,/<script\)e: funcwinn==ge
Wifdow(o*/".				e	rbra( datw( t pro ite win. ,
ollTo(octite !i	?rve;
:  mouseatw( t ps,
ollLef
(),e-( n		 i	?rve;
:  mouseatw( t ps,
ollTop()ee( ng !top ?rve;
:  mouseatw( t ps,
ollLef
(),ee( ng top ?rve;
:  mouseatw( t ps,
ollTop()e ite t;cut cnc/putedStyle.ge*/".[tthis.m{au==ve;		+))))ps
-[lthis.m{au==ve;		rbraho-nc}teTe( }, this.m,ove;,aea weird .ters =, });
+ ; e	";tu});seaTalProtocoge
Wifdow(zps
-	)e: -crvery.id /* inisWifdow(zps
-	)e?e-( ps
-	:e-( ps
-.nsde || s{yTa9	?e-( nps
-.de justView re eaTy.pav,
+Wifdow	ie-( nly dang-}a+/ecAdde :
	top/left cssHooks riif i mouseentrposittoca+/ecWebkiu=bug: https://fugs.webkiu.org/\how_fug.cgi?id=29084a+/ecge
Compu" dStyle+ dataTslperc,
+=  fun"autif>+ ;auestop/left/bottom/ren;
a+/ecra		}
ethrn	mmentt
-	css modul
	def ( ron	th
+offsp	 modul
,L i just=check;auesiu= fra	+ ( curr	\//, [ "top", "left" ]ye/<script\bionprop te: +t.supporcssHooks[ p+	p ]p= add ) HookIf( supf su.pixelPosi+	cu,ee( XX fieldeops
-, compu" d	ac t+/g,( datcompu" d	ac t+/g,tcompu" ds= curCSS\bps
-, prop t;c+nnexnalTMLcurCSS+ dataTslperc,
+age,Qly lsion do offsp	o+unctrvery.irnumnonpx: functcompu" d	ac?t0 )ger mouse(zps
-	)rposittoc()[ p+	p ]p+e"px" iee( ng compu" d; + ne} + )"te()+ +/			   a+/ecCrd()eiinnerHeen;
,oinnerWidth,cheen;
,	width, ouperHeen;
	aaTyouperWidthathis.mrl+ ( curr	\//, {iHeen;
: "heen;
", Width: "width"
/- /<script\bon thet	( +te: +t.suppor	\//, {ipads+	t:z"inner].+bon thecoypeOr:z
s (, "":z"ouper].+bon t
/- /<script\bde justExtra- /<sc	if  aeec+ue/		mmrgin dsTonlygauesouperHeen;
,youperWidth +un mouseent[l/<sc	if  au==-	serializmmrginhe/ The
tS t+)ry( " chaintylec+	ea weird .ters = nve(ade justExtraeot *s (= 1mmrgin !yTa boolean".c,ee( ngextrae=ade justExtraeot izmmrgin	===e*rnstresve;uaa =+ *rnst? "margin" ie"border" )+ ea+nclrvery.iaccurn\b*/"., XX fieldeops
-, 
s (, / The
tS t+)ryny wodoc		  f/ecCrd()eiinnerHeen;
,oinnerWidth,couperHeen;
	aaTyouperWidthathis.mrl- ( curr	\//,[ "Heen;
", "Width" ]ye/<script\bionnif  aeec+ueit;
-		t,
-			heWifdow(zps
-	)e)c t0 )ger/ecAs[of(5/8/2012o*/".	=  "?yield incor( ( +r{sustsgforsMob-			Safari,zbu*	*/eret0 )ger/ecian't=a=  ole lootwelcan?do.-+ e p);
+r{qufun+at=*/".	URLgforsti"cusstoc:t0 )ger/echttps://github.som/jq cur/jq cur/p);
/764t0 )ger f
-	jits
-.docweird.docweirdEfor(; [l"cli(; ].+bon t
];y0 )gehout.t		set	( +t)on t.*oLowerCase(t;c+nnexnal ) {docweirdpwidthaLocheen;
c+ueit;
-		ps
-.nsde || s{yTa9	)c t0 )gerdocr==taTypdocweirdEfor(; eT y.t nuinnerHeen;
	aaTyinnerWidth
le mouseent["inner].+bon tau==/<script\ac t-ncrvery.i*/".[0tp?e-( nparspFloat		.supporcss\"*/".[0t  
s (, "pads+	t"r p pie-( nt{
 
-e,n;t0 )ger/ecEi		}
es,
oll[Width/Heen;
]aLocoffsp	[Width/Heen;
]aLoccli(; [Width/Heen;
],
w i+	ev}
e".	grd()estt0 )ger/ecunfortun()elyhe*/".
carins=bug #3838
icoIE6/8Tonly,zbu*	*/eree".	curv,
+lygno go.m,osmall	way /rsfixsiu.t0 )ger f
-	jiMath.max(t0 )gernps
-.body[l"\,
oll"e =nn t ]yedoc[l"\,
oll"e =nn t ]yt0 )gernps
-.body[l"offsp	"{ =nn t ]yedoc[l"offsp	"{ =nn t ]yt0 )gerndoc[l"cli(; ].+bon t
]t0 )ger);y0 )gehout.te
-ouperHeen;
	aaTyouperWidth
le mouseent["ouper].+bon tau==-	serializmmrgin ac t-ncrvery.i*/".[0tp?e-( nparspFloat		.supporcss\"*/".[0t  
s (, mmrgin ? "margin" ie"border" )p pie-( nt{
 
-e,n;t0 )gervery.ive;uaa =+ 't get/set?ee( ngxnal ) {widthaLocheen;
ron	th
+elTyeOr,+r{qufunif ibu*	aot	f+ "if iparspFloatt0 )ger mouseecss\bps
-, 
s (, extraea)ie  fn mouseent[lt	( +au==-	serializs= 0  procti/		 ) {wifdow	widthaLocheen;
c-e.y wotaTy ="*/".[0t;octi;
-		!ps
-	)e: func f
-	ji	= 0 +y });
}? });
}:i*/".il-t;
-0 )ge	e
-+ *	widthaLocheen;
ron	th
+elTyeOrt0 )ger mouseestyle\bps
-, 
s (, / The, extraea; + ne}, 
s (, chaintylec? mmrgin :c't get/se, chaintyle, });
+ ; +))}; +x})+ +/			  -it;
-		t,
-			heF	serializs= 0  ptc tTytcrvery.i*/"..	\//,/<script\bit proctitey woself+).yle.fie(*/". atafunctself[lt	( +aizs= 0.
resaa*/".,oi,sself[lt	( +ai ptc			ext;}			- )"tut.teh= dat,
-			heWifdow(zps
-	)e)c tctit/ecEv}
yone utedSringdocweird.docweirdEfor(; 
orsdocweird.body	def ( if ion Quirks vs-Standards modetctit/ec3rdecoydittoc allows Nokia supf su,rasait supf susp*/-	docEaTy p+	p bu*	aot	CSS1Compaty-nct( " docEaTyProp =zts
-.docweird.docweirdEfor(; [l"cli(; ].+bon t
];yTytcrvery.its
-.docweird.compatMsde +yTa CSS1Compat"+ s.docEaTyProp ree- ng ps
-.docweird.body[l"cli(; ].+bon t
]=resdocEaTyPropeT+/ecThe numbert= 1taTy(; s coypah e	ry.c);n m// fed.	for(; 	 etse mouseentr	= 0 +=/<script\ac t+/rvery.i*/"..ters ="a0}; eaTytnal ) {docweirdpwidthaLocheen;
c-/	n " + edeTypps
-.nsde || s{yTa9	)c tctit/ecEi		}
es,
oll[Width/Heen;
]aLocoffsp	[Width/Heen;
],
w i+	ev}
e".	grd()eryTytcrvery.iMath.max(t- ng ps
-.docweirdEfor(; ["cli(; ].+bon t],t- ng ps
-.body["\,
oll"e =nn t],=taTypdocweirdEfor(; ["\,
oll"e =nn t],t- ng ps
-.body["offsp	"{ =nn t],=taTypdocweirdEfor(; ["offsp	"{ =nn t]t- ng);se mouseentrandSelf+).yle.fientraddBion	iut.tee
- ) {Locson	widthaLocheen;
ron	th
+elTyeOrt-/	n " + edeTyp	= 0 +ypr't get/set pro-( n( " opug =- mouseecss\bps
-, 
s ( ),e-( ncrveTt
parspFloat		opug )	iut.tetrvery.id /* inisNaN(+rp	s)S?	opug :+rp	; eaTyte
-S *	*/eiwidthaLocheen;
ron	th
+elTyeOr (de just}/rspixels(TMLve;uaa".c'titlurn)t-/	n " + e tTytcrvery.i*/"..css\"*s (, ns (= 1e= 0 +ypr 			if ].?1e= 0 :1e= 0 +e"px" )+ f/g}
Ty};seaT/)	i+/ecRegispnd aaTypnn td AMD modul
,Lsinceid /* ilcan?b
+coyc(tnn()ed-= s.co		}
t+e
- ilur	);at=may ringdget/s, bu*	aot	via a	proper+coyc(tnn()toc \,
-	r );att+e
-'t grs andslenonymous AMD modul
s. Apnn td AMD ".
Taffun+and	moun+robustt+e
-way /rsregispnd. Lowerc {
+jq cura".c'speTbecaringAMD modul
pnn ts arel+/ecderiv+ ;arom  ilupnn ts,+and	d /* ilisnnit ally	deliv+re	ry.ca lowerc {
t+e
- ilu)on t. Do(*/". afpnd 	rd()+	tf);
 global so	// otiforn	AMD modul
pwan	sy+e
-to	crelnniConflict}/rshideCth". v+rstocu= 1d /* i,nic
w  "?work.t0i= dans (= 1dget/s +yTa f<script"+ s.dget/s.amd	ac t+/dget/s( "jq cur", [],=/<script\ac t+/trvery.id /* i; +x})+ +/	   a-wifdow.d /* il="wifdow.$ =- mouseng-})(wifdow);a+ +tey w
+n/ecMmp over	d /* iliTy
rs]sofooverwritet0 _d /* il="wifdow.d /* i,a+ +)/ecMmp over	);
 $liTy
rs]sofooverwritet0 _$l="wifdow.$;a+ +.suppornsConflict}==-	serializdeep te: +t( datw( dow.$ ===- mouse	)c t0 )wifdow.$ =-_$ng+	nge +t( datdeep  s.window.d /* il===- mouse	)c t0 )wifdow.d /* il="_d /* i; +x}ge +trvery.id /* i; +};a+ +/ecExposeid /* iland	$lideOrif>+rayeedanrica+/ecAMD (#7102#comyeOr:10,chttps://github.som/jq cur/jq cur/p);
/557)a+/ecand	CommonJSgforsbrowser	emul()ors (#13566)t0i= dans (= 1noGlobal =yTastr't get/set pro+twifdow.d /* il="wifdow.$ =- mouseng+}a+ +tetetervery.id /* i; + +/	);aI?):[: openacs-4/pionages/xowiki/www/resources/jq cur/jq cur.min.js
===================================================================
RCS- ilu: /usr/loc(l/cvsroot/openacs-4/pionages/xowiki/www/resources/jq cur/Attic/jq cur.min.js,v
tiff.-u -r1.3 -r1.3.2.1
--- openacs-4/pionages/xowiki/www/resources/jq cur/jq cur.min.js	13-S p 2012o16:06:47 -0000	1.3
+++ openacs-4/pionages/xowiki/www/resources/jq cur/jq cur.min.js	14 Apr 2014 21:10:55 -0000	1.3.2.1
@@ -1,18 +1,4 @@o-/*!
- *id /* ilJavaS,
-	r Libra ilv1.6.1
- *ihttp://jq cur.som/
- *
- *iCopyren;
t2011, JohncR=sig
- *iDual );censpeT't gr	);
 MITaLocGPL V+rstocu2 );censps.
- *ihttp://jq cur.org/);censp
- *
- *iInclud
s-Sizzle.js
- *ihttp://sizzlejs.som/
- *iCopyren;
t2011, The Dojo Fo't ()Ext l *iRelTaspeT't gr	);
 MIT, BSD,+and	GPL L;censps.
- *
- *iD()n 
ThucMmy 12o15:04:36t2011 -0400
e */l-,/<script\a,b){alProtococy(a){rvery.if	heWifdow(a)?a:a.nsde || ===9?a.de justView||a.pav,
+Wifdow:!1}alProtococv(a){if(!cj[a]){y wob=f("<"+a+">"	.rif ( To( body"),d=b.css\"ti"alay");bp==g (ju)	if(d=== ncne"||d=== "){ck||(ck=c.crd()eEfor(; ("i=rn t"),ck.=rn tBorder=ck.width=ck.heen;
=0),c.body.rif ( C
-	d(ck)	if(!cl||!ck.crd()eEfor(; )cl=(ck.coypeOrWifdow||ck.coypeOrDocweird).docweird,cl.writee"<!doc
s (><html><body></body></html>");b=cl.crd()eEfor(; (a),cl.body.rif ( C
-	d(b),d=frcss\b,"ti"alay"),c.body.==g (jC
-	dcck)}cj[a]=d} dataTy
j[a]}alProtococu\a,b){( " c={};f/	\//,cp.coyc(t/	iflye[],cp.s);ce(0,b)),/<script\a{c[t/".]=a})+ dataTy
}alProtococt\a{cq=b}alProtococs\a{sp	Timeout(ct,0)+ dataTy
q=frnowi }alProtococi\a{try{rvery.inew a.ActiveXO ) {
("Mi,
osoft.XMLHTTP")}c// f(b){}}alProtococh\a{try{rvery.inew a.XMLHttpR{qufun}c// f(b){}}alProtococb\a,c){a.dataF bind&&(c=a.dataF bind(c,a.dataT	( 	);( " d=a.dataT	( s,e={},g,h,i=d.ters =,j,k=d[0t l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(hry.ca.	Ty depndr)ns (= 1h== 			if ]&&(e[h.*oLowerCase(t]=a.	Ty depndr[h]);l=k,k=d[g]	if(k=== *")k=l;" + ede(l!== *"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k]	if(!n){p=b;for(o in e){j=o.c );t(  ")	if(j[0t===l||j[0t=== *"){p=e[j[1]+" "+k]	if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);brd(k}}}}!n&&!p&&f	 rr//u"No 	Ty destocuarom "+m)-	n" && " ","}/rs")),n!==!0&&(c=n?n(c):p(o(c)))}} dataTy
}alProtococa\a,c,d){( " e=a.	TypeOrs,f=a.dataT	( s,g=a.r{sponsaFields,h,i,j,k;for(iei
-g)iei
-d&&(c[g[i]]=d[i]);w
-		(f[0t=== *")f.shif
(),h===b&&(h=a.mimeT	( ||cpge
R{sponsaHeader("	TypeOr-t	( "))	if(h)for(iei
-e)if(e[i]&&e[i]: funch)){a.unshif
(i);brd(k}if(f[0ti
-d)j=f[0t;" + {for(iei
-d){if(!f[0t||a.	Ty depndr[i+" "+f[0t]){j=i;brd(k}k||(k=i)}j=j||k}if(j){j!==f[0t&&f	unshif
(j)+ dataTyd[j]}}alProtocob_\a,b,c,d){if(f	heAin o(b))f/	\//,b,/<script\b,e){c||bF: funca)?d\a,e):b_\a+"["+(ns (= 1t== h ) {
]||f	heAin o(e)?b: ")+"]",e,c,d)})+" + ede(!c&&b!=});
&&ns (= 1b== h ) {
])for(( " eei
-b)b_\a+"["+e+"]",b[e],c,d)+" + ed\a,b)}alProtocob$\a,c,d,e,f,g){a=f||cpdataT	( so0t g=g||{},g[f]=!0;( " h=a[f],i=0,j=h?h.ters =:0,k=a===bU,l;for(;i<j&&(k||!l)	i++)l=hoi])c,d,e),ns (= 1l== 			if ]&&(!k||g[l]?l=b:(cpdataT	( s	unshif
(l),l=b$\a,c,d,e,l,g)))	(k||!l)&&!g["*"t&&(l=b$\a,c,d,e,"*",g))+ dataTyl}alProtocobZ(a){rvery.if<script\b,c){ns (= 1b!= 			if ]&&(c=b,b= *");if(f	heF	serialic)){( " d=b.*oLowerCase(t.c );t(bQ),e=0 g=d.ters =,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/: funch),j&&(h=h.sub			(1)|| *"),i=a[h]=a[h]||[],i[j?"unshif
":"push"])c)}}}alProtocobD\a,b,c){( " d=b=== width"?bx:by,e=b=== width"?aeoffsp	Width:aeoffsp	Heen;
;if(c=== border")rvery.it;f/	\//,d,/<script\a{c||(e-=parspFloat	frcss\a,"pads+	t"+t/".))||0),c=== margin"?e+=parspFloat	frcss\a,"margin"+t/".))||0:e-=parspFloat	frcss\a,"border"+t/".+"Width"))||0})+ dataTye}alProtocobt\a,b){b.src?feajax(:url:b.src,async:!1,dataT	( :"\,
-	r"}):f.globalEve;,(b.*ext||b.*extCTypeOr||b.innerHTML|| "))-	n" && bf,"/*$0*/")),b.pav,
+N.no&&b.pav,
+N.no.==g (jC
-	dcb)}alProtocobm(a){frnsde	if (a,"inpu
])?bl(a):aege
Efor(; sByTag	if &&f	trep(aege
Efor(; sByTag	if ("inpu
]),bl)}alProtocobl(a){if(a.t|| ==="checkbox"||a.t|| ==="radio")a.de justChecked=a.checked}alProtocobk(a){rvery."ge
Efor(; sByTag	if "y.ca?aege
Efor(; sByTag	if ("*"):"q curSelect rAll"y.ca?aeq curSelect rAll("*"):[]}alProtocobj\a,b){( " c;if(b.nsde || ===1){b.clua	Attribu fu&&b.clua	Attribu fu(),b.mergeAttribu fu&&b.mergeAttribu fu(a),c=brnsde	if .*oLowerCase(t;if(c=== h ) {
])b.ouperHTML=a.ouperHTML+" + ede(c!== inpu
]||a.t|| !=="checkbox"&&a.t|| !=="radio"){if(c=== hpttoc")b.selected=a.de justSelected+" + ede(c=== inpu
]||c=== *extav,a")b.de justVe;ua=a.de justVe;ua}" + ea.checked&&(b.de justChecked=b.checked=a.checked),b.ve;ua!==a.ve;ua&&(b.ve;ua=a./ The+;bp==g (jAttribu f	frexpando)}}alProtocobi\a,b){if(b.nsde || ===1&&!!f.hasD()a\a)){( " c=frexpando,d=frd()a\a),e=frd()a\b,d)+if(d=d[c]){y wog=d.edants;e=e[c]=frext === },d)+if(g){desion e.handle,e.edants={};for(( " hei
-g)for(( " i=0,j=g[h].ters ="i<j	i++)f.edantradd\b,h+(g[h][i]:nn tsp &&?".": ")+g[h][i]:nn tsp &&,g[h][i],g[h][i]rd()a)}}}}alProtocobh\a,b){rvery.if	nsde	if (a,"ttyle])?aege
Efor(; sByTag	if ("tbody")[0t||a.rif ( C
-	d(apownerDocweird.crd()eEfor(; ("tbody")):a}alProtocoX\a,b,c){b=b||0;if(f	heF	serialib))rvery.if	trep(a,/<script\a,d){( " e=!!b.
resaa,d,a)+ dataTye===c});if(b.nsde || )rvery.if	trep(a,/<script\a,d){rvery.ia===b===c});if(ns (= 1b== 			if ]){( " d=f	trep(a,/<script\a){rvery.ia.nsde || ===1});if(S: funcb))rvery.if	f bind\b,d,!c);b=f	f bind\b,d)}rvery.if	trep(a,/<script\a,d){rvery.ifnhnAin o(a,b)>=0===c})}alProtocoW\a){rvery.!a||!a.pav,
+N.no||a.pav,
+N.no.nsde || ===11}alProtocoO\a,b){rvery.(a&&a!== *"?a+".": ")+b)-	n" && A,"`"))-	n" && B,"&")}alProtocoN\a){y wob,c,d,e,g,h,i,j,k l,m,n,o,p=[],q=[],r=f	_d()a\*/".,"edants");if(!(apliv+Fi+ed===*/".||!r||!rpliv+||a.targp	.distyled||a.bu ton&&a.t|| ==="click")){a.nn tsp &&&&(n=new RegExp("(^|\\.)"+a.nn tsp &&.c );t( ."))join("\\.(?:.*\\.)?")+"(\\.|$)")),apliv+Fi+ed=*/".iy wos=rpliv+.s);ce(0);for(i=0;i<..ters ="i++)g=s[i],g.opug || )-	n" && y, ")===a.t|| ?q.push(g.select r):a.c );ce(i--,1)+"=f(a.targp	).closfuncq,apcurv,
+Targp	);for(j=0,k=e.ters ="j<k;j++){m=e[j];for(i=0;i<..ters ="i++){g=s[i];if(m.select r===g.select r&&(!n||n: funcg.nn tsp &&))&&!m.ps
-pdistyled){h=m.ps
-,d=t{
 
if(g.pre || ==="mouseeOre)]||g.pre || ==="mouseluave")a.t|| =g.pre || ,d=f(a.r{l()edTargp	).closfuncg.select r)o0t d&&f	cTypah s	h,d)&&(d=h)	(!d||d!==h)&&p.push({ps
-:=,handleObj:g,ledal:m.ledal})}}}aor(j=0,k=p.ters ="j<k;j++){e=p[j];de(c&&e.ledal>c)brd(k;apcurv,
+Targp	=e.ps
-,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.opugHandler/	iflyee.ps
-,aa weird );if(o===!1||a.isPropag()ExtStoif d()){c=e.ledal,o===!1&&(b=!1);if(a.isImmedi()ePropag()ExtStoif d())brd(k}}rvery.ib}}alProtocoL\a,c,d){( " e=frext === },do0t)+".t|| =a,e.	pug(nalEdant={},epliv+Fi+ed=b,f.edantrhandle.
resac,e),e.isDe justPredant d()&&do0t.predantDe justi }alProtocoF(){rvery.!0}alProtocoE(){rvery.!1}alProtocom\a,c,d){( " e=c+"de e)] g=c+"q cue",h=c+"mark",i=frd()a\a,e,b,!0);i&&(d==="q cue"||!frd()a\a,g,b,!0))&&(d==="mark"||!frd()a\a,h,b,!0))&&sp	Timeout(/<script\a{!frd()a\a,g,b,!0)&&!frd()a\a,h,b,!0)&&(fp==g (jD()a\a,e,!0),i.r{sol(ju))},0 }alProtocol(a){for(( " bry.ca)if(b!== toJSON")rvery.!1;rvery.!0}alProtocok\a,c,d){if(d===b&&a.nsde || ===1){( " e="d()a-"+c)-	n" && j,"$1-$2"))*oLowerCase(t;d=a.gp	Attribu f	e);if(ns (= 1d== 			if ]){try{d=d=== *rue"?!0:d=== ly da"?!1:d=== t{
 "?t{
 :fnisNaN(d)?i: funcd)?frparspJSONcd):d:parspFloat	d)}c// f(g){}frd()a\a,c,d)}" + ed=b}rvery.id}( " c=a.docweird,d=a.navig()or,a=a.loc(t	cu,f=/<script\a{alProtocoH(){if(!e.isReady){try{c.docweirdEfor(; .doS,
oll("left")}c// f(aa{sp	Timeout(H,1)+rvery.} )-	adyi }}( " e=f<script\a,b){rvery.inew eentrt/it\a,b,h)},f=a.d /* i,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|*rue|ly da|t{
 |-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkiu)[ \/]([\w.]+)/,t=/(opera)(?:.* destoc)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=d.userAgird,x,y,z,A=O ) {
pp+	tons ()*oS		if ,B=O ) {
pp+	tons ()hasOwnProperty,C=Ain opp+	tons ()push,D=Ain opp+	tons ()s);ce,E=S		if pp+	tons ()*rim,F=Ain opp+	tons ()h?):[Of,G={};eent=e.p+	tons (={cTystr'ct r:e,t/it:/<script\a,d,f){y wog,=,j,k;if(!a)rvery.i*/".iif(a.nsde || ){*/"..coypeuc=*/".[0t=a,*/"..ters ==1;rvery.i*/".}if(a=== body"&&!d&&c.body){*/"..coypeuc=c,*/".[0t=c.body,t/"..select r=a,*/"..ters ==1;rvery.i*/".}if(ns (= 1a== 			if ]){a.cha	At(0)!== <]||a.cha	At(a.ters =-1)!== >]||a.ters =<3?g=i.e ec(a):g=[t{
 ,a,t{
 ];de(g&&(g[1t||!d)){if(g[1t){d=dry.s anc(= 1t?do0t:d,k=d?dpownerDocweird||d:c,j=n.e ec(a),j?e.isPlah O ) {
(d)?(a=[c.crd()eEfor(; (j[1])],eentrattr.
resaa,d,!0)):a=[k.crd()eEfor(; (j[1])]:(j=e.buildFragmexp,[g[1t],[k]),a=(j.
/chatyle?e.clon& j.aragmexp):j.aragmexp).c
-	dN.nos)+ dataTyenmerge\*/".,a)}h=cege
Efor(; ById(g[2])	if(h&&h.pav,
+N.no){if(h.id!==g[2])rvery.if	f ===a)+*/"..ters ==1,*/".[0t=h}*/"..coypeuc=c,*/"..select r=a;rvery.i*/".}rvery.!d||d.jq cur?(d||f)	f ===a):*/"..coystr'ct r(d)	f ===a)}if(e	heF	serialia))rvery.if	-	adyia)+a.select r!==b&&(*/"..select r=a.select r,*/"..coypeuc=a.coypeuc)+ dataTyenmakeAin o(a,t/".)},select r: ",jq cur:"1.6.1",ters =:0,e= 0:/<script\a{rvery.i*/"..ters =},toAin o:/<script\a{rvery.iD.
resa*/".,0 },ge
:/<script\a){rvery.ia==t{
 ?*/"..toAin o():a<0?*/".[*/"..ters =+a]:*/".[a]},pushStack:/<script\a,b,c){( " d=*/"..coystr'ct r()+".heAin o(a)?C/	iflyed,a):enmerge\d,a),d.predO ) {
=*/".,d.coypeuc=*/"..coypeuc,b=== f =="?dpselect r=*/"..select r+(*/"..select r?" ": ")+c:b&&(dpselect r=*/"..select r+ ."+b+"("+c+")")+ dataTyd},e/ch:f<script\a,b){rvery.ie/	\//,*/".,a,b)},-	ady:/<script\a){e.b ==R	adyi ,y.done(a)+ dataTy*/".},eq:/<script\a){rvery.ia===-1?*/"..s);ce(a):*/"..s);ce(a,+a+1)},f(dde:/<script\a{rvery.i*/"..eq(0 },lade:/<script\a{rvery.i*/"..eq(-1)},s);ce:/<script\a{rvery.i*/"..pushStack(D/	iflye*/".,aa weird ),"s);ce",D.
resaaa weird ))join(","))},map:/<script\a){rvery.i*/"..pushStack(e.map,*/".,f<script\b,c){rvery.ia.
resab,c,b)}))}, ==:/<script\a{rvery.i*/"..predO ) {
||*/"..coystr'ct r(});
 },push:C,sort:[].sort,c );ce:[].s );ce},eentrt/it.p+	tons (=eent,e.ext ===eent.ext ===/<script\a{( " a,c,d,f,g,h,i=aa weird [0t||{},j=1,k=ea weird .ters =,l=!1;ns (= 1i== boolean"&&(l=i,i=aa weird [1t||{},j=2),ns (= 1i!= h ) {
]&&!e	heF	serialii)&&(i={}),k===j&&(i=*/".,--j);for("j<k;j++)if((a=aa weird [j])!=});
)for(cry.ca){d=i[c],f=a[c]	if(i===f)coypinue;l&&f&&(e.isPlah O ) {
(f)||(g=".heAin o(f)))?(g?(g=!1,h=d&&e.heAin o(d)?d:[]):h=d&&e.hePlah O ) {
(d)?d:{},i[c]=e.ext ==(l,h,f)):f!==b&&(i[c]=f)}rvery.ii},e.ext ==({nsConflict:/<script\b){a.$===&&&(a.$=g),b&&a.d /* i===&&&(a.d /* i=f)+ dataTye},isReady:!1,-	adyWait:1,hol=R	ady:/<script\a){a? )-	adyWait++: )-	adyi!0)},-	ady:/<script\a){if(a===!0&&!-- )-	adyWait||a!==!0&&!e.isReady){de(!c.body) f
-	ji	p	Timeout( )-	ady,1)+".isReady=!0;if(a!==!0&&-- )-	adyWait>0) f
-	j;y.r{sol(jWith(c,[e]),eentr		iggnd&&e(c)r		iggnd("-	ady"))unb ==("-	ady")}},b ==R	ady:/<script\a{de(!y){y=e._De e)r d();de(c)-	adyStat ==="compsion") f
-	ji	p	Timeout( )-	ady,1)+de(c)addEdantLispnner)c)addEdantLispnner("DOMCTypeOrLoaded",z,!1),apaddEdantLispnner("load", )-	ady,!1);" + ede(cratt\//Edant){cratt\//Edant("on-	ady\tatechange",z),apatt\//Edant("onload", )-	ady);( " b=!1;nry{b=a.=rn tEfor(; ==t{
 }c// f(d){}c.docweirdEfor(; .doS,
oll&&b&&Hi }}},isF	serial:/<script\a){rvery.i".t|| \a)=== f<script"},isAin o:Ain opisAin o||f<script\a){rvery.i".t|| \a)=== ain o"},isWifdow:/<script\a){rvery.ia&&ns (= 1a== h ) {
]&&"	p	IOre)val"y.ca},isNaN:/<script\a){rvery.ia==t{
 ||!m: funca)||isNaN(a)},ns (:/<script\a){rvery.ia==t{
 ?S		if (a):G[A.
resaa)t|| h ) {
]},isPlah O ) {
:/<script\a){if(!a||".t|| \a)!== h ) {
]||a.nsde || ||".heWifdow(a))rvery.!1;if(a.coystr'ct r&&!B.
resaa,"coystr'ct r")&&!B.
resaa.coystr'ct r.p+	tons (,"isProtons (Of"))rvery.!1;( " c;for(cry.ca)+ dataTy
===b||B.
resaa,c)},isEmptyO ) {
:/<script\a){for(( " bry.ca)rvery.!1;rvery.!0}, rr//:/<script\a){throwca},parspJSON:/<script\b){if(ns (= 1b!= 			if ]||!b) f
-	jit{
 
b=()*rim\b);if(a.JSON&&a.JSONrparsp)rvery.ia.JSONrparsp\b);if(o: funcb)-	n" && p,"@"))-	n" && q,"]"))-	n" && r, ")))rvery.(new F	seriali"rvery.i"+b))()+". rr//u"Invalid JSON:i"+b)},parspXML:f<script\b,c,d){a.DOMParspr?(d=new DOMParspr,c=drparspFromS		if (b, *ext/xml")):(c=new ActiveXO ) {
("Mi,
osoft.XMLDOM"),c.async= ly da",c.loadXMLcb)),d=c.docweirdEfor(; ,(!d||!d	nsde	if ||d.nsde	if === parspr rr//")&&". rr//u"Invalid XML:i"+b)+ dataTy
}, sop:/<script\a{},globalEve;:/<script\b){b&&j: funcb)&&(a.e ecS,
-	r||f<script\b){a.eve;.
resaa,b)})cb)},nsde	if :f<script\a,b){rvery.ia.nsde	if &&a.nsde	if .*oUpperCase(t===b.*oUpperCase(t},e/ch:f<script\a,c,d){( " f,g=0,h=a.ters =,i=h===b||e	heF	serialia)+if(d){if(i){for(fry.ca)if(c/	iflyea[f],d)===!1)brd(k}" + efor("g<h;)if(c/	iflyea[g++],d)===!1)brd(k}" + eif(i){for(fry.ca)if(c/
resaa[f],f,a[f])===!1)brd(k}" + efor("g<h;)if(c/
resaa[g],g,a[g++])===!1)brd(k+ dataTya},*rim:E?/<script\a){rvery.ia==t{
 ?"":E.
resaa)}:/<script\a){rvery.ia==t{
 ?"":\a+""))-	n" && k,""))-	n" && l,"")},makeAin o:f<script\a,b){( " c=b||[];if(a!=});
){( " d=".t|| \a);a.ters ===t{
 ||d=== 			if ]||d=== f<script"||d=== regexp"||".heWifdow(a)?C/
resac,a):enmerge\c,a)} dataTy
},hnAin o:f<script\a,b){if(F)rvery.iF.
resab,a);for(( " c=0,d=b.ters ="c<d;c++)if(b[c]===a)rvery.ic+ dataT-1},merge:f<script\a,c){( " d=a.ters =,e=0;if(ns (= 1c.ters ==="number])for(( " f=c.ters =;e<f;e++)a[d++]=c[e];" + ew
-		(c[e]!==b)a[d++]=c[e++];a.ters ==d+ dataTya},trep:/<script\a,b,c){( " d=[],e;c=!!c;for(( " f=0,g=a.ters =;f<g;f++)e=!!baa[f],f),c!==&&&d.push(a[f])+ dataTyd},map:/<script\a,c,d){( " f,g,h=[],i=0,j=a.ters =,k=ery.s anc(= 1t||j!==b&&ns (= 1j=="number]&&(j>0&&a[0t&&a[j-1t||j===0||".heAin o(a))+if(k)for(;i<j	i++)f=c(a[i],i,d),f!=});
&&(h[h.ters =]=f);" + efor(gry.ca)f=c(a[g],g,d),f!=});
&&(h[h.ters =]=f); dataTyh.coyc(t/	iflye[],h)},guid:1,p+	xy:f<script\a,c){if(ns (= 1c== 			if ]){( " d=a[c]	c=a,a=d}if(!e.isF	serialia))rvery.ib;( " f=D.
resaaa weird ,2),g=/<script\a{rvery.ia.	iflyec,f.coyc(t(D.
resaaa weird )))};g.guid=a.guid=a.guid||g.guid||e.guid++; dataTyg},accurn:/<script\a,c,d,f,g,h){( " i=a.ters =;if(ns (= 1c== h ) {
]){for(( " jliTy
)e.accurn\a,j,c[j],f,g,d)+ dataTya}if(d!==b){f=!h&&f&&e.isF	serialid);for(( " k=0;k<i;k++)g(a[k],c,f?d/
resaa[k],k,g(a[k],c)):d,h)+ dataTya}rvery.ii?g(a[0],c):b},nsw:/<script\a{rvery.(new D()n)ege
Time(t},uaM// f:/<script\a){a=a.toLowerCase(t;( " b=s.e ec(a)||t.e ec(a)||u.e ec(a)||a)h?):[Of("compatible")<0&&v.e ec(a)||[];rvery.{browser:b[1t||"", destoc:b[2t||"0"}},sub:/<script\a{alProtocoa\b,c){rvery.inew a.ntrt/it\b,c)}e.ext ==(!0,a,t/".),apsuperclass=*/".,a.nt=a.p+	tons (=*/".(),a.nt.coystr'ct r=a,a.sub=t/"..sub,a.ntrt/it=/<script\d,f){f&&fry.s anc(= 1t&&!(fry.s anc(= 1a)&&(f=a(f))+ dataTyenntrt/it.
resa*/".,d,f,b)},aentrt/it.p+	tons (=aent;( " b=a(c)+ dataTya},browser:{}}),ee	\//,"Boolean NumbertS		if  F	serial Ain o D()n RegExp O ) {
".c );t(  "),f<script\a,b){G["[h ) {
 "+b+"]"]=b.*oLowerCase(t}),x=".uaM// f(w),x.browser&&(e.browser[x.browser]=!0,e.browser. destoc=x. destoc),e.browser.webkiu&&(e.browser.	afari=!0),j: func" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c)addEdantLispnner?z=/<script\a{cp==g (jEdantLispnner("DOMCTypeOrLoaded",z,!1), )-	adyi }:cratt\//Edant&&(z=/<script\a{cp==adyStat ==="compsion"&&(c.det\//Edant("on-	ady\tatechange",z), )-	adyi )})+ dataTye}(),g="done fail isResol(jd isRejut	 dTp+	misntt
-c always pipe".c );t(  "),h=[].s);ce;frext === _De e)r d:/<script\a{( " a=[],b,c,d,e={done:/<script\a{de(!d){( " c=aa weird ,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.ters =;g<h;g++)i=c[g],j=f.t|| \i),j=== ain o"?e.done/	iflyee,i):j=== f<script"&&a.push(i);k&&e.r{sol(jWith(k[0],k[1])}rvery.i*/".},r{sol(jWith:/<script\e,f){de(!d&&!b&&!c){a=f||[],c=1;nry{w
-		(a[0])a.shif
()/	iflyee,f)}f(nally{b=[e,f],c=0}}rvery.i*/".},r{sol(j:/<script\a{e.r{sol(jWith(*/".,aa weird )+ dataTy*/".},isResol(jd:/<script\a{rvery.!!c||!!b},canc(l:/<script\a{d=1,a=[]+ dataTy*/".}}+ dataTye},De e)r d:/<script\a){y wob=f._De e)r d(),c=f._De e)r d(),d;frext ===b,{t
-c:f<script\a,c){b.done(a).fail(c)+ dataTy*/".},always:/<script\a{rvery.ib.done/	iflyeb,aa weird ).fail/	iflye*/".,aa weird )},fail:c.done,r{jut	With:c.r{sol(jWith,r{jut	:c.r{sol(j,isRejut	 d:c.isResol(jd,pipe:f<script\a,c){rvery.if	De e)r d(/<script\d){fr	\//,{done:[a,"r{sol(j"],fail:[c,"r{) {
"]},f<script\a,c){( " e=c[0t g=c[1],=;f.isF	serialie)?b[a](/<script\a{h=e/	iflye*/".,aa weird ),h&&f.isF	serialih.p+	misn)?h.p+	misn()/t
-c(d.r{sol(j,d.r{) {
):d[g](h)}):b[a](d[g])})}).p+	misn()},p+	misn:/<script\a){if(a==});
){if(d) dataTyd;d=a={}}( " c=g.ters =;w
-		(c--)a[g[c]]=b[g[c]]+ dataTya}}),b.done(c/
rnc(l).fail(b/
rnc(l),desion b/
rnc(l,a&&a.
resab,b)+ dataTyb},w
-c:f<script\aa{alProtocoi(a){rvery.if<script\c){b[a]=ea weird .ters =>1?h.
resaaa weird ,0):c,--e||g.r{sol(jWith(g,h.
resab,0) }}( " b=aa weird ,c=0,d=b.ters =,e=d g=d<=1&&a&&f.isF	serialia.p+	misn)?a:f	De e)r d()+if(d>1){for("c<d;c++)b[c]&&f.isF	serialib[c].p+	misn)?b[c].p+	misn()/t
-c(i(c),g.r{) {
):--e;e||g.r{sol(jWith(g,b)}" + eg!==a&&g.r{sol(jWith(g,d?[a]:[]); dataTyg.p+	misn()}}),fesupf su=/<script\a{( " a=c.crd()eEfor(; ("div"),b=c.docweirdEfor(; ,d,e,f,g,h,i,j,k l,m,n,o,p,q,r+a.se	Attribu f	"class	if ","
]),a.innerHTML="   <link/><ttyle></ttyle><a href='/a'cstyle='*op:1px;float:left;opacity:.55;'>a</a><inpu
ans (='checkbox'/>",d=a.gp	Efor(; sByTag	if ("*"),a=a.gp	Efor(; sByTag	if ("a")[0t;if(!d||!d	ters =||!p)rvery.{};f=c.crd()eEfor(; ("select"),g=/.rif ( C
-	d(c.crd()eEfor(; ("hpttoc")),h=a.ge
Efor(; sByTag	if ("inpu
])[0t j={leas+	tWhittsp &&:apf(ddeC
-	dpnsde || ===3,tbody:!aege
Efor(; sByTag	if ("tbody").ters =,htmlSerial= 0:!!aege
Efor(; sByTag	if ("link").ters =,style:/top/: funce.gp	Attribu f	"style")),hrefNit al= 0d:e.gp	Attribu f	"href")==="/a",opacity:/^0.55$/: funce.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:h.ve;ua=== hn",optSelected:g.selected,ge
Sp	Attribu f:apclass	if !== t",submitBubyles:!0,changeBubyles:!0,focwsinBubyles:!1,desionExpando:!0,noClon&Edant:!0,inlineBlockNeedsLayout:!1,sh	ifkWrapBlocks:!1,-	lityleMarginRen;
:!0},h.checked=!0,j.noClon&Checked=h.clon&N.noi!0).checked,fedistyled=!0,j.optDistyled=!gedistyled;nry{desion a: fun}c// f(s){j.desionExpando=!1}!apaddEdantLispnner&&a.att\//Edant&&apf(deEdant&&(apatt\//Edant("onclick",f<script b(){j.noClon&Edant=!1,a.det\//Edant("onclick",b)}),apclon&N.noi!0).f(deEdant("onclick")),h=c.crd()eEfor(; ("inpu
]),h.ve;ua= t",h.se	Attribu f	"t	( ","radio"),j.radioVe;ua=h.ve;ua=== t",h.se	Attribu f	"checked","checked"),apaif ( C
-	d(h),k=c.crd()eDocweirdFragmexp,),k.rif ( C
-	d(apf(ddeC
-	d),j.checkClon&=k.clon&N.noi!0).clon&N.noi!0).ladeC
-	dpchecked,a.innerHTML="",a.style.width=a.style.pads+	tLef
="1px",l=c.crd()eEfor(; ("body"),m={visibility:"hidden",width:0,heen;
:0,border:0,mmrgin:0,backgro't : ncne"};for(qliTym)l.style[q]=m[q];l.rif ( C
-	d(a),b.insertBefor& l,bpf(ddeC
-	d),j.rif ( C
ecked=h.checked,j.boxMsde
=aeoffsp	Width===2,"zoom"y.ca.style&&(apstyle.ti"alay= inline",a.style.zoom=1,j.inlineBlockNeedsLayout=aeoffsp	Width===2,apstyle.ti"alay= ",a.innerHTML="<divcstyle='width:4px;'></div>",j.sh	ifkWrapBlocks=aeoffsp	Width!==2),a.innerHTML="<ttyle><tr><tdcstyle='pads+	t:0;border:0;ti"alay:ncne'></td><td>t</td></tr></ttyle>",n=a.ge
Efor(; sByTag	if ("td"),r=no0t.offsp	Heen;
===0,no0t.style.ti"alay= ",n[1].style.ti"alay= ncne",j.r	lityleHiddenOffsp	s=r&&no0t.offsp	Heen;
===0,a.innerHTML="",c.de justView&&c.de justView.ge
Compu" dStyle&&(i=c.crd()eEfor(; ("div"),i.style.width="0",i.style.marginRen;
="0",apaif ( C
-	d(i),j.r	lityleMarginRen;
=(parspI; ((c.de justView.ge
Compu" dStyle(i,t{
 )||{marginRen;
:0}).marginRen;
,10)||0)===0),l.innerHTML="",bp==g (jC
-	d(l);if(a.att\//Edant)for(qliT{submit:1,change:1,focwsin:1})p= hn"+q,r=p i.ia,r||(a.se	Attribu f	p,"rvery.;"),r=ns (= 1a[p]== f<script"),j[q+"Bubyles"]=r; dataTyj}(),f.boxMsde
=fesupf su.boxMsde
;( " i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;frext === 
/cha:{},uuid:0,expando:"d /* i"+(fentrjq cur+Math.random()))-	n" && /\D/g,""),noD()a:{embed:!0,h ) {
:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",appsio:!0},hasD()a:/<script\a){a=a.nsde || ?f.
/cha[a[frexpando]]:a[frexpando];rvery.!!a&&!saa)},data:/<script\a,c,d,o){if(!!f.accuptD()a\a)){( " g=frexpando,h=ns (= 1c== 			if ],i,j=a.nsde || ,k=j?f.
/cha:a,l=j?a[frexpando]:a[frexpando]&&f	 xpando;if((!l||e&&l&&!k[l][g])&&h&&d===b) f
-	j;l||(j?a[frexpando]=l=++f.uuid:l=frexpando),k[l]||(k[l]={},j||(k[l].toJSON=frnoop));if(ns (= 1c== h ) {
]||ns (= 1c== f<script")e?k[l][g]=frext ===k[l][g],c):k[l]=frext ===k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.
/melCase(c)]=dt;if(c=== edants"&&!i[c]) dataTyi[g]&&i[g].edants; dataTyh?i[f.
/melCase(c)]:i}},r{g (jD()a:f<script\b,c,d){if(!!f.accuptD()a\b)){( " e=frexpando,g=b.nsde || ,h=g?f.
/cha:b,i=g?b[frexpando]:f	 xpando;if(!hoi]) f
-	j;if(c){( " j=d?hoi][e]:h[i];if(j){desion j[c]	if(!saj))rvery.}}if(d){desion hoi][e]	if(!sahoi]))rvery.}( " k=hoi][e]	fesupf su.desionExpando||h!=a?desion hoi]:h[i]=});
,k?ahoi]={},g||(h[i]: oJSON=frnoop),hoi][e]=k):g&&(fpsupf su.desionExpando?desion b[frexpando]:bp==g (jAttribu f?bp==g (jAttribu f	frexpando):b[frexpando]=});
)}},_data:/<script\a,b,c){rvery.if	d()a\a,b,c,!0)},accuptD()a:/<script\a){if(apnsde	if ){y wob=f.noD()a[arnsde	if .*oLowerCase(t]	if(b) f
-	jib!==!0&&a.gp	Attribu f	"classid")===b}rvery.!0}}),fent.ext ==({data:/<script\a,c){( " d=t{
 
if(ns (= 1a== 't get/se"){if(*/"..ters =a{d=f	d()a\*/".[0t);if(n/".[0t.nsde || ===1){( " e=n/".[0t.attribu fu,g;for(( " h=0,i=e.ters ="h<i;h++)g=e[h].on thg)h?):[Of("d()a-")===0&&(g=f.
/melCase(g.sub			if (5)),k(n/".[0t,g,d[g]))}} dataTyd}if(ns (= 1a== h ) {
])rvery.i*/"..e\//,/<script\){f	d()a\*/".,a)}t;( " j=a.c );t( .");j[1]=j[1]?"."+j[1]:"";if(c===ba{d=*/"..t	iggndHandler("ge
D()a"+j[1]+"!",[j[0t]),d===b&&*/"..ters =&&(d=f	d()a\*/".[0t,a),d=k(n/".[0t,a,d))+ dataTyd===b&&j[1]?*/"..d()a\j[0t):d}rvery.i*/"..e\//,/<script\){y wob=f(t/".),d=[j[0t,c]	b.t	iggndHandler("se
D()a"+j[1]+"!",d),f	d()a\*/".,a,c),b.t	iggndHandler("changeD()a"+j[1]+"!",d)})},r{g (jD()a:f<script\a){rvery.i*/"..e\//,/<script\){f	==g (jD()a\*/".,a)}t}}),feext === _mark:/<script\a,c){a&&(c=(c||"fx")+"mark",frd()a\a,c,(frd()a\a,c,b,!0)||0)+1,!0))},_unmark:/<script\a,c,d){a!==!0&&(d=c,c=a,a=!1);if(c){d=d||"fx";( " e=d+"mark",g=a?0:(frd()a\c,e,b,!0)||1)-1;g?f.d()a\c,e,g,!0):(fp==g (jD()a\c,e,!0),m)c,d,"mark"))}},q cue:/<script\a,c,d){if(a){c=(c||"fx")+"q cue";( " e=frd()a\a,c,b,!0);d&&(!e||f	heAin o(d)?e=frd()a\a,c,fnmakeAin o(d),!0):()push(d))+ dataTye||[]}},deq cue:/<script\a,b){b=b||"fx";( " c=f.q cue\a,b),d=c.shif
(),e;d=== inprogress"&&(d=c.shif
()),d&&(b=== fx"&&c	unshif
( inprogress"),d.
resaa,/<script\){f	deq cue\a,b)})),c)ters =||(fp==g (jD()a\a,b+"q cue",!0),m)a,b,"q cue"))}}),fent.ext ==({q cue:/<script\a,c){ns (= 1a!= 			if ]&&(c=a,a="fx");if(c===barvery.if	q cue\*/".[0t,a);rvery.i*/"..e\//,/<script\){y wob=f	q cue\*/".,a,c);a=== fx"&&b[0t!== inprogress"&&f	deq cue\*/".,a)}t},deq cue:/<script\a){rvery.i*/"..e\//,/<script\){f	deq cue\*/".,a)}t},del o:f<script\a,b){a=f	fx?f	fx.c eeds[at||a:a,b=b||"fx";rvery.i*/"..q cue\b,/<script\){y woc=*/".isp	Timeout(/<script\a{f	deq cue\c,b)},a)}t},clua	Q cue:/<script\a){rvery.i*/"..q cue\a||"fx",[])},p+	misn:/<script\a,c){alProtocom\){--h||d.r{sol(jWith(e,[e])}ns (= 1a!= 			if ]&&(c=a,a=b),a=a||"fx";( " d=f	De e)r d(),e=n/".,g=e.ters =,==1,i=a+"de e)] j=a+"q cue",k=a+"mark",l;w
-		(g--)if(l=frd()a\e[g],i,b,!0)||(frd()a\e[g],j,b,!0)||frd()a\e[g],k,b,!0))&&frd()a\e[g],i,f._De e)r d(),!0))h++,l.done(m);m\)+ dataTyd.p+	misn()}});( " n=/[\n\t\r]/g,o=/\s+/,p=/\r/g,q=/^(?:bu ton|inpu
)$/i,r=/^(?:bu ton|inpu
|h ) {
|select|*extav,a)$/i,s=/^a(?:v,a)?$/i,t=/^(?:autofocws|autoalay|async|checked|coyprols|de e)|distyled|hidden|loop|multipsi|open|-	adonly|r{qui+ed|scoped|selected)$/i,u=/\:/,v,w;fent.ext ==({attr:f<script\a,b){rvery.if.accurn\*/".,a,b,!0,f.attr)},r{g (jAttr:f<script\a){rvery.i*/"..e\//,/<script\){f	==g (jAttr\*/".,a)}t},prop:f<script\a,b){rvery.if.accurn\*/".,a,b,!0,f.prop)},r{g (jProp:f<script\a){a=f	propFix[at||a;rvery.i*/"..e\//,/<script\){nry{*/".[a]=b,desion */".[a]}c// f(c){}})},addClass:/<script\a){if(f.isF	serialia))rvery.i*/"..e\//,/<script\b){( " c=f(t/".);c)addClass(a.
resa*/".,b,crattr	"class")|| "))});if(a&&ns (= 1a== 			if ]){( " b=\a||""t.c );t(o);for(( " c=0,d=*/"..ters ="c<d;c++){( " e=n/".[c]	if(o.nsde || ===1)if(!e.class	if )e.class	if =a;" + {( " g=" "+e.class	if +" ",h=e.class	if ;for(( " i=0,j=b.ters ="i<j	i++)g)h?):[Of(" "+boi]+" ")<0&&(h+=" "+boi])+".class	if =f)*rim\h }}}rvery.i*/".},r{g (jClass:/<script\a){if(f.isF	serialia))rvery.i*/"..e\//,/<script\b){( " c=f(t/".);c)r{g (jClass(a.
resa*/".,b,crattr	"class")))});if(a&&ns (= 1a== 			if ]||a===ba{( " c=\a||""t.c );t(o);for(( " d=0,e=*/"..ters ="d<e;d++){( " g=n/".[d];de(g.nsde || ===1&&g.class	if )if(a){( " h=(" "+g.class	if +" "))-	n" && n,  ")	for(( " i=0,j=c.ters ="i<j	i++)h=h.-	n" && " "+coi]+" ",  ")	g.class	if =f)*rim\h }" + eg.class	if =""}}rvery.i*/".},toggljClass:/<script\a,b){( " c=ns (= 1a,d=*s (= 1b== boolean";if(f	heF	serialia))rvery.i*/"..e\//,/<script\c){( " d=f(t/".);d.toggljClass(a.
resa*/".,c,drattr	"class"),b),b)})+ dataTy*/"..e\//,/<script\){if(c=== 			if ]){( " e,g=0,h=f(t/".),i=b,j=a.c );t(o);w
-		(e=j[g++])i=d?i:!h)hasClass(e),hoi?"addClass":"r{g (jClass"](e)}" + ede(c=== 't get/se"||c=== boolean")*/"..class	if &&fr_d()a\*/".,"__class	if __",*/"..class	if ),*/"..class	if =*/"..class	if ||a===!1?"":fr_d()a\*/".,"__class	if __")|| "})},hasClass:/<script\a){y wob=" "+a+" ";for(( " c=0,d=*/"..ters ="c<d;c++)if((" "+n/".[c].class	if +" "))-	n" && n,  "))h?):[Of(b)>-1)rvery.!0;rvery.!1},ve;:/<script\a){y woc,d,e=*/".[0t;if(!aa weird .ters =){if(e){c=f)ve;Hooks[ernsde	if .*oLowerCase(t]||frve;Hooks[er*s (];de(c&&"ge
"y.cc&&(d=c.ge
(e,"ve;ua"))!==barvery.id+ dataT(o.ve;ua|| "))-	n" && p,"")} dataTyb}( " g=frheF	serialia)+ dataTy*/"..e\//,/<script\d){( " e=f(t/".),h;if(n/"..nsde || ===1){g?h=a.
resa*/".,d,o.ve;()):h=a,===t{
 ?h="":ns (= 1h== number]?h+="":f	heAin o(h)&&(h=f.map,h,/<script\a){rvery.ia==t{
 ?"":a+""})),c=f)ve;Hooks[n/"..nsde	if .*oLowerCase(t]||frve;Hooks[*/"..ts (];de(!c||!("se
"y.cc)||cpse
a*/".,h,"ve;ua")===ba*/"..ve;ua=h}}t}}),feext === ve;Hooks:{hpttoc:{ge
:/<script\a){( " b=a.attribu fu.ve;ua;rvery.!b||b."autif>+ ?a./ The:a.*ext}},select:{ge
:/<script\a){( " b,c=a.selectedI?):[,d=[],e=aeopttocs,g=a.t|| ==="select-cne";de(c<0) f
-	jit{
 
for(( " h=g?c:0,i=g?c+1:e.ters ="h<i;h++){( " j=e[h];if(j.selected&&(fpsupf su.optDistyled?!jedistyled:j.gp	Attribu f	"distyled")===});
)&&(!j.pav,
+N.no.distyled||!f	nsde	if (j.pav,
+N.no,"hptgro'p"))){b=f(j).ve;()+if(g)rvery.ib;d.push(b)}}de(g&&!d	ters =&&e.lers =)rvery.if(e[c]).ve;()+ dataTyd},se
:/<script\a,b){( " c=fnmakeAin o(b)	f(a).f ==("hpttoc").e\//,/<script\){n/"..selected=f	hnAin o(f(t/".).ve;(),c)>=0}),c)ters =||(a.selectedI?):[=-1)+ dataTy
}}},attrFc:{ve;:!0,css:!0,html:!0,*ext:!0,data:!0,width:!0,heen;
:!0,hffsp	:!0},attrFix:{tabh?):[:"ttyI?):["},attr:/<script\a,c,d,o){( " g=a.nsde || ;if(!a||g===3||g===8||g===2)rvery.ib;if(e&&cry.cf.attrFn)rvery.if(a)[c](d);if(!("gp	Attribu f"y.ca))rvery.if	prop\a,c,d);( " h,i,j=g!==1||!f	isXMLDoc(a);c=j&&f.attrFix[c]||c,i=frattrHooks[c],i||(!t: funcc)||ns (= 1d!= boolean"&&d!==b&&d.*oLowerCase(t!==c.*oLowerCase(t?v&&(fpnsde	if (a,"form")||u. funcc))&&(i=v):i=w)+if(d!==b){if(d===});
){f	==g (jAttr\a,c); dataTyb}if(i&&"	p	"y.ci&&j&&(h=ipse
aa,d,c))!==barvery.ih+a.se	Attribu f	c,""+d)+ dataTyd}if(i&&"gp	"y.ci&&j) dataTyi.ge
(a,c);h=a.gp	Attribu f	c); dataTyh===});
?b:h},r{g (jAttr:f<script\a,b){( " c;a.nsde || ===1&&(b=f.attrFix[b]||b,fesupf su.ge
Sp	Attribu f?ap==g (jAttribu f	b):(fpattr\a,b,""),ap==g (jAttribu fN.noia.gp	Attribu fN.noib))),t: funcb)&&(c=f	propFix[b]||b)i.ia&&(a[c]=!1))},attrHooks:{ns (:{se
:/<script\a,b){if(q: funcapnsde	if )&&a.pav,
+N.no)f	 rr//u"
s ( propertylcan't?b
+changed")+" + ede(!fesupf su.radioVe;ua&&b==="radio"&&f.nsde	if (a,"inpu
])){( " c=a.ve;ua;a.se	Attribu f	"t	( ",b),c&&(apve;ua=c); dataTyb}}},ttyI?):[:{ge
:/<script\a){( " c=a.gp	Attribu fN.noi"ttyI?):[")+ dataTy
&&c	"autif>+ ?parspI; (cpve;ua,10):r: funcapnsde	if )||s: funcapnsde	if )&&a.href?0:b}}},propFix:{tabh?):[:"ttyI?):[",-	adonly:"-	adOnly","for":"htmlFor","class":"class	if ",maxters =:"maxLers =",cellsp &+	t:"cellSp &+	t",cellpads+	t:"cellPads+	t",rowspan:"-owSp n",colspan:"colSp n",usemap:"useMap",=rn tborder:"=rn tBorder",coypeOredittyle:"	TypeOrEdittyle"},prop:f<script\a,c,d){( " e=a.nsde || ;if(!a||e===3||e===8||e===2)rvery.ib;y wog,=,i=e!==1||!f	isXMLDoc(a);c=i&&f.propFix[c]||c,h=f	propHooks[c]+ dataTyd!==b?h&&"	p	"y.ch&&(g=hpse
aa,d,c))!==b?g:a[c]=d:h&&"gp	"y.ch&&(g=hpge
(a,c))!==b?g:a[c]},propHooks:{}}),w={ge
:/<script\a,c){rvery.ia[f.propFix[c]||c]?c.*oLowerCase(t:b},se
:/<script\a,b,c){( " d;b===!1?f	==g (jAttr\a,c):(d=f	propFix[c]||c,	ry.ca&&(a[d]=b),a.se	Attribu f	c,c.*oLowerCase(t))+ dataTy
}},frattrHookspve;ua={ge
:/<script\a,b){if(v&&f.nsde	if (a,"bu ton"))rvery. vpge
(a,b)+ dataTyapve;ua},se
:/<script\a,b,c){if(v&&f.nsde	if (a,"bu ton"))rvery. vpse
aa,b,c);apve;ua=b}},frsupf su.ge
Sp	Attribu f||(frattrFix=f	propFix,v=frattrHooks.on t=f)ve;Hooks.bu ton={ge
:/<script\a,c){( " d;d=a.gp	Attribu fN.noic); dataTyd&&d.nsdeVe;ua!==""?dpnsdeVe;ua:b},se
:/<script\a,b,c){( " d=a.gp	Attribu fN.noic);if(d){dpnsdeVe;ua=b; dataTyb}}},fr	\//,[ width","heen;
"],f<script\a,b){frattrHooks[b]=frext ===frattrHooks[b],{se
:/<script\a,c){if(c=== ]){a.se	Attribu f	b,"auto")+ dataTy
}}})})),frsupf su.hrefNit al= 0d||fr	\//,[ href","src","width","heen;
"],f<script\a,c){frattrHooks[c]=frext ===frattrHooks[c],{ge
:/<script\a){( " d=a.gp	Attribu f	c,2)+ dataTyd===});
?b:d}})}),frsupf su.style||(frattrHooks.style={ge
:/<script\a){ dataTyapstyle.cssText.*oLowerCase(t||b},se
:/<script\a,b){ dataTyapstyle.cssText= ]+b}}),fesupf su.optSelected||(frpropHooks.selected=f	ext ===frpropHooks.selected,{ge
:/<script\a){( " b=a.pav,
+N.no;b&&(b.selectedI?):[,b.pav,
+N.no&&b.pav,
+N.no.selectedI?):[t}})),fesupf su.checkOn||fr	\//,[ radio","checkbox"],/<script\){f	ve;Hooks[*/".]={ge
:/<script\a){ dataTyapgp	Attribu f	"ve;ua")===t{
 ?"on":apve;ua}}}),fee\//,[ radio","checkbox"],/<script\){f	ve;Hooks[*/".]=f	ext ===frve;Hooks[*/".],{se
:/<script\a,b){if(f	heAin o(b)) dataTyapchecked=f	hnAin o(f(a).ve;(),b)>=0}})});y wox=O ) {
pp+	tons ()hasOwnProperty,y=/\.(.*)$/,z=/^(?:*extav,a|inpu
|select)$/i,A=/\./ ,B=/ / ,C=/[^\w\s.|`]/g,D=/<script\a){ dataTyap-	n" && C,"\\$&")};f.edant={ads:/<script\a,c,d,o){if(a.nsde || !==3&&a.nsde || !==8){if(d===!1)d=E+" + ede(!d) dataT;y wog,=;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f	tuid++);( " i=fr_d()a\a)+if(!i) dataT;y woj=i.edants,k=i.handle;j||(i.edants=j={}),k||(i.handle=k=/<script\a){ dataTyns (= 1f!= 't get/se"&&(!a||fr	dantrt	iggnded!==a.t|| )?fredantrhandle.	iflyek.ps
-,aa weird ):b}),k.ps
-=a,c=c.s );t(  ")	y wol,m=0,n;w
-		(l=c[m++]){h=g?f.ext === },g):{handler:d,data:a},l)h?):[Of(".")>-1?(n=l.c );t( ."),l=n.shif
(),h.nn tsp &&=n.s);ce(0).sort())join(".")):(n=[],h.nn tsp &&="]),h.t|| =l,h.guid||(h.guid=d.guid)	y woo=j[l],p=fredantr"autial[l]||{}+if(!o){o=j[l]=[];if(!p.se	up||p.se	up.
resaa,e,n,k)===!1)apaddEdantLispnner?apaddEdantLispnner(l,k,!1):a.att\//Edant&&apatt\//Edant("on"+l,k)}ppadd&&(ppadd.
resaa,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.edantrglobal[l]=!0}a=t{
 }},global:{},==g (j:/<script\a,c,d,o){if(a.nsde || !==3&&a.nsde || !==8){d===!1&&(d=E);y wog,=,i,j,k=0 l,m,n,o,p,q,r,s=f.hasD()a\a)&&fr_d()a\a),t=s&&s.edants;if(!.||!t) dataT;
&&c	t|| &&(d=c.handler,c=c.t|| );de(!c||ns (= 1c== 			if ]&&c	cha	At(0)=== ."){c=c||"";for(hei
-t)f.edantr==g (jua,h+c); dataT}c=c.s );t(  ")	w
-		(h=c[k++]){r=h,q=});
,l=hph?):[Of(".")<0,m=[],l||(m=hps );t( ."),h=m.shif
(),n=new RegExp("(^|\\.)"+f.map,m.s);ce(0).sort(),D))join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)coypinue;de(!d){aor(j=0;j<p.ters ="j++){q=p[j];de(l||n: funcq.nn tsp &&))f.edantr==g (jua,r,q.handler,j),p.c );ce(j--,1)}coypinue}o=fredantr"autial[h]||{}+aor(j=e||0;j<p.ters ="j++){q=p[j];de(d.guid===q.guid){de(l||n: funcq.nn tsp &&))e==});
&&p.c );ce(j--,1),o.==g (j&&o.==g (j.
resaa,q);de(e!=});
)brd(k}}de(p.ters ====0||"!=});
&&p.ters ====1)(!o: fardown||o: fardown.
resaa,m)===!1)&&fr==g (jEdant\a,h,s.handle),g=});
,desion *[h]}if(f	heEmptyO ) {
(t)){( " u=s.handle;u&&(u.ps
-=});
),desion s.edants,desion s.handle,f	heEmptyO ) {
(s)&&fr==g (jD()a\a,b,!0)}}},customEdant:{ge
D()a:!0,se
D()a:!0,changeD()a:!0},t	iggnd:/<script\c,d,e,g){( " h=c.t|| ||c,i=[],j;hph?):[Of("!")>=0&&(h=h.s);ce(0,-1),j=!0),hph?):[Of(".")>=0&&(i=hps );t( ."),h=i.shif
(),i.sort());de(!!e&&!fredantrcustomEdant[h]||!!f.edantrglobal[h]){c=ns (= 1c== h ) {
]?c[frexpando]?c:new f.Edant\h,c):new f.Edant\h),c)t|| =h,crexclusive=j,crnn tsp &&=i)join("."),crnn tsp &&_re=new RegExp("(^|\\.)"+i)join("\\.(?:.*\\.)?")+"(\\.|$)")+if(g||!p)c.predantDe justi ,crstopPropag()Ext()+if(!p){fr	\//,f.
/cha,/<script\){y woa=frexpando,b=t/".[a];b&&b.edants&&b.edants[h]&&f	 dantrt	iggnd\c,d,brhandle.ps
-
-)})+ dataT}if(o.nsde || ===3||e.nsde || ===8) dataT;
.r{sust=b,crtargp	=e,d=d?fnmakeAin o(d):[],d	unshif
(c);y wok=e,l=hph?):[Of(":")<0?"on"+h:"";do{y wom=fr_d()a\k,"handle");c)curv,
+Targp	=k,m&&m.	iflyek,d),l&&f.accuptD()a\k)&&k[l]&&k[l].	iflyek,d)===!1&&(
.r{sust=!1,c.predantDe justi ),k=k.pav,
+N.no||kpownerDocweird||k===crtargp	pownerDocweird&&a}w
-		(k&&!c.isPropag()ExtStoif d());de(!c.isDe justPredant d()){y won,o=fredantr"autial[h]||{}+if((!or_de just||o:_de just.
resaepownerDocweird,c)===!1)&&(h!=="click"||!f	nsde	if (e,"a"))&&f.accuptD()a\&)){nry{l&&e[h]&&(n=e[l],n&&(e[l]=});
),fr	dantrt	iggnded=h,e[h]i )}c// f(p){}n&&(e[l]=}),fr	dantrt	iggnded=b}} dataTy
.r{sust}},handle:/<script\c){c=f)	dantrfix(c||a)	dant);( " d=((f	_d()a\*/".,"edants")||{})[c)t|| ]||[]).s);ce(0),e=!crexclusive&&!c.nn tsp &&,g=Ain opp+	tons ()s);ce.
resaaa weird ,0);g[0t=c,c)curv,
+Targp	=*/".ifor(( " h=0,i=d.ters ="h<i;h++){( " j=d[h];if( ||cpnn tsp &&_re: funcj.nn tsp &&)){c.handler=j.handler,c.data=j.data,c.handleObj=j;y wok=j.handler/	iflye*/".,g);k!==b&&(
.r{sust=k,k===!1&&(
.predantDe justi ,crstopPropag()Ext()))+de(c)isImmedi()ePropag()ExtStoif d())brd(k}}rvery.i
.r{sust},props:"altKey attrChange attr	if  bubyles bu ton 
rnc(ltyle+charCsde cliantX cliantY ctrlKey curv,
+Targp	 data det\il edantPhaseuaromEfor(;  handler keyCsde layerX layerY met\Key newVe;ua hffsp	X hffsp	Y pageX pageY predVe;ua r{l()edN.no r{l()edTargp	 screenX screenY shif
Key srcEfor(;  targp	 toEfor(;  view wheelDelta w
-ch".c );t(  "),fix:/<script\a){if(a[frexpando]) dataTya;( " d=a;a=frEdant\d);for(( "  =*/"..props.ters =,g;e;)g=*/"..props[--e],a[g]=d[g];a.targp	||(a.targp	=a.srcEfor(; ||c),a.targp	pnsde || ===3&&(aptargp	=a.targp	ppav,
+N.no),!a.r{l()edTargp	&&apfromEfor(; &&(apr{l()edTargp	=apfromEfor(; ===a.targp	?a.toEfor(; :apfromEfor(; );if(a.pageX==});
&&apcliantX!=});
){( " h=a.targp	pownerDocweird||c,i=h.docweirdEfor(; ,j=h.body;a.pageX=apcliantX+(i&&i.s,
ollLef
||j&&j:s,
ollLef
||0)-(i&&i.cliantLef
||j&&j:cliantLef
||0),a.pageY=apcliantY+(i&&i.s,
ollTop||j&&j:s,
ollTop||0)-(i&&i.cliantTop||j&&j:cliantTop||0)}a.w
-ch==});
&&(a.cha	Csde!=t{
 ||a.keyCsde!=});
)&&(a.w
-ch=a.cha	Csde!=t{
 ?a.cha	Csde:a.keyCsde),!a.met\Key&&apctrlKey&&(a.met\Key=apctrlKey),!a.w
-ch&&apbu ton!==b&&(a.w
-ch=a.bu ton&1?1:a.bu ton&2?3:a.bu ton&4?2:0)+ dataTya},guid:1e8,p+	xy:f.p+	xy,"autial:{-	ady:{se	up:f.b ==R	ady, fardown:frnoop},liv+:{ads:/<script\a){fr	dantradd\*/".,O(apopug || ,a.select r),feext === },a,{handler:N,guid:a.handler.guid}))},==g (j:/<script\a){fr	dantr==g (ju*/".,O(apopug || ,a.select r),a)}},befor&unload:{se	up:f<script\a,b,c){f.heWifdow(t/".)&&(*/"..onbefor&unload=c)}, fardown:f<script\a,b){*/"..onbefor&unload===b&&(*/"..onbefor&unload=});
)}}}},fr==g (jEdant=cp==g (jEdantLispnner?f<script\a,b,c){ap==g (jEdantLispnner&&ap==g (jEdantLispnner(b,c,!1)}:/<script\a,b,c){apdet\//Edant&&apdet\//Edant("on"+b,c)},frEdant=/<script\a,b){if(!*/"..predantDe just) f
-	jitew f.Edant\a,b)+a&&a.t|| ?(*/"..opug(nalEdant=a,*/"..ns (=aens (,*/"..isDe justPredant d=a.de justPredant d||a. f
-	jVe;ua===!1||a.gp	PredantDe just&&a.gp	PredantDe justi ?F:E):*/"..t|| =a,b&&f	 xt ===*/".,b),*/"..timeStamp=f.now(),*/".[frexpando]=!0},f.Edant.p+	tons (={predantDe just:/<script\a{*/"..isDe justPredant d=F;y woa=*/"..opug(nalEdant;!a||ia.p+edantDe just?a.p+edantDe just():a. f
-	jVe;ua=!1)},stopPropag()Ext:/<script\a{*/"..isPropag()ExtStoif d=F;y woa=*/"..opug(nalEdant;!a||ia.stopPropag()Ext&&a.stopPropag()Ext(),apcrnc(lBubyle=!0)},stopImmedi()ePropag()Ext:/<script\a{*/"..isImmedi()ePropag()ExtStoif d=F,*/"..stopPropag()Ext()},isDe justPredant d:E,isPropag()ExtStoif d:E,isImmedi()ePropag()ExtStoif d:E};y woG=/<script\a){( " b=a.r{l()edTargp	;a.ns (=aedata;nry{if(b&&b!==c&&!bppav,
+N.no) dataT;w
-		(b&&b!==t/".)b=b.pav,
+N.no;b!==t/".&&f	 dantrhandle.	iflye*/".,aa weird )}c// f(d){}},H=/<script\a){a.ns (=aedata,f.edantrhandle.	iflye*/".,aa weird )};fr	\//,{mouseeOre):"mouse (jr",mouseluave:"mouse u
]},f<script\a,b){fredantr"autial[a]={se	up:f<script\c){fr	dantradd\*/".,b,
&&c	"elect r?H:G,a)}, fardown:f<script\a){fr	dantr==g (ju*/".,b,a&&a."elect r?H:G)}}}),fesupf su.submitBubyles||(fredantr"autial.submit={se	up:f<script\a,b){if(!f	nsde	if (*/".,"form"))fr	dantradd\*/".,"clickr"autialSubmit",/<script\a){( " b=a.targp	,c=b.*|| ;(c=== 	ubmit"||c=== image")&&f(b).closfunc"form")	ters =&&L( 	ubmit",*/".,aa weird )}),fr	dantradd\*/".,"keypressr"autialSubmit",/<script\a){( " b=a.targp	,c=b.*|| ;(c=== *ext"||c=== password")&&f(b).closfunc"form")	ters =&&a.keyCsde===13&&L( 	ubmit",*/".,aa weird )})+" + ervery.!1}, fardown:f<script\a){fr	dantr==g (ju*/".,"r"autialSubmit")}});de(!fesupf su.changeBubyles){( " I,J=/<script\a){( " b=a.ns (,c=a.ve;ua;b==="radio"||b==="checkbox"?c=apchecked:b==="select-multipsi"?c=apselectedI?):[>-1?f.map,aeopttocs,/<script\a){ dataTyapselected}))join("-"):"":f	nsde	if (a,"select")&&(c=a.selectedI?):[t+ dataTy
},K=f<script\c){( " d=crtargp	,e,g;de(!!z: funcdpnsde	if )&&!d.-	adOnly){e=f	_d()a\d,"_change_d()a"),g=J(d),(c)t|| !=="focws u
]||d.t|| !=="radio")&&fr_d()a\d,"_change_d()a",g);if( ===b||g===o) dataT;de(e!=});
||g)c)t|| ="change",cpliv+Fi+ed=b,f.edantrt	iggnd\c,aa weird [1t,d)}};f.edantr"autial.change={filre)s:{focws u
:K,befor&d	\/tiv()e:K,click:/<script\a){( " b=a.targp	,c=f	nsde	if (b,"inpu
])?b.*|| :"";(c=== radio"||c==="checkbox"||frnsde	if (b,"select"))&&K.
resa*/".,a)},keydown:f<script\a){( " b=a.targp	,c=f	nsde	if (b,"inpu
])?b.*|| :"";(a.keyCsde===13&&!f	nsde	if (b,"*extav,a")||a.keyCsde===32&&(c==="checkbox"||c=== radio")||c=== select-multipsi")&&K.
resa*/".,a)},befor&\/tiv()e:f<script\a){( " b=a.targp	;fr_d()a\b,"_change_d()a",J(b))}},se	up:f<script\a,b){if(*/"..t|| === f le")rvery.!1;for(( " cei
-I)fr	dantradd\*/".,c+"r"autialChange",I[c])+ dataTyz: funcn/"..nsde	if )}, fardown:f<script\a){fr	dantr==g (ju*/".,"r"autialChange")+ dataTyz: funcn/"..nsde	if )}},I=fredantr"autial.change.filre)s,I.focws=I.befor&\/tiv()e}fesupf su.focwsinBubyles||fr	\//,{focws:"focwsin",blur:"focws u
]},f<script\a,b){flProtocoe\a){( " c=f)	dantrfix(a);c.t|| =b,cropug(nalEdant={},f.edantrt	iggnd\c,});
,crtargp	 ,crisDe justPredant d()&&a.p+edantDe just()}( " d=0;f.edantr"autial[b]={se	up:f<script\){d++===0&&c)addEdantLispnner(a,e,!0)}, fardown:f<script\){--d===0&&c)==g (jEdantLispnner(a,e,!0)}}}),fee\//,[ b ==","cne"],f<script\a,c){frfn[c]=f<script\a,d,o){( " g
if(ns (= 1a== h ) {
]){for(( " hry.ca)n/".[c](h,d,a[h],o);rvery.i*/".}if(aa weird .ters ====2||d===!1)e=d,d=b;c=== hni"?(g=/<script\a){f(t/".).unb ==(a,g); dataTyen	iflye*/".,aa weird )},g.guid=e.guid||f	tuid++):g=e;de(a=== 'tload"&&c!== hni")*/"..one\a,d,o);" + efor(( " i=0,j=*/"..ters ="i<j	i++)fr	dantradd\*/".[i],a,g,d)+ dataTy*/".}}),fent.ext ==({unb ==:f<script\a,b){if(*s (= 1a== h ) {
]&&!a.p+edantDe just)for(( " cei
-a)n/"..unb ==(c,a[c])+" + efor(( " d=0,e=*/"..ters ="d<e;d++)fr	dantr==g (ju*/".[d],a,b)+ dataTy*/".},desig()e:f<script\a,b,c,d){ dataTy*/"..liv+\b,c,d,a)},'t gsig()e:f<script\a,b,c){ dataTyaa weird .ters ====0?*/".)unb ==("liv+"):*/"..di+\b,});
,c,a)}, 	iggnd:/<script\a,b){ dataTy*/"..e\//,/<script\){f	edantrt	iggnd\a,b,t/".)})}, 	iggndHandler:f<script\a,b){if(*/".[0t)rvery.if	edantrt	iggnd\a,b,t/".[0t,!0)}, ogglj:f<script\a){( " b=aa weird ,c=a.guid||f	tuid++,d=0,e=f<script\c){( " e=(f	d()a\*/".,"ladeTogglj"+a.guid)||0)%d;frd()a\*/".,"ladeTogglj"+a.guid,e+1),c.predantDe justi ; dataTyb[e]n	iflye*/".,aa weird )||!1};e.guid=c;w
-		(d<b.ters =)b[d++].guid=c; dataTy*/"..click(e)},h (jr:/<script\a,b){ dataTy*/"..mouseeOre)(a).mouseluave(b||a)}});( " M={focws:"focwsin",blur:"focws u
],mouseeOre):"mouse (jr",mouseluave:"mouse u
]};fee\//,[ liv+","di+"],f<script\a,c){frfn[c]=f<script\a,d,o,g){( " h,i=0,j,k l,m=g||*/"..select r,n=g?*/".:f(*/"..coypeuc)+if(*s (= 1a== h ) {
]&&!a.p+edantDe just){for(( " oei
-a)n[c](o,d,a[o],m);rvery.i*/".}if(c=== di+"&&!a&&g&&g.cha	At(0)=== ."){n)unb ==(g);rvery.i*/".}if(d===!1||f.isF	serialid))e=d||E,d=b;a=\a||""t.c );t(  ")	w
-		((h=a[i++])!=});
){j=y.e ec(h),k= ",j&&(k=j[0t,h=h.-	n" && y, "))	if(h=== h (jr]){a.push("mouseeOre)"+k,"mouseluave"+k);coypinue}l=h,M[h]?(a.push(M[h]+k),h=h+k):h=(M[h]||h)+k;if(c=== liv+")for(( " p=0,q=n.ters ="p<q;p++)fr	dantradd\n[p], liv+."+O(h,m),{data:d,select r:m,handler:e,opug || :h,opugHandler:e,p+e || :l})+" + en)unb ==("liv+."+O(h,m),e)}rvery.i*/".}}),fee\//,"blur focws focwsin focws u
 loaderve= 0 s,
oll 'tload click dblclick mousedown mouseup mouseg (j mouse (jr mouse u
 mouseeOre) mouseluave+change select 	ubmit keydown keypress keyup  rr//".c );t(  "),f<script\a,b){frfn[b]=f<script\a,c){c==});
&&(c=a,a=});
); dataTyaa weird .ters =>0?*/".)b ==(b,a,c):*/"..t	iggnd\b)},frattrFn&&(fpattrFn[b]=!0)}),/<script\){flProtocou\a,b,c,d,e,f){for(( " g=0,h=d.ters ="g<h;g++){( " i=d[g];if(i){( " j=!1;i=i[a];w
-		(i){if(i.e= 
/cha===c){j=d[i.e= se	];brd(k}if(i.nsde || ===1){f||(i.e= 
/cha=c,i.e= se	=g)+if(*s (= 1b!= 			if ]){if(i===ba{j=!0;brd(k}}" + ede(k.filre)(b,oi]).ters =>0a{j=i;brd(k}}i=i[a]}d[g]=j}}}flProtocot\a,b,c,d,e,f){for(( " g=0,h=d.ters ="g<h;g++){( " i=d[g];if(i){( " j=!1;i=i[a];w
-		(i){if(i.e= 
/cha===c){j=d[i.e= se	];brd(k}i.nsde || ===1&&!f&&(i.e= 
/cha=c,i.e= se	=g)+if(i.nsde	if .*oLowerCase(t===ba{j=i;brd(k}i=i[a]}d[g]=j}}}y woa=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=O ) {
pp+	tons ()toS		if ,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0t.sort(/<script\){h=!1;rvery. 0});y wok=/<script\b,d,f,g){a=f||[],d=d||c;( " h=d;de(d.nsde || !==1&&d.nsde || !==9)rvery.[];if(!b||ns (= 1b!= 			if ])rvery.if;( " i,j,n,o,q,r,s,t,u=!0,w=k	isXML(d),x=[],y=b;do{a.e ec("]),i=a.e ec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];brd(k}}}w
-		(i);if(x.ters =>1&&m.e ec(b))if(x.ters ====2&&l.r{l()iv+[x[0t])j=v(x[0t+x[1t,d);" + {j=l.r{l()iv+[x[0t]?[d]:k(x.shif
(),d)	w
-		(x.ters =)b=x.shif
(),l.r{l()iv+[b]&&(b+=x.shif
()),j=v\b,j)}" + {!g&&x.ters =>1&&dpnsde || ===9&&!w&&l.m// f.ID: funcx[0t)&&!l.m// f.ID: funcx[x.ters =-1t)&&(q=k.f ==(x.shif
(),d,w),d=qrexpr?k.filre)(qrexpr,q.se	)[0t:q.se	[0t);if(d){q=g?{expr:x.pop(),se
:p(g)}:k.f ==(x.pop(),x.ters ====1&&(x[0t=== ~"||x[0t=== +")&&d.pav,
+N.no?d.pav,
+N.no:d,w),j=qrexpr?k.filre)(qrexpr,q.se	):q.se	,x.ters =>0?n=p(j):u=!1;w
-		(x.ters =)r=x.pop(),s=r,l.r{l()iv+[r]?s=x.pop():r= ",s==});
&&(s=d),l.r{l()iv+[r](n,s,w)}" + en=x=[]}n||(n=j),n||kp rr//ur||b)	if(o.
resan)=== [h ) {
 Ain o]")if(!u)frpushn	iflyef,n)+" + ede(d&&dpnsde || ===1)for(t=0;n[t]!=});
;t++)n[t]&&(n[t]===!0||n[t].nsde || ===1&&k.coypains(d,n[t]))&&f.push(j[t])+" + efor(t=0;n[t]!=});
;t++)n[t]&&n[t].nsde || ===1&&f.push(j[t])+" + ep(n,f);o&&(k(o,h,f,g),k)uniqueSort(/))+ dataTyf};k)uniqueSort=/<script\a){de(r){g=h,a.sort(r)+if(g)for(( " b=1;b<a.ters =;b++)a[b]===a[b-1t&&a." );ce(b--,1)} dataTya},k.m// fes=/<script\a,b){ dataTyk\a,});
,});
,b)},k.m// fesSelect r=/<script\a,b){ dataTyk\b,});
,});
,[a]).ters =>0},k.f ===f<script\a,b,c){( " d;if(!a)rvery.[];for(( "  =0,f=l.order.ters =;e<f;e++){y wog,==l.order[e]	if(g=l.leftM// f[h].e ec(a)){( " j=g[1t;g." );ce(1,1);if(j.sub			(j.ters =-1)!=="\\]){g[1t=(g[1t||""))-	n" && i,""),d=l.f ==[h]ig,b,c);if(d!=});
){a=ap-	n" && l.m// f[h],"");brd(k}}}}d||(d=*s (= 1b.ge
Efor(; sByTag	if != 't get/se"?b.ge
Efor(; sByTag	if ("*"):[]); dataT{se
:d,expr:a}},k.f lre)=f<script\a,c,d,o){( " f,g,h=a,i=[],j=c,m=c&&c[0t&&k	isXML(c[0t);w
-		(a&&c)ters =){for(( " nei
-l.f lre))if((f=l.leftM// f[n].e ec(a))!=});
&&f[2]){( " o,p,q=l.f lre)[n],)=f[1t;g=!1,f." );ce(1,1);if(r.sub			(r.ters =-1)==="\\])coypinue;j===i&&(i=[t);if(l.p+eF lre)[n]){a=l.p+eF lre)[n]ef,j,d,i,e,m);de(!f)g=o=!0;" + ede(f===!0)coypinue}if(f)for(( " s=0;(p=j[s])!=});
;s++)if(p){o=q(p,f,s,j);( " t=e^!!o;d&&o!=t{
 ?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=ap-	n" && l.m// f[n],"");de(!g)rvery.[];brd(k}}de(a===h)if(g==});
)kp rr//ua)+" + ebrd(k+h=a} dataTyj},k. rr//=/<script\a){throw"Syypax  rr//, 'trecogn= 0d expressExt: "+a};y wol=k.select rs={order:["ID","NAME","TAG"],m// f:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[on t=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|lade|f(dde)-c
-	d(?:\(\s*(	dan|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|le|f(dde|lade|	dan|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftM// f:{},attrMap:{"class":"class	if ","for":"htmlFor"},attrHandle:{href:/<script\a){ dataTyapgp	Attribu f	"href")},*|| :/<script\a){ dataTyapgp	Attribu f	"t	( ")}},r{l()iv+:{"+":/<script\a,b){( " c=ns (= 1b== 			if ],d=c&&!j: funcb),e=c&&!d;d&&(b=b.*oLowerCase(t);for(( " f=0,g=a.ters =,=;f<g;f++)if(h=a[f]){w
-		((h=h.p+ediousSiblif )&&h.nsde || !==1);a[f]=e||h&&h.nsde	if .*oLowerCase(t===b?=||!1:h===b}e&&k	filre)(b,a,!0)},">":/<script\a,b){( " c,d=*s (= 1b== 			if ], =0,f=a.ters =;if(d&&!j: funcb)){b=b.toLowerCase(t;for("e<f;e++){c=a[(];de(c){( " g=c.pav,
+N.no;a[(]=g.nsde	if .*oLowerCase(t===b?g:!1}}}" + {for("e<f;e++)c=a[(],c&&(a[(]=d?c.pav,
+N.no:c.pav,
+N.no===ba;d&&k	filre)(b,a,!0)}},"":f<script\a,b,c){( " e,f=d++,g=u;*s (= 1b== 			if ]&&!j: funcb)&&(b=b.*oLowerCase(t, =b,g=t),g("pav,
+N.no",b,f,a,e,c)}, ~":f<script\a,b,c){( " e,f=d++,g=u;*s (= 1b== 			if ]&&!j: funcb)&&(b=b.*oLowerCase(t, =b,g=t),g("p+ediousSiblif ",b,f,a,e,c)}},f ==:{ID:/<script\a,b,c){if(*s (= 1b.ge
Efor(; ById!= 't get/se"&&!c){( " d=b.ge
Efor(; ById(a[1]); dataTyd&&d.pav,
+N.no?[d]:[]}},NAME:f<script\a,b){if(*s (= 1b.ge
Efor(; sBy	if != 't get/se"){( " c=[],d=b.ge
Efor(; sBy	if (a[1]);for(( "  =0,f=d.ters =;e<f;e++)d[e]ngp	Attribu f	"on t")===a[1]&&c)push(d[e])+ dataTy
.ters ====0?});
:
}},TAG:f<script\a,b){if(*s (= 1b.ge
Efor(; sByTag	if != 't get/se")rvery.ib.ge
Efor(; sByTag	if (a[1])}},preF lre):{CLASS:f<script\a,b,c,d,e,f){a=" "+a[1].-	n" && i,"")+" ";if(f) dataTya;for(( " g=0,h;(h=b[g])!=});
;g++)h&&(e^(h.class	if &&(" "+h.class	if +" "))-	n" && /[\t\n\r]/g,  "))h?):[Of(a)>=0)?c||d.push(h):c&&(b[g]=!1));rvery.!1},ID:/<script\a){rvery.ia[1].-	n" && i,"")},TAG:f<script\a,b){rvery.ia[1].-	n" && i,"").*oLowerCase(t},CHILD:/<script\a){if(a[1t=== nth]){a[2]||kp rr//ua[0]),a[2]=a[2])-	n" && /^\+|\s*/g,"");( " b=/(-?)(\d*)(?:n([+\-]?\d*))?/.e ec(a[2]=== edan"&&"2n]||a[2]=== odd"&&"2n+1"||!/\D/: funca[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}" + ea[2]&&k	 rr//ua[0]);a[0]=d+++ dataTya},ATTR:f<script\a,b,c,d,e,f){( " g=a[1t=a[1].-	n" && i,"");!f&&l.attrMap[g]&&(a[1t=l.attrMap[g]),a[4t=(a[4t||a[5t||""))-	n" && i,""),a[2]=== ~="&&(a[4t=" "+a[4]+" ")+ dataTya},PSEUDO:/<script\b,c,d,e,f){if(b[1t=== not")if((a.e ec(b[3])|| ").ters =>1||/^\w/: funcb[3]))b[3]=kcb[3],});
,});
,c);" + {( " g=k	filre)(b[3],c,d,!0^fa;d||e.pushn	iflyee,g); dataT!1}" + ede(l.m// f.POS: funcb[0])||l.m// f.CHILD: funcb[0]))rvery.!0;rvery.yb},POS:/<script\a){a.unshif
(!0)+ dataTya}},f lre)s:{entyled:/<script\a){ dataTyapdistyled===!1&&a.t|| !=="hidden"},distyled:/<script\a){ dataTyapdistyled===!0},checked:/<script\a){ dataTyapchecked===!0},selected:/<script\a){a.pav,
+N.no&&a.pav,
+N.no.selectedI?):[+ dataTyapselected===!0},pav,
+:/<script\a){ dataT!!aef(ddeC
-	d},empty:/<script\a){ dataT!aef(ddeC
-	d},has:f<script\a,b,c){ dataT!!k(c[3t,a).ters =},header:f<script\a){rvery./h\d/i: funcapnsde	if )},*ext:f<script\a){( " b=a.gp	Attribu f	"t	( "),c=a.*|| ; dataTyapnsde	if .*oLowerCase(t==="inpu
]&&"*ext"===c&&(b===c||b===});
)},radio:/<script\a){ dataTyapnsde	if .*oLowerCase(t==="inpu
]&&"radio"===a.t|| },checkbox:/<script\a){ dataTyapnsde	if .*oLowerCase(t==="inpu
]&&"checkbox"===a.t|| },f le:/<script\a){ dataTyapnsde	if .*oLowerCase(t==="inpu
]&&"f le"===a.t|| },password:/<script\a){ dataTyapnsde	if .*oLowerCase(t==="inpu
]&&"password"===a.t|| },submit:f<script\a){( " b=a.nsde	if .*oLowerCase(t+ dataT(b==="inpu
]||b==="bu ton")&&"	ubmit"===a.t|| },image:/<script\a){ dataTyapnsde	if .*oLowerCase(t==="inpu
]&&"image"===a.t|| },rese
:/<script\a){( " b=a.nsde	if .*oLowerCase(t+ dataT(b==="inpu
]||b==="bu ton")&&"rese
"===a.t|| },bu ton:/<script\a){( " b=a.nsde	if .*oLowerCase(t+ dataT b==="inpu
]&&"bu ton"===a.t|| ||b==="bu ton"},inpu
:f<script\a){rvery./inpu
|select|*extav,a|bu ton/i: funcapnsde	if )},focws:/<script\a){rvery.ia===aeownerDocweird.\/tiveEfor(; }},se	Filre)s:{f(dde:f<script\a,b){rvery.ib===0},lade:f<script\a,b,c,d){ dataTyb===d.ters =-1},edan:f<script\a,b){rvery.ib%2===0},od=:f<script\a,b){rvery.ib%2===1},l
:/<script\a,b,c){rvery.ib<c[3]-0},g
:/<script\a,b,c){rvery.ib>c[3]-0},nth:/<script\a,b,c){rvery.ic[3]-0===b},eq:/<script\a,b,c){rvery.ic[3]-0===b}},f lre):{PSEUDO:/<script\a,b,c,d){( "  =b[1t,f=l.f lre)s[(];de(f)rvery.if(a,c,b,d);if( ==="coypains")rvery.(a.*extCTypeOr||a.innerText||kpgp	Text([a])|| ").h?):[Of(b[3])>=0;if( ==="not"){( " g=b[3]ifor(( " h=0,i=g.ters ="h<i;h++)if(g[h]===a)rvery.!1;rvery.!0}k	 rr//uet},CHILD:/<script\a,b){( " c=b[1t,d=a;swi/ f(c){case"only":case"f(dde":w
-		(d=d.p+ediousSiblif )de(d.nsde || ===1)rvery.!1;if(c=== f(dde")rvery.!0;d=a;case"lade":w
-		(d=d.nextSiblif )de(d.nsde || ===1)rvery.!1;rvery.!0;case"nth]:( "  =b[2t,f=b[3]iif( ===1&&f===0)rvery.!0;( " g=b[0t,h=a.pav,
+N.no;if(h&&(h.e= 
/cha!==g||!apnsdeI?):[t){( " i=0ifor(d=h.f(ddeC
-	d;d;d=d.nextSiblif )d.nsde || ===1&&(d.nsdeI?):[=++i);h.e= 
/cha=g}( " j=apnsdeI?):[-f; dataTye===0?j===0:j%e===0&&j/e>=0}},ID:/<script\a,b){ dataTyapnsde || ===1&&a.gp	Attribu f	"id")===b},TAG:f<script\a,b){rvery.ib==="*"&&a.nsde || ===1||apnsde	if .*oLowerCase(t===b},CLASS:f<script\a,b){rvery.(" "+(a.class	if ||a.gp	Attribu f	"class"))+  "))h?):[Of(b)>-1},ATTR:f<script\a,b){( " c=b[1t,d=l.attrHandle[c]?l.attrHandle[c]\a):a[c]!=t{
 ?a[c]:a.gp	Attribu f	c),e=d+"",f=b[2t,g=b[4]+ dataTyd==t{
 ?f==="!= :f==="="? ===g:f==="*="? )h?):[Of(g)>=0:f==="~="?(" "+e+  "))h?):[Of(g)>=0:g?f==="!= ?a!==g:f==="^="? )h?):[Of(g)===0:f==="$="? )sub			(e.lers =-g.ters =)===g:f==="|="? ===g||e.sub			(0,g.ters =+1)===g+"-":!1:e&&d!==!1},POS:/<script\a,b,c,d){( "  =b[2t,f=l.se	Filre)s[(];de(f)rvery.if(a,c,b,d)}}},m=l.m// f.POS,n=/<script\a,b){ dataT"\\]+(b-0+1)};for(( " oei
-l.m// f)l.m// f[o]=}ew RegExp(l.m// f[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftM// f[o]=}ew RegExp(/(^(?:.|\r|\n)*?)/.source+l.m// f[o].source)-	n" && /\\(\d+)/g,n));( " p=/<script\a,b){a=Ain opp+	tons ()s);ce.
resaa,0);if(b){b.pushn	iflyeb,a);rvery.ib} dataTya};nry{Ain opp+	tons ()s);ce.
resac.docweirdEfor(; .c
-	dN.no ,0)[0t.nsde || }c// f(q){p=/<script\a,b){( " c=0,d=b||[]	if(o.
resaa)=== [h ) {
 Ain o]")Ain opp+	tons ()pushn	iflyed,a);" + ede(*s (= 1a.ters === number])for(( " f=a.ters =;c<f;c++)d.push(a[c])+" + efor(;a[c];c++)d.push(a[c])+ dataTyd}}y wor,s;c.docweirdEfor(; .compav,DocweirdPosiript?r=/<script\a,b){de(a===b){g=!0;rvery.y0}if(!a.compav,DocweirdPosiript||!b.compav,DocweirdPosiript) dataTyapcompav,DocweirdPosiript?-1:1; dataTyapcompav,DocweirdPosiriptcb)&4?-1:1}:(r=/<script\a,b){de(a===b){g=!0;rvery.y0}if(a.sourceI?):[&&b.sourceI?):[) dataTyapsourceI?):[-b.sourceI?):[;y woc,d,e=[t,f=[t,h=a.pav,
+N.no,i=b.pav,
+N.no,j=h	if(h===i) dataT s\a,b)+if(!=)rvery.-1+if(!i) dataT 1;w
-		(j)e.unshif
(j),j=j.pav,
+N.no;j=i;w
-		(j)f.unshif
(j),j=j.pav,
+N.no;c=e.ters =,d=f	ters =;for(( " k=0ik<c&&k<d;k++)if(e[kt!==f[kt) dataT s\e[kt,f[kt);rvery.yk===c?s\a,f[kt,-1):s\e[kt,b,1)},s=f<script\a,b,c){de(a===b)rvery.ic;( " d=a.nextSiblif ;w
-		(d){if(d===b)rvery.-1+d=d.nextSiblif } dataTy1}),k.gp	Text=/<script\a){( " b="",c;for(( " d=0;a[d];d++)c=a[d],crnsde || ===3||crnsde || ===4?b+=cpnsdeVe;ua:c.nsde || !==8&&(b+=kpgp	Text(c.c
-	dN.no ));rvery.ib},/<script\){y woa=c.cv,ateEfor(; 	"div"),d="script]+(}ew Date)pgp	Time(t, =c.docweirdEfor(; ;a.innerHTML="<a on t='"+d+"'/>", )h?sertBefor&(a,e.f(ddeC
-	d),c.ge
Efor(; ById(d)&&(l.f ==.ID=f<script\a,c,d){if(*s (= 1c.ge
Efor(; ById!= 't get/se"&&!d){( "  =c.ge
Efor(; ById(a[1]); dataTye? )hd===a[1]||ns (= 1e.gp	Attribu fN.no!= 't get/se"&&e.gp	Attribu fN.no	"id")pnsdeVe;ua===a[1]?[e]:b:[]}},l.f lre).ID=f<script\a,b){( " c=ns (= 1a.gp	Attribu fN.no!= 't get/se"&&a.gp	Attribu fN.noi"id"); dataTyapnsde || ===1&&
&&c	nsdeVe;ua===b}),e)r{g (jC
-	d(at, =a=t{
 }(),/<script\){y woa=c.cv,ateEfor(; 	"div");a.	ifendC
-	d(c.cv,ateComr(; 	"")),a.ge
Efor(; sByTag	if ("*").ters =>0&&(l.f ==.TAG=f<script\a,b){( " c=b.ge
Efor(; sByTag	if (a[1]);if(a[1t=== *"){( " d=[];for(( "  =0;c[(];e++)c[e]nnsde || ===1&&d.push(c[e])+c=d}rvery.ic}),a.innerHTML="<a href='#'></a>",aef(ddeC
-	d&&ns (= 1aef(ddeC
-	d.gp	Attribu f!= 't get/se"&&a.f(ddeC
-	d.gp	Attribu f	"href")!=="#"&&(l.attrHandle.href=/<script\a){ dataTyapgp	Attribu f	"href",2)}),a=t{
 }(),c.q crySelect rA;
&&f<script\){y woa=k,b=c.cv,ateEfor(; 	"div"),d="__e= zl __";b.innerHTML="<p class='TEST'></p>";if(!b.q crySelect rA;
||b.q crySelect rA;
(".TEST").ters =!==0){k=/<script\b,e,f,g){e=e||c;de(!g&&!k	isXML(e)){( " h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.e ec(b);if(h&&(e.nsde || ===1||e.nsde || ===9)){if(h[1]) dataTyp(e.ge
Efor(; sByTag	if (b),f);if(h[2]&&l.f ==.CLASS&&e.gp	Efor(; sByClass	if ) dataTyp(e.ge
Efor(; sByClass	if (h[2]),f)}if(o.nsde || ===9){if(b==="body"&&e.body) dataTyp([e.body],f);if(h&&h[3]){( " i=e.ge
Efor(; ById(h[3])+if(!i||!ippav,
+N.no) dataTyp([],f);if(i)hd===h[3]) dataTyp([i],f)}nry{ dataTyp(e.q crySelect rA;
(b),f)}c// f(j){}}" + ede(ennsde || ===1&&ernsde	if .*oLowerCase(t!== h ) {
]){y wom=e,n=e.gp	Attribu f	"id"),o=t||d,q=e.pav,
+N.no,r=/^\s*[+~]/: funcb);n?o=o)-	n" && /'/g,"\\$&"):e.se	Attribu f	"id",o),r&&q&&(e=e.pav,
+N.no);nry{if(!r||q) dataTyp(e.q crySelect rA;
("[hd='"+o+"'] "+b),f)}c// f(s){}f(nally{t||mp==g (jAttribu f	"id")}}}rvery.ia\b,e,f,g)};for(( " eei
-a)k[(]=a[(];b=t{
 }}(),/<script\){y woa=c.docweirdEfor(; ,b=a.m// fesSelect r||a.mozM// fesSelect r||a.webkitM// fesSelect r||a.msM// fesSelect r;if(b){( " d=!b.cresac.cv,ateEfor(; 	"div"),"div"),a=!1;nry{b.
resac.docweirdEfor(; ,"[ fun!='']:e= zl ")}c// f(f){e=!0}k	m// fesSelect r=/<script\a,c){c=c)-	n" && /\=\s*([^'"\]]*)\s*\]/g,"='$1']");de(!k	isXML(a))nry{if(e||!l.m// f.PSEUDO. funcc)&&!/!=/. funcc)){( " f=b.
resaa,c);if(f||!d||a.docweird&&a.docweird.nsde || !==11)rvery.if}}c// f(g){}rvery.ik\c,});
,});
,[a]).ters =>0}}}(),/<script\){y woa=c.cv,ateEfor(; 	"div");a.innerHTML="<div class=' fun e'></div><div class=' fun'></div>";if(!!a.ge
Efor(; sByClass	if &&a.gp	Efor(; sByClass	if ("e").ters =!==0){a.tadeC
-	d.class	if ="e";de(a.gp	Efor(; sByClass	if ("e").ters ====1)rvery.;l.order." );ce(1,0,"CLASS"),l.f ==.CLASS=f<script\a,b,c){de(*s (= 1b.ge
Efor(; sByClass	if != 't get/se"&&!c)rvery.ib.ge
Efor(; sByClass	if (a[1])},a=t{
 }}(),c.docweirdEfor(; .coypains?k.coypains=/<script\a,b){ dataTya!==b&&(a.coypains?a.coypains	b):!0)}:c.docweirdEfor(; .compav,DocweirdPosiript?k.coypains=/<script\a,b){ dataT!!(apcompav,DocweirdPosiriptcb)&16)}:k.coypains=/<script\){ dataT!1},k.isXML=/<script\a){( " b=(a?apownerDocweird||a:0).docweirdEfor(; ;rvery.ib?brnsde	if !== HTML":!1};y wov=f<script\a,b){( " c,d=[],e="",f=b.nsde || ?[b]:b;w
-		(c=l.m// f.PSEUDO.e ec(a))e+=c[0t,a=ap-	n" && l.m// f.PSEUDO,"");a=l.r{l()iv+[a]?a+ *":a;for(( " g=0,h=f	ters =;g<h;g++)k\a,f[g],d)+ dataTyk	filre)(e,d)};f.f ===k,feexpr=k.select rs,feexpr[":"]=f	expr.filre)s,f)unique=k)uniqueSort,f)*ext=kpgp	Text,f	isXMLDoc=k	isXML,f	coypains=k.coypains}();y woP=/Until$/,Q=/^(?:pav,
+s|p+edUntil|p+edA;
)/,R=/,/,S=/^.[^:#\[\.,]*$/,T=Ain opp+	tons ()s);ce,U=f	expr.m// f.POS,V={c
-	dv,
:!0,cTypeOrs:!0,next:!0,p+ed:!0};fent.ext ==({f ==:f<script\a){( " b=*/".,c,d+if(*s (= 1a!= 			if ])rvery.if(a).f lre)(/<script\){for(c=0,d=b.ters ="c<d;c++)if(f.coypains	b[c],t/".))rvery.!0});y wo =*/"..pushStack	"","f ==",at,g,=,i;for(c=0,d=*/"..ters ="c<d;c++){g=e.ters =,f.f ==(a,*/".[c], );de(c>0)for(h=g;h<e.ters ="h++)for(i=0ii<g	i++)if(e[it===e[h]){e." );ce(h--,1);brd(k}}rvery.ie},has:f<script\a){( " b=fia)+ dataTy*/"..f lre)(/<script\){for(y woa=0,c=b.ters ="a<c;a++)if(f.coypains	*/".,b[a]))rvery.!0})},no
:/<script\a){ dataTy*/"..pushStack	Xe*/".,a,!1),"not",a)},f lre):/<script\a){ dataTy*/"..pushStack	Xe*/".,a,!0),"f lre)",a)},is:/<script\a){rvery.!!a&&(*s (= 1a== 			if ]?f.f lre)(a,*/".).ters =>0:*/"..f lre)(a).ters =>0a},closfun:f<script\a,b){( " c=[],d,o,g=*/".[0t;if(f	heAin o(a)){( " h,i,j={},k=1+if(g&&a.ters =){for(d=0,e=a.ters =;d<e;d++)i=a[d],j[it||(j[it=U. funci)?f(i,b||*/"..coypeuc):i);w
-		(g&&g.ownerDocweird&&g!==b){for(iei
-j)h=j[it,(h.jq cry?hph?):[(g)>-1:f(g)	he(h))&&c)push({select r:i,ps
-:g,level:k});g=g.pav,
+N.no,k++}}rvery.i
}y wol=U. funca)||ns (= 1a!= 			if ]?f(a,b||*/"..coypeuc):0ifor(d=0,e=*/"..ters ="d<e;d++){g=*/".[d];w
-		(g){de(l?lph?):[(g)>-1:f.f ==.m// fesSelect r(g,a)){c.push(g);brd(k}g=g.pav,
+N.no;de(!g||!gpownerDocweird||g===b||gnnsde || ===11)brd(k}}c=c)ters =>1?f)uniquecc):c; dataTy*/"..pushStack	c,"closfun",a)},i?):[:/<script\a){if(!a||*s (= 1a== 			if ])rvery.if	hnAin o(t/".[0t,a?f(a):*/"..pav,
+().c
-	dv,
())+ dataTyf	hnAin o(a.jq cry?a[0]:a,*/".)},ad=:f<script\a,b){( " c=ns (= 1a== 			if ]?f(a,b):fnmakeAin o(a&&a.nsde || ?[a]:a),d=f	mergju*/".pge
(),c); dataTy*/"..pushStack	W(c[0t)||W(d[0t)?=:f)uniquecd))},andSelf:/<script\){ dataTy*/"..add\*/"..p+edO ) {
)}}),fee\//,{pav,
+:/<script\a){( " b=a.pav,
+N.no;rvery.ib&&b.nsde || !==11?b:t{
 },pav,
+s:/<script\a){rvery.if.di)(a,"pav,
+N.no")},pav,
+sUntil:/<script\a,b,c){rvery.if.di)(a,"pav,
+N.no",c)},next:f<script\a){rvery.if.nth(a,2,"nextSiblif ")},p+ed:f<script\a){rvery.if.nth(a,2,"p+ediousSiblif ")},nextA;
:/<script\a){rvery.if.di)(a,"nextSiblif ")},p+edA;
:/<script\a){rvery.if.di)(a,"p+ediousSiblif ")},nextUntil:/<script\a,b,c){rvery.if.di)(a,"nextSiblif ",c)},p+edUntil:/<script\a,b,c){rvery.if.di)(a,"p+ediousSiblif ",c)},siblif s:/<script\a){rvery.if.siblif (a.pav,
+N.no.f(ddeC
-	d,a)},c
-	dv,
:/<script\a){rvery.if.siblif (a.f(ddeC
-	d)},cTypeOrs:f<script\a){rvery.if.nsde	if (a,"i=rn t")?a.coypantDocweird||a.coypantWifdow.docweird:fnmakeAin o(a.c
-	dN.no )}},f<script\a,b){frfn[a]=f<script\c,d){( "  =f.map,*/".,b,
),g=T.
resaaa weird );P. funca)||(d=c),d&&ns (= 1d== 			if ]&&( =f.f lre)(d,o)),e=*/"..ters =>1&&!V[a]?f)uniquece):e,(*/"..ters =>1||R: funcd))&&Q. funca)&&(e=e.+edarse(t); dataTy*/"..pushStack	e,a,g)join(","))}}),feext ==({f lre):/<script\a,b,c){c&&(a=":not("+a+ )"); dataTyb.ters ====1?f.f ==.m// fesSelect r(b[0t,a)?[b[0t]:[]:f.f ==.m// fes\a,b)},di):/<script\a,c,d){( "  =[t,g=a[c];w
-		(g&&g.nsde || !==9&&(d===b||gnnsde || !==1||!f(g)	he(d)))gnnsde || ===1&&erpush(g),g=g[c]+ dataTye},nth:/<script\a,b,c,d){b=b||1;( "  =0;for(;a;a=a[c])if(a.nsde || ===1&&++o===babrd(k+ dataTya},siblif :f<script\a,b){( " c=[];for(;a;a=a.nextSiblif )apnsde || ===1&&a!==b&&c.push(a)+ dataTyc}});( " Y=/ jQ cry\d+="(?:\d+|});
)"/g,Z=/^\s+/,$=/<(?!av,a|br|col|embed|hr|img|inpu
|lifk|met\|pavam)(([\w:]+)[^>]*)\/>/ig,_=/<([\w:]+)/,ba=/<tbody/i,bb=/<|&#?\w+;/,bc=/<(?:script|h ) {
|embed|opttoc|style)/i,bd=/checked\s*(?:[^=]|=\s*pchecked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={opttoc:[1,"<select multipsi='multipsi'>","</select>"],leg ==:[1,"<fieldset>","</fieldset>"],t/ea=:[1,"<ttyle>","</ttyle>"],tr:[2,"<ttyle><tbody>","</tbody></ttyle>"],t=:[3,"<ttyle><tbody><tr>","</tr></tbody></ttyle>"],col:[2,"<ttyle><tbody></tbody><colgroup>","</colgroup></ttyle>"],av,a:[1,"<map>","</map>"],_de just:[0,"",""]};bgeoptgroup=bgeopttoc,bg.tbody=bgetfoot=bgecolgroup=bgecapttoc=bget/ea=,bg.th=bgetd,frsupf su.htmlSerial= 0||(bge_de just=[1,"div<div>","</div>"]),fent.ext ==({*ext:f<script\a){if(f	heF<script\a)) dataTy*/"..e\//,/<script\b){( " c=f(t/".);c.text(a.
resa*/".,b,crtext()))})+if(*s (= 1a!= h ) {
]&&a!==b) dataTy*/"..empty().	ifend((t/".[0t&&n/".[0tpownerDocweird||c).cv,ateTextN.noia))+ dataTyf	text(*/".)},wrapA;
:/<script\a){if(f	heF<script\a)) dataTy*/"..e\//,/<script\b){f(t/".).wrapA;
(a.
resa*/".,b))})+if(*/".[0t){( " b=fia,n/".[0tpownerDocweird).eq(0).clone(!0)+n/".[0tppav,
+N.no&&b.h?sertBefor&(*/".[0t),b.map,/<script\){y woa=*/".iw
-		(aef(ddeC
-	d&&a.f(ddeC
-	d.nsde || ===1)a=a.f(ddeC
-	d; dataTya}).	ifend(*/".)} dataTy*/".},wrapInner:/<script\a){if(f	heF<script\a)) dataTy*/"..e\//,/<script\b){f(t/".).wrapInner(a.
resa*/".,b))})+ dataTy*/"..e\//,/<script\){( " b=fit/".),c=b.cTypeOrs();c.ters =?c.wrapA;
(a):b.	ifend(a)})},wrap:/<script\a){ dataTy*/"..e\//,/<script\){f(t/".).wrapA;
(a)})},unwrap:/<script\){ dataTy*/"..pav,
+().e\//,/<script\){f	nsde	if (*/".,"body")||f(t/".).-	n" &&With(*/"..c
-	dN.no )}).end()},aifend:/<script\){ dataTy*/"..domManipaaa weird ,!0,/<script\a){n/"..nsde || ===1&&*/"..aifendC
-	d(a)})},p+efend:/<script\){ dataTy*/"..domManipaaa weird ,!0,/<script\a){n/"..nsde || ===1&&*/"..h?sertBefor&(a,*/"..f ddeC
-	d)})},befor&:/<script\){if(*/".[0t&&n/".[0tppav,
+N.no) dataTy*/"..domManipaaa weird ,!1,/<script\a){n/"..pav,
+N.no.h?sertBefor&(a,*/".)})+if(aa weird .ters =){y woa=f(aa weird [0]);a)pushn	iflyea,*/"..noAin o(t); dataTy*/"..pushStack	a,"befor&",aa weird )}},afre):/<script\){if(*/".[0t&&n/".[0tppav,
+N.no) dataTy*/"..domManipaaa weird ,!1,/<script\a){n/"..pav,
+N.no.h?sertBefor&(a,*/"..nextSiblif )})+if(aa weird .ters =){y woa=*/"..pushStack	*/".,"afre)",aa weird );a)pushn	iflyea,f(aa weird [0]).noAin o(t); dataTya}},==g (j:/<script\a,b){for(y woc=0,d;(d=*/".[c])!=});
;c++)if(!a||frf lre)(a,[d]).ters =)!b&&dpnsde || ===1&&(fpcleanD()a\d.ge
Efor(; sByTag	if ("*")),fecleanD()a\[d])),d.pav,
+N.no&&d.pav,
+N.no)r{g (jC
-	d(d)+ dataTy*/".},empty:/<script\){for(y woa=0,b;(b=t/".[a])!=});
;a++){bpnsde || ===1&&fecleanD()a\b.ge
Efor(; sByTag	if ("*"));w
-		(b.f ddeC
-	d)b)r{g (jC
-	d(b.f ddeC
-	d)} dataTy*/".},clone:/<script\a,b){a=a==t{
 ?!1:a,b=b==t{
 ?a:b; dataTy*/"..map,/<script\){ dataTyf	clone(*/".,a,b)})},html:/<script\a){if(a===b) dataTy*/".[0t&&n/".[0tpnsde || ===1?n/".[0tpinnerHTMLp-	n" && Y,""):t{
 +if(*s (= 1a== 			if ]&&!bc. funca)&&(frsupf su.leadif Whittsp &&||!Z. funca))&&!bg[(_.e ec(a)||["",""])[1].*oLowerCase(t]){a=ap-	n" && $,"<$1></$2>");nry{for(y woc=0,d=*/"..ters ="c<d;c++)*/".[c]pnsde || ===1&&(fpcleanD()a\*/".[c]pge
Efor(; sByTag	if ("*")),*/".[c]pinnerHTML=a)}c// f(e){n/"..empty().	ifend(a)}}" + ef	heF<script\a)?*/"..e\//,/<script\b){( " c=f(t/".);c.html(a.
resa*/".,b,crhtml()))}):n/"..empty().	ifend(a)+ dataTy*/".},-	n" &&With:/<script\a){if(*/".[0t&&n/".[0tppav,
+N.no){if(f	heF<script\a)) dataTy*/"..e\//,/<script\b){( " c=f(t/".),d=c.html();c.-	n" &&With(a.
resa*/".,b,d))})+ns (= 1a!= 			if ]&&(a=f(a).det\//(t); dataTy*/"..e\//,/<script\){( " b=*/"..nextSiblif ,c=n/"..pav,
+N.no;f(t/".).-	g (ju),b?f(b).befor&(a):e(c).	ifend(a)})} dataTy*/"..ters =?*/"..pushStack	f(f	heF<script\a)?a():a),"-	n" &&With",a):*/".},det\//:/<script\a){ dataTy*/"..==g (jua,!0)},domManip:/<script\a,c,d){( "  ,g,=,i,j=a[0],k=[];if(!fesupf su.checkClone&&aa weird .ters ====3&&ns (= 1j== 			if ]&&bd: funcj)) dataTy*/"..e\//,/<script\){f(t/".).domManipaa,c,d,!0)})+if(f	heF<script\j)) dataTy*/"..e\//,/<script\o){( " g=f(t/".);a[0]=j.
resa*/".,e,c?g.html():b),g.domManipaa,c,d)})+if(*/".[0t){i=j&&j:pav,
+N.no,fesupf su.pav,
+N.no&&i&&i.nsde || ===11&&i.c
-	dN.no .ters ====*/"..ters =?e={frageird:i}: =f.bu-	dFrageird(a,*/".,k),h=e.frageird,h.c
-	dN.no .ters ====1?g=h=h.f(ddeC
-	d:g=h.f(ddeC
-	d;if(g){c=c&&fensde	if (g,"tr");for(( " l=0,m=*/"..ters =,n=m-1;l<m;l++)d.
resac?bh(*/".[l],g):*/".[l],e.
/chatyle||m>1&&l<n?f	clone(h,!0,!0):h)}k	ters =&&fee\//,k,bn)}rvery.i*/".}}),febu-	dFrageird=f<script\a,b,d){( "  ,g,=,i=b&&b[0t?b[0tpownerDocweird||b[0t:c;a.ters ====1&&ns (= 1a[0t== 			if ]&&a[0t.ters =<512&&i===c&&a[0t.cha	At(0)=== <]&&!bc. funca[0t)&&(fesupf su.checkClone||!bd. funca[0t))&&(g=!0,h=f	frageird.[a[0t],h&&h!==1&&(e=h)),e||(&=i)cv,ateDocweirdFrageird(),feclean\a,i,e,d)),g&&(fefrageird.[a[0t]==?e:1); dataT{frageird:e,c/chatyle:g}},frfrageird.={},f.e\//,{	ifendTo:"	ifend",p+efendTo:"p+efend",h?sertBefor&:"befor&",h?sertAfre):"afre)",-	n" &&A;
:"-	n" &&With"},f<script\a,b){frfn[a]=f<script\c){( " d=[],e=f(
),g=*/"..ters ====1&&*/".[0tppav,
+N.no+if(g&&g.nsde || ===11&&g.c
-	dN.no .ters ====1&&erters ====1){+[b](*/".[0t)+ dataTy*/".}for(( " h=0,i=e.ters ="h<i;h++){( " j=(=>0?*/".)clone(!0):t/".).ge
();f(e[h])[b](j),d=d.cTyc//(j)} dataTy*/"..pushStack	d,a,e.select r)}}),feext ==({clone:/<script\a,b,c){( " d=apcloneN.noi!0), ,g,=+if((!fesupf su.noCloneEdant||!f	supf su.noCloneChecked)&&(a.nsde || ===1||apnsde || ===11)&&!f	isXMLDoc(a)){bj\a,dt, =bk(at,g=bk(d);for(h=0;e[h];++h)bj\e[h],g[h])}if(b){bi\a,dt;de(c){ =bk(at,g=bk(d);for(h=0;e[h];++h)bi\e[h],g[h])}} dataTyd},clean:/<script\a,b,d,o){( " g
b=b||c,*s (= 1b.cv,ateEfor(; == 't get/se"&&(b=b.ownerDocweird||
-b[0t&&b[0tpownerDocweird||c);( " h=[],i;for(( " j=0,k;(k=a[j])!=});
;j++){*s (= 1k== number]&&(k+="");de(!k)coypinue;if(*s (= 1k== 			if ])if(!bb. funck))k=b.cv,ateTextN.noik);" + {k=kp-	n" && $,"<$1></$2>");( " l=(_.e ec(k)||["",""])[1].*oLowerCase(t,m=bg[l]||bge_de just,n=m[0],o=b.cv,ateEfor(; 	"div");opinnerHTML=m[1]+k+m[2];w
-		(n--)o=o)tadeC
-	d;if(!fesupf su.tbody){( " p=ba. funck),q=l=== ttyle]&&!p?oef(ddeC
-	d&&oef(ddeC
-	d.c
-	dN.no :m[1t=== <ttyle>"&&!p?oec
-	dN.no :[];for(i=q.ters =-1;i>=0;--i)fensde	if (q[it,"tbody")&&!q[it.c
-	dN.no .ters =&&q[it.pav,
+N.no)r{g (jC
-	d(q[it)}!frsupf su.leadif Whittsp &&&&Z. funck)&&oeh?sertBefor&(b.cv,ateTextN.noiZ.e ec(k)[0t),oef(ddeC
-	d),k=oec
-	dN.no }y wor;if(!fesupf su.aifendC
ecked)de(k[0t&&ns (= 1(r=k.ters =)== number])for(i=0ii<r	i++)bm(k[i])+" + ebm(k);k.nsde || ?h.push(k):h=f	mergjuh,k)}if(d){g=/<script\a){ dataT!a.t|| ||be: funcapt|| )};for(j=0;h[j];j++)if(e&&fensde	if (h[j],"script])&&(!h[j].t|| ||h[j].t|| .*oLowerCase(t==="text/javascript]))erpush(h[j].pav,
+N.no?h[j].pav,
+N.no)r{g (jC
-	d(h[j]):h[j]);" + {if(h[j]pnsde || ===1){( " s=f	g-	n(h[j]pge
Efor(; sByTag	if ("script]),g);h." );cen	iflyeh,[j+1,0t.cTyc//(s))}d.aifendC
-	d(h[j])}} dataTyh},cleanD()a:/<script\a){( " b,c,d=f	c/cha,e=frexpando,g=f.edantr"autial,h=f	supf su. gsiteExpando;for(( " i=0,j;(j=a[i])!=});
;i++){if(j.nsde	if &&fensD()a[j.nsde	if .*oLowerCase(t])coypinue;c=j[frexpando];de(c){b=d[c]&&d[c][(];de(b&&b.edants){for(y wokei
-b.edants)g[k]?f)	dantr==g (juj,k):fr==g (jEdantuj,k,brhandle);brhandle&&(brhandle.ps
-=});
)}h? gsite j[frexpando]:jp==g (jAttribu f&&j:==g (jAttribu f	frexpando), gsite d[c]}}}});( " bo=/alpha\([^)]*\)/i,bp=/op &ity=([^)]*)/,bq=/-([a-z])/ig,br=/([A-Z]|^ms)/g,bs=/^-?\d+(?:px)?$/i,bt=/^-?\d/,bu=/^[+\-]=/,bv=/[^+\-\.\de]+/g,bw={posiript:"absolu f",visibility:"hidden",disn" y:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB,bC=/<script\a,b){ dataTyb.*oUiferCase(t};fent.css=/<script\a,c){if(aa weird .ters ====2&&c===b) dataTy*/".+ dataTyf	access(*/".,a,c,!0,/<script\a,c,d){ dataTyd!==b?f)style\a,c,d):frcss\a,c)})},frext ==({cssHooks:{op &ity:{gen:f<script\a,b){if(b){( " c=bz	a,"op &ity","op &ity")+ dataTyc===""?"1":c}rvery.ia)style.op &ity}}},cssNumber:{zI?):[:!0,foypWeight:!0,op &ity:!0,zoom:!0,lt/sHeight:!0,widows:!0,orphans:!0},cssProps:{"float":f	supf su.cssFloat?"cssFloat":"styleFloat"},style:/<script\a,c,d,o){if(!!a&&a.nsde || !==3&&a.nsde || !==8&&!!a)style){y wog,=,i=f	c/melCase(c),j=a)style,k=frcssHooks[i];c=frcssProps[it||i;if(d===b){if(k&&"gen"i
-k&&(g=kpgp	ua,!1,o))!==b) dataTyg+ dataTyj[c]}h=ns (= 1d	if(h=== number]&&isNaN(d)||d==t{
 )rvery.;h=== 			if ]&&bu: funcd)&&(d=+dp-	n" && bv,"")+pavseFloat(frcss\a,c))),h=== number]&&!frcssNumber[it&&(d+="px");de(!k||!("sen"i
-k)||(d=k.set\a,dt)!==b)nry{j[c]=d}c// f(l){}}},css:/<script\a,c,d){( "  ,g;c=frc/melCase(c),g=frcssHooks[c],c=frcssProps[c]||c,c==="cssFloat"&&(c="float")+if(g&&"gen"i
-g&&(e=gpgp	ua,!0,dt)!==b) dataTye;de(bz)rvery.ibz\a,c)},swap:/<script\a,b,c){( " d={};for(( " eei
-b)d[e]=a)style[(],a)style[(]=b[e];c.
resaa);for(eei
-b)a)style[(]=d[e]},c/melCase:/<script\a){ dataTyap-	n" && bq,bC)}}),fecurCSS=frcss,fee\//,[ height","width"],f<script\a,b){frcssHooks[b]={gen:f<script\a,c,d){( "  ;de(c){a.offsetWidth!==0? =bD\a,b,d):f	swap,a,bw,/<script\){ =bD\a,b,d)})+if(e<=0){e=bz	a,b,b),e==="0px"&&bB&&(e=bB	a,b,b));de(e!=});
) dataTye===""||e==="auto"?"0px":e}if(e<0||e==});
){e=a)style[b]+ dataTye===""||e==="auto"?"0px":e} dataTy*s (= 1e== 			if ]?e:e+"px"}},se	:f<script\a,b){if(!bs: funcb))rvery.ib
b=pavseFloat(b);if(b>=0)rvery. b+"px"}}}),fesupf su.op &ity||(frcssHooks.op &ity={gen:f<script\a,b){ dataTybp: func(b&&aecurv,
+Style?aecurv,
+Stylerf lre):a)style.f lre))|| ")?pavseFloat(RegExp.$1)/100+"":b?"1":""},se	:f<script\a,b){( " c=a)style,d=apcurv,
+Style;c.zoom=1;( "  =f	isNaN(b)?"":"alpha(op &ity="+b*100+")",g=d&&d.f lre)||crf lre)||"";crf lre)=bo: funcg)?gp-	n" && bo,o):g+" "+e}}),f,/<script\){f	supf su.relityleMaa inRight||(frcssHooks.maa inRight={gen:f<script\a,b){( " c;f	swap,a,{disn" y:"inlt/s-block"},/<script\){b?c=bz	a,"maa in-right","maa inRight"):c=a)style.maa inRight})+ dataTyc}})}),c.de justView&&c.de justViewpgp	Compu fdStyle&&(bA=/<script\a,c){( " d, ,g;c=c)-	n" && br,"-$1").*oLowerCase(t;de(!(e=aeownerDocweird.de justView))rvery.ib
if(g=epgp	Compu fdStyle\a,});
))d=gpgp	PropertyVe;ua(c),d===""&&!frcoypains	aeownerDocweird.docweirdEfor(; ,a)&&(d=f)style\a,c))+ dataTyd}),c.docweirdEfor(; .curv,
+Style&&(bB=f<script\a,b){( " c,d=a.curv,
+Style&&a.curv,
+Style[b],e=a.ruypimeStyle&&a.ruypimeStyle[b],f=a)style;!bs: funcd)&&bt: funcd)&&(c=f	teft,e&&(a.ruypimeStyle	teft=a.curv,
+Style	teft),feteft=b==="foypSize"?"1em":d||0,d=f	pixelLeft+"px",feteft=c,e&&(a.ruypimeStyle	teft=e))+ dataTyd===""?"auto":d}),bz=bA||bB,feexpr&&feexpr.filre)s&&(feexpr.filre)s.hidden=/<script\a){( " b=a.offsetWidth,c=a.offsetHeight+ dataT b===0&&c===0||!f	supf su.relityleHiddenOffsets&&(a.style.disn" y||frcss\a,"disn" y]))==="none"},feexpr.filre)s.visible=/<script\a){ dataT!feexpr.filre)s.hidden(a)});( " bE=/%20/g,bF=/\[\]$/,bG=/\r?\n/g,bH=/#.*$/,bI=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bJ=/^(?:color|date|datepime|email|hidden|month|number|password|range|search|tel|*ext|pime|url|week)$/i,bK=/^(?:about|app|app\-storage|.+\-ext =sExt|f le|widgp	 :$/,bL=/^(?:GET|HEAD)$/,bM=/^\/\//,bN=/\?/,bO=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bP=/^(?:select|*extav,a)/i,bQ=/\s+/,bR=/([?&])_=[^&]*/,bS=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bT=fent.load,bU={},bV={},bW,bX;nry{bW=e.href}c// f(bY){bW=c.cv,ateEfor(; 	"a"),bW.href="",bW=bW.href}bX=bS.e ec(bW.*oLowerCase(t)||[],fent.ext ==({load:f<script\a,c,d){if(*s (= 1a!= 			if ]&&bT)rvery.ibTn	iflye*/".,aa weird );de(!*/"..ters =) dataTy*/".+( "  =a)h?):[Of(" ")+if(e>=0){( " g=a)s);ce	e,a.ters =);a=a.s);ce	0,e)}( " h="GET";c&&(feheF<script\c)?(d=c,c=b):*s (= 1c== h ) {
]&&(c=f	pavam(c,frajaxSettif s.tradiriptal),h="POST"));( " i=*/".ifrajax({url:a,*|| :h,data || :"html",data:c,compsite:/<script\a,b,c){c=ap-	sponseText,a.isResolved()&&(a.done(/<script\a){c=a}),i.html(g?f("<div>").	ifend(c)-	n" && bO,"")).f ==(g):c)),d&&iee\//,d,[c,b,a])}}); dataTy*/".},serial= 0:/<script\){ dataTyf	pavam(*/"..serial= 0Ain o(t)},serial= 0Ain o:/<script\){ dataTy*/"..map,/<script\){ dataTy*/"..efor(; s?fnmakeAin o(*/"..efor(; s):*/".}).f lre)(/<script\){ dataTy*/"..nif &&!*/"..distyled&&(*/"..c
ecked||bP. funcn/"..nsde	if )||bJ. funcn/"..t|| ))}).map,/<script\a,b){( " c=f(t/".).val()+ dataTyc==t{
 ?});
:f	heAin o(c)?f.map,c,f<script\a,c){ dataT{nif :b.nif ,ve;ua:ap-	n" && bG,"\r\n")}}):{nif :b.nif ,ve;ua:cp-	n" && bG,"\r\n")}}).ge
()}}),fee\//,"ajaxStavt ajaxStop ajaxCompsite ajaxErr// ajaxSuccess ajaxSend".c );t(  "),f<script\a,b){frfn[b]=f<script\a){ dataTy*/"..b ==(b,a)}}),fee\//,["gen","post"],f<script\a,c){f[c]=f<script\a,d,o,g){f.isF	serialid)&&(g=g||e,e=d,d=b)+ dataTyf	ajax({*|| :c,url:a,data:d,success:e,data || :g})}}),feext ==({genScript:f<script\a,c){ dataTyf	gp	ua,b,c,"script])},gp	JSON:/<script\a,b,c){rvery.if.gp	ua,b,c,"json")},ajaxSetup:f<script\a,b){b?f)ext ==(!0,a,frajaxSettif s,b):(b=a,a=f)ext ==(!0,frajaxSettif s,b));for(( " c in{coypeuc:1,url:1})cei
-b?a[c]=b[c]:cei
-frajaxSettif s&&(a[c]=frajaxSettif s[c])+ dataTya},ajaxSettif s:{url:bW,isLocal:bK: funcbX[1]),global:!0,*|| :"GET",cTypeOr || :"	iflic//ipt/x-www-form-urlencsded",p+ocessD()a:!0,async:!0,accepts:{xml:"	iflic//ipt/xml, text/xml",html:"text/html",peuc:"text/n" in",json:"	iflic//ipt/json, text/javascript], *":"*/*"},cTypeOrs:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",peuc:"-	sponseText"},cTyverte)s:{"* text":apS		if ,"text html":!0,"text json":f	pavseJSON,"text xml":f	pavseXML}},ajaxPref lre):bZ(bU),ajaxTransf su:bZ(bV),ajax:f<script\a,c){f<script w\a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",vp-	adyStat =a?4:0;( " o,r,u,w=l?ca,d,v,l):b,x,y+if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.gp	R	sponseHeader("Last-Modified"))f)tadeModified[k]=x+if(y=v.gp	R	sponseHeader("Etag"))f)etag[k]=y}de(a===304)c="notmodified",o=!0;" + enry{ =cb(d,w),c="success",o=!0}c// f(z){c="pavser rr//",u=z}}" + {u=c;de(!c||a)c=" rr//",a<0&&(a=0)}(.status=a,(.statusText=c,o?hp-	solveWith(e,[r,c,v]):hp-	) {
With(e,[v,c,u]),(.statusC.noij),j=b,d&&g.t	iggnd\"ajax"+(o?"Success":"Err//"),[v,d,o?r:u]),ip-	solveWith(e,[v,c]),t&&(g.t	iggnd\"ajaxCompsite",[v,d]),--f.\/tive||fr	dantrt	iggnd\"ajaxStop"))}}*s (= 1a== h ) {
]&&(c=a,a=b),c=c||{};( " d=frajaxSetup({},c),e=d.coypeuc||d,g= !==d&&(e.nsde || ||eei
stanc(= 1f)?f(e):f		dant,h=f	Def rred(),i=f	_Def rred(),j=d.statusC.no||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={-	adyStat :0,se	RequfunHeader:f<script\a,b){if(!s){( " c=a)*oLowerCase(t;a=m[c]=m[c]||a,l[a]=b} dataTy*/".},gp	AllR	sponseHeaders:/<script\){ dataTys===2?n:t{
 },gp	R	sponseHeader:/<script\a){( " c;de(s===2){if(!o){o={};w
-		(c=bI.e ec(n))o[c[1].*oLowerCase(t]=c[2]}c=o[a)*oLowerCase(t]} dataTyc===b?});
:
},overrideMimeT|| :/<script\a){s||(d.mimeT|| =a)+ dataTy*/".},abort:f<script\a){a=a||"abort",p&&p.abort(at,w	0,a)+ dataTy*/".}};h.p+omise(v),(.success=v.done,(. rr//=v.fail,(.compsite=i.done,(.statusC.no=/<script\a){de(a){( " b;de(s<2)for(bei
-a)j[b]=[j[b],a[b]]+" + eb=a[(.status],(.thet\b,b)} dataTy*/".},d.url=((a||d.url)+""))-	n" && bH,""))-	n" && bM,bX[1]+"//"),d.data || s=f	t	im(d.data || ||"*").*oLowerCase(t.c );t(bQ),d.crossDom in==});
&&(r=bS.e ec(d.url.*oLowerCase(t),d.crossDom in=!(!r||r[1t==bX[1]&&r[2]==bX[2]&&(r[3t||(r[1t=== http:"?80:443))==cbX[3t||(bX[1]=== http:"?80:443)))),d.data&&d.p+ocessD()a&&ns (= 1d.data!= 			if ]&&(d.data=f	pavam(d.data,d.tradiriptal)),b$(bU,d,c,v);de(s===2) dataT!1;t=d.global,d.t|| =d.t|| .*oUiferCase(t,d.hasCTypeOr=!bL: funcd.t|| ),t&&f.\/tive++===0&&fr	dantrt	iggnd\"ajaxStavt");de(!d.hasCTypeOr){d.data&&(d.url+=cbN: funcd.url)?"&":"?")+d.data),k=d.url;if(d	c/cha===!1){( " x=fensw(t,y=d.url)-	n" && bR,"$1_="+x);d.url=y+(y===d.url?cbN: funcd.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasCTypeOr&&d.cTypeOr || !==!1||crcTypeOr || )&&v.se	RequfunHeader("CTypeOr- || ",d.cTypeOr || t,d.ifModified&&(k=k||d.url,f)tadeModified[k]&&v.se	RequfunHeader("If-Modified-Sinc(",f)tadeModified[k]),feetag[k]&&v.se	RequfunHeader("If-None-M// f",feetag[k])),(.se	RequfunHeader("Accept",d.data || s[0t&&d.accepts[d.data || s[0t]?d.accepts[d.data || s[0t]+(d.data || s[0t!== *"?", */*; q=0.01":""):d.accepts[ *"]);for(uei
-d.headers)(.se	RequfunHeader(u,d.headers[u])+if(d.befor&Send&&(d.befor&Send.
resae,(,d)===!1||s===2)){(.abort(); dataT!1}for(uei
{success:1, rr//:1,compsite:1})v[u](d[u])+p=b$(bV,d,c,v);de(!p)w(-1,"No Transf su");" + {(p-	adyStat =1,d&&g.t	iggnd\"ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=sp	Timeout(/<script\){(.abort("timeout")},d.timeout));nry{s=1,p.se==(l,w)}c// f(z){status<2?w(-1,z):f		rr//uz)}} dataTyv},pavam:/<script\a,c){( " d=[],e=f<script\a,b){b=f.isF	serialib)?b():b,d[d.ters =]=encsdeURIComponerd(a)+"="+encsdeURIComponerd(b)};c===b&&(c=f	ajaxSettif s.tradiriptal);if(f	heAin o(a)||apjq cry&&!f	isP" inO ) {
(a))fee\//,a,/<script\){ (*/"..nif ,*/"..ve;ua)});" + efor(( " gei
-a)b_(g,a[g],c, ); dataTyd)join("&"))-	n" && bE,"+")}}),feext ==({\/tive:0,tadeModified:{},etag:{}});( " cc=fensw(t,cd=/(\=)\?(&|$)|\?\?/i;frajaxSetup({jsonp:"
resback",jsonpCresback:/<script\){ dataTyf	expando+"_"+cc++}}),frajaxPref lre)("json jsonp",/<script\b,c,d){( "  =b.cTypeOr || ==="aiflic//ipt/x-www-form-urlencsded"&&ns (= 1b.data== 			if ];if(b.data || s[0t==="jsonp"||b.jsonp!==!1&&(cd. funcb.url)||e&&cd. funcb.data))){y wog,==b.jsonpCresback=f.isF	serialib.jsonpCresback)?b.jsonpCresback():b.jsonpCresback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.-	n" && cd,l),b.url===j&&(e&&(k=k.-	n" && cd,l)),b.data===k&&(j+=c/\?/: funcj)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=/<script\a){g=[a]},d.always(/<script\){a[h]=i,g&&f.isF	serialii)&&a[h](g[0t)}),b.cTyverte)s["script json"]=/<script\){g||fr	rr//uh+" was not 
resed"); dataTyg[0t},b.data || s[0t="json"; dataT"script]}}),frajaxSetup({accepts:{script:"text/javascript, 	iflic//ipt/javascript, 	iflic//ipt/ecmascript, 	iflic//ipt/x-ecmascript"},cTypeOrs:{script:/javascript|ecmascript/},cTyverte)s:{"text script":f<script\a){f.globalEval(a); dataTya}}}),frajaxPref lre)("script],f<script\a){a	c/cha===b&&(a.c/cha=!1),a.crossDom in&&(a.t|| ="GET",a.global=!1)}),frajaxTransf su("script],f<script\a){if(a.crossDom in){( " d, =c.h	ad||crge
Efor(; sByTag	if ("h	ad")[0t||crdocweirdEfor(; ;rvery.{send:/<script\f,g){d=c.cv,ateEfor(; 	"script]),d.async="async",a.scriptChavset&&(d.chavset=a.scriptChavset),d.src=a)url,d.onload=d.on-	adystatechange=/<script\a,c){if(c||!dp-	adyStat ||/loaded|compsite/: funcd.-	adyStat ))d.onload=d.on-	adystatechange=});
,o&&d.pav,
+N.no&&err{g (jC
-	d(d),d=b,c||g(200,"success")},o.h?sertBefor&(d,e.f(ddeC
-	d)},abort:f<script\){d&&d.onload	0,1)}}}});( " c =a)A/tiveXO ) {
?/<script\){for(y woaei
-cg)cg[a]	0,1)}:!1,cf=0,cg;f	ajaxSettif s.xhr=a)A/tiveXO ) {
?/<script\){ dataT!*/"..hsLocal&&ch()||ci()}:ch,f<script\a){f.ext ==(f	supf su,{ajax:!!a,co)s:!!a&&"withCred,
+ials"i
-a})}(f	ajaxSettif s.xhr()),fesupf su.ajax&&f.\jaxTransf su(f<script\c){de(!c.crossDom in||frsupf su.co)s){( " d;rvery.{send:/<script\o,g){( " h=c.xhr(),i,j;c.usernif ?h.opet\c.t|| ,c)url,c.async,c.usernif ,c.password):hpopet\c.t|| ,c)url,c.asynct;de(c.xhrFields)for(jei
-c.xhrFields)h[j]=c.xhrFields[j];c.mimeT|| &&hpoverrideMimeT|| &&hpoverrideMimeT|| (c.mimeT|| ),!c.crossDom in&&!e["X-Requfuned-With"]&&(e["X-Requfuned-With"]="XMLHttpRequfun");nry{for(jei
-e)h.se	RequfunHeader(j,e[j])}c// f(k){}h.se==(c.hasCTypeOr&&c.data||});
),d=f<script\a,e){y woj,k,l,m,n;nry{if(d&&(e||hp-	adyStat ===4)){d=b,i&&(h.on-	adystatechange=/ensop,&&&& gsite cg[i])+if(e)h.-	adyStat !==4&&hpabort();" + {j=h.status,l=h.gp	AllR	sponseHeaders(t,m={},n=h.responseXML,n&&nrdocweirdEfor(; &&(m.xml=nt,m)*ext=hp-	sponseText;nry{k=h.statusText}c// f(o){k=""}!j&&c.hsLocal&&!c.crossDom in?j=m)*ext?200:404:j===1223&&(j=204)}}}c// f(p){ ||g(-1,p)}m&&guj,k,m,
)},!c.async||hp-	adyStat ===4?d():(i=++cf,&&&&(cg||(cg={},f(a).unload	co)),cg[i]=d),h.on-	adystatechange=d)},abort:f<script\){d&&d	0,1)}}}});( " cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[[ height","maa inTop","maa inBottom","paddif Top","paddif Bottom"],["width","maa inLeft","maa inRight","paddif Left","paddif Right"],["op &ity"]],cq,cr=a)webkitRequfunAnim//iptFrif ||a.mozRequfunAnim//iptFrif ||a.oRequfunAnim//iptFrif ;fent.ext ==({show:/<script\a,b,c){( " d, ;de(a||a===0) dataTy*/"..anim// (cu	"show",3),a,b,c);for(( " g=0,h=*/"..ters ="g<h;g++)d=*/".[g],d.style&&(e=d.style.disn" y,!f	_d()a\d,"olddisn" y])&&e==="none"&&(e=d.style.disn" y=""),e===""&&fecss\d,"disn" y])==="none"&&f	_d()a\d,"olddisn" y],cv(d.nsde	if )));for(g=0"g<h;g++){d=*/".[g]+if(d.style){e=d.style.disn" y;if( ===""||e==="none")d.style.disn" y=f	_d()a\d,"olddisn" y])||""}} dataTy*/".},hide:/<script\a,b,c){de(a||a===0) dataTy*/"..anim// (cu	"hide",3),a,b,c);for(( " d=0,e=*/"..ters ="d<e;d++)if(*/".[d])style){y wog=frcss(*/".[d],"disn" y]);g!=="none"&&!f	_d()a\*/".[d],"olddisn" y])&&f	_d()a\*/".[d],"olddisn" y],g)}for(d=0"d<e;d++)*/".[d])style&&(*/".[d])style.disn" y="none")+ dataTy*/".},_toggle:fent.toggle,toggle:f<script\a,b,c){( " d=*s (= 1a== boolean";f	heF<script\a)&&f.isF	serialib)?*/".._togglen	iflye*/".,aa weird ):a==t{
 ||d?*/"..e\//,/<script\){( " b=d?a:f(t/".).is(":hidden");f(t/".)[b?"show":"hide"]()}):n/"..anim// (cu	"toggle",3),a,b,c); dataTy*/".},fadeTo:f<script\a,b,c,d){ dataTy*/"..f lre)(":hidden")rcss("op &ity",0).show().end().anim// ({op &ity:b},a,c,d)},anim// :/<script\a,b,c,d){( "  =fr"aued\b,c,d);if(f	heEmptyO ) {
(a)) dataTy*/"..e\//,e.compsite,[!1]);a=f)ext ==({},a)+ dataTy*/".[e.q cua===!1?"e\//":"q cua"](/<script\){ .q cua===!1&&f	_maak(t/".);( " b=f)ext ==({},e),c=n/"..nsde || ===1,d=c&&f(t/".).is(":hidden"),g,=,i,j,k,l,m,n,o;b.anim// dProperties={};for(iei
-a){g=frc/melCase(i),i!==g&&(a[g]=a[i], gsite a[i]),h=a[g],f	heAin o(h)?(b.anim// dProperties[g]=h[1],h=a[g]=h[0]):b.	nim// dProperties[g]=br"autialEasif &&b.sautialEasif [g]||b.easif ||"swif ];if(h=== hide"&&d||h=== 	how"&&!d) dataTyb.compsite.
resa*/".);c&&(g=== height"||g==="width")&&(broverflow=[*/"..style.overflow,*/"..style.overflowX,*/"..style.overflowY],f	css(*/".,"disn" y])==="inlt/s"&&fecss\*/".,"float")==="none"&&(frsupf su.inlt/sBlockNuedsLayout?(j=cv(n/"..nsde	if ),j==="inlt/s"?*/"..style.disn" y="inlt/s-block":(*/"..style.disn" y="inlt/s",*/"..style.zoom=1)):n/"..style.disn" y="inlt/s-block"))}broverflow!=});
&&(*/"..style.overflow="hidden");for(iei
-a)k=}ew fenxa*/".,b,i),h=a[i],cm: funch)?k[h=== toggle"?d?"show":"hide":h]():(l=cn.e ec(ht,m=k.cur(t,l?(n=pavseFloat(l[2]),o=l[3t||(frcssNumber[it?"":"px"),o!=="px"&&(f)style\*/".,i,(n||1)+ot,m=(n||1)/k.cur(t*m,f)style\*/".,i,m+ott,l[1]&&(n=(l[1]=== -="?-1:1)*n+m),k.custom(m,n,o)):k.custom(m,h,""));rvery.!0})},stop:f<script\a,b){a&&*/"..q cua([]),*/"..e\//,/<script\){( " a=f)timers,c=a.ters ="b||fr_unmaak(!0,*/".);w
-		(c--)a[c].ps
-===*/".&&(b&&a[c]i!0),a." );ce(c,1))}),b||*/"..deq cua()+ dataTy*/".}}),fee\//,{slideDown:cu	"show",1),slideUp:cu	"hide",1),slideToggle:cu	"toggle",1),fadeIn:{op &ity:"show"},fadeOut:{op &ity:"hide"},fadeToggle:{op &ity:"toggle"}},f<script\a,b){frfn[a]=f<script\a,c,d){ dataTy*/"..anim// (b,a,c,d)}}),feext ==({"aued:/<script\a,b,c){( " d=a&&ns (= 1a== h ) {
]?f)ext ==({},a):{compsite:c||!c&&b||frheF<script\a)&&a,dur//ipt:a,easif :c&&b||b&&!f	isF	serialib)&&b};d.dur//ipt=fenx.off?0:ns (= 1d.dur//ipt== number]?d.dur//ipt:d.dur//iptei
-frnx."aueds?fnnx."aueds[d.dur//ipt]:f.fx."auedse_de just,d.old=d.compsite,d.compsite=/<script\a){d.q cua!==!1?fndeq cua(*/".):a!==!1&&f	_unmaak(t/".),f.isF	serialid.old)&&d.old.
resa*/".)}+ dataTyd},easif :{lt/sa):/<script\a,b,c,d){ dataTyc+d*a},swif :f<script\a,b,c,d){ dataT(-M//h.cos(a*M//h.PI)/2+.5)*d+c}},timers:[],fx:/<script\a,b,c){*/"..opttocs=b,d/"..efor=a,*/"..prop=c,brorig=brorig||{}}}),fefx.p+	tons (={upd// :/<script\){*/"..opttocs)step&&*/"..opttocs)step.
resa*/"..efor,*/"..now,*/".),(f.fx."tep[*/"..prop]||frfx."tepe_de just)(*/".)},cur:/<script\){if(*/"..efor[*/"..prop]!=});
&&(!*/"..efor)style||*/"..efor)style[*/"..prop]==});
)) dataTy*/"..efor[*/"..prop];( " a,b=fecss\*/"..efor,*/"..prop)+ dataTyisNaN(a=pavseFloat(b))?!b||b==="auto"?0:b:a},custom:/<script\a,b,c){f<script h\a){ dataTyd."tep(a)}( " d=*/".,e=fenx,g;*/"..star	Time=cq||cs(t,*/"..star	=a,*/".. ===b,d/"..unit=c||d/"..unit||(frcssNumber[*/"..prop]?"":"px"),*/"..now=*/"..star	,*/"..pos=*/"..state=0,h.efor=*/"..efor,h()&&f.timersrpush(h)&&!co&&(cr?(co=1,g=/<script\){co&&(cr(g),e.tick())},cr(g)):co=setInre)val(e.tick,o.h?re)valt)},show:/<script\){*/"..opttocs)orig[*/"..prop]=f)style\*/"..efor,*/"..prop),*/"..opttocs)show=!0,*/"..custom(*/"..prop==="width"||d/"..prop==="height"?1:0,*/"..cur()),f\*/"..efor).show()},hide:/<script\){*/"..opttocs)orig[*/"..prop]=f)style\*/"..efor,*/"..prop),*/"..opttocs)hide=!0,*/"..custom(*/"..cur(t,0)},step:/<script\a){( " b=cq||cs(t,c=!0,d=*/"..efor,e=*/"..opttocs,g,=+if(a||b>=e.dur//ipt+*/"..star	Time){n/"..nsw=*/".. ==,*/"..pos=*/"..state=1,d/"..upd// (t, .	nim// dProperties[*/"..prop]=!0;for(gei
- .	nim// dProperties) .	nim// dProperties[gt!==!0&&(c=!1t;de(c){ roverflow!=});
&&!f	supf su.shrinkWrapBlocks&&fee\//,["","X","Y"],f<script\a,b){d.style["overflow"+b]= roverflow[a]}t, .hide&&f(d).hide(t;de( .hide||e.show)for(( " iei
- .	nim// dProperties)f)style\d,i,e)orig[i])+".compsite.
resad)} dataT!1}e.dur//ipt==Infinity?n/"..nsw=b:(h=b-*/"..star	Time,*/"..state=h/e.dur//ipt,*/"..pos=f.easif [ .	nim// dProperties[*/"..prop]](*/"..state,h,0,1,e.dur//ipt),*/"..now=*/"..star	+(*/".. ==-*/"..star	)**/"..pos),d/"..upd// (t;rvery.!0}},frext ==(fenx,{tick:/<script\){for(y woa=f)timers,b=0;b<a.ters ="++b)a[b]()||ap" );ce(b--,1);a.ters =||frfx."top()},i?re)val:13,stop:f<script\){clearInre)val(cot,co=t{
 },"aueds:{slow:600,fast:200,_de just:400},step:{op &ity:f<script\a){f.style\a.efor,"op &ity",a.nsw)},_de just:f<script\a){a	efor)style&&a.efor)style[a.prop]!=});
?a.efor)style[a.prop]=(a.prop==="width"||a.prop==="height"?M//h.max	0,a.nsw):a.nsw)+a.unit:a.efor[a.prop]=a.nsw}}}),feexpr&&feexpr.filre)s&&(feexpr.filre)s.	nim// d=f<script\a){ dataTyf	g-	n(f)timers,/<script\b){ dataTya===b.efor}).ters =});( " cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"genBoundif ClientR {
]i
-c.docweirdEfor(; ?fent.offset=/<script\a){( " b=*/".[0],c+if(a) dataTy*/"..e\//,/<script\b){f.offset.se	Offset(*/".,a,b)});if(!b||!bpownerDocweird) dataTyt{
 +if(b===b.ownerDocweird.body) dataTyf.offset.bodyOffset(b);nry{c=b.genBoundif ClientR {
()}c// f(d){}( "  =b.ownerDocweird,g= rdocweirdEfor(; ;de(!c||!frcoypains	g,b))rvery.ic?{top:c.top,teft:c	teft}:{top:0,teft:0};( " h=e.body,i=cy( ),j=g.clientTop||hpclientTop||0,k=g.clientLeft||hpclientLeft||0,t=ippageYOffset||frsupf su.boxModel&&g.scrollTop||hpscrollTop,m=ippageXOffset||frsupf su.boxModel&&g.scrollLeft||hpscrollLeft,n=c.top+l-j,o=c	teft+m-k+ dataT{top:n,teft:o}}:fent.offset=/<script\a){( " b=*/".[0]+if(a) dataTy*/"..e\//,/<script\b){f.offset.se	Offset(*/".,a,b)});if(!b||!bpownerDocweird) dataTyt{
 +if(b===b.ownerDocweird.body) dataTyf.offset.bodyOffset(b);f.offset.initial= 0();y woc,d=b.offsetPav,
+, =b,g=b.ownerDocweird,h=g.docweirdEfor(; ,i=g.body,j=g.de justView,k=j?jpgp	Compu fdStyle\b,});
):b.curv,
+Style,t=b.offsetTop,m=b.offsetLeft;w
-		((b=b.pav,
+N.no)&&b!==i&&b!==h){if(f	offset.supf susFix dPosiript&&k.posiript==="fix d"abrd(k+c=j?jpgp	Compu fdStyle\b,});
):b.curv,
+Style,t-=br"crollTop,m-=br"crollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f	offset.doesNotAddBorder&&(!f	offset.doesAddBorderForTableAndCells||!cw. funcb.nsde	if ))&&(l+=pavseFloat(c.borderTopWidth)||0,m+=pavseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetPav,
+),f	offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=pavseFloat(c.borderTopWidth)||0,m+=pavseFloat(c.borderLeftWidth)||0),k=c}de(k.posiript==="r{l()iv+"||k.posiript==="static")l+=i.offsetTop,m+=i.offsetLeft;f	offset.supf susFix dPosiript&&k.posiript==="fix d"&&(l+=M//h.max	hpscrollTop,ipscrollTop),m+=M//h.max	hpscrollLeft,ipscrollLeft));rvery.{top:l,teft:m}},froffset={initial= 0:/<script\){( " a=c.body,b=c.cv,ateEfor(; 	"div"),d,o,g,=,i=pavseFloat(frcss\a,"maa inTop"))||0,j="<div style='posiript:absolu f;top:0;teft:0;maa in:0;border:5px solid #000;paddif :0;width:1px;height:1px;'><div></div></div><ttyle style='posiript:absolu f;top:0;teft:0;maa in:0;border:5px solid #000;paddif :0;width:1px;height:1px;' cellpaddif ='0' cellsp &if ='0'><tr><td></td></tr></ttyle>";frext ==(b)style,{posiript:"absolu f",top:0,teft:0,maa in:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.i?sertBefor&(b,a.f(ddeC
-	d),d=b.f(ddeC
-	d,e=d.f(ddeC
-	d,h=d.nextSiblif ef(ddeC
-	d.f(ddeC
-	d,*/"..doesNotAddBorder= roffsetTop!==5,*/"..doesAddBorderForTableAndCells=hroffsetTop===5,e.style.posiript="fix d",e.style.top="20px",*/"..supf susFix dPosiript= roffsetTop===20||eroffsetTop===15,e.style.posiript=e.style.top="",d.style.overflow="hidden",d.style.posiript="r{l()iv+",*/"..subtractsBorderForOverflowNotVisible= roffsetTop===-5,*/"..doesNotIncludeMaa inInBodyOffset=a.offsetTop!==i,a)r{g (jC
-	d(b),f	offset.initial= 0=/ensop},bodyOffset:/<script\a){( " b=a.offsetTop,c=a.offsetLeft;f	offset.initial= 0(),f	offset.doesNotIncludeMaa inInBodyOffset&&(b+=pavseFloat(frcss\a,"maa inTop"))||0,c+=pavseFloat(frcss\a,"maa inLeft"))||0);rvery.{top:b,teft:c}},se	Offset:/<script\a,b,c){( " d=frcss\a,"posiript");d==="static"&&(a.style.posiript="r{l()iv+");( "  =f(at,g= roffset(),h=f	css\a,"top"),i=f	css\a,"left"),j=(d==="absolu f"||d==="fix d"a&&f.inAin o("auto",[=,i])>-1,k={},l={},m,n;j?(l=e.posiript(t,m=l.top,n=l.teft):(m=pavseFloat(h)||0,n=pavseFloat(i)||0),f	isF	serialib)&&(b=b.
resaa,c,g)),b.top!=});
&&(k.top=b.top-g.top+m),b.teft!=});
&&(k.teft=b.teft-g.teft+n),"usif "i
-b?b.usif .
resaa,k):e	css\k)}},frft.ext ==({posiript:/<script\){if(!*/".[0]) dataTyt{
 +y woa=*/".[0],b=*/"..offsetPav,
+(),c=n/"..offset(),d=cx. funcb[0tpnsde	if )?{top:0,teft:0}:b.offset();c.top-=pavseFloat(frcss\a,"maa inTop"))||0,c.teft-=pavseFloat(frcss\a,"maa inLeft"))||0,d.top+=pavseFloat(frcss\b[0t,"borderTopWidth"))||0,d.teft+=pavseFloat(frcss\b[0t,"borderLeftWidth"))||0;rvery.{top:c.top-d.top,teft:c	teft-d.teft}},offsetPav,
+:/<script\){ dataTy*/"..map,/<script\){y woa=*/"..offsetPav,
+||crbodyiw
-		(a&&!cx: funcapnsde	if )&&fecss\a,"posiript")==="static")a=a.offsetPav,
+; dataTya})}}),fee\//,["Left","Top"],f<script\a,c){( " d="scroll"+c;fent[d]=f<script\c){( "  ,g;de(c===b){e=*/".[0]+if(!e) dataTyt{
 +g=cy( ); dataTyg?"pageXOffset"i
-g?g[a?"pageYOffset":"pageXOffset"]:frsupf su.boxModel&&g.docweird.docweirdEfor(; [d]||gndocweird.body[d]:e[d]} dataTy*/"..e\//,/<script\){g=cy(t/".),g?gpscrollTo(a?f(g)	scrollLeft():c,a?c:f(g)	scrollTop()):*/".[d]=c})}}),fee\//,["Height","Width"],f<script\a,c){( " d=c)*oLowerCase(t;fent["inner"+c]=/<script\){ dataTy*/".[0t?pavseFloat(frcss\*/".[0],d,"paddif ")):t{
 },fent["outer"+c]=/<script\a){ dataTy*/".[0t?pavseFloat(frcss\*/".[0],d,a?"maa in":"border")):t{
 },fent[d]=/<script\a){( " e=*/".[0]+if(!e) dataTya==t{
 ?});
:*/".+if(f	heF<script\a)) dataTy*/"..e\//,/<script\b){( " c=f(t/".);c[d](a.
resa*/".,b,c[d]()))})+if(f	heWifdow( )){y wog=e.docweird.docweirdEfor(; ["client"+c]+ dataTye.docweird.compaeMode==="CSS1Compae"&&g||endocweird.body["client"+c]||g}if(e.nsde || ===9) dataTyM//h.max	 rdocweirdEfor(; ["client"+c],e.body["scroll"+c],e.docweirdEfor(; ["scroll"+c],e.body["offset"+c],e.docweirdEfor(; ["offset"+c])+if(a===b){( " h=frcss\e,d),i=pavseFloat(h)+ dataTyf	isNaN(i)?h:i} dataTy*/"..css\d,*s (= 1a== 			if ]?a:a+"px")}}),a.jQ cry=a.$=f})(wifdow);
\ No newlt/s at  == = 1f-		
+/*! jQ cry v1.11.0 | \c) 2005, 2014 jQ cry Found//ipt, Inc. | jq cry.org/);ce?se */
+!f<script\a,b){ h ) {
]==*s (= 1module&& h ) {
]==*s (= 1moduleeexp sus?moduleeexp sus=a.docweird?bua,!0):/<script\a){if(!a.docweird)throw new Err//("jQ cry requires a wifdow with a docweird"); dataTyb(a)}:b(a)}( 't get/se"!=*s (= 1wifdow?wifdow:*/".,f<script\a,b){( " c=[],d=c.s);ce, =c.cTyc//,f=c.push,g=c)h?):[Of,h={},i=hrtoS		if ,j=h.hasOwnProperty,k=""	t	im,l={},m="1.11.0",n=/<script\a,b){ dataTynew nrft.init\a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=/<script\a,b){ dataTyb.*oUiferCase(t};nrft=n.p+	tons (={jq cry:m,cTy			uct r:n,select r:"",ters =:0,*oAin o:/<script\){ dataTyd.
resa*/".)},get:/<script\a){ dataTyt{
 !=a?0>a?n/".[a+*/"..ters =]:*/".[a]:d.
resa*/".)},pushStack:/<script\a){( " b=n	mergju*/"..cTy			uct r(),a)+ dataTyb.p+evO ) {
=*/".,b.coypeuc=*/"..cTypeuc,b},ea//:/<script\a,b){ dataTyn.e\//,*/".,a,b)},map:/<script\a){ dataTy*/"..pushStack	n.map,*/".,f<script\b,c){rvery.ia.
resab,c,b)}))},s);ce:/<script\){ dataTy*/"..pushStack	dn	iflye*/".,aa weird ))},f(dde:/<script\){ dataTy*/"..eq(0)},tade:/<script\){ dataTy*/"..eq(-1)},oq:/<script\a){( " b=*/"..ters =,c=+a+(0>a?b:0); dataTy*/"..pushStack	c>=0&&b>c?[*/".[c]]:[])},ond:/<script\){ dataTy*/"..p+evO ) {
||d/"..cTy			uct r(});
)},push:f,sort:c.s su," );ce:c.s );ce},t.ext ===nrft.ext ===/<script\){y woa,b,c,d,e,f,g=aa weird [0]||{},h=1,i=aa weird .ters =,j=!1;for( boolean"==*s (= 1g&&(j=g,g=aa weird [h]||{},h++),"h ) {
]==*s (= 1g||n	heF<script\g)||(g={}),h===i&&(g=*/".,h--)+i>h;h++)if(t{
 !=(e=aa weird [h]))for(dei
-e)a=g[d],c=e[d],g!==c&&(j&&c&&(n	isP" inO ) {
(c)||(b=n	heAin o(c)))?(b?(b=!1,/=a&&n	heAin o(a)?a:[]):/=a&&n	heP" inO ) {
(a)?a:{},g[d]=t.ext ==(j,f,c)):void 0!==c&&(g[d]=c))+ dataTyg},t.ext ==({expando:"jQ cry"+(m+M//h.random()).-	n" && /\D/g,""),isReady:!0, rr//:/<script\a){throw new Err//(a)},nsop:/<script\){},ieF<script:/<script\a){ dataT"/<script]===t.*s ((a)},heAin o:Ain o	heAin o||/<script\a){ dataT"ain o]===t.*s ((a)},heWifdow:/<script\a){ dataTyt{
 !=a&&a==a.wifdow},heNweiric:/<script\a){ dataTya-pavseFloat(a)>=0},heEmptyO ) {
:/<script\a){( " b;for(bei
-a) dataT!1;rvery.!0},heP" inO ) {
:/<script\a){( " b;if(!a||"h ) {
]!==t.*s ((a)||apnsde || ||n	heWifdow(a)) dataT!1;try{if(a.cTy			uct r&&!j.
resaa,"cTy			uct r")&&!j.
resaa.cTy			uct r.p+	tons (,"isProtons (Of")) dataT!1}c// f(c){rvery.!1}if(l.ownLast)for(bei
-a) dataT j.
resaa,b);for(bei
-a)+ dataTyvoid 0===b||j.
resaa,b)},*|| :/<script\a){ dataTyt{
 ==a?a+"":"h ) {
]==*s (= 1a||"/<script]==*s (= 1a?h[i.
resaa)]||"h ) {
]:ns (= 1a},globalEval:/<script\b){b&&n	t	im(b)&&(a.e ecScript||/<script\b){a	eval.
resaa,b)})(b)},c/melCase:/<script\a){ dataTyap-	n" && p,"ms-"))-	n" && q,r)},nsde	if :/<script\a,b){ dataTya.nsde	if &&a.nsde	if .*oLowerCase(t===b.*oLowerCase(t},ea//:/<script\a,b,c){( " d, =0,f=a)ters =,g=s(a);de(c){if(g){for(;f>e;e++)if(d=b.	iflyea[(],c),d===!1abrd(k}" + efor(eei
-a)if(d=b.	iflyea[(],c),d===!1abrd(k}" + eif(g){for(;f>e;e++)if(d=b.
resaa[(],e,a[(]),d===!1abrd(k}" + efor(eei
-a)if(d=b.
resaa[(],e,a[(]),d===!1abrd(k+ dataTya},t	im:k&&!k.
resa"\ufeff\xa0")?/<script\a){ dataTyt{
 ==a?"":k.
resaa)}:/<script\a){ dataTyt{
 ==a?"":(a+""))-	n" && o,"")},mak0Ain o:/<script\a,b){( " c=b||[]; dataTyt{
 !=a&&(s(O ) {
(a))?n	mergjuc,"s		if ]==*s (= 1a?[a]:a):frcresac,a)),c},i?Ain o:/<script\a,b,c){( " d;if(b){if(g) dataTyg.
resab,a,c);for(d=b.ters =,c=c?0>c?M//h.max	0,d+c):c:0;d>c;c++)de(cei
-b&&b[c]===a) dataT c}rvery.-1},mergj:/<script\a,b){( " c=+b.ters =,d=0,e=a.ters ="w
-		(c>d)a[(++]=b[d++];de(c!==c)w
-		(void 0!==b[d])a[(++]=b[d++]; dataTya.ters ==e,a},grep:/<script\a,b,c){for(( " d,e=[],f=0,g=a)ters =,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&erpush(a[f])+ dataTye},map:/<script\a,b,c){( " d,f=0,g=a)ters =,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),t{
 !=d&&iepush(d);" + efor(fei
-a)d=b(a[f],f,c),t{
 !=d&&iepush(d); dataTye.	iflye[],i)},guid:1,p+oxo:/<script\a,b){( " c,e,f; dataT"s		if ]==*s (= 1b&&(f=a[b],b=a,a=f),t	heF<script\a)?(c=d.
resaaa weird ,2),e=f<script\){ dataTya.	iflyeb||*/".,c.cTyc//(d.
resaaa weird )))},e.guid=a)guid=a)guid||n	guid++,o):void 0},nsw:/<script\){ dataT+new Date},supf su:l}),t	e\//,"Boolean Number S		if  F<script Ain o Date RegExp O ) {
 Err//".c );t(  "),f<script\a,b){h["[h ) {
 "+b+"]"]=b.*oLowerCase(t});f<script s\a){( " b=a.ters =,c=t.*s ((a); dataT"/<script]===c||n	heWifdow(a)?!1:1===apnsde || &&b?!0:"ain o]===c||0===b|| number]==*s (= 1b&&b>0&&b-1ei
-a}( " t=/<script\a){( " b,c,d,e,f,g,=,i,j,k,l,m,n,o,p,q,r,s="sizzle"+-new Date,t=a.docweird,u=0,v=0,w=eb(),x=eb(),y=eb(),z=/<script\a,b){ dataTya===b&&(j=!0),0},A= 't get/se",B=1<<31,C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.s);ce,I=D.h?):[Of||/<script\a){for(( " b=0,c=*/"..ters ="c>b;b++)if(*/".[b]===a) dataT b;rvery.-1},J="c
ecked|selected|async|autofocws|auton" y|cTyprols|def r|distyled|hidden|ismap|lsop|multiple|opet|-	adonly|required|scopee",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",M=L)-	n" && "w","w#"),N="\\["+K+"*("+L+")"+K+"*(?:([*^$|!~]?=)"+K+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+M+")|)|)"+K+"*\\]",O=":("+L+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+N)-	n" && 3,8)+")*)|.*)\\)|)",P=}ew RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=}ew RegExp("^"+K+"*,"+K+"*"),R=}ew RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=}ew RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=}ew RegExp(O),U=}ew RegExp("^"+M+"$"),V={ID:}ew RegExp("^#("+L+")"),CLASS:}ew RegExp("^\\.("+L+")"),TAG:}ew RegExp("^("+L)-	n" && "w","w*")+")"),ATTR:}ew RegExp("^"+N),PSEUDO:}ew RegExp("^"+O),CHILD:}ew RegExp("^:(only|f(dde|tade|nth|nth-tade)-(c
-	d|of-t|| )(?:\\("+K+"*(	dan|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:}ew RegExp("^(?:"+J+")$","i"),nuedsCoypeuc:}ew RegExp("^"+K+"*[>+~]|:(	dan|odd|eq|ge|te|nth|f(dde|tade)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|*extav,a|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[n()iv+ \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=/'|\\/g,ab=}ew RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),bb=/<script\a,b,c){( " d="0x"+b-65536+ dataTyd!==d||c?b:0>d?S		if .fromChavC.noid+65536):S		if .fromChavC.noid>>10|55296,1023&d|56320)};try{G.	iflyeD=H.
resa*ec
-	dN.no ),*ec
-	dN.no ),D[t.c
-	dN.no .ters =]pnsde || }c// f(cb){G={	ifly:D.ters =?/<script\a,b){F.	iflyea,H.
resab))}:/<script\a,b){( " c=a)ters =,d=0iw
-		(a[c++]=b[d++]);a.ters ==c-1}}}f<script db\a,b,d,o){( " f,g,=,i,j,m,p,q,u,v;if((b?b.ownerDocweird||b:t)!==l&&k(b),b=b||l,d=d||[],!a||"s		if ]!=*s (= 1a) dataT d;if(1!==(i=bpnsde || )&&9!==i) dataT[];if(n&&!e){if(f=Z.e ec(a))if(h=f[1]){if(9===i){if(g=b.genEfor(; ById(ht,!g||!g.pav,
+N.no) dataT d;if(g.id====) dataTydepush(g),d}" + eif(b.ownerDocweird&&(g=b.ownerDocweird.genEfor(; ById(ht)&&rab,g)&&g.id====) dataTydepush(g),d}" + {if(f[2]) dataTyG.	iflyed,brge
Efor(; sByTag	if (a)),d;if((h=f[3])&&c.ge
Efor(; sByCtads	if &&b.ge
Efor(; sByCtads	if ) dataTyG.	iflyed,brge
Efor(; sByCtads	if (ht),d}de(c.qsa&&(!o||!o: funca))){de(q=p=s,u=b,v=9===i&&a,1===i&&"h ) {
]!==b.nsde	if .*oLowerCase(t){m=ob(a),(p=b.genAttribu f	"id"))?q=p)-	n" && _,"\\$&"):b.senAttribu f	"id",q),q="[id='"+q+"'] ",j=m)ters ="w
-		(j--)m[j]=q+pb(m[j]);u=$: funca)&&mb(b.pav,
+N.no)||b,v=m)join(",")}if(v)nry{ dataTyG.	iflyed,u.q crySelect rAesavt),d}c// f(w){}et/resy{p||b.==g (jAttribu f	"id")}}} dataTyxb(ap-	n" && P,"$1"),b,d,o)}f<script eb(){y woa=[];f<script b(c, ){ dataTya.push(c+" ")>d	c/chaLers =&& gsite b[a.shift()],b[c+" "]=e} dataTyb}f<script fb\a){ dataTya[s]=!0,a}f<script gb\a){( " b=l.cv,ateEfor(; 	"div");nry{ dataT!!a(b)}c// f(c){rvery.!1}et/resy{b.pav,
+N.no&&b.pav,
+N.no)r{g (jC
-	d(b),b=t{
 }}f<script hb\a,b){( " c=a)s );t( |"),e=a.ters ="w
-		(e--)d.attrHandle[c[e]]=b}f<script ib\a,b){( " c=b&&a,d=c&&1===apnsde || &&1===bpnsde || &&(~b.sourceI?):[||B)-(~a.sourceI?):[||B)+if(d) dataT d;if(c)w
-		(c=c)nextSiblif )de(c===b)rvery.-1; dataTya?1:-1}f<script jb\a){ dataTy/<script\b){( " c=b.nsde	if .*oLowerCase(t; dataT"input]===c&&b.t|| ===a}}f<script kb\a){ dataTy/<script\b){( " c=b.nsde	if .*oLowerCase(t; dataT("input]===c||"button]===c)&&b.t|| ===a}}f<script lb\a){ dataTy/b,/<script\b){ dataTyb=+b,/b,/<script\c,d){( "  ,f=ae[],c)ters =,b),g=frters ="w
-		(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}f<script mb\a){ dataTya&&ns (= 1arge
Efor(; sByTag	if !==A&&a}c=dbrsupf su={},f=dbrisXML=/<script\a){( " b=a&&(a.ownerDocweird||a)rdocweirdEfor(; ;rvery. b?"HTML]!==b.nsde	if :!1},k=db.senDocweird=/<script\a){( " b, =a?a.ownerDocweird||a:d,g= rde justView; dataTye!==l&&9===epnsde || &&e.docweirdEfor(; ?(l=e,m= rdocweirdEfor(; ,n=!f(e),g&&g!==g.top&&(g.addEdantListener?g.addEdantListener( 'tload",/<script\){k(t},!1):g.att/chEdant&&g.att/chEdant("on'tload",/<script\){k(t})),c.attribu fs=gb(/<script\a){rvery.ia.
tads	if ="i",!a.genAttribu f	"
tads	if ")}),c.ge
Efor(; sByTag	if =gb(/<script\a){rvery.ia.	ifendC
-	d(e.cv,ateComr(; 	"")),!a.genEfor(; sByTag	if ("*").ters =}),c.ge
Efor(; sByCtads	if =Y: funce.ge
Efor(; sByCtads	if )&&gb(/<script\a){rvery.ia.innerHTML="<div 
tads='a'></div><div 
tads='a i'></div>",a.f(ddeC
-	d.
tads	if ="i",2===apge
Efor(; sByCtads	if ("i").ters =}),c.ge
ById=gb(/<script\a){rvery.im.	ifendC
-	d(a)rid=s,!e.ge
Efor(; sByNif ||!e.ge
Efor(; sByNif (s).ters =}),c.ge
ById?(d.f ==.ID=/<script\a,b){if(*s (= 1b.genEfor(; ById!==A&&n){( " c=b.genEfor(; ById(a)+ dataTyc&&c.pav,
+N.no?[c]:[]}},d.filre).ID=/<script\a){( " b=a.-	n" && ab,bb)+ dataTyf<script\a){rvery.ia.genAttribu f	"id")===b}}):( gsite d.f ==.ID,d.filre).ID=/<script\a){( " b=a.-	n" && ab,bb)+ dataTyf<script\a){( " c=ns (= 1arge
Attribu fN.no!==A&&arge
Attribu fN.no	"id")+ dataTyc&&c.ve;ua===b}}),d.f ==.TAG=c.ge
Efor(; sByTag	if ?/<script\a,b){ dataTy*s (= 1b.genEfor(; sByTag	if !==A?brge
Efor(; sByTag	if (a):void 0}:/<script\a,b){( " c,d=[],e=0,f=brge
Efor(; sByTag	if (a);if("*"===a){w
-		(c=f[(++])1===cpnsde || &&depush(c); dataTyd} dataTyf},d.f ==.CLASS=c.ge
Efor(; sByCtads	if &&/<script\a,b){ dataTy*s (= 1b.genEfor(; sByCtads	if !==A&&n?brge
Efor(; sByCtads	if (a):void 0},p=[],o=[],(c.qsa=Y: funce.q crySelect rAes))&&(gb(/<script\a){a.innerHTML="<select t=''><opttoc selected=''></opttoc></select>",a.q crySelect rAesa"[t^='']").ters =&&oepush("[*^$]="+K+"*(?:''|\"\")"),a.q crySelect rAesa"[selected]").ters =||oepush("\\["+K+"*(?:ve;ua|"+J+")"),a.q crySelect rAesa":c
ecked").ters =||oepush(":c
ecked")}),gb(/<script\a){( " b=e.cv,ateEfor(; 	"input]);b.senAttribu f	"t|| ","hidden"),a.	ifendC
-	d(b).senAttribu f	"nif ","D"),a.q crySelect rAesa"[nif =d]").ters =&&oepush("nif "+K+"*[*^$|!~]?="),a.q crySelect rAesa":entyled").ters =||oepush(":entyled",":distyled"),a.q crySelect rAesa"*,:x"),oepush(",.*:"t})),(c.m// fesSelect r=Y: funcq=m)webkitM// fesSelect r||m.mozM// fesSelect r||m.oM// fesSelect r||m.msM// fesSelect r))&&gb(/<script\a){c.disconnectedM// f=q.
resaa,"div"),q.
resaa,"[s!='']:x"),pepush("!=",O)}),o=o.ters =&&}ew RegExp(o)join("|")),p=p)ters =&&}ew RegExp(p)join("|")),b=Y: funcm.compareDocweirdPosiript),r=b||Y: funcm.coypains)?/<script\a,b){( " c=9===apnsde || ?ardocweirdEfor(; :a,d=b&&b.pav,
+N.no; dataTya===d||!(!d||1!==dpnsde || ||!(c.coypains?c.coypains(d):a.compareDocweirdPosiript&&16&a.compareDocweirdPosiript(d)))}:/<script\a,b){if(b)w
-		(b=b.pav,
+N.no)if(b===a) dataT!0;rvery.!1},z=b?/<script\a,b){if(a===b)rvery. j=!0,0;( " d=!a.compareDocweirdPosiript-!b.compareDocweirdPosiript; dataTyd?d:( =(a.ownerDocweird||a)===cb.ownerDocweird||b)?a.compareDocweirdPosiript(b):1,1&d||!c.s suDet/ched&&b.compareDocweirdPosiript(a)===d?a=== ||a.ownerDocweird===*&&rat,a)?-1:b=== ||b.ownerDocweird===*&&rat,b)?1:i?I.
resai,a)-I.
resai,b):0:4&d?-1:1)}:/<script\a,b){if(a===b)rvery. j=!0,0;( " c,d=0,f=a)pav,
+N.no,g=b.pav,
+N.no,h=[a],k=[b]+if(!f||!g) dataTya===e?-1:b=== ?1:f?-1:g?1:i?I.
resai,a)-I.
resai,b):0+if(f===g) dataTyib\a,b);c=a;w
-		(c=c)pav,
+N.no)h.unshift(c);c=b;w
-		(c=c)pav,
+N.no)k.unshift(c);w
-		(h[d]===k[d])d++; dataTyd?ib\h[d],k[d]):h[d]===t?-1:k[d]===t?1:0},e):l},db.m// fes=/<script\a,b){ dataTydb\a,});
,});
,b)},db.m// fesSelect r=/<script\a,b){if((a.ownerDocweird||a)!==l&&k(a),b=b.-	n" && S,"='$1']"),!(!c.m// fesSelect r||!n||p&&p. funcb)||o&&oe funcb)))nry{( " d=q.
resaa,b);if(d||crdisconnectedM// f||a.docweird&&11!==a.docweirdpnsde || ) dataTyd}c// f(e){} dataTydb\b,
,});
,[a]).ters =>0},db.coypains=/<script\a,b){ dataT(a.ownerDocweird||a)!==l&&k(a),raa,b)},db.attr=/<script\a,b){(a.ownerDocweird||a)!==l&&k(a);( "  =d.attrHandle[b.*oLowerCase(t],f= &&C.
resad.attrHandle,b.*oLowerCase(t)?e\a,b,!n):void 0+ dataTyvoid 0!==f?f:c.attribu fs||!n?a.genAttribu f	b):(f=arge
Attribu fN.no	b))&&fesautified?f.ve;ua:t{
 },db. rr//=/<script\a){throw new Err//("Syypax  rr//, unrecognized expressipt: "+a)},db.uniq cS su=/<script\a){( " b,d=[],e=0,f=0+if(j=!crditectDuflic//es,i=!c.s suSttyle&&ars);ce(0),a."ort(z),j){w
-		(b=a[f++])b===a[f]&&(e=d.push(f))"w
-		(e--)ap" );ce(d[e],1)} dataTyi=});
,a},e=dbrge
Text=/<script\a){( " b,c="",d=0,f=a)nsde || +if(f){if(1===f||9===f||11===f){if("s		if ]==*s (= 1a)*extCTypeOr)rvery.ia.*extCTypeOr;for(a=a.f(ddeC
-	d;a;a=a.nextSiblif )c+=((a)}" + eif(3===f||4===f) dataTya.nsdeVe;ua}" + ew
-		(b=a[d++])c+=((b)+ dataTyc},d=db.select rs={c/chaLers =:50,cv,atePseudo:fb,m// f:V,attrHandle:{},f ==:{},r{l()iv+:{">":{dir:"pav,
+N.no",f(dde:!0}," ":{dir:"pav,
+N.no"},"+":{dir:"previousSiblif ",f(dde:!0},"~":{dir:"previousSiblif "}},preF lre):{ATTR:f<script\a){rvery.ia[1]=a[1].-	n" && ab,bb),a[3]=(a[4]||a[5]||""))-	n" && ab,bb),"~="===a[2]&&(a[3]=" "+a[3]+" "),ars);ce(0,4)},CHILD:f<script\a){rvery.ia[1]=a[1].*oLowerCase(t,"nth"===a[1].s);ce(0,3)?(a[3]||db. rr//(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("	dan"===a[3]||"hdd"===a[3])),a[5]=+(a[7]+a[8]||"hdd"===a[3])):a[3]&&db. rr//(a[0]),a},PSEUDO:/<script\a){( " b,c=!a[5]&&a[2]; dataTyV.CHILD: funca[0])?});
:(a[3]&&void 0!==a[4]?a[2]=a[4]:c&&T: funcc)&&(b=ob(c,!0))&&(b=c)h?):[Of(")",c)ters =-b)-c)ters =)&&(a[0t=a[0t.s);ce(0,b),a[2]=c.s);ce(0,b)),ars);ce(0,3))}},f lre):{TAG:/<script\a){( " b=a.-	n" && ab,bb).*oLowerCase(t; dataT"*"===a?/<script\){ dataT!0}:/<script\a){ dataTya.nsde	if &&a.nsde	if .*oLowerCase(t===b}},CLASS:/<script\a){( " b=w[a+" "];rvery. b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&w,a,/<script\a){ dataTyb: func"s		if ]==*s (= 1a)ctads	if &&a)ctads	if ||ns (= 1arge
Attribu f!==A&&arge
Attribu f	"
tads])||"")})},ATTR:f<script\a,b,c){rvery.if<script\d){( "  =db.attr(d,a)+ dataTyt{
 ==e?"!="===b:b?(e+="","="===b?a===c:"!="===b?f!==c:"^="===b?c&&0===eph?):[Of(c):"*="===b?c&&eph?):[Of(c)>-1:"$="===b?c&&eps);ce(-c)ters =)===c:"~="===b?(  "+e+" ")ph?):[Of(c)>-1:"|="===b?a===c||e.s);ce(0,c)ters =+1)===c+"-":!1):!0}},CHILD:f<script\a,b,c,d,e){( " f="nth"!==a.s);ce(0,3),g="tade"!==a.s);ce(-4),h="of-t|| "===b+ dataTy1===d&&0===e?/<script\a){ dataT!!a)pav,
+N.no}:/<script\b,c,i){y woj,k,l,m,n,o,p=f!==g?"nextSiblif ":"previousSiblif ",q=b.pav,
+N.no,r=h&&b.nsde	if .*oLowerCase(t,t=!i&&!=+if(q){if(f){w
-		(p){l=b;w
-		(l=l[p])if(h?l.nsde	if .*oLowerCase(t===r:1===lpnsde || ) dataT!1;o=p="onlo]===a&&!o&&"nextSiblif "} dataT!0}if(o=[g?q.f(ddeC
-	d:q)tadeC
-	d],g&&t){k=q[st||(q[st={}),j=k[a]||[],n=j[0t===u&&j[1],m=j[0t===u&&j[2],l=t&&q.c
-	dN.no [n];w
-		(l=++t&&l&&l[p]||(m=n=0)||oepop())if(1===lpnsde || &&++m&&l===b){k[a]=[u,n,m];brd(k}}" + eif(t&&(j=(b[st||(b[st={}))[a])&&j[0t===u)m=j[1]+" + ew
-		(l=++t&&l&&l[p]||(m=n=0)||oepop())if((h?l.nsde	if .*oLowerCase(t===r:1===lpnsde || )&&++m&&(t&&((l[st||(l[st={}))[a]=[u,m]),l===b)abrd(k+ dataTym-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:/<script\a,b){( " c,e=d.pseudos[a]||d.senF lre)s[a.*oLowerCase(t]||db. rr//("unsupf sued pseudo: "+a); dataTye[st?f	b):e.ters =>1?(c=[a,a,"",b],d.senF lre)s.hasOwnProperty(a.*oLowerCase(t)?/b,/<script\a,c){( " d,f=e\a,b),g=frters ="w
-		(g--)d=I.
resaa,f[g]),a[d]=!(c[d]=/[g])}):/<script\a){ dataTye\a,0,c)}):e}},pseudos:{not:fb(/<script\a){( " b=[],c=[],d=g(ap-	n" && P,"$1")); dataTyd[st?/b,/<script\a,b,c, ){( " f,g=d\a,});
,e,[]),h=arters ="w
-		(h--)(f=g[h])&&(a[h]=!(b[h]=/))}):/<script\a,e,f){ dataTyb[0t=a,d\b,});
,f,c),!c.pop()}}),has:fb(/<script\a){ dataTy/<script\b){ dataTydb\a,b).ters =>0}}),coypains:fb(/<script\a){ dataTy/<script\b){ dataT(b.*extCTypeOr||b.innerText||e	b))ph?):[Of(a)>-1}}),laf :fb(/<script\a){ dataTyU: funca||"")||db. rr//("unsupf sued laf : "+a),a=a.-	n" && ab,bb).*oLowerCase(t,/<script\b){( " c;do de(c=n?brlaf :b.genAttribu f	"xml:laf ")||b.genAttribu f	"laf ")) dataT c=c)*oLowerCase(t,c===a||0===c)h?):[Of(a+"-");w
-		((b=b.pav,
+N.no)&&1===bpnsde || ); dataT!1}}),target:/<script\b){( " c=a)toc//ipt&&artoc//ipt.hash+ dataTyc&&c.s);ce(1t===b.id},root:/<script\a){ dataTya===m},focws:/<script\a){ dataTya===l.\/tiveEfor(; &&(!l.hasFocws||l.hasFocws())&&!!(a.t|| ||a.href||~a.tabI?):[)},ontyled:/<script\a){ dataTya.distyled===!1},distyled:/<script\a){ dataTya.distyled===!0},c
ecked:/<script\a){( " b=a.nsde	if .*oLowerCase(t; dataT"input]===b&&!!a.c
ecked||"hpript]===b&&!!a.selected},selected:/<script\a){ dataTya.pav,
+N.no&&a.pav,
+N.no.selectedI?):[,a.selected===!0},empty:f<script\a){for(a=a.f(ddeC
-	d;a;a=a.nextSiblif )if(a.nsde || <6) dataT!1;rvery.!0},pav,
+:/<script\a){ dataT!d.pseudos.empty(a)},header:/<script\a){ dataTyX: funcapnsde	if )},i?put:/<script\a){ dataTyW: funcapnsde	if )},button:/<script\a){( " b=a.nsde	if .*oLowerCase(t; dataT"input]===b&&"button]===a.t|| ||"button]===b},peuc:/<script\a){( " b; dataT"input]===a.nsde	if .*oLowerCase(t&&"peuc]===a.t|| &&(n{
 ==(b=a.genAttribu f	"t|| "))||"peuc]===b.*oLowerCase(t)},f(dde:lb,/<script\){ dataT[0]}),lade:lb,/<script\a,b){ dataT[b-1]}t, q:lb,/<script\a,b,c){rvery.[0>c?c+b:c]}t, dan:lb,/<script\a,b){for(( " c=0;b>c;c+=2)aepush(c); dataTya}),odd:lb,/<script\a,b){for(( " c=1;b>c;c+=2)aepush(c); dataTya}),le:lb,/<script\a,b,c){for(( " d=0>c?c+b:c;--d>=0;)aepush(d); dataTya}),ge:lb,/<script\a,b,c){for(( " d=0>c?c+b:c;++d<b;)aepush(d); dataTya})}},d.pseudos.nth=d.pseudos.eq;for(bei
{radio:!0,c
eckbox:!0,f-		:!0,password:!0,imag	:!0})d.pseudos[b]=jb(b);for(bei
{submie:!0,reset:!0})d.pseudos[b]=kb(b);f<script nb(){}nb.p+	tons (=d.filre)s=d.pseudos,d.senF lre)s=new nb;f<script ob\a,b){( " c,e,f,g,=,i,j,k=x[a+" "];de(k) dataT b?0:krs);ce(0);h=a,i=[],j=d.preF lre)"w
-		(h){(!c||(e=Q.e ec(ht))&&( &&(h=h.s);ce(e[0t.ters =)||h),iepush(f=[])t,c=!1,(e=R.e ec(ht)&&(c=e.shift(),fepush({ve;ua:c,*|| :e[0t.-	n" && P," ")}),h=h.s);ce(c)ters =));for(gei
-d.filre))!(e=V[g].e ec(ht)||j[g]&&!(e=j[g]( ))||(c=e.shift(),fepush({ve;ua:c,*|| :g,m// fes:e}),h=h.s);ce(c)ters =));de(!cabrd(k} dataT b?h)ters =:h?db. rr//(a):x\a,i)rs);ce(0)}f<script pb\a){for(( " b=0,c=a)ters =,d="""c>b;b++)d+=a[b].ve;ua; dataTyd}f<script qb\a,b,c){( " d=b.dir, =c&&"pav,
+N.no"===d,f=v++; dataTyb.f(dde?/<script\b,c,f){w
-		(b=b[d])if(1===bpnsde || ||e) dataTya\b,c,f)}:/<script\b,c,g){( " h,i,j=[u,f];de(g){w
-		(b=b[d])if((1===bpnsde || ||e)&&a\b,c,g)) dataT!0}" + ew
-		(b=b[d])if(1===bpnsde || ||e){if(i=b[st||(b[st={}),(h=i[d])&&h[0t===u&&h[1]===f) dataTyj[2]=h[2];if(i[d]=j,j[2]=a\b,c,g)) dataT!0}}}f<script rb\a){ dataTya.ters =>1?/<script\b,c,d){( "  =a.ters ="w
-		(e--)if(!a[e]\b,c,d)) dataT!1;rvery.!0}:a[0t}f<script sb\a,b,c,d,e){for(( " f,g=[],h=0,i=a.ters =,j=t{
 !=b+i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h))+ dataTyg}f<script tb\a,b,c,d,e,f){ dataTyd&&!d[st&&(d=tb\d)),o&&!e[st&&(e=tb\e,f)),/b,/<script\f,g,=,i){y woj,k,l,m=[],n=[],o=g.ters =,p=f||wbeb||"*",hpnsde || ?[h]:h,[]),q=!a||!f&&b?p:sb\p,m,a,=,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c q,r,=,i),d){j=sb\r,n),d(j,[],h,i),k=j.ters ="w
-		(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=lt)}if(f){if( ||a){if( ){j=[],k=r.ters ="w
-		(k--)(l=r[k])&&j.push(q[k]=lt;e(n{
 ,r=[],j,i)}k=r.ters ="w
-		(k--)(l=r[k])&&(j=e?I.
resaf,l):m[k])>-1&&(f[j]=!(g[j]=lt)}}" + er=sb\r===g?rp" );ce(o,r.ters =):r),o?e(n{
 ,g,r,i):G.	iflyeg,r)})}f<script ub\a){for(( " b,c,e,f=a)ters =,g=d.r{l()iv+[a[0t.*|| ],i=g||d.r{l()iv+[" "],j=g?1:0,k=qb(/<script\a){rvery.ia===b},i,!0),l=qb(/<script\a){rvery.iI.
resab,a)>-1},i,!0),m=[/<script\a,c,d){ dataT!g&&(d||c!==h)||((b=c)pnsde || ?k\a,c,d):l\a,c,d))}];f>j;j++)de(c=d.r{l()iv+[a[jt.*|| ])m=[qb(rb\mt,c)]+" + {de(c=d.filre)[a[jt.*|| ].	iflye});
,a[jt.m// fest,c[st){for(e=++j;f>e;e++)if(d.r{l()iv+[a[et.*|| ])brd(k+ dataTytb\j>1&&rb\mt,j>1&&pb\a.s);ce(0,j-1).cTyc//({ve;ua:" "===a[j-2t.*|| ?"*":""})).-	n" && P,"$1"),c,e>j&&ub\a.s);ce(j,e)),f>e&&ub\a=a.s);ce(e)),f>e&&pb\a))}mepush(c)} dataT rb\mt}f<script vb\a,b){( " c=b.ters =>0,e=a.ters =>0,f=/<script\f,g,i,j,k){( " m,n,o,p=0,q="0",r=/&&[],s=[],t=h,v=f|| &&def ==.TAG("*",k),w=u+=n{
 ==t?1:M//h.random()||.1,x=v.ters ="for(k&&(h=g!==l&&g);q!==x&&t{
 !=(m=v[q]);q++){if( &&m){n=0iw
-		(o=a[n++])if(o(m,g,i)){jepush(m);brd(k}k&&(u=w)}c&&((m=!o&&m)&&p--,/&&repush(m))}if(p+=q,c&&q!==p){n=0iw
-		(o=b[n++])o\r,s,g,i)+if(f){if(p>0)w
-		(q--)r[q]||s[q]||(s[q]=E.
resaj))+s=sb\s)}G.	iflyej,st,k&&!/&&s.ters =>0&&p+b.ters =>1&&db.uniq cS suaj)} dataT k&&(u=w,h=*),r}+ dataTyc?/b,/):f}g=db.comp-		=/<script\a,b){( " c,d=[],e=[],f=y[a+" "];de(!f){b||(b=ob(a)t,c=b.ters ="w
-		(c--)f=ub\b[c]),f[st?d.push(f):e.push(f);f=y\a,vb\e,d))} dataTyf};f<script wb\a,b,c){for(( " d=0, =b.ters ="e>d;d++)db\a,b[d],c)+ dataTyc}f<script xb\a,b,e,f){( " h,i,j,k,l,m=ob(a);de(!f&&1===m)ters =){if(i=m[0t=m[0t.s);ce(0),ieters =>2&&"ID"===(j=i[0]).t|| &&c.ge
ById&&9===bpnsde || &&n&&der{l()iv+[i[1].*|| ]){if(b=(d.f ==.ID(j.m// fes[0t.-	n" && ab,bb),b)||[])[0],!b)rvery. e;a=a.s);ce(i.shift().ve;ua)ters =)}h=V.nuedsCoypeuc: funca)?0:irters ="w
-		(h--){if(j=i[h],der{l()iv+[k=j.*|| ])brd(k+if((l=d.f ==[k])&&(f=l(j.m// fes[0t.-	n" && ab,bb),$: funci[0t.*|| )&&mb(b.pav,
+N.no)||b))){de(ip" );ce(h,1),a=frters =&&pb\i),!a) dataTyG.	iflyee,f),e;brd(k}}} dataTyg\a,m)(f,b,!n,e,$: funca)&&mb(b.pav,
+N.no)||b),e} dataTyc.s suSttyle=s)s );t( ")."ort(z))join("")===.,c.ditectDuflic//es=!!j,k(t,c.s suDet/ched=gb(/<script\a){rvery.i1&a.compareDocweirdPosiript(l.cv,ateEfor(; 	"div"))}),gb(/<script\a){rvery.ia.innerHTML="<a href='#'></a>","#]===a.f(ddeC
-	d.genAttribu f	"href")})||hb	"t|| |href|height|width",/<script\a,b,c){rvery.yc?void 0:a.genAttribu f	b,"t|| "===b.*oLowerCase(t?1:2)}),c.attribu fs&&gb(/<script\a){rvery.ia.innerHTML="<input/>",a.f(ddeC
-	d.senAttribu f	"ve;ua",""),"]===a.f(ddeC
-	d.genAttribu f	"ve;ua")})||hb	"ve;ua",/<script\a,b,c){rvery.yc||"input]!==a.nsde	if .*oLowerCase(t?void 0:a.de justVe;ua}),gb(/<script\a){rvery.it{
 ==a.genAttribu f	"distyled")})||hb	J,/<script\a,b,c){( " d;rvery.yc?void 0:a[b]===!0?b.*oLowerCase(t:( =arge
Attribu fN.no	b))&&desautified?d.ve;ua:t{
 }),db}(a);n.f ===t,t.expr=t.select rs,t.expr[":"]=t.expr.pseudos,n.uniq c=t.uniq cS su,n.peuc=*rge
Text,t	heXMLDoc=*rheXML,t	coypains=t	coypains;( " u=t.expr.m// f.nuedsCoypeuc,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;f<script x\a,b,c){if(n	isF	serialib)) dataTyt	g-	n(a,/<script\a,d){ dataT!!b.
resaa,d,a)!==c})+if(bpnsde || ) dataTyt	g-	n(a,/<script\a){rvery.ia===b!==c})+if("s		if ]==*s (= 1b){if(we funcb)) dataTyt	filre)ab,a,c);b=n	filre)ab,a)} dataTyt	g-	n(a,/<script\a){rvery.in.inAin o(a,b)>=0!==c})}n	filre)=/<script\a,b,c){( " d=b[0t+ dataTyc&&\a=":no 	"+a+")"),1===bpters =&&1===dpnsde || ?n.f ==.m// fesSelect r(d,a)?[d]:[]:n.f ==.m// fes\a,}	g-	n(b,/<script\a){rvery.i1===apnsde || }))},nrft.ext ==({f ==:/<script\a){( " b,c=[],d=*/".,e=drters ="if("s		if ]!=*s (= 1a) dataT */"..pushStack	n(a)rfilre)a/<script\){for(b=0ie>b;b++)if(n.coypains(d[b],*/".)) dataT!0}));for(b=0ie>b;b++)n.f ==aa,d[b],c)+ dataTyc=*/"..pushStack	e>1?n.uniq c(c):ct,c.select r=*/"..select r?*/"..select r+" "+a:a,c},f lre):/<script\a){rvery.i*/"..pushStack	xe*/".,a||[],!1))},not:/<script\a){ dataTy*/"..pushStack	xe*/".,a||[],!0))},he:/<script\a){ dataT!!xe*/".,"s		if ]==*s (= 1a&&u: funca)?t\a):a||[],!1).ters =}});( " y,z=a.docweird,A=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,B=nrft.init=/<script\a,b){( " c,d;if(!a) dataT */".+if("s		if ]==*s (= 1a){if(c="<]===a.charAt(0)&&">]===a.charAt(a.ters =-1)&&arters =>=3?[});
,a,});
]:A.e ec(a),!c||!c[1]&&b)rvery.!b||b.jq cry?eb||y).f ==aa):*/"..cTy			uct r(b).f ==aa);if(c[1]){if(b=bei
stanc(= 1n?b[0t:b,n	mergju*/".,n	pavseHTML(c[1],b&&b.nsde || ?b.ownerDocweird||b:z,!0)),v: funcc[1])&&n	heP" inO ) {
(b))for(cei
-b)n	isF	seriali*/".[c])?*/".[c]\b[c]):*/"..attr(c,b[c]); dataT */".}if(d=z.genEfor(; ById(c[2]),d&&depav,
+N.no){if(d.id!==c[2]) dataTyy.f ==aa);*/"..ters ==1,d/".[0t=d} dataTy*/"..coypeuc=z,*/"..select r=a,*/".}rvery.ia.nsde || ?(*/"..coypeuc=d/".[0t=a,*/"..ters ==1,d/".):t	heF<script\a)? 't get/se"!=*s (= 1y.-	ady?y.-	ady\a):a(nt:(void 0!==a.select r&&(t/"..select r=a.select r,*/"..coypeuc=a.coypeuc),t	mak0Ain o(a,*/".))};B.p+	tons (=nrft,y=n(z);( " C=/^(?:pav,
+s|prev(?:Until|Aes))/,D={c
-	dv,
:!0,cTypeOrs:!0,next:!0,prev:!0};t.ext ==({dir:/<script\a,b,c){( " d=[],e=a[b]"w
-		(e&&9!==epnsde || &&(void 0===c||1!==epnsde || ||!n(e)	he(c)))1===epnsde || &&d.push(e),e=e[b]" dataTyd},siblif :/<script\a,b){for(( " c=[];a;a=a.nextSiblif )1===apnsde || &&a!==b&&crpush(a)+ dataTyc}}),t	ft.ext ==({has:f<script\a){( " b,c=n(a,*/".),d=c.ters =" dataTy*/"..filre)a/<script\){for(b=0id>b;b++)if(n.coypains(*/".,c[b])) dataT!0})},closest:/<script\a,b){for(( " c,d=0,e=*/"..ters =,f=[],g=u: funca)||"s		if ]!=*s (= 1a?t\a,b||d/"..cTypeuc):0"e>d;d++)for(c=*/".[d];c&&c!==b;c=c)pav,
+N.no)de(c.nsde || <11&&(g?gph?):[(c)>-1:1===cpnsde || &&n.f ==.m// fesSelect r(c,a))){f.push(c);brd(k} dataT */"..pushStack	f.ters =>1?n.uniq c(/):f)},i?):[:/<script\a){ dataTya?"s		if ]==*s (= 1a?n.inAin o(*/".[0],t\a)):t	hnAin o(a.jq cry?a[0t:a,*/".):*/".[0]&&*/".[0].pav,
+N.no?*/"..fidde().p+evAesa).ters =:-1},add:/<script\a,b){ dataT */"..pushStack	n.uniq c(n	mergju*/"..get(),t\a,b))))},addBack:/<script\a){ dataT */"..add(t{
 ==a?*/"..p+evO ) {
:*/"..p+evO ) {
.filre)aa))}});f<script E\a,b){doia=a[b]"w
-		(a&&1!==apnsde || ); dataTya}t	e\//,{pav,
+:/<script\a){( " b=a.pav,
+N.no; dataTyb&&11!==b.nsde || ?b:t{
 },pav,
+s:/<script\a){ dataTyt.dir\a,"pav,
+N.no")},pav,
+sUntil:f<script\a,b,c){rvery.it.dir\a,"pav,
+N.no",c)},next:/<script\a){ dataTyE\a,"nextSiblif ")},prev:/<script\a){ dataTyE\a,"previousSiblif ")},nextAes:/<script\a){ dataTyt.dir\a,"nextSiblif ")},prevAes:/<script\a){ dataTyt.dir\a,"previousSiblif ")},nextUntil:f<script\a,b,c){rvery.it.dir\a,"nextSiblif ",c)},prevUntil:f<script\a,b,c){rvery.it.dir\a,"previousSiblif ",c)},siblif s:/<script\a){ dataTyt.siblif ((a.pav,
+N.no||{}).f(ddeC
-	d,a)},c
-	dv,
:/<script\a){ dataTyt.siblif (a.f(ddeC
-	d)},cTypeOrs:/<script\a){ dataTyt.nsde	if \a,"ifrif ")?a.coypentDocweird||a.coypentWifdow.docweird:n	mergju[],aec
-	dN.no )}},f<script\a,b){t	ft[a]=f<script\c,d){( "  =n.map,*/".,b,c)+ dataT"Until"!==a.s);ce(-5)&&(d=c),d&&"s		if ]==*s (= 1d&&(e=n	filre)ad,e)),*/"..ters =>1&&(D[a]||(e=n	uniq c(e)),C: funca)&&(e= rreverse(t)),*/"..pushStack	e)}});( " F=/\S+/g,G={};f<script H\a){( " b=G[a]={}+ dataTyt	e\//,a.m// f(F)||[],f<script\a,c){b[c]=!0}),b}t	Cresbacks=/<script\a){a="s		if ]==*s (= 1a?G[a]||H\a):t.ext ==({},a);( " b,c,d,e,f,g,==[],i=!a.onc(&&[],j=/<script\l){for(c=a)memory&&l,d=!0,f=g||0,g=0,e=h)ters =,b=!0;h&&e>f;f++)if(h[f].	iflyel[0],l[1])===!1&&arstopOnFalso){c=!1;brd(k}b=!1,h&&(i?ipters =&&j(i.shift()):c?==[]:k.distyle(t)},k={add:/<script\){if(h){( " d=h)ters =;!f<script f(b){t	e\//,b,f<script\b,c){( " d=t.*s ((c)+"/<script]===d?a.uniq c&&k.has(c)||h.push(c):c&&c.ters =&&"s		if ]!==d&&f(c)})}aaa weird ),b?a=h)ters =:c&&(g=d,j(c))} dataT */".},r{g (j:/<script\){ dataTy=&&}	e\//,aa weird ,/<script\a,c){( " d;w
-		((d=t.hnAin o(c,h,d))>-1)hp" );ce(d,1),b&&(e>=d&&e--,/>=d&&f--)}),*/".},has:f<script\a){ dataTya?n.inAin o(a,h)>-1:!(!h||!h)ters =)},empty:f<script\){ dataTy==[],e=0,*/".},distyle:f<script\){ dataTy==i=c=void 0,*/".},distyled:/<script\){ dataT!h},lock:/<script\){ dataTyi=void 0,c||k.distyle(t,*/".},locked:/<script\){ dataT!i},f(deWit/:/<script\a,c){rvery.!h||d&&!i||(c=c||[],c=[a,c.s);ce?c.s);ce():c],b?i.push(c):j(c)),*/".},f(de:/<script\){ dataTyk.f(deWit/e*/".,aa weird ),*/".},f(ded:/<script\){ dataT!!d}}+ dataTyk},t.ext ==({Def rred:/<script\a){( " b=[["resolv+","don+",t	Cresbacks("once memory"),"resolv+d"],["re) {
],"fail",t	Cresbacks("once memory"),"rejected"],["notify","progress",t	Cresbacks("memory")]],c="fendif ",d={state:/<script\){ dataTyc},always:/<script\){ dataTy rdoneaaa weird ).fail(aa weird ),*/".},thet:/<script\){y woa=aa weird + dataTyt	Def rred,/<script\c){t	e\//,b,f<script\b,f){y wog=t	heF<script\a[b])&&a[b]"e[f[1]],/<script\){y woa=g&&g.aiflye*/".,aa weird );a&&n	heF<script\a.p+	miso)?a.p+	miso()rdoneac.resolv+).fail(c.reject).p+ogress(c.nstify):c[f[0]+"Wit/"]e*/".===d?c.p+	miso():*/".,g?[a]:aa weird )})}),a=t{
 }).p+	miso()},pr	miso:/<script\a){ dataTyt{
 !=a?t.ext ==(a,d):d}},e={}+ dataTyd.pi (=d.thet,t	e\//,b,f<script\a,f){y wog=f[2],h=f[3];d[f[1]]=g.add,h&&g.add,/<script\){c=h},b[1^a][2].distyle,b[2][2].lock),e[f[0]]=/<script\){ dataTye[f[0]+"Wit/"]e*/".===e?d:*/".,aa weird ),*/".},e[f[0]+"Wit/"]=g.f(deWit/}),d.p+	miso(e),a&&a)cresae,e),e},when:/<script\a){( " b=0,c=d.
resaaa weird ), =c.ters =,f=1!==e||a&&n	heF<script\a.p+	miso)?e:0,g=1===f?a:t	Def rred,),h=f<script\a,b,c){rvery.if<script\e){b[a]=*/".,c[a]=aa weird .ters =>1?d.
resaaa weird ):e,c===i?gpnstifyWit/eb,c):--f||gnresolv+Wit/eb,c)}},i,j,k;if(e>1)for(i=new Ain o(e),j=new Ain o(e),k=new Ain o(e)ie>b;b++)c[b]&&n	heF<script\c[b].p+	miso)?c[b].p+	miso()rdonea/eb,k,c)).fail(g.reject).p+ogress(/eb,j,i)):--f+ dataTyf||gnresolv+Wit/ek,c),g.p+	miso()}});( " I;nrft.-	ady=/<script\a){ dataTyt.-	ady.p+	miso()rdoneaa),*/".},t.ext ==({isReady:!1,-	adyWait:1,holdReady:/<script\a){a?t.-	adyWait++:t.-	ady(!0)},ready:/<script\a){if(a===!0?!--t.-	adyWait:!n	heReady){if(!z.body) dataTysetTimeout(t.-	ady);n.heReady=!0,a!==!0&&--t.-	adyWait>0||(Inresolv+Wit/ez,[n]),t	ft.		igger&&n(z))		igger("-	ady").off("-	ady"))}}});f<script J\){z.addEdantListener?(z)r{g (jEdantListener( DOMCTypeOrLoadee",K,!1),a)r{g (jEdantListener( load",K,!1)):(z)det/chEdant("on-	adystatechang+",K),a)det/chEdant("onload",K)t}f<script K\){(z.addEdantListener|| load"===edant.t|| ||"compsite"===z.-	adyState)&&(J(),t.-	ady())}n	-	ady.p+	miso=/<script\b){if(!I)if(I=t	Def rred,),"compsite"===z.-	adyState)setTimeout(t.-	ady);" + eif(z.addEdantListener)z.addEdantListener( DOMCTypeOrLoadee",K,!1),a)addEdantListener( load",K,!1)+" + {z.att/chEdant("on-	adystatechang+",K),a)att/chEdant("onload",K);( " c=!1;try{c=t{
 ==a.frif Efor(; &&zrdocweirdEfor(; }c// f(d){}c&&c.doScroll&&!/<script e\){if(!n	heReady){try{c.doScroll( left")}c// f(a){ dataTysetTimeout(e,50)}J(),t.-	ady()}}()} dataT I.p+	miso(b)};( " L= 't get/se",M;for(Mei
-t\l))brd(k+l.ownLast="0"!==M,l.inlt/sBlockNuedsLayout=!1,n,/<script\){y woa,b,c=z.genEfor(; sByTag	if ("body")[0];c&&\a=z.cv,ateEfor(; 	"div"),a.style.cssText="border:0;width:0;height:0;posiript:absolute;top:0;teft:-9999px;maa in-top:1px",b=z.cv,ateEfor(; 	"div"),c.	ifendC
-	d(a)r	ifendC
-	d(b),*s (= 1b.style.zoom!==L&&(b.style.cssText="border:0;maa in:0;width:1px;paddif :1px;disn" y:inlt/s;zoom:1",(l.inlt/sBlockNuedsLayout=3===bpoffsetWidth)&&(c.style.zoom=1)),c.r{g (jC
-	d(a),a=b=t{
 )}),/<script\){y woa=z.cv,ateEfor(; 	"div");if(t{
 ==l. gsiteExpando){l. gsiteExpando=!0;try{ gsite a: fun}c// f(b){l. gsiteExpando=!1}}a=t{
 }(),t.acceptData=/<script\a){( " b=t.nsData[capnsde	if +" ")p*oLowerCase(t],c=+apnsde || ||1; dataTy1!==c&&9!==c?!1:!b||b!==!0&&arge
Attribu f	"
tadsid")===b};( " N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;f<script P\a,b,c){if(void 0===c&&1===apnsde || ){( " d="data-"+b.-	n" && O,"-$1").*oLowerCase(t;if(c=arge
Attribu f	d),"s		if ]==*s (= 1c){try{c="true"===c?!0:"falso"===c?!1:"t{
 "===c?});
:+c+""===c?+c:N: funcc)?n	pavseJSON(c):c}c// f(e){}n.data\a,b,c)}" + ec=void 0} dataTyc}f<script Q\a){( " b;for(bei
-a)if(("data]!==b||!n.heEmptyO ) {
\a[b])t&&"poJSON]!==b) dataT!1;rvery.!0}f<script R\a,b,d,o){if(n.acceptDataaa)){( " f,g,==t.expando,i=a.nsde || ,j=i?n	c/cha:a,k=i?a[h]:a[h]&&="if(k&&j[kt&&(e||j[k].data)||void 0!==d||"s		if ]!=*s (= 1b)rvery. k||(k=i?a[h]=c.pop()||n	guid++:h),j[k]||(j[k]=i?{}:{poJSON:t.nsop}),("h ) {
]==*s (= 1b||"/<script]==*s (= 1b)&&(e?j[k]=t.ext ==(j[k],b):j[k].data=t.ext ==(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n	c/melCase(b)]=d),"s		if ]==*s (= 1b?(f=g[b],t{
 ==f&&(f=g[n	c/melCase(b)])):/=g,f
+}}f<script S\a,b,c){if(n	acceptDataaa)){( " d,e,f=a)nsde || ,g=f?n	c/cha:a,h=f?a[t.expando]:t.expando;de(g[h]){if(b&&(d=c?g[h]:g[h].data)){t	heAin o(b)?b=b.cTyc//(n.map,b,n	c/melCase)):bei
-d?b=[b]:(b=n	c/melCase(b),b=bei
-d?[b]:b.c );t(  ")), =b.ters ="w
-		(e--)dgsite d[b[e]];if(c?!Q(d):!n.heEmptyO ) {
\d)) dataT}(c||(dgsite g[h].data,Q(g[h])))&&(f?n	cleanDataa[a],!0):l. gsiteExpando||g!=g.wifdow?dgsite g[h]:g[h]=t{
 )}}}t.ext ==({c/cha:{},noData:{"aiflet ":!0,"embed ":!0,"h ) {
 ":"
tsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:/<script\a){rvery.ia=apnsde || ?n.c/cha[a[t.expando]]:a[t.expando],!!a&&!Q(a)},data:/<script\a,b,c){rvery.iR\a,b,c)},r{g (jData:/<script\a,b){rvery.iSaa,b)},_data:/<script\a,b,c){rvery.iR\a,b,c,!0)},_r{g (jData:/<script\a,b){rvery.iSaa,b,!0)}}),t	ft.ext ==({data:/<script\a,b){( " c,d,e,f=*/".[0],g=f&&f.attribu fs;if(void 0===a){if(*/"..ters =&&(e=n	data\f),1===fpnsde || &&!n._data\f,"pavsedAttrs"))){c=g.ters ="w
-		(c--)d=g[c].nif ,0===dph?):[Of("data-")&&(d=n	c/melCase(d.s);ce(5)),P(f,d,e[d]));n._data\f,"pavsedAttrs",!0)} dataTye} dataT"h ) {
]==*s (= 1a?*/"..e\//,/<script\){n	data\*/".,a)}):aa weird .ters =>1?*/"..e\//,/<script\){n	data\*/".,a,b)}):f?P(f,a,}	data\f,a)):void 0},r{g (jData:/<script\a){ dataT */"..e\//,/<script\){n	r{g (jData\*/".,a)})}}),t	ext ==({queue:/<script\a,b,c){( " d;rvery.ya?(b=eb||"fx")+"queue",d=n._data\a,b),c&&\!d||n	heAin o(c)?d=n._data\a,b,t	mak0Ain o(c)):depush(c)),d||[]):void 0},dequeue:/<script\a,b){b=b||"fx";( " c=n.queue\a,b),d=c.ters =, =c.shift(),f=n._queueHooks\a,b),g=f<script\){n	dequeue\a,b)};"inprogress"===e&&(e=c.shift(),d--),o&&("fx"===b&&crunshift("inprogress"),dgsite frstop,e.
resaa,g,f)),!d&&f&&f.empty.f(de()},_queueHooks:/<script\a,b){( " c=b+"queueHooks"+ dataTyt	_data\a,c)||n	_data\a,c,{empty:t	Cresbacks("once memory").add,/<script\){n	_r{g (jData\a,b+"queue"),t	_r{g (jData\a,c)})})}}),t	ft.ext ==({queue:/<script\a,b){( " c=2+ dataT"s		if ]!=*s (= 1a&&(b=a,a="fx",c--),aa weird .ters =<c?}.queue\*/".[0],a):void 0===b?*/".:*/"..e\//,/<script\){( " c=n.queue\*/".,a,b);n._queueHooks\*/".,a),"fx"===a&&"inprogress"!==c[0]&&n	dequeue\*/".,a)})},dequeue:/<script\a){ dataT */"..e\//,/<script\){n	dequeue\*/".,a)})},clearQueue:/<script\a){ dataT */"..queue\a||"fx",[])},pr	miso:/<script\a,b){( " c,d=1,e=t	Def rred,),f=*/".,g=*/"..ters =,h=f<script\){--d||e.resolv+Wit/ef,[f])};"s		if ]!=*s (= 1a&&(b=a,a=void 0),a=a||"fx";w
-		(g--)c=n._data\/[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add,h))+ dataTyh,),e.p+	miso(b)}});( " T=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,U=["Top","Right","Bottom","Left"],V=/<script\a,b){ dataTya=b||a,"non+"===n.cssaa,"disn" y")||!n.coypains(a.ownerDocweird,a)},W=n	access=f<script\a,b,c,d,e,f,g){( " h=0,i=a.ters =,j=t{
 ==c+if("h ) {
]===t.*s ((c)){e=!0;for(hei
-c)n	access\a,b,h,c[h],!0,f,g)}" + eif(void 0!==d&&(e=!0,t	heF<script\d)||(g=!0),j&&(g?(b.
resaa,d),b=t{
 ):(j=b,b=/<script\a,b,c){ dataTyj.
resat\a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.
resaa[h],h,b(a[h],c)))+ dataTye?a:j?b.
resaa):i?b(a[0t,c):f},X=/^(?:c
eckbox|radio)$/i;!f<script\){y woa=z.cv,ateDocweirdFragr(; 	),b=z.cv,ateEfor(; 	"div"),c=z.cv,ateEfor(; 	"input]);if(bpsenAttribu f	"
tads	if ","t"),b.innerHTML="  <link/><ttyle></ttyle><a href='/a'>a</a>",l.teadif Whi fsp &&=3===bpf(ddeC
-	d.nsde || ,l.tbody=!brge
Efor(; sByTag	if ("tbody").ters =,l.htmlSerialize=!!brge
Efor(; sByTag	if ("link").ters =,l.html5Clon+="<:nav></:nav>"!==z.cv,ateEfor(; 	"nav").clon+N.no	!0).ou frHTML,c.ns (="c
eckbox",c)c
ecked=!0,ar	ifendC
-	d(c),l.	ifendC
ecked=c)c
ecked,b.innerHTML="<*extav,a>x</textav,a>",l.noClon+C
ecked=!!b.
lon+N.no	!0).tadeC
-	d.de justVe;ua,a.	ifendC
-	d(b),b.innerHTML="<inputy*s (='radio' c
ecked='c
ecked' nif ='t'/>",l.c
eckClon+=b.
lon+N.no	!0).
lon+N.no	!0).tadeC
-	d.c
ecked,l.noClon+Edant=!0,b.att/chEdant&&(b)att/chEdant("onc);ck",/<script\){l.noClon+Edant=!1}),b.
lon+N.no	!0).
l;ck()),t{
 ==l. gsiteExpando){l. gsiteExpando=!0;try{ gsite b: fun}c// f(d){l. gsiteExpando=!1}}a=b=c=t{
 }(),f<script\){y wob,c,d=z.cv,ateEfor(; 	"div");for(bei
{submie:!0,chang+:!0,focwsin:!0})c="on"+b,(l[b+"Bubyles"]=cei
-a)||(dpsenAttribu f	c,"t"),l[b+"Bubyles"]=d.attribu fs[c].expando===!1);d=t{
 }();( " Y=/^(?:input|select|*extav,a)$/i,Z=/^key/,$=/^(?:mouse|cTypeucr(;u)|
l;ck/,_=/^(?:focwsinfocws|focwsou blur)$/,ab=/^([^.]*)(?:\.(.+)|)$/;f<script bb\){ dataT!0}f<script cb\){ dataT!1}f<script db\){nry{ dataTyz.\/tiveEfor(; }c// f(a){}}t.edant={global:{},add:/<script\a,b,c,d,e){( " f,g,=,i,j,k,l,m,o,p,q,r=n._data\a);if(r){c.handler&&(i=c,c=i.handler,e=i.select r),c.guid||(c.guid=n	guid++),(g=r.edants)||(g=r.edants={}),(k=r.handle)||(k=r.handle=/<script\a){ dataTy*s (= 1n===L||a&&n	edant.t	iggered===a.t|| ?void 0:n	edant.disn// f.aiflyek.elem,aa weird )},k.elem=a),b=eb||"").m// f(F)||[""],h=b.ters ="w
-		(h--)f=ab.e ec(b[h])||[],o=q=f[1],p=(f[2]||"").c );t( .")."ort(),o&&(j=n	edant.sautial[o]||{},o=(e?j. gsigate || :j.bh?) || )||o,j=n	edant.sautial[o]||{},l=t.ext ==({*|| :o,o	ig || :q,data:d,handler:c,guid:c.guid,select r:e,nuedsCoypeuc: &&n.expr.m// f.nuedsCoypeuc: funce),tif sp &&:p)join(".")},i),(m=g[o])||(m=g[o]=[],m. gsigateCount=0,jpsenup&&j.senup.
resaa,d,p,k)!==!1||(a)addEdantListener?a)addEdantListener(o,k,!1):a.att/chEdant&&a)att/chEdant("on"+o,kt)),j)add&&(j)add.
resaa,l),l.handler.guid||(l.handler.guid=c.guid)), ?mp" );ce(m. gsigateCount++,0,l):mepush(l),t	edant.global[o]=!0);a=t{
 }},r{g (j:/<script\a,b,c,d,e){( " f,g,=,i,j,k,l,m,o,p,q,r=n.hasDataca)&&n._data\a);if(r&&(k=r.edants)){b=eb||"").m// f(F)||[""],j=b.ters ="w
-		(j--)if(h=ab.e ec(b[j])||[],o=q=h[1],p=(h[2]||"").c );t( .")."ort(),o){l=n	edant.sautial[o]||{},o=(d?l. gsigate || :l.bh?) || )||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p)join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m)ters ="w
-		(f--)g=m[f],!e&&q!==g.o	ig || ||c&&c.guid!==g.guid||h&&!=: funcg.tif sp &&)||d&&d!==g.select r&&("**"!==d||!g.select r)||(mp" );ce(f,1),g.select r&&m. gsigateCount--,l.r{g (j&&l.r{g (j.
resaa,g));d&&!m.ters =&&(l.teardown&&l.teardown.
resaa,p,r.handle)!==!1||n)r{g (jEdantaa,o,r.handle),dgsite k[o])}" + efor(oei
-k)n	edant.r{g (jaa,o+b[j],c,d,!0);n.heEmptyO ) {
\k)&&(dgsite r.handle,t	_r{g (jData\a,"edants"))}},t	igger:/<script\b,c,d,e){( " f,g,=,i,k,l,m,o=[d||z],p=j.
resab,"t|| ")?b.t|| :b,q=j.
resab,"tif sp &&")?b.tif sp &&.c );t( ."):[];if(h=l=d=d||z,3!==dpnsde || &&8!==dpnsde || &&!_: funcp+n	edant.t	iggered)&&(pph?):[Of(".")>=0&&(q=p.c );t( ."),p=q.shift(),q."ort()),g=pph?):[Of(":")<0&&"hn"+p,b=b[t.expando]?b:tew n.Edantap,"h ) {
]==*s (= 1b&&b),b.isT	igger=e?2:3,b.tif sp &&=q.join("."),b.tif sp &&_r{=b.tif sp &&?new RegExp("(^|\\.)"+q)join("\\.(?:.*\\.|)")+"(\\.|$)"):});
,b.resust=void 0,b.target||(b.target=d),c=t{
 ==c?[b]:t	mak0Ain o(c,[b]),k=n	edant.sautial[p]||{}, ||!k.t	igger||k.t	igger.	iflyed,c)!==!1)){de(!e&&!k.noBubyle&&!n.isWifdow\d)){for(i=k. gsigate || ||p,_: funci+p)||(h=h.pav,
+N.no);h;h=h.pav,
+N.no)o.push(h),l=h;l===(dpownerDocweird||z)&&oepush(lrde justView||l.pav,
+Wifdow||a)}m=0iw
-		((h=o[m++])&&!b.isPropag//iptStoifed())b.t|| =m>1?i:k.bh?) || ||p,f=(n._data\h,"edants")||{})[b.t|| ]&&n._data\h,"handle"),f&&f.aiflyeh,c),f=g&&h[g],f&&f.aifly&&n.acceptDataah)&&(b.resust=f.aiflyeh,c),b.resust===!1&&b.p+eventDe just());if(bpt|| =p,!e&&!b.isDe justP+evented()&&\!k._de just||k._de just.aiflyeoepop(),c)===!1)&&n.acceptDataad)&&g&&d[p]&&!n.isWifdow\d)){l=d[g],l&&(d[g]=t{
 ),n	edant.t	iggered=p;try{ [p]()}c// f(r){}n.edant.t	iggered=void 0,l&&(d[g]=l)} dataTyb.resust}},disn// f:/<script\a){a=n	edant.fix(a);( " b,c,e,f,g,==[],i=d.
resaaa weird ),j=(n._data\*/".,"edants")||{})[a.t|| ]||[],k=n	edant.sautial[a.t|| ]||{};if(i[0t=a,a. gsigate arget=*/".,!k.p+eDisn// f||k.p+eDisn// f.
resa*/".,a)!==!1){h=n	edant.handlers.
resa*/".,a,j),b=0iw
-		((f=h[b++])&&!a.isPropag//iptStoifed()){a.curv,
+ arget=f.elem,g=0iw
-		((e=/.handlers[g++])&&!a.isImmediatePropag//iptStoifed())(!a.tif sp &&_r{||a.tif sp &&_r{: funce.tif sp &&))&&(a.handleO )=a,a.data=e.data,c=((n	edant.sautial[e.o	ig || ]||{}).handle||e.handler).aiflyef.elem,i),void 0!==c&&\a.resust=c)===!1&&\a.p+eventDe just(),arstopPropag//ipt(t))} dataT kepostDisn// f&&k.postDisn// f.
resa*/".,a),a.resust}},handlers:/<script\a,b){( " c,d,e,f,g=[],h=b. gsigateCount,i=a.target;if(h&&ipnsde || &&(!a.button||"c);ck"!==a.t|| ))for(;i!=*/".+i=i.pav,
+N.no||*/".)if(1===ipnsde || &&(i.distyled!==!0||"c);ck"!==a.t|| )){for(e=[],f=0;h>f;f++)d=b[f],c=d.select r+" ",void 0===e[ct&&(e[c]=d.nuedsCoypeuc?t\c,*/".)ph?):[(i)>=0:n.f ==\c,*/".,});
,[i]).ters =),e[ct&&eepush(d);e.ters =&&g.push({elem:i,handlers:e})} dataT h<b.ters =&&g.push({elem:*/".,handlers:b.s);ce(h)}),g},f(x:/<script\a){if(a[t.expando]) dataTya;( " b,c,d,e=a.t|| ,f=a,g=*/"..f(xHooks[e];g||(*/"..f(xHooks[e]=g=$: funce)?*/"..mouseHooks:Z: funce)?*/"..keyHooks:{}),d=g.p+	ps?*/"..p+	ps.cTyc//(g.p+	ps):*/"..p+	ps,a=tew n.Edantaf),b=d)ters ="w
-		(b--)c=d[b],a[c]=f[c];rvery.ya.target||(a.target=/.srcEfor(; ||z),3===a.targetpnsde || &&(a.target=a.targetppav,
+N.no),a)metaKey=!!a.metaKey,g	filre)?g.filre)aa,f):a},pr	ps:"altKey bubyles canc(ltyle ctrlKey curv,
+ arget eventPhase metaKey r{l()ed arget shiftKey target timeStamp viewew
-ch".c );t(  "),f(xHooks:{},keyHooks:{pr	ps:"char charC.no key keyC.no".c );t(  "),f(lre):/<script\a,b){ dataTyt{
 ==a.w
-ch&&(a.w
-ch=t{
 !=b.charC.no?b.charC.no:b.keyC.no),a}},mouseHooks:{pr	ps:"button buttons clientX clientY fromEfor(;  offsetX offsetY pageX pageY screenX screenY toEfor(; ".c );t(  "),f(lre):/<script\a,b){( " c,d,e,f=b.button,g=b.fromEfor(; ; dataTyt{
 ==a.pageX&&t{
 !=b.
lientX&&(d=a.targetpownerDocweird||z,e=drdocweirdEfor(; ,c=d.body,a.pageX=b.
lientX+(e&&&.ccrollLeft||c&&c.ccrollLeft||0)-(e&&&.
lientLeft||c&&c.
lientLeft||0),a.pageY=b.
lientY+(e&&&.ccrollTop||c&&c.ccrollTop||0)-(e&&&.
lientTop||c&&c.
lientTop||0)),!a.r{l()ed arget&&g&&(a.r{l()ed arget=g===a.target?b.*oEfor(; :g),a.w
-ch||void 0===f||(a.w
-ch=1&f?1:2&f?3:4&f?2:0),a}},sautial:{load:{noBubyle:!0},focws:{t	igger:/<script\){if(*/".!==db()&&*/"..focws)nry{ dataTy*/"..focws(),!1}c// f(a){}}, gsigate || :"focwsin"},blur:{t	igger:/<script\){ dataTy*/".===db()&&*/"..blur?(*/"..blur(),!1):void 0},desigate || :"focwsout"},cl;ck:{t	igger:/<script\){ dataTyt.nsde	if \*/".,"input])&&"c
eckbox"===*/"..t|| &&d/"..cl;ck?(*/"..cl;ck(),!1):void 0},_de just:/<script\a){ dataTyt.nsde	if \a.target,"a")}},beforeunload:{postDisn// f:/<script\a){(oid 0!==a.resust&&(a.o	iginalEdant.r{ataTVe;ua=a.resust)}}},simulate:/<script\a,b,c,d){( "  =n.ext ==(tew n.Edant,c,{t|| :a,isSimulated:!0,o	iginalEdant:{}});d?n.edant.t	igger(e,});
,b):n	edant.disn// f.
resab,e),e.isDe justP+evented()&&c.p+eventDe just()}},n)r{g (jEdant=z)r{g (jEdantListener?/<script\a,b,c){a)r{g (jEdantListener&&a)r{g (jEdantListener(b,c,!1)}:/<script\a,b,c){( " d="on"+b;a)det/chEdant&&(ts (= 1a[d]===L&&(a[d]=t{
 ),a)det/chEdant(d,c))},nrEdant=/<script\a,b){ dataT */".ei
stanc(= 1nrEdant?(a&&a)t|| ?(*/"..o	iginalEdant=a,*/"..t|| =a.t|| ,*/"..isDe justP+evented=a.de justP+evented||void 0===a.de justP+evented&&(a.r{ataTVe;ua===!1||arge
P+eventDe just&&arge
P+eventDe just())?bb:cb):*/"..t|| =a,b&&n.ext ==(*/".,b),*/"..timeStamp=a&&a)timeStamp||n)now\),void\*/".[t.expando]=!0)):tew n.Edantaa,b)},n.Edant.p+	tons (={isDe justP+evented:cb,isPropag//iptStoifed:cb,isImmediatePropag//iptStoifed:cb,p+eventDe just:/<script\){y woa=*/"..o	iginalEdant;*/"..isDe justP+evented=bb,a&&\a.p+eventDe just?a.p+eventDe just():a.r{ataTVe;ua=!1)},stopPropag//ipt:/<script\){y woa=*/"..o	iginalEdant;*/"..isPropag//iptStoifed=bb,a&&\a.stopPropag//ipt&&arstopPropag//ipt(t,aecanc(lBubyle=!0)},stopImmediatePropag//ipt:/<script\){*/"..isImmediatePropag//iptStoifed=bb,t/"..stopPropag//ipt(t}},n)e\//,{mouseenter:"mouse (jr",mouseleave:"mouse ut"},f<script\a,b){t	edant.sautial[a]={desigate || :b,bh?) || :b,handle:/<script\a){( " c,d=*/".,e=a.r{l()ed arget,f=a)handleO ); dataT(!e||e!==d&&!n.coypains(d,e))&&(a.t|| =/.o	ig || ,c=/.handler.aiflye*/".,aa weird ),a.t|| =b),c}}}),l.submieBubyles||(t	edant.sautial.submie={senup:/<script\){ dataTyt.nsde	if \*/".,"form")?!1:void t	edant.add,*/".,"cl;ck._submie keypress._submie",/<script\a){( " b=a.target,c=t.nsde	if \b,"input])||n)node	if \b,"button])?b.form:void 0+c&&!n._data\c,"submieBubyles")&&(t	edant.add,c,"submie._submie",/<script\a){a._submie_bubyle=!0}),t	_data\c,"submieBubyles",!0))})},postDisn// f:/<script\a){a._submie_bubyle&&(dgsite a._submie_bubyle,*/"..pav,
+N.no&&!a.isT	igger&&n	edant.simulate("submie",*/"..pav,
+N.no,a,!0))},teardown:/<script\){ dataTyt.nsde	if \*/".,"form")?!1:void t	edant.r{g (ja*/".,"._submie")}}),l.chang+Bubyles||(t	edant.sautial.chang+={senup:/<script\){ dataTyY: func*/"..nsde	if )?(("c
eckbox"===*/"..t|| ||"radio"===*/"..t|| )&&(t	edant.add,*/".,"propertychang+._chang+",/<script\a){"c
ecked]===a.o	iginalEdant.property	if &&c*/".._just_chang+d=!0)}),n	edant.add,*/".,"cl;ck._chang+",/<script\a){*/".._just_chang+d&&!a.isT	igger&&c*/".._just_chang+d=!1),n	edant.simulate("chang+",*/".,a,!0)})),!1):void n	edant.add,*/".,"before\/tivate._chang+",/<script\a){( " b=a.target;Y: funcb.nsde	if )&&!n._data\b,"chang+Bubyles")&&(t	edant.add,b,"chang+._chang+",/<script\a){!*/"..pav,
+N.no||arisSimulated||arisT	igger||n	edant.simulate("chang+",*/"..pav,
+N.no,a,!0)}),t	_data\b,"chang+Bubyles",!0))})},handle:/<script\a){( " b=a.target; dataT */".!==b||arisSimulated||arisT	igger||"radio"!==b.t|| &&"c
eckbox"!==b.t|| ?a)handleO ).handler.aiflye*/".,aa weird ):void 0},teardown:/<script\){ dataTyt.edant.r{g (ja*/".,"._chang+"),!Y: func*/"..nsde	if )}}),l.focwsinBubyles||n)e\//,{focws:"focwsin",blur:"focwsout"},/<script\a,b){( " c=/<script\a){n	edant.simulate(b,a.target,n	edant.fix(a),!0)};t	edant.sautial[b]={senup:/<script\){( " d=*/"..ownerDocweird||*/".,e=t	_data\d,b);e||d.addEdantListener(a,c,!0),t	_data\d,b,(e||0)+1)},teardown:/<script\){( " d=*/"..ownerDocweird||*/".,e=t	_data\d,b)-1; ?n._data\d,b,et:( )r{g (jEdantListener(a,c,!0),t	_r{g (jData\d,b))}}}),t	ft.ext ==({on:/<script\a,b,c,d,e){( " f,g+if("h ) {
]==*s (= 1a){"s		if ]!=*s (= 1b&&(c=c||b,b=void 0);for(fei
-a)*/"..on(f,b,c,a[f],e); dataT */".}if(t{
 ==c&&t{
 ==d?(d=b,c=b=void 0):t{
 ==d&&("s		if ]==*s (= 1b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=cb;" + eif(!d) dataT */".+rvery.i1===e&&(g=d,d=/<script\a){ dataTyt().off(a),g.aiflye*/".,aa weird )},d.guid=g.guid||(g.guid=n	guid++)),*/"..e\//,/<script\){n	edant.add,*/".,a,d,c,b)})},one:/<script\a,b,c,d){ dataTy*/"..pt\a,b,c,d,1)},off:/<script\a,b,c){( " d,e+if(a&&a)p+eventDe just&&arhandleO )) dataT d=a)handleO ),t\a. gsigate arget).off(d.tif sp &&?d.o	ig || +"."+d.tif sp &&:d.o	ig || ,d.select r,d.handler),*/".+if("h ) {
]==*s (= 1a){for(eei
-a)*/"..off(e,b,a[et); dataT */".} dataT(b===!1||"/<script]==*s (= 1b)&&(c=b,b=void 0),c===!1&&\c=cb),*/"..e\//,/<script\){n	edant.r{g (ja*/".,a,c,b)})},t	igger:/<script\a,b){ dataT */"..e\//,/<script\){n	edant.t	igger(a,b,*/".)})},t	iggerHandler:/<script\a,b){( " c=*/".[0];rvery.yc?n	edant.t	igger(a,b,c,!0):void 0}});f<script eb\a){( " b=fb.c );t( |"),c=a.cv,ateDocweirdFragr(; 	);if(c.cv,ateEfor(; )w
-		(b.ters =)c.cv,ateEfor(; (b.pop())+ dataTyc}( " fb="abbr|article|asino|audio|bdi|canvas|data|datalist|det/ils|figcapript|figure|footer|header|hgroup|mark|meter|nav|output|progress|secript|summary|time|vinoo",gb=/ jQ cry\d+="(?:t{
 |\d+)"/g,hb=new RegExp("<(?:"+fb+")[\\s/>]","i"),ib=/^\s+/,jb=/<(?!av,a|br|col|embed|hr|img|input|link|meta|pavam)(([\w:]+)[^>]*)\/>/gi,kb=/<([\w:]+)/,lb=/<tbody/i,mb=/<|&#?\w+;/,nb=/<(?:script|style|link)/i,ob=/c
ecked\s*(?:[^=]|=\s*.c
ecked.)/i,pb=/^$|\/(?:java|ecma)script/i,qb=/^true\/(.*)/,rb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,sb={hpript:[1,"<select multiple='multiple'>","</select>"],sig ==:[1,"<fieldsen>","</fieldsen>"],av,a:[1,"<map>","</map>"],pavam:[1,"<h ) {
>","</h ) {
>"],*/ead:[1,"<ttyle>","</ttyle>"],*r:[2,"<ttyle><tbody>","</tbody></ttyle>"],col:[2,"<ttyle><tbody></tbody><colgroup>","</colgroup></ttyle>"],*d:[3,"<ttyle><tbody><tr>","</tr></tbody></ttyle>"],_de just:l.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},tb=eb\z),ub=tb.	ifendC
-	d(z.cv,ateEfor(; 	"div"));sb.hprgroup=sb.hpript,sb.tbody=sb.tfoot=sb.colgroup=sb.capript=sb.t/ead,sb.th=sb.td;f<script vb\a,b){( " c,d,e=0,f=*s (= 1arge
Efor(; sByTag	if !==L?arge
Efor(; sByTag	if eb||"*"):*s (= 1arq crySelect rA
 !==L?arq crySelect rA
 eb||"*"):void 0+de(!f)for(f=[],c=aec
-	dN.no ||a;t{
 !=(d=c[et);e++)!b||t.nsde	if \d,b)?fepush(d):n	mergjuf,vb\d,b))+ dataTyvoid 0===b||b&&n	nsde	if \a,b)?n	mergju[a],/):f}f<script wb\a){X: funcapt|| )&&(a.de justC
ecked=a.c
ecked)}f<script xb\a,b){ dataTyt.nsde	if \a,"ttyle")&&n	nsde	if \11!==b.nsde || ?b:bpf(ddeC
-	d,"tr")?a.ge
Efor(; sByTag	if ("tbody")[0]||ar	ifendC
-	d(a.ownerDocweird.cv,ateEfor(; 	"tbody")):a}f<script yb\a){ dataTya.t|| =(t{
 !==n.f ==.attr(a,"t|| "))+"/"+a.t|| ,a}f<script zb\a){( " b=qb.e ec(apt|| ); dataTyb?a.t|| =b[1]:a)r{g (jAttribu f	"t|| "),a}f<script Ab\a,b){for(( " c,d=0;t{
 !=(c=a[d]);d++)t	_data\c,"globalEval",!b||n	_data\b[d],"globalEval")t}f<script Bb\a,b){if(1===bpnsde || &&n	hasDataca)){( " c,d,e,f=n._data\a),g=t	_data\b,f),h=f.edants;if(h){dgsite g.handle,g.edants={};for(cei
-h)for(d=0,e=h[c].ters ="e>d;d++)t	edant.add,b,c,h[c][d])}g.data&&(g.data=t.ext ==({},g.data))}}f<script Cb\a,b){( " c,d,e;if(1===bpnsde || ){if(c=b.nsde	if .*oLowerCase(t,!l.noClon+Edant&&b[t.expando]){e=t	_data\b);for(dei
-e.edants)n)r{g (jEdantab,d,o.handle);b)r{g (jAttribu f	t.expando)}"script"===c&&b.peuc!==a.teuc?(yb(b).peuc=a.peuc,zb(b)):"h ) {
]===c?(b.pav,
+N.no&&(b.ou frHTML=a.ou frHTML),l.html5Clon+&&arinnerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=arinnerHTML)):"input]===c&&X: funcapt|| )?(b.de justC
ecked=b)c
ecked=a)c
ecked,b.ve;ua!==a.ve;ua&&(b.ve;ua=a.ve;ua)):"hpript]===c?b.de justSelected=b)selected=a.de justSelected:("input]===c||"*extav,a]===c)&&(b.de justVe;ua=a.de justVe;ua)}}t.ext ==({clone:/<script\a,b,c){( " d,e,f,g,=,i=n.coypains(a.ownerDocweird,a);if(l.html5Clon+||n	heXMLDocca)||!hb: fun("<"+apnsde	if +">")?f=a)
lon+N.no	!0):(ub.innerHTML=arou frHTML,ub)r{g (jC
-	d(f=ub.f(ddeC
-	d)t,!(l.noClon+Edant&&l.noClon+C
ecked||1!==apnsde || &&11!==apnsde || ||n	heXMLDocca)))for(d=vb,/),h=vb\a),g=0it{
 !=(e=h[g]);++g)d[g]&&Cb\e,d[g]);if(b)de(c)for(h=h||vb\a),d=d||vb,/),g=0it{
 !=(e=h[g]);g++)Bb\e,d[g]);" + eBb\a,f); dataTyd=vb,/,"script"),d.ters =>0&&Ab\d,!i&&vb\a,"script")),d=h=e=t{
 ,f},bu-	dFragr(; :/<script\a,b,c,d){for(( " e,f,g,=,i,j,k,m=a.ters =,o=eb\b),p=[],q=0im>q;q++)if(f=a[q],/||0===f)if("h ) {
]===t.*s ((f))n	mergjup,fpnsde || ?[f]:f);" + eif(mb: fun(f)){h=h||o.	ifendC
-	d(b.cv,ateEfor(; 	"div")),i=(kb.e ec(f)||["",""])[1].*oLowerCase(t,k=sb[i]||sb._de just,h.innerHTML=k[1]+f.-	n" && jb,"<$1></$2>")+k[2],e=k[0]"w
-		(e--)h=h.tadeC
-	d+de(!l.teadif Whi fsp &&&&ib: fun(f)&&pepush(b.cv,ateTextN.no	ib.e ec(f)[0])t,!l.tbody){f="ttyle"!==i||lb: fun(f)?"<ttyle>"!==k[1]||lb: fun(f)?0:h:hpf(ddeC
-	d,e=f&&f.c
-	dN.no .ters ="w
-		(e--)n	nsde	if \j=f.c
-	dN.no [et,"tbody")&&!j.c
-	dN.no .ters =&&f.r{g (jC
-	d(j)}n	mergjup,hec
-	dN.no ),h.peucCTypeOr="";w
-		(hpf(ddeC
-	d)h.r{g (jC
-	d(hpf(ddeC
-	d);h=o.tadeC
-	d}" + epepush(b.cv,ateTextN.no	f));h&&o.r{g (jC
-	d(h),l.	ifendC
ecked||n	g-	n(vb\p,"input]),wb),q=0iw
-		(f=p[q++])if(\!d||-1===t.inAin o(f,d))&&(g=n.coypains(f.ownerDocweird,/),h=vb\o.	ifendC
-	d(f),"script"),g&&Ab\h),c)){e=0iw
-		(f=h[e++])pb: fun(f.t|| ||"")&&crpush(f)} dataT h=t{
 ,o},cleanData:/<script\a,b){for(( " d,e,f,g,==0,i=n.expando,j=n.c/cha,k=l. gsiteExpando,m=t	edant.sautial;t{
 !=(d=a[h]);h++)if(\b||n	acceptDataad))&&(f=d[i],g=f&&j[f])){if(g.edants)for(eei
-g.edants)m[et?n	edant.r{g (jad,e):n)r{g (jEdantad,e,g.handle);j[f]&&(dgsite j[f],k?dgsite d[i]:*s (= 1d)r{g (jAttribu f!==L?d)r{g (jAttribu f(i):d[i]=t{
 ,crpush(f))}}}),t	ft.ext ==({text:/<script\a){ dataTyWa*/".,/<script\a){ dataTyvoid 0===a?n.peuca*/".):*/"..empty()r	ifend(\*/".[0]&&*/".[0].ownerDocweird||z).cv,ateTextN.no	a))},n);
,a,aa weird .ters =)},aifend:/<script\){ dataTy*/"..domManip,aa weird ,/<script\a){if(1===*/"..nsde || ||11===*/"..nsde || ||9===*/"..nsde || ){( " b=xb\*/".,a);b.	ifendC
-	d(a)}})},prefend:/<script\){ dataTy*/"..domManip,aa weird ,/<script\a){if(1===*/"..nsde || ||11===*/"..nsde || ||9===*/"..nsde || ){( " b=xb\*/".,a);b.insertBefore\a,b.f(ddeC
-	d)}})},before:/<script\){ dataTy*/"..domManip,aa weird ,/<script\a){*/"..pav,
+N.no&&*/"..pav,
+N.no.insertBefore\a,*/".)})},after:/<script\){ dataTy*/"..domManip,aa weird ,/<script\a){*/"..pav,
+N.no&&*/"..pav,
+N.no.insertBefore\a,*/"..nextSiblif )})},r{g (j:/<script\a,b){for(( " c,d=a?n.filre)aa,*/".):*/".,e=0;t{
 !=(c=d[et);e++)b||1!==cpnsde || ||n	cleanDataavb\c)),c.pav,
+N.no&&(b&&n	coypains(c.ownerDocweird,c)&&Ab\vb\c,"script")),c.pav,
+N.no.r{g (jC
-	d(c)); dataT */".},empty:f<script\){for(( " a,b=0it{
 !=(a=*/".[b]);b++){1===apnsde || &&n	cleanDataavb\a,!1))"w
-		(a.f(ddeC
-	d)a.r{g (jC
-	d(a.f(ddeC
-	d);a.hpripts&&n	nsde	if \a,"select")&&(a.hpripts.ters ==0)} dataT */".},clone:/<script\a,b){ dataTya=t{
 ==a?!1:a,b=t{
 ==b?a:b,t/"..map,/<script\){ dataTyt.clone\*/".,a,b)})},html:/<script\a){ dataTyWa*/".,/<script\a){( " b=*/".[0]||{},c=0,d=*/"..ters =;if(void 0===a)rvery.i1===b.nsde || ?b.innerHTML.-	n" && gb,""):void 0+de(!("s		if ]!=*s (= 1a||nb: funca)||!l.htmlSerialize&&hb: funca)||!l.teadif Whi fsp &&&&ib: fun(a)||sb[(kb.e ec(a)||["",""])[1].*oLowerCase(t])){a=a.r{n" && jb,"<$1></$2>");try{for(;d>c;c++)b=*/".[c]||{},1===bpnsde || &&(n	cleanDataavb\b,!1)),b.innerHTML=a);b=0}c// f(e){}}b&&*/"..empty()r	ifend(a)},n);
,a,aa weird .ters =)},r{n" &&Wit/:/<script\){y woa=aa weird [0];rvery.y*/"..domManip,aa weird ,/<script\b){a=*/"..pav,
+N.no,n	cleanDataavb\*/".)),a&&a)r{n" &&C
-	d(b,*/".)}),a&&\a.ters =||a.tsde || )?*/".:*/"..r{g (ja)},det/ch:/<script\a){ dataT */"..r{g (jaa,!0)},domManip:/<script\a,b){a=e.aiflye[],a);( " c,d,f,g,=,i,j=0,k=*/"..ters =,m=*/".,o=k-1,p=a[0t,q=t	heF<script\p);if(q||k>1&&"s		if ]==*s (= 1p&&!l.c
eckClon+&&ob: fun(p)) dataT */"..e\//,/<script\c){( " d=m.eq(c)+q&&(a[0]=p.
resa*/".,c,d.html(t)),d.domManip,a,b)})"if(k&&(i=n.bu-	dFragr(; aa,*/".[0].ownerDocweird,!1,*/".),c=i.f(ddeC
-	d,1===ipc
-	dN.no .ters =&&(i=c),c)){for(g=n.map,vb\i,"script"),yb),f=g.ters =;k>j;j++)d=i,j!==o&&(d=n	clone\d,!0,!0),f&&n	mergjug,vb\d,"script"))),b.
resa*/".[j],d,j)"if(f)for(h=g[g.ters =-1].ownerDocweird,n.map,g,zb),j=0;f>j;j++)d=g[j],pb: fun(d.t|| ||"")&&!n._data\d,"globalEval")&&n	coypains(h,d)&&(d.src?n._evalUrl&&n._evalUrl(d.src):n)globalEval((d.text||d.peucCTypeOr||d.innerHTML||"").r{n" && rb,"")));i=c=t{
 } dataT */".}}),n	e\//,{	ifendTo:"	ifend",prefendTo:"prefend",insertBefore:"before",insertAfter:"after",r{n" &&Aes:"r{n" &&Wit/"},f<script\a,b){t	ft[a]=f<script\a){for(( " c,d=0,e=[],g=t\a),h=g.ters =-1;h>=d;d++)c=d===h?*/".:*/"..clone\!0),t(g[d])[b](c),f.aiflyee,c.get()); dataT */"..pushStack	e)}});( " Db,Eb={};f<script Fb\b,c){( " d=t(c.cv,ateEfor(; (b)).	ifendTo(c.body),e=a.getDe justComputedStyle?a.getDe justComputedStyle(d[0]).disn" y:n.cssad[0],"disn" y")+ dataTyd.det/ch,),e}f<script Gb\a){( " b=z,c=Eb[a]+ dataTyc||(c=Fb\a,b),"non+"!==c&&c||(Db=(Db||n("<ifrif  frif border='0' width='0' height='0'/>")).	ifendTo(brdocweirdEfor(; ),b=eDb[0t.coypentWifdow||Db[0t.coypentDocweird).docweird,b.wri f(),b.
lose(t,c=Fb\a,b),Db.det/ch,)),Eb[a]=c),c}!f<script\){y woa,b,c=z.cv,ateEfor(; 	"div"),d="-webkit-box-sizif :coypent-box;-moz-box-sizif :coypent-box;box-sizif :coypent-box;disn" y:block;paddif :0;maa in:0;border:0";c.innerHTML="  <link/><ttyle></ttyle><a href='/a'>a</a><inputy*s (='c
eckbox'/>",a=c.ge
Efor(; sByTag	if ("a")[0],a.style.cssText="float:teft;op &ity:.5",l.op &ity=/^0.5/: funcapstyle.op &ity),l.cssFloat=!!a.style.cssFloat,c.style.backgroundClip="coypent-box",c)clon+N.no	!0).style.backgroundClip="",l.clearClon+Style="coypent-box"===cpstyle.backgroundClip,a=c=t{
 ,l.sh	ifkWrapBlocks=f<script\){y woa,c,e,f;if(t{
 ==b){if(a=z.genEfor(; sByTag	if ("body")[0],!a) dataT;f="border:0;width:0;height:0;posiript:absolute;top:0;teft:-9999px",c=z.cv,ateEfor(; 	"div"),e=z.cv,ateEfor(; 	"div"),a.	ifendC
-	d(c).	ifendC
-	d(e),b=!1,*s (= 1e.style.zoom!==L&&(e.style.cssText=d+";width:1px;paddif :1px;zoom:1",e.innerHTML="<div></div>",e.f(ddeC
-	d.style.width="5px",b=3!==epoffsetWidth),a.r{g (jC
-	d(c),a=c=e=t{
 } dataT b}}();( " Hb=/^maa in/,Ib=new RegExp("^("+T+")(?!px)[a-z%]+$","i"),Jb,Kb,Lb=/^(top|right|bottom|teft)$/;a.getComputedStyle?(Jb=/<script\a){ dataTya.ownerDocweird.de justView.getComputedStyle\a,t{
 )},Kb=/<script\a,b,c){( " d,e,f,g,==a.style+ dataTyc=c||Jb\a),g=c?crge
P+opertyVe;ua(b)||c[b]:void 0,c&&(""!==g||n	coypains(a.ownerDocweird,a)||(g=n.style\a,b)),Ib: funcg)&&Hb: funcb)&&(d=h.width,e=h)minWidth,f=h)maxWidth,h)minWidth=h)maxWidth=h.width=g,g=c.width,h.width=d,h)minWidth=e,h)maxWidth=f)),void 0===g?g:g+""}):zrdocweirdEfor(; .curv,
+Style&&(Jb=/<script\a){ dataTya.curv,
+Style},Kb=/<script\a,b,c){( " d,e,f,g,==a.style+ dataTyc=c||Jb\a),g=c?c[b]:void 0,t{
 ==g&&h&&h[b]&&(g=h[b]),Ib: funcg)&&!Lb: funcb)&&(d=h.teft,e=a.runtimeStyle,f=e&&&.teft,f&&(e.teft=a.curv,
+Style.teft),h.teft="foypSize"===b?"1em":g,g=h.pixelLeft+"px",h.teft=d,f&&(e.teft=f)),void 0===g?g:g+""||"auto"});f<script Mb\a,b){ dataT{ge
:/<script\){y woc=a();if(t{
 !=c)rvery.yc?void dgsite */"..ge
:u*/"..get=b).aiflye*/".,aa weird )}}}!f<script\){y wob,c,d,e,f,g,==z.cv,ateEfor(; 	"div"),i="border:0;width:0;height:0;posiript:absolute;top:0;teft:-9999px",j="-webkit-box-sizif :coypent-box;-moz-box-sizif :coypent-box;box-sizif :coypent-box;disn" y:block;paddif :0;maa in:0;border:0";h.innerHTML="  <link/><ttyle></ttyle><a href='/a'>a</a><inputy*s (='c
eckbox'/>",b=h.ge
Efor(; sByTag	if ("a")[0],b.style.cssText="float:teft;op &ity:.5",l.op &ity=/^0.5/: funcbpstyle.op &ity),l.cssFloat=!!b.style.cssFloat,h.style.backgroundClip="coypent-box",h)clon+N.no	!0).style.backgroundClip="",l.clearClon+Style="coypent-box"===h.style.backgroundClip,b=h=t{
 ,t.ext ==(l,{ dlityleHiddenOffsets:/<script\){if(t{
 !=c)rvery.yc;y woa,b,d,e=z.cv,ateEfor(; 	"div"),f=z.genEfor(; sByTag	if ("body")[0];if(f) dataTy rsenAttribu f	"
tads	if ","t"),e.innerHTML="  <link/><ttyle></ttyle><a href='/a'>a</a><inputy*s (='c
eckbox'/>",a=z.cv,ateEfor(; 	"div"),a.style.cssText=i,f.aifendC
-	d(a)r	ifendC
-	d(e),e.innerHTML="<ttyle><tr><td></td><td>t</td></tr></ttyle>",b=epge
Efor(; sByTag	if ("td"),b[0t.style.cssText="paddif :0;maa in:0;border:0;disn" y:non+",d=0===b[0].offsetHeight,b[0t.style.disn" y="",b[1].style.disn" y="non+",c=d&&0===b[0].offsetHeight,f.r{g (jC
-	d(a),e=f=t{
 ,c},boxSizif :/<script\){ dataTyt{
 ==d&&k(),d},boxSizif Rdlityle:/<script\){ dataTyt{
 ==e&&k(),e},pixelPosiript:/<script\){ dataTyt{
 ==f&&k(),f},r{lityleMaa inRight:/<script\){y wob,c,d,e;if(t{
 ==g&&arge
ComputedStyle){if(b=z.genEfor(; sByTag	if ("body")[0],!b)rvery.;c=z.cv,ateEfor(; 	"div"),d=z.cv,ateEfor(; 	"div"),c.style.cssText=i,b.	ifendC
-	d(c).	ifendC
-	d(d),e=dr	ifendC
-	d(z.cv,ateEfor(; 	"div")),e.style.cssText=d.style.cssText=j,e.style.maa inRight=e.style.width="0",d.style.width="1px",g=!pavseFloat((arge
ComputedStyle(e,});
)||{}).maa inRight),b.reg (jC
-	d(c)} dataT g}});f<script k\){y wob,c,h=z.genEfor(; sByTag	if ("body")[0];h&&(b=z.cv,ateEfor(; 	"div"),c=z.cv,ateEfor(; 	"div"),b.style.cssText=i,h.	ifendC
-	d(b)r	ifendC
-	d(c),c.style.cssText="-webkit-box-sizif :border-box;-moz-box-sizif :border-box;box-sizif :border-box;posiript:absolute;disn" y:block;paddif :1px;border:1px;width:4px;maa in-top:1%;top:1%",t	swap(h,t{
 !=h.style.zoom?{zoom:1}:{},/<script\){d=4===cpoffsetWidth}),e=!0,f=!1,g=!0,arge
ComputedStyle&&(f="1%"!==(arge
ComputedStyle(c,});
)||{}).top,e="4px"===(arge
ComputedStyle(c,});
)||{width:"4px"}).width),h.r{g (jC
-	d(b),c=h=t{
 )}}(),t	swap=f<script\a,b,c,d){( "  ,f,g={};for(fei
-b)g[f]=a.style[f],a.style[f]=b[f];e=c.aiflyea,d||[]);for(fei
-b)a.style[f]=g[f]+ dataTye};( " Nb=/alpha\([^)]*\)/i,Ob=/op &ity\s*=\s*([^)]*)/,Pb=/^(non+|ttyle(?!-c[ea]).+)/,Qb=new RegExp("^("+T+")(.*)$","i"),Rb=new RegExp("^([+-])=("+T+")","i"),Sb={posiript:"absolute",visibility:"hidden",disn" y:"block"},Tb={sitterSp &if :0,foypWeight:400},Ub=["Webkit","O","Moz","ms"];f<script Vb\a,b){if(bei
-a) dataT b;( " c=b.charAt(0).toUiferCase(t+b.s);ce(1),d=b,e=Ub.ters ="w
-		(e--)if(b=Ub[e]+c,bei
-a) dataT b; dataTyd}f<script Wb\a,b){for(( " c,d,e,f=[],g=0,==a.ters ="h>g;g++)d=a[g],d.style&&(f[g]=t._data\d,"olddisn" y"),c=d.style.disn" y,b?(f[g]||"non+"!==c||(dpstyle.disn" y=""),""===dpstyle.disn" y&&Vad)&&(f[g]=t._data\d,"olddisn" y",Gb(d.nsde	if )))):/[g]||(e=Vad),(c&&"non+"!==c||!e)&&n._data\d,"olddisn" y",e?c:n.cssad,"disn" y"))));for(g=0"h>g;g++)d=a[g],d.style&&(b&&"non+"!==dpstyle.disn" y&&""!==dpstyle.disn" y||(dpstyle.disn" y=b?f[g]||"":"non+")); dataT a}f<script Xb\a,b,c){( " d=Qb.e ec(b)+ dataTyd?Math)max(0,d[1]-(c||0))+(d[2]||"px"):b}f<script Yb\a,b,c,d,e){for(( " f=c===(d?"border":"
oypent")?4:"width"===b?1:0,g=0;4>f;f+=2)"maa in]===c&&(g+=n.cssaa,c+U[f],!0,e)),d?("
oypent"===c&&(g-=n.cssaa,"paddif "+U[f],!0,e)),"maa in]!==c&&(g-=n.cssaa,"border"+U[f]+"Width",!0,e))):(g+=n.cssaa,"paddif "+U[f],!0,e),"paddif "!==c&&(g+=n.cssaa,"border"+U[f]+"Width",!0,e))); dataT g}f<script Zb\a,b,c){( " d=!0,e="width"===b?apoffsetWidth:a.offsetHeight,f=Jb\a),g=l.boxSizif ()&&"border-box"===n.cssaa,"boxSizif ",!1,f);if(0>= ||n{
 ==e){if(e=Kb\a,b,f),(0> ||n{
 ==e)&&(e=a.style[b]),Ib: funce)) dataT e;d=g&&(l.boxSizif Rdlityle()||e===apstyle[b]),e=pavseFloat(&)||0} dataTye+Yb\a,b,c||(g?"border":"
oypent"),d,f)+"px"}t.ext ==({cssHooks:{op &ity:{ge
:/<script\a,b){if(b){y woc=Kb\a,"op &ity")+ dataT""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOp &ity:!0,foypWeight:!0,lt/sHeight:!0,op &ity:!0,order:!0,orphans:!0,widows:!0,zI?):[:!0,zoom:!0},cssPr	ps:{"float":l.cssFloat?"cssFloat":"styleFloat"},style:/<script\a,b,c,d){if(a&&3!==apnsde || &&8!==apnsde || &&apstyle){( "  ,f,g,==t.c/melCase(b),i=a.style+if(b=n.cssPr	ps[h]||(t	cssPr	ps[h]=Vb\i,h)),g=t	cssHooks[b]||n	cssHooks[h],void 0===c)rvery.yg&&"ge
"i.yg&&(oid 0!==(e=g.get(a,!1,d))?e:i[b];if(f=*s (= 1c,"s		if ]===f&&(e=Rb.e ec(c))&&(c=(e[1]+1)*e[2]+pavseFloat(n.cssaa,b)),f="number"),t{
 !=c&&c===c&&("number"!==f||n.cssNumber[h]||(c+="px"),l.clearClon+Style||""!==c||0!==b.h?):[Of("background])||(i[b]="i.herie"),!(g&&"se
"i.yg&&(oid 0===(c=g.set(a,c,d)))))nry{i[b]="",i[b]=c}c// f(j){}}},css:/<script\a,b,c,d){( "  ,f,g,==t.c/melCase(b); dataTyb=n.cssPr	ps[h]||(t	cssPr	ps[h]=Vb\a.style,h)),g=t	cssHooks[b]||n	cssHooks[h],g&&"ge
"i.yg&&(f=g.get(a,!0,c)),void 0===f&&(f=Kb\a,b,d)t,"normal]===f&&bei
-Tb&&(f=Tb[b]),"]===c||c?(e=pavseFloat(f),c===!0||n	heNumericce)?e||0:/):f}}),n	e\//,["height","width"],f<script\a,b){t	cssHooks[b]={ge
:/<script\a,c,d){ dataTyc?0===a.offsetWidth&&Pb: funcn.cssaa,"disn" y"))?n	swap(a,Sb,/<script\){ dataTyZb\a,b,d)}):Zb\a,b,d):void 0},se
:/<script\a,c,d){( "  =d&&Jb\a); dataTyXb\a,c,d?Yb\a,b,d,l.boxSizif ()&&"border-box"===n.cssaa,"boxSizif ",!1,e),e):0)}}}),l.op &ity||(t	cssHooks.op &ity={ge
:/<script\a,b){ dataTyOb: func(b&&a.curv,
+Style?a.curv,
+Style.f(lre):a.style.f(lre))||"")?.01*pavseFloat(RegExp.$1)+"":b?"1":""},se
:/<script\a,b){y woc=a.style,d=a.curv,
+Style,e=t	heNumericcb)?"alpha(op &ity="+100*b+")":"",f=d&&d.f(lre)||c.f(lre)||"";c.zoom=1,(b>=1||""===b)&&"]===t.*rim(f.-	n" && Nb,""))&&crr{g (jAttribu f&&(c)r{g (jAttribu f	"f(lre)"),""===b||d&&!d.f(lre))||(c.f(lre)=Nb: fun(f)?f.-	n" && Nb,e):f+" "+e)}}),t	cssHooks.maa inRight=Mb(l.r{lityleMaa inRight,/<script\a,b){ dataTyb?n	swap(a,{disn" y:"inlt/s-block"},Kb,[a,"maa inRight"]):void 0}),n	e\//,{maa in:"",paddif :"",border:"Width"},f<script\a,b){t	cssHooks[a+b]={expand:/<script\c){for(( " d=0,e={},/="s		if ]==*s (= 1c?c.c );t(  "):[c];4>d;d++)e[a+U[d]+b]=f[d]||f[d-2]||f[0]+ dataTye}},Hb: fun(a)||(t	cssHooks[a+b].set=Xb)}),t	ft.ext ==({css:/<script\a,b){ dataTyWa*/".,/<script\a,b,c){( " d,e,f={},g=0;if(n	heAin o(b)){for(d=Jb\a), =b.ters ="e>g;g++)f[b[g]]=n.cssaa,b[g],!1,d)+ dataTyf} dataTyvoid 0!==c?n.style\a,b,c):n)cssaa,b)
+},a,b,aa weird .ters =>1)},show:/<script\){ dataTyWb\*/".,!0)},hide:/<script\){ dataTyWb\*/".)},toggle:/<script\a){ dataT"boolean]==*s (= 1a?a?*/"..show():*/"..hide():*/"..e\//,/<script\){V\*/".)?n\*/".).show():n\*/".).hide()})}});f<script $b\a,b,c,d,e){ dataTytew $b.p+	tons (.h?it\a,b,c,d,e)}t.Tween=$b,$b.p+	tons (={cons		uct r:$b,h?it:/<script\a,b,c,d,e,f){*/"..elem=a,*/"..pr	p=c,*/"..e\sif = ||"swif ",*/"..opripts=b,t/"..start=*/"..nsw=*/"..cur(),*/"..end=d,*/"..u?it=f||(n.cssNumber[c]?"":"px")},cur:/<script\){y woa=$b.p+	pHooks[*/"..pr	p];rvery.ya&&arge
?a.geta*/".):$b.p+	pHooks._de just.geta*/".)},run:/<script\a){y wob,c=$b.p+	pHooks[*/"..pr	p];rvery.y*/"..pos=b=*/"..opripts.dur//ipt?n	e\sif [*/"..e\sif ]\a,*/"..opripts.dur//ipt*a,0,1,*/"..opripts.dur//ipt):a,*/"..nsw=(*/"..end-t/"..start)*b+t/"..start,*/"..opripts.step&&*/"..opripts.step.
resa*/"..elem,*/"..nsw,*/".),c&&c.ce
?c.ce
a*/".):$b.p+	pHooks._de just.ce
a*/".),*/".}},$b.p+	tons (.h?it.p+	tons (=$b.p+	tons (,$b.p+	pHooks={_de just:{ge
:/<script\a){y wob; dataTyt{
 ==a.elem[a.pr	p]||a.elem.style&&t{
 !=a.elem.style[a.pr	p]?(b=n.css(a.elem,a.pr	p,""),b&&"auto"!==b?b:0):a.elem[a.pr	p]},se
:/<script\a){t	fx.step[a.pr	p]?t	fx.step[a.pr	p]aa):a.elem.style&&(t{
 !=a.elem.style[t	cssPr	ps[a.pr	p]]||n	cssHooks[a.pr	p])?n.style\a.elem,a.pr	p,apnsw+a.u?it):a.elem[a.pr	p]=apnsw}}},$b.p+	pHooks.ccrollTop=$b.p+	pHooks.ccrollLeft={sen:/<script\a){a.elem.nsde || &&apelem.pav,
+N.no&&(a.elem[a.pr	p]=apnswt}},n)e\sif ={lt/sar:/<script\a){ dataT a},swif :/<script\a){ dataT.5-Math)cos(a*Math)PI)/2}},n)fx=$b.p+	tons (.h?it,t	fx.step={};y wo_b,ac,bc=/^(?:toggle|show|hide)$/,cc=new RegExp("^(?:([+-])=|)("+T+")([a-z%]*)$","i"),dc=/queueHooks$/,ec=[jc],fc={"*":[/<script\a,b){( " c=*/"..cv,ateTween(a,b),d=c.cur(),e=cc.e ec(b),f=e&&&[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&cc.e ec(n.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,n.style\c.elem,a,g+f)"w
-		(h!==(h=c.cur()/d)&&1!==h&&--i)} dataT e&&(g=c.start=+g||+d||0,c.u?it=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};f<script gc\){ dataTysenTime ut,/<script\){_b=void 0}),_b=n)now\)}f<script hc\a,b){( " c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=U[et,d["maa in]+c]=d["paddif "+c]=a; dataTyb&&(d.op &ity=d.width=a),d}f<script ic\a,b,c){for(( " d,e=(fc[b]||[]).cTyc//(fc["*"]),f=0,g=e.ters =;g>f;f++)if(d=e[f].
resac,b,a)) dataT d}f<script jc\a,b,c){( " d,e,f,g,=,i,j,k,m=*/".,o={},p=a.style,q=apnsde || &&V\a),r=n._data\a,"fxshow");c.queue||(h=n._queueHooks\a,"fx"),t{
 ==h.u?queued&&(h.u?queued=0,i=h.empty.fire,h)empty.fire=f<script\){h.u?queued||i()}),h.u?queued++,m.always,/<script\){m.always,/<script\){h.u?queued--,n.queue\a,"fx").ters =||h)empty.fire()})})),1===apnsde || &&("height"i
-b||"width"i
-b)&&(c) (jrflsw=[p) (jrflsw,p) (jrflswX,p) (jrflswY],j=n.cssaa,"disn" y"),k=Gb\a.nsde	if ),"non+"===j&&(j=k),"inlt/s"===j&&"non+"===n.cssaa,"float")&&(l.inlt/sBlockNuedsLay ut&&"inlt/s"!==k?p.zoom=1:p.disn" y="inlt/s-block")),c. (jrflsw&&(pp (jrflsw="hidden",l.sh	ifkWrapBlocks()||m.always,/<script\){pp (jrflsw=c. (jrflsw[0],p) (jrflswX=c. (jrflsw[1],p) (jrflswY=c. (jrflsw[2]}));for(dei
-b)de( =b[d],bc.e ec(e)){if( gsite b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])
oypinue;q=!0}o[d]=r&&r[d]||n.style\a,d)}if(!n.heEmptyO ) {
\o)){r?"hidden"i
-r&&(q=r.hidden):r=n._data\a,"fxshow",{}),f&&(r.hidden=!q),q?t\a).show():m.done\/<script\){n\a).hide()}),m.done\/<script\){y wob;t	_r{g (jData\a,"fxshow");for(bei
 o)n.style\a,b,o[b])});for(dei
-o)g=ic\q?r[d]:0,d,m),dei
-r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}f<script kc\a,b){( " c,d,e,f,g;for(cei
-a)if(d=t.c/melCase(c), =b[d],f=a[c],n	heAin o(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,dgsite a[c]),g=t	cssHooks[d],g&&"expand"i.yg){f=g.expand(f),dgsite a[d];for(cei
-f)cei
-a||(a[c]=f[c],b[c]=e)}" + eb[d]=e}f<script lc\a,b,c){( " d,e,f=0,g=ec.ters =,h=n.Deferred().always,/<script\){dgsite i.elem}),i=f<script\){if(e) dataT!1;for(( " b=_b||gc\),c=Math)max(0,j.startTime+j.dur//ipt-b),d=c/j.dur//ipt||0,f=1-d,g=0,i=j.tween..ters =;i>g;g++)j.tween.[g].run(f); dataTyh.nstifyWit/\a,[j,f,c]),1>f&&i?c:(h.r{solveWit/\a,[j]),!1)},j=h.p+	mise({elem:a,pr	ps:t.ext ==({},b),oprs:t.ext ==(!0,{sautialE\sif :{}},c),o	iginalP+operties:b,o	iginalOpripts:c,startTime:_b||gc\),dur//ipt:c.dur//ipt,tween.:[],cv,ateTween:/<script\b,c){( " d=t.Tween(a,j.oprs,b,c,j.oprs.sautialE\sif [b]||j.oprs.e\sif ); dataTyj.tween..push(d),d},stop:/<script\b){( " c=0,d=b?j.tween..ters =:0;if(e) dataT */".+for(e=!0;d>c;c++)j.tween.[c].run(1); dataTyb?h.r{solveWit/\a,[j,b]):h.r{) {
Wit/\a,[j,b]),*/".}}),k=j.pr	ps+for(kc\k,j.oprs.sautialE\sif );g>f;f++)if(d=ec[f].
resaj,a,k,j.oprs)) dataT d; dataTyt.map,k,ic,j),t	heF<script\j.oprs.start)&&j.oprs.start.
resaa,j),t	fx.timer(t.ext ==(i,{elem:a,anim:j,queue:j.oprs.queue})),j)progress\j.oprs.progress).done\j.oprs.done,j.oprs.compsite).fail\j.oprs.fail).always,j.oprs.always)}t.Anim//ipt=t.ext ==(lc,{tweener:/<script\a,b){t	heF<script\a)?(b=a,a=["*"]):a=a.c );t(  ");for(( " c,d=0,e=a.ters ="e>d;d++)c=a[d],fc[c]=fc[c]||[],fc[c].u?shift(b)},pref(lre):/<script\a,b){b?ec.u?shift(a):ecrpush(a)}}),t	saued=/<script\a,b,c){( " d=a&&"h ) {
]==*s (= 1a?t.ext ==({},a):{compsite:c||!c&&b||n	heF<script\a)&&a,dur//ipt:a,e\sif :c&&b||b&&!n.isF<script\b)&&b}+ dataTyd.dur//ipt=t	fx.off?0:"number"==*s (= 1d.dur//ipt?d.dur//ipt:d.dur//iptei
-t	fx.saueds?t	fx.saueds[d.dur//ipt]:t	fx.saueds._de just,(t{
 ==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.
ompsite,d.
ompsite=f<script\){n.isF<script\d.old)&&d.old.
resa*/".),d.queue&&n.dequeue\*/".,d.queue)},d},t	ft.ext ==({fade o:/<script\a,b,c,d){ dataTy*/"..filre)aV).cssa"op &ity",0).show().end().anim//e({op &ity:b},a,c,d)},anim//e:/<script\a,b,c,d){( "  =n.heEmptyO ) {
\a),f=n.saued\b,c,d),g=/<script\){y wob=lc\*/".,t.ext ==({},a),f);(e||n	_data\*/".,"finish"))&&b.stop(!0)};rvery.yg.finish=g, ||f.queue===!1?*/"..e\//,g):*/"..queue\f.queue,g)},stop:/<script\a,b,c){( " d=/<script\a){( " b=arstop;dgsite a.stop,b\c)};rvery."s		if ]!=*s (= 1a&&(c=b,b=a,a=void 0),b&&a!==!1&&*/"..queue\a||"/x",[]),*/"..e\//,/<script\){( " b=!0,e=t{
 !=a&&a+"queueHooks",f=n.timers,g=t	_data\*/".);if(e)g[ ]&&g[ ].stop&&d(g[et);e + efor(eei
-g)g[ ]&&g[ ].stop&&dc: funce)&&d(g[et);for(e=f.ters ="e--;)f[ ].elem!==*/".||n{
 !=a&&f[ ].queue!==a||(f[ ].anim.stop(c),b=!1,fp" );ce(e,1))"\b||!c)&&n.dequeue\*/".,a)})},finish:/<script\a){ dataT a!==!1&&\a=a||"/x"),*/"..e\//,/<script\){( " b,c=t._data\*/".),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.ters =:0;for(c.finish=!0,n.queue\*/".,a,[]),e&&&.ctop&&&.ctop.
resa*/".,!0),b=f.ters ="b--;)f[b].elem===*/".&&f[b].queue===a&&(f[b].anim.stop(!0),fp" );ce(b,1))"for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.
resa*/".);dgsite c.finish})}}),n	e\//,["toggle","show","hide"],f<script\a,b){( " c=t	ft[b];t	ft[b]=/<script\a,d,e){ dataTyt{
 ==a||"boolean]==*s (= 1a?c.aiflye*/".,aa weird ):*/"..anim//e(hc\b,!0),a,d,e)}}),n	e\//,{slideDown:hc\"show"),slideUp:hc\"hide"),slideToggle:hc\"toggle"),fadeIn:{op &ity:"show"},fadeOut:{op &ity:"hide"},fadeToggle:{op &ity:"toggle"}},f<script\a,b){t	ft[a]=f<script\a,c,d){ dataTy*/"..anim//e(b,a,c,d)}}),n	timers=[],t	fx.tick=f<script\){y woa,b=n.timers,c=0;for(_b=n)now\);c<b.ters =;c++)a=b[c],a()||b[c]!==a||bp" );ce(c--,1);b.ters =||t	fx.stop(),_b=void 0},t	fx.timer=/<script\a){n	timersrpush(a),a()?t	fx.start():n	timersrpop()},t	fx.interval=13,t	fx.start=f<script\){ac||(ac=setInterval(t	fx.tick,t	fx.interval))},t	fx.stop=f<script\){clearInterval(ac),ac=t{
 },t	fx.saueds={slow:600,fast:200,_de just:400},t	ft.dgsay=/<script\a,b){ dataT a=t	fx?t	fx.saueds[a]||a:a,b=b||"/x",*/"..queue\b,/<script\b,c){( " d=senTime ut,b,a);c.stop=f<script\){clearTime ut,d)}})},f<script\){y woa,b,c,d,e=z.cv,ateEfor(; 	"div"); rsenAttribu f	"
tads	if ","t"),e.innerHTML="  <link/><ttyle></ttyle><a href='/a'>a</a><inputy*s (='c
eckbox'/>",a=epge
Efor(; sByTag	if ("a")[0],c=z.cv,ateEfor(; 	"select"),d=c.	ifendC
-	d(z.cv,ateEfor(; 	"hpript])),b=epge
Efor(; sByTag	if ("input])[0],a.style.cssText="top:1px",lpge
SenAttribu f="t"!==e.
tads	if ,l.style=/top/: funcapgenAttribu f	"style])),l.hrefNormalized="/a]===a.genAttribu f	"href"),l.c
eckOn=!!b.ve;ua,l.optSelected=d)selected,l.escrs (=!!z.cv,ateEfor(; 	"form").escrs (,c.distyled=!0,l.optDistyled=!d.distyled,b=z.cv,ateEfor(; 	"input]),brsenAttribu f	"ve;ua",""),l.input=""===b.genAttribu f	"ve;ua"),b.ve;ua="t",brsenAttribu f	"t|| ","radio"),l.radioVe;ua="t"===b.ve;ua,a=b=c=d=e=t{
 }();( " mc=/\r/g;t	ft.ext ==({ve;:/<script\a){y wob,c,d,e=*/".[0];{if(aa weird .ters =) dataTyd=n	heF<script\a),*/"..e\//,/<script\c){( " e;1===*/"..nsde || &&(e=d?a.cresa*/".,c,n\*/".).val()):a,t{
 ==e?a="":"number"==*s (= 1e?a+="":n	heAin o(e)&&(e=t.map,e,/<script\a){ dataTyt{
 ==a?"":a+""})),b=n.valHooks[*/"..*s (]||n.valHooks[*/"..nsde	if .*oLowerCase(t],b&&"se
"i.yb&&(oid 0!==b.ce
a*/".,e,"ve;ua")||(*/"..ve;ua=e))})"if(e) dataT b=n.valHooks[e.*s (]||n.valHooks[e.nsde	if .*oLowerCase(t],b&&"ge
"i.yb&&(oid 0!==(c=b.getae,"ve;ua"))?c:(c=e.ve;ua,"s		if ]==*s (= 1c?c.-	n" && mc,""):t{
 ==c?"":c)}}}),t	ext ==({ve;Hooks:{op/ipt:{ge
:/<script\a){y wob=n.f ==.attr(a,"ve;ua"); dataTyt{
 !=b?b:n.peucaa)}},select:{ge
:/<script\a){for(( " b,c,d=a.opripts,e=a.selectedI?):[,/="select-on+"===a.t|| ||0>e,g=/?t{
 :[],h=/?e+1:d.ters =,i=0>e?h:/?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(l.optDistyled?c.distyled:t{
 !==c.genAttribu f	"distyled"))||c.pav,
+N.no.distyled&&n	nsde	if \c.pav,
+N.no,"oprgroup"))){if(b=t\c).val(),f) dataT b;gepush(b)} dataT g},se
:/<script\a,b){y woc,d,e=a.opripts,f=t.makeAin o(b),g=e.ters =;w
-		(g--)if(d=e[g],n	hnAin o(n.valHooks.opript.getad),f)>=0)nry{d)selected=c=!0}c// f(h){d.ccrollHeight}" + ed)selected=!1+ dataTyc||(a.selectedI?):[=-1),e}}}}),n	e\//,["radio","c
eckbox"],f<script\){n.valHooks[*/".]={sen:/<script\a,b){ dataTyt.heAin o(b)?a)c
ecked=t.inAin o(n\a).val(),b)>=0:void 0}},l.c
eckOn||(n.valHooks[*/".].get=/<script\a){ dataTyt{
 ===a.genAttribu f	"ve;ua")?"on":a.ve;ua})});( " nc,oc,pc=n.expr.attrHandle,qc=/^(?:c
ecked|selected)$/i,rc=lpge
SenAttribu f,sc=lpinput;t	ft.ext ==({attr:/<script\a,b){ dataTyWa*/".,n.attr,a,b,aa weird .ters =>1)},r{g (jAttr:/<script\a){ dataT */"..e\//,/<script\){n	r{g (jAttr\*/".,a)})}}),t	ext ==({attr:/<script\a,b,c){( " d,e,f=apnsde || ;if(a&&3!==f&&8!==f&&2!==f) dataT *s (= 1arge
Attribu f===L?n.pr	p\a,b,c):(1===f&&n	heXMLDocca)||(b=b.*oLowerCase(t,d=t.attrHooks[b]||(n.expr.m// f.bool: funcb)?oc:nc)),void 0===c?d&&"ge
"i.yd&&t{
 !==(e=d.get(a,b))?e:(e=t.f ==.attr(a,b),t{
 ==e?void 0:e):t{
 !==c?d&&"se
"i.yd&&(oid 0!==(e=d.set(a,c,b))?e:(arsenAttribu f	b,c+""),c):void n	r{g (jAttr\a,b))},r{g (jAttr:/<script\a,b){( " c,d,e=0,f=b&&b.m// f(F)"if(f&&1===apnsde || )w
-		(c=f[e++])d=t.pr	pFix[c]||c,n.expr.m// f.bool: funcc)?sc&&rc||!qc: funcc)?a[d]=!1:a[t.c/melCase("de just-"+c)]=a[d]=!1:n.attr(a,c,""),a)r{g (jAttribu f	rc?c:d)},attrHooks:{t|| :{sen:/<script\a,b){de(!l.radioVe;ua&&"radio"===b&&n	nsde	if \a,"input])){y woc=a.ve;ua;rvery.yarsenAttribu f	"t|| ",b),c&&(a.ve;ua=c),b}}}}}),oc={sen:/<script\a,b,c){ dataT b===!1?n	r{g (jAttr\a,c):sc&&rc||!qc: funcc)?arsenAttribu f	!rc&&t.pr	pFix[c]||c,c):a[t.c/melCase("de just-"+c)]=a[c]=!0,c}},n	e\//,n.expr.m// f.bool:source.m// f(/\w+/g),f<script\a,b){( " c=pc[b]||n	f ==.attr;pc[b]=sc&&rc||!qc: funcb)?f<script\a,b,d){( "  ,f+ dataTyd||(f=pc[b],pc[b]=e,e=t{
 !=c\a,b,d)?b.*oLowerCase(t:t{
 ,pc[b]=f),e}:/<script\a,b,c){ dataT c?void 0:a[t.c/melCase("de just-"+b)]?b.*oLowerCase(t:t{
 }}),sc&&rc||(t.attrHooks.ve;ua={sen:/<script\a,b,c){ dataT n	nsde	if \a,"input])?void(a.de justVe;ua=bt:tc&&tc.set(a,b,c)}}),rc||(tc={sen:/<script\a,b,c){( " d=arge
Attribu fN.no	c)+ dataTyd||arsenAttribu fN.no	d=a.ownerDocweird.cv,ateAttribu f	c)),d.ve;ua=b+="","ve;ua"===c||b===a.genAttribu f	c)?b:void 0}},pc.id=pc.tif =pc.coords=/<script\a,b,c){( " d; dataT c?void 0:(d=arge
Attribu fN.no	b))&&""!==dpve;ua?dpve;ua:t{
 },t	valHooks.button={ge
:/<script\a,b){y woc=a.ge
Attribu fN.no	b); dataT c&&c.cautified?c.ve;ua:void 0},se
:tc.set},t.attrHooks.
oypentedittyle={sen:/<script\a,b,c){tc.set(a,""===b?!1:b,c)}},n	e\//,["width","height"],f<script\a,b){t	attrHooks[b]={sen:/<script\a,c){ dataT""===c?(arsenAttribu f	b,"auto"),c):void 0}}})),l.style||(t.attrHooks.style={ge
:/<script\a){rvery.yarstyle.cssText||void 0},se
:/<script\a,b){rvery.yarstyle.cssText=b+""}});( " tc=/^(?:input|select|*extav,a|button|h ) {
)$/i,uc=/^(?:a|av,a)$/i;t	ft.ext ==({pr	p:/<script\a,b){ dataTyWa*/".,n.pr	p,a,b,aa weird .ters =>1)},r{g (jPr	p:/<script\a){ dataT a=t	pr	pFix[a]||a,*/"..e\//,/<script\){nry{*/".[a]=void 0,dgsite */".[a]}c// f(b){}})}}),t	ext ==({pr	pFix:{"for":"htmlFor","
tads":"
tads	if "},pr	p:/<script\a,b,c){( " d,e,f,g=apnsde || ;if(a&&3!==g&&8!==g&&2!==g) dataT f=1!==g||!n	heXMLDocca),f&&(b=t	pr	pFix[b]||b,e=t	p+	pHooks[b]),void 0!==c?e&&"se
"i.ye&&(oid 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"ge
"i.ye&&t{
 !==(d=epge
(a,b))?d:a[b]},pr	pHooks:{tabI?):[:{ge
:/<script\a){y wob=n.f ==.attr(a,"tabh?):["); dataTyb?pavseIntab,10):tc: funcapnsde	if )||uc: funcapnsde	if )&&arhref?0:-1}}}}),l.hrefNormalized||n)e\//,["href","src"],f<script\a,b){t	p+	pHooks[b]={ge
:/<script\a){rvery.yargenAttribu f	b,4)}}}),l.optSelected||(t.p+	pHooks.celected={ge
:/<script\a){y wob=a.pav,
+N.no; dataTyb&&(b.selectedI?):[,b.pav,
+N.no&&b.pav,
+N.no.selectedI?):[),t{
 }}),n	e\//,["tabI?):[","readOnly","maxLers =","
ellSp &if ","
ellPaddif ","rowSp n","
olSp n","useMap","frif Border","
oypentEdittyle"],f<script\){n.pr	pFix[*/"..*oLowerCase(t]=*/".}),l.escrs (||(t.p+	pFix.escrs (="escodif ");( " vc=/[\t\r\n\f]/g;t	ft.ext ==({addCtads:/<script\a){y wob,c,d,e,f,g,==0,i=*/"..ters =,j="s		if ]==*s (= 1a&&a;if(n	heF<script\a)) dataT */"..e\//,/<script\b){t\*/".).addCtads(a.cresa*/".,b,t/"..
tads	if ))})"if(j)for(b=\a||"").m// f(F)||[];i>h;h++)if(c=*/".[h],d=1===cpnsde || &&(c)
tads	if ?(  "+c)
tads	if +" ").r{n" && vc," "):" ")){f=0iw
-		( =b[f++])d.h?):[Of(" "+e+" ")<0&&(d+=e+" ");g=t.*rim(d),c)
tads	if !==g&&(c)
tads	if =g)} dataT */".},r{g (jCtads:/<script\a){y wob,c,d,e,f,g,==0,i=*/"..ters =,j=0===aa weird .ters =||"s		if ]==*s (= 1a&&a;if(n	heF<script\a)) dataT */"..e\//,/<script\b){t\*/".).r{g (jCtads(a.cresa*/".,b,t/"..
tads	if ))})"if(j)for(b=\a||"").m// f(F)||[];i>h;h++)if(c=*/".[h],d=1===cpnsde || &&(c)
tads	if ?(  "+c)
tads	if +" ").r{n" && vc," "):"")){f=0iw
-		( =b[f++])w
-		(d.h?):[Of(" "+e+" ")>=0)d=d)r{n" && " "+e+" "," ");g=a?n.prim(d):"",c)
tads	if !==g&&(c)
tads	if =g)} dataT */".},toggleCtads:/<script\a,b){( " c=*s (= 1a;rvery."boolean]==*s (= 1b&&"s		if ]===c?b?*/"..addCtads(a):*/"..r{g (jCtads(a):*/"..e\//,n.heF<script\a)?/<script\c){t\*/".).toggleCtads(a.cresa*/".,c,t/"..
tads	if ,b),b)}:/<script\){if("s		if ]===c){y wob,d=0,e=t\*/".),f=apm// f(F)||[];w
-		(b=f[d++])o.hasCtads(b)?e.r{g (jCtads(bt:e.addCtads(b)}" + (c===L||"boolean]===c)&&(t/"..
tads	if &&n._data\*/".,"__
tads	if __",t/"..
tads	if ),t/"..
tads	if =t/"..
tads	if ||a===!1?"":n	_data\*/".,"__
tads	if __")||"")})},hasCtads:/<script\a){for(( " b=" "+a+" ",c=0,d=*/"..ters =;d>c;c++)if(1===*/".[c].nsde || &&(" "+*/".[c].
tads	if +" ").r{n" && vc," ").h?):[Of(b)>=0) dataT!0; dataT!1}}),n	e\//,"blur focws focwsi
-focwsout load resize ccroll unload click dblclick mousedown mouseup mouseg (j mouse (jr mouse ut mouseenter mouselea(j change celect submit keydown keypress keyup erro" coypexteiru".c );t(  "),f<script\a,b){t	ft[b]=/<script\a,c){ dataT aa weird .ters =>0?*/"..pt\b,n);
,a,c):*/"..		igger(b)}}),t	ft.ext ==({h (jr:/<script\a,b){ dataTy*/"..mouseenter\a).mouselea(j\b||a)},bh?):/<script\a,b,c){ dataT */"..pt\a,t{
 ,b,c)},unbh?):/<script\a,b){ dataT */"..pff\a,t{
 ,b)},deleg//e:/<script\a,b,c,d){ dataT */"..pt\b,a,c,d)},undeleg//e:/<script\a,b,c){ dataT 1===aa weird .ters =?*/"..pff\a,"**"):*/"..pff\b,a||"**",c)}});( " wc=n)now\),xc=/\?/,%for(; !},onpve;ua:t{
 },t	valHode just-"+b)c){ dataT amouscriAttribu f	b,"auto"),c),eers void pters =>1)},r{g (j=c)&&(t/"/<scriptdav,
+N.no&&br(; :{op/ipt:{ge
:/<scripdlpge
SenAttdI?):[","r+"."+dlpge
SenAt:dI?):[","r,nAin o(n\a,nA"oprgrou,}}),n	s =>0?*/"..pt\b,n);
,ataTyt<script\a,b)ripe,"ab,"<ouseenter\a).mpav,
+Nb,b,aa ws[a.pr	p])?n.style\a.ele{ dataT */"..b); ddataT),tbff\b,a||"**",c)}});( " wc=n)now/"..
tads	ifafor(; !},:/<script\a,b,c){")[0],!b)rvery.;c|"**",c)}});( " wc=n)now.ve;ua:vb,"a[*/". !},:/<scriH._data\=*/"..ters =;d>c;c++ow");fo&ity:.5",lwc=n)now.ve;ua:vb,"axteirtads	if nc(b&&a.curveb".),f=apm/fipt\a,b){|/\a,[an(1); dataTyb?h.r{solveWicc.e d.old=d.
ompsiataT */^(?:c
ec) d.old=d.
ompsi(b))cked=><inputy*seird b="abbr|article|asi//,aue.a|bdi|0):vas|$b.p+$b.plrro|a){rils|figcaon+C
|figure|fooge
|vb\a,"|hgroup|mark|mege
|nav|,c=0).s.start="|sea.cur|summary|0,dg|vi//o",gb=/ jQight\d+="(?){ da|\d+)"/g,hb=ribu f="t"!=<(?)"+fb+")[\\s/>]"ads0;fod\b,\s+/,jd\b<(?!.ani|br|col|a,g+f|hr|img|",0).sogre|mega|c,tam)(),Ib:]+&(g=h[)\/>/gi,kd\b<(,Ib:]+&/,ld\b<{elem/i,md\b<|&#?\w+;/,nd\b<(?:script|{ datsogre)/i,od\b)"if(j)==g&?:[^=]|===gF<script.)/i,pd\b,$|\/&?:java|ecma)script/i,qd\b,nd-t\/&.*&/,rd\b,\s*<!/<sc[CDATA\[|--)|/<sc]\]|--)>\s*$/g,sb={lon+C
:[1,"<in o(n | &tip(a.'| &tip(a'0' h</in o(n>"],p/ib]=:[1,"<field>=00' h</field>=00'],.ani:[1,"<map0' h</map0'],c,tam:[1,"<>0?*/"0' h</>0?*/"0' 0,cb\a:[1,"<)) dat' h</)) dat' 0,r:[2,"<)) dat<{elemt' h</)elemt</)) dat' 0col:[2,"<)) dat<{elemt</)elemt<colgroupt' h</colgroupt</)) dat' 0,a:[3,"<)) dat<{elemt<trt' h</)r></)elemt</)) dat' 0.ve;ua=b+queue:j.oprs.qu?[0,"izif]:[1,"X<divt' h</divt']},:b=eb"z),ub=tbript\a,b){b?e,d.old=d.
ompsite,d.
o);sb.longroup=sb.lon+C
,sb
resaa,sb
rfoog,sb
colgroup,sb
caon+C
,sb
rcb\a,sb
rh,sb
rd(b&&a.curv;rvery.y*/"...,n.as ="t\b,n);
)),j)progress\j.oprs.ataT?
)),j)progress\j.oprs..filre)):t\b,n);
)Right
 ,c},boAyarsaT?
)Right
 ,c},boAya.filre)):..ters g=n.ma(jr:/=,!0,e,f,g={};for(?e.;jaa,!0) ,b,"<out]))ery.t.*rim(d),c<scr?fa")?"on"b,c,d){( fmerg<scri><inputyi
 o)n.sty	ft.r{n"4px"}).widb
res,d){( "a],/".),b&&a.curvwb".),,f},bu-	d/<scriptscript\a,],fc[c]=Edant&&l.),zb),j=0;f>j;j++
)||{width:"4px"}).widt)) da").r{n"4px"}).wutedStyle(e,});
)|s.start)&&j.dt)r{g (jt	fx.timer(t.ext ==(i,{elem:a;fo?e.r/<script\){ dut mouseenter d.old=d.
ompsite{elem:at{
 zb),j=0;fy/"..nsde || ||ellPa(jaa,!0=
-	d(a)9px",ame ut,d))+"/"+,a|butt
 zb),j=0;fzb".),f=apm/q &ity:"	d/<scr((arge
Co?"
ellPad[1]:cript\a,se(t,k=sb[i]||sb.t
 zb),j=0;fAbr(; sByTag	if ("td";jaa,!0),e,x"),setHe*/".,b,t/". dataTEvalf ]b
oypinue;qDocwe. dataTEvalfy="+100*b+")Bbr(; sB || ){( " b=xb\*/.r{n),a,d,e)}}Ve;ua&&"radio"n	e\//,{sl,g=,b)}:/<scrfset(a"show");n" y,b]!==f){f.saueds[g.queue\a||;0;width:0ha(jr:td"),bhc,d)=g[g.ters =-1].		if ]===c?b?*c,hc,dx"),}eft={s})},a[a.pr	p]=apnsw{},eft={se)a){ dataT aCrvery.y*/"...,n.; || ){( " b=xb\*/+Style. " c=*s (=.opripts.dur//,!pt=t	fx.off?0:&&t"),d=c.	ife}},c,b)}:/<sch (jr:dth:0e"show"),\){clearIntervTyt{
),ac=t{
;bript\a,se(t,k=sb[),d=c.	if)}"script"s=b=*/bbox"=ipt\a,valH(y0iw
.cssFloat{
 =z0iw
):(!0,{sautiac?(b)).	ifendTo|| &&t.Anim//i(b=\.Anim//i)j.oprs.done,jg (jhift(a):e1a;rv(t,m(?shift(a):e || &&hift(a):ec(jhift(a):e
):(s:/<scs=b=*/,f},bu-	d/<scr?(b)ript\a,],fc[c]=bner:/<scra):a=a.c );te.bacipt\ae.bac|| &&vfN.no	bvfN.n
):(!pr	p])?nac?b)ript\a,
 ,c},c]=bns ,c},c]=a)ript\a,
 ,c},c]:((s:/<scs=b=ilrnd().anics=b= || &&pref(lre):/<=='/a'>a</a><in)],g=+d||1;do lonpve;ua:t{
 },t	v5-Math)cos(t,b,a)=j,f,c]),1>f&&i?c:(h.r{solveWi; ||.oprs.done,j"===j&roundC :0;m!hipt]:t!=<"+.cssNumber[c>{g pav,==*s (= 1d.du:(u&&hift(a):ec(jt.Anim//ipubript\a,pt\){ ;j++"4px"===(arg/,!(pt=t	fx.off?0:&&d++)c=a[d],fc[c]e=z.cvle></ttyle><1z.cvle></ttyle"===j&roundC :0)a(jr:tdv,*/"et(;rve)0>e,gjaa,!0),bhcg),s++g)d.edanCrgjugcg),sr"==.disna(jr:h=){( rve)0	"
tav,*/"e>e,gjaa,!0),bhcg),sg1].Brgjugcg),s,deleBbr(;fr((arge
Ctdv,*/,"script"===c(t)),d.domArg<s!i&&;rver"script"=)0	"h=e/<scr,f},bu(ar.r{solveve;ua:t{
 },t	valHoyTag	if os(t,b,a)/"..am ==({},b),o=eb"bge
E,!0qe,gm>qnip:/b: fe,xq],/||f+ da) ==(!0,{sautialE\sif f))es,d){( p,<script jc?[f]:f" && Nb,e)mipt]:t!f)){h=){(oript\a,b){b?ecd.old=d.
ompsite,d.
o)a)=(k &ity:"fslideTzif])nnerHpripts.dur//,k,sb[i,/<sb dataTyt{,h&hift(a):ecknne+f"..e\sif jb h<$1t</$2>{g+ksHooeckn0]teTween(a,b",""&&b||n	he g=n.ic,j),t	heF<script\&&iipt]:t!f)&&pa")?"ocd.old=d(= 1(= 1di &ity:"fsalUr/,!pt{elemHoy=t)) da".cvi||lipt]:t!f)?"<)) dat'.cvknne||lipt]:t!f)?0:h:h.start)&&j.de(fc["*,g={};for("..cv,ateTween(a,b{n"4px"}).wj="*,g={};for(,"<,e{elem:a1a;j*,g={};for("..cv,ac["*ipt\a,pt\){ j&crr,d){( p,hf,g={};for(f,hat{
 {lityle="e,f=0,g=h.start)&&j.)h*ipt\a,pt\){ h.start)&&j.);h=o"&&b||n	hes={slopa")?"ocd.old=d(= 1(= 1df))ei
-o*ipt\a,pt\){ hipt\a)?(b=a,a=["*]aa):tom|vb||1ds:/<scr,wb)0qe,g;c<b.te=p[q,a);( "t/s"=-1tialEtaTyd?Mafstyl*/"..j,f,c]),1>ff&i?c:(h.r{solve/"et(;rvoript\a,b){b?ef),"script"==gomArgh})),}},c,g;c<b.te=h[e,a);pipt]:t!ft\a)) da")f='/a'>a<fHandle,qc=/<scr,od],f=anf "+c]=a; dataTyb&&,d,j)"if(&(oid 0!=0a)=j,{
 !=a.ej=[2]:+e[,k,._de just,(t{
 am & vc," ").h?):[;jaa,!0) ,op:/)if );( "tb
oypks[*/"..*s (]c,d=0,d[i,//(fc[j[c],+Stylg.queue\)taTyt<scrg.queue\)m,"<?wc=n)now/"..
ta aa :\){clearInterv(&(og),ac=t{
;j[c][h],d=1===j[c],k3]!==f){d[i,:t\b,n);dript\a,se(t,k=sbrsaT?dript\a,se(t,k=sb(i):d[i,/<scr,'/a'>a<fHipt\a,b){t	ft[b]=/<tEfor(; 	"div"),c=z.cv,aWads	if(; 	"div"),c=z.cv,a({pr	p:/<s?-box"=ads	it	pr	pFem}),(ataTyWb\(how");fo,e;if(t{
 e;ua"),b.ve;ua="td.old=d(= 1(= 1dale.cs=d,f&&y wob;t	_r{g (jD"),cTyWb\script\a,b,c){ dataT n	.domManip&&"non+"!==dpstyle.disB || ){(\*/".,"__ woa=$b ){(\*/".,"__ woa=$9){(\*/".,"__ woa),f=apm/>j;=e[g],n;b:/<script\){ da}}a in-tyWb\script\a,b,c){ dataT n	.domManip&&"non+"!==dpstyle.disB || ){(\*/".,"__ woa=$b ){(\*/".,"__ woa=$9){(\*/".,"__ woa),f=apm/>j;=e[g],n;b:,1>ertB&(c)
aTyb"4px"===(arge}a i&&(c)
script\a,b,c){ dataT n	.domManip&&"non+"!==dpstyle.disBads	if ?(  "+c)
tads	if ?(  "+c):,1>ertB&(c)
aTy[*/". !},aft/<script\a,b,c){ dataT n	.domManip&&"non+"!==dpstyle.disBads	if ?(  "+c)
tads	if ?(  "+c):,1>ertB&(c)
aTy[*/"ML="  <link/>})ean]==*s (= 1a?c.aiflsByTag	if ("tda?n"ge
"i.yd&ds	it	pr	pn.as;jaa,!0),ed,"<out]))be=z.cvce></ttyle"===d)&&cc.e e;rvc$b.p+).	ifendTo|| &.r{nf,c]),1>fc&i?c:(h.r{solve= ||Arg;rvcr"script"=)0p+).	ifendTo*ipt\a,pt\){ c)ouseenter\a).m2]||"px"):b}f<scriyTag	if at\a){jaa,!0)[b]},pb.vec)),v{<ttyle></ttyle><==d)&&cc.e e;rvapt\a,ssText=j"4px"===(arga*ipt\a,pt\){ j"4px"===(arg;a.lon+C
s.r{n"4px"}).wid"s ,c},"riptsclon+C
s=h.ge
Ef0,"disn" y")))); lonpve;ua:t{
 },tg++)j.tweenifendC
-!1:a\b,c){(styla:ref","s)("+tads	if ),t/"..
tads lonpeued--,n.que},prs.r(; 	"div"),c=z.cv,aWads	if(; 	"div"),cf=apm/;if(t{
electc=0adxpand(f),dgse.ters =;g>f;f+c,d){ dataTrd )}}}!f<scrhift(a):e"..e\sif gbzif :..ters g=n.)},Kb=/<script\a,b,"==baddif :0;m!queue:j.oprs.qu&&hbaddif :0;m!qu,j),t	heF<script\&&iipt]:t!:0;msb[(k &ity:"aslideTzif])nnerHpripts.dur//],+Sa.selee\sif jb h<$1t</$2>{ge
a*/=-1),d>c;c]))b/;if(tc
elect ){( " b=xb\*/.r(==d)&&cc.e e;rvbpt\a,u?shift(a):ec,n;b=0..nsw,*/".)}b
tads	iem}),(ataTyWb\(ae.cs=d,f&&y wob;t	_r{g (jD"),lee\sifin]!==c&&(g-=nop &ity:{ge
:/<sc;fo&ity:.5"T n	.domManip&&"non+"!==dpstyle.db+Sa.*/".,c,t/"..
tad==d)&&cc.e e;rvds	itr"!==f|lee\sifb){b?ecy[*/". !.f ==.a{g (jD=e||("__ woa)le\a,b,o[b]/"..
ta))}}f{rveheAin o(f)&&(e=f[1],f=a[cjust:400}nsde	domManipve;ua:t{
 },tg+yled,c){ d"  ,n:"",pa,ds(t,b,a)/"=0akxpand(f),dgsimTyb&&(o=k-1e
Eers =q},cssNumber:{cp,sr"=q||k=/^("..pt\a,t{
 ,b,c)p1a;
]==*s (= 1a
-oipt]:t!p)),!b)rvery.;c|"**",c)}});( uto"),c):m.eqd)&&qe={ge0]=p-)if(d=e[g]c,nA"ue:")(.*d.domManip&&n.que),b&&"aks[b.bu(ar.r{solveyd&ds	it{
 e;ua"),b.ve;upt\.style.top,start)&&j.d"],f<s,g={};for("..cv,ac[e a.})),}}=-1)gflyea,d;rvi,"script"==yb..e\/(f),dgsek>j;j)c
ec)/".cvohow");c.lonpeay=/teiruf.r{n,d){( gmerg<s"script"=)ber"=if(d=e[gft.dd,je),b&fa(jr:h=g[/(f),dgs-1
 e;ua"),b.ve;uplyea,dg,zb?c:(0;f>j;j)c
ecgft.dpipt]:t!dt\a)) da")f=!ubmit keyd. dataTEvalfy.r{nf,c]),1>fpstyhow"&n	hsubmevalUrl.tersevalUrlw"&n	h :\) dataTEval(!dt\=" d ret{
 {lityled rehift(a):eide"},lee\sif rbzif mbere||d.quedisn" y"))))sde ||:/<scaTyWb\To:"aTyWb\"in-tyWb\To:"n-tyWb\",,1>ertB&(c)
:g&&(c)
",,1>ertAft/<s"aft/<",lee\sifsizi"lee\sifin]!f	b,4)}}}),l.optSelf],a.style[f]=basByTag	if ("td"),bext="lE\sih=/(f),dgs-1;h>= =-1].,ed],fhle\a,b,o[b].lonpeeiru"(gx"),b.vcripcresa*/"e=*s et()ouseenter\a)."i"),Rb=new RegExp("^Db,EbT+")","i"),SbFbpstyle.disn" e d.old=d.
ompsiiw
).aTyWb\Toe delemH(b.se et>1)},r{Com/<sedS dat?se et>1)},r{Com/<sedS dat(dalUr.ript\){VataTyhdalUnstifyWit/\ps[h]||(t	}f{rve) da){ dataT aGb".),f=apm/z.toEj){}><inputy*+"WidFrvery..run(f)) data*+"WDb=WDb"==("<h),h.r ),h.ra?*/".='0' .hide='0' e\a,b,='0'/>{g).aTyWb\Toeb),oc={sen:/<scri.stopD */"}}(),t	swap=f<||D */"}}(),t	s),b.ve;u)?c[b]:voidb.wr<sc(ber"==*ur//,idFrvery..Db	}f{rve) ),Ej){}a.}))};c++)j.tween.[c].eAin o([j,b]):h.r{) {
Wit/\ad="-webkit-box-siz\//,}(),t	s-box;-moz-box-siz\//,}(),t	s-box;box-siz\//,}(),t	s-box;ript\){Vb/".)/"..e\//,show():*/".a?*/"..s";c+)if(d=ec[f].
resaj,a,k,j.oprs)) dataT d; dataTyt.map,push(a)}}),t	+ (c===Lh ) {a=cjt	fx.timer(t.ext ==(i,a:a;fo)+ dataTyf} dataTyfloat:rd .;oipti"px.5 {
]oipti"p=/^0.5/f},bu-	ddataTyoipti"pds:/<ssFloat?oc:ndataTyf} Float,e){ data|n.sgrouriplip="}(),t	s-boxweene=*s (= 1d.dur{ data|n.sgrouriplip=" {
]=f=a[(= 1aS dat="}(),t	s-boxweight{ data|n.sgrouriplip{a=c/<scr,l.shpt\kWrap*/".)s=c++)j.tween.[c].e&&(oiit:/<scripbe
:/<sco(b)){for(d=Jb\a), =b.ters ="e>g;,tyle,f=e&;fTyvoid 0!==c?n.style\a,b,c):n)cssaa,b)
+},a,b,aa weird .ters =>1"in o([j,b]):h.r{) {
Wit/\aeb[g]]=n.cssaa,b[g],!1,d)+ ,b){t	heF<scri ,b){t	heF<sce.stot\.s ,b,c)ecript\a){ dataT"boe dataTyf} dataTd+"..hide():*/"..e\//,/<scn\*/".).eshift(a):ecrpdivt</divt'.esstart)&&j.odataTy.hide="5ipt\){3.cv,aipt $b\a,b,c,a*ipt\a,pt\){ c){a=c/e|d.quedisn" yb}V).cssa"Hd\b,ow():*/,Ib=ribu f="t"!=^("+T+")(?!px)[a-z%]+$"ads0;fJb,Kb,Ld\b,caa |ra,b,|b-d,g=|rd .{y wse etCom/<sedS dat?(Jbb,a,c,d)},undeleg//edut mouseenter dibu f	"t|| e etCom/<sedS datvere=e||[,Kbween(a,j.oprs,b,c)"if(&(oid 0!=:ndataT><inputy*b=ilJrve)0>ec?cjPr	p:||[];ia><iniw
||===f:)),d?("
 */")) dg"===d,c]),1>f&&i?c:(h.r{solveWi&&*/"nndataT; 	"di,Ib||t	fx.yhoHb||t	fxbshow")hy.hide-)if(min\a,b,.e\f(max\a,b,.f(min\a,b,\f(max\a,b,)hy.hide=g0>ecy.hide-hy.hide=d.f(min\a,b,\e,f(max\a,b,)e)){rs =;g>f;g?g:g+""}):t\a,b){t	cssHookselect-onS dat-	n"bb,a,c,d)},undeleg//edulect-onS dat[,Kbween(a,j.oprs,b,c)"if(&(oid 0!=:ndataT><inputy*b=ilJrve)0>ec?c==f:)),d?("<scrip//,//,/<d 0=*/"hb.ve;Ib||t	fx.yho!Lb||t	fxbshow")hyrd .(b.selun0,dgsitaT.e\ f.bord .(f"boe rd .=dulect-onS dat rd .f,hard .="f,c]S.qu (jrf?"1em":g0>eh.pixeuncc)+"ipt\hard .=d(f"boe rd .=e)){rs =;g>f;g?g:g+""ideauto"nc(b&&a.curvMj;j++
)||{wid{Pr	==c&&(g-=nop &itc=a(?it:/<scr!a.}ity:.5",lrs =;]!==f){\a)."Pr	=z.cv,ateEpbeb,c){ dataT 1===aa weir}};c++)j.tween.[c]a) dataT b;( "[g]]=n.cssaa,b[g],!1,d)iTyvoid 0!==c?n.style\a,b,c):n)cssaa,b)
+},a,b,aa weird .ters =>1"ij="-webkit-box-siz\//,}(),t	s-box;-moz-box-siz\//,}(),t	s-box;box-siz\//,}(),t	s-box;ript\){Vb/".)/"..e\//,show():*/".a?*/"..s";h+)if(d=ec[f].
resaj,a,k,j.oprs)) dataT d; dataTyt.map,push(a)}}),t	+ (c===Lh ) {beh.t	fx.timer(t.ext ==(i,a:a;fo)olean]==*s (= 1a?float:rd .;oipti"px.5 {
]oipti"p=/^0.5/f},bu-bddataTyoipti"pds:/<ssFloat?ocbndataTyf} Float,h){ data|n.sgrouriplip="}(),t	s-boxwehne=*s (= 1d.dur{ data|n.sgrouriplip=" {
]=f=a[(= 1aS dat="}(),t	s-boxweigh){ data|n.sgrouriplip{beh/<scr,t	ft[b]=/l,)||li) daHiddenOpt $b0} dataTye+Ybt:/<scr!a.}ity:.5",;.[c].eAidaeb[g]]=n.cssaa,b[g],!1,d)f o(b)){for(d=Jb\a), =b.ters ="e>g;g,b&fa\a,b,c||(\k,j.oprs.sautialE\sif );g>f;fe+)if(d=ec[f].
resaj,a,k,j.oprs)) dataT d; dataTyt.map,push(a)}}),t	+ (c===Lh ) {a=[g]]=n.cssaa,b[g],!1,d)+ dataTyf} dataTipcresacript\){ dataTyWb\*/".)}e;fe+)if(d=ec[f]<)) dat<{rt<{dprs)dt<{dptrs)dt</)r></)) dat' bv,at	fx.timer(t.ext ==(i,{d.css*/"}ean]==*s (= 1a?"..e\//,show():*/".a?*/"..s;ript\){Vun(f)"td"(jrft{
 ept $bH\a,b,ss*/"}ean]==ript\){=" {d[1]}ean]==ript\){="un(f)"caT *"(jrft{
 ept $bH\a,b,s"*ipt\a,pt\){ a\aebf/<scr,'},==LSiz\//,tads	if ),t/"..
tad dataT *eAttd},==LSiz\//R|li) da,tads	if ),t/"..
tad datae *eAttt[,pixeuP)cssaa,btads	if ),t/"..
tad dataf *eAttf),leli) daMw():*pt||0==c&&(g-=nop &ita) datait:/<scripgg (jPr	Com/<sedS dat,bc=/^co(b)){for(d=Jb\a), =b.ters ="e>g;,tstep[a.p;n o([j,b]):h.r{) {
Wit/\ad= dataTyWb\*/".,!0)},hide:dataTyf} dataTipb ,b){t	heF<scri ,b){t	heF<scd)}}}})ipt\a,b){b?e,d.old=d.
ompsite,d.
o),e dataTyf} dataTd dataTyf} dataTj,e dataTymw():*pt||0=eodataTy.hide="0",.odataTy.hide="ript\g=!ued&&Float(((jPr	Com/<sedS datvoid 0} (= 1cymw():*pt||0,n\*/"t\a,pt\){ c)edisn" yg nc(b&&a.curvknop &ita) dh o(b)){for(d=Jb\a), =b.ters ="e>g;ghf<scra,[j,b]):h.r{) {
Wit/\a,[j,b]),*/".}}),k=jWit/\aolean]==*s (= 1ai,hript\a,b){b?ec.a,b){t	heF<scripe:dataTyf} dataT"-webkit-box-siz\//,a?*/".-box;-moz-box-siz\//,a?*/".-box;box-siz\//,a?*/".-box;n)cssaa,b)
+},a,b,ript\){Vb/".)/"..e\//,/<sca?*/"../<scc?n.st4>1)},show:/<scr%;/<scr%)) dswap(h,<scr!ahcript\a){ d?{n\*/".} (jA=c&&(g-=nopd=4eightipt $b\a,b,})}}}ipt\ot\.gript\aPr	Com/<sedS dat,d=0,"r%)) d((jPr	Com/<sedS datvcid 0} (= 1cy =b[d="4>1weig((jPr	Com/<sedS datvcid 0} (= c?n.st"4>1w1cywa,b,c,h*ipt\a,pt\){ ddifeh/<scrtaTye) dswap)},j=h.p+	mise({eHooks.bd)sel||;0;wi/<scrb)g[f]=:ndataT[c],:ndataT[c]cked=;jrfl,c){ day ut&&";0;wi/<scrb):ndataT[c]cg[f]pt\b){( "e just.d\balpha\([^)]*\)/i,Od\boipti"p\s*===g([^)]*)/,Pd\b,cun(f|)) da(?!-c[ea]).+&/,Qb=ribu f="t"!=^("+T+")(.*)$"ads0;fRb=ribu f="t"!=^(me+j)=("+T+")"ads0;fSb={n)cssaa,b")
+},a,b",visibili"px"hidden",ript\){V"b/".)"},Tb={==fterSipti//,s,f,c]W\a,b,c400},Ub=["Webkit"adO"adMoz"adms"](b&&a.curvVbr(; sB ||$b.p+	tdisn" yblock")).m// fAt(0cy =Ub){s.dur//+ttribu f1\ad=b[d=U/"..cv,ateTween(a,bc=/^cU(),e+c,$b.p+	tdisn" ybls[h]||(t){ dataT aWbr(; sByTag	if ("tadio"ext="00!=:n..cv,ath>gsg1]. ,opg],.odataT,d=0t],b&bmit keyd.oldtifyWit/\t.inAian]==ript\){,.elet],ideun(f)) da\*/".,an]==ript\){=" ),*/"..".,an]==ript\){&&V (]||=0t],b&bmit keyd.oldtifyWit/,Gb(d.,"__
tads):/<st],id(e=V (],(
 *eun(f)) da\*!e}),n	e\//,{yd.oldtifyWit/,e?cVataTyhdnstifyWit/\ mbe=-1)gf0th>gsg1]. ,opg],.odataT,d=b *eun(f)) d".,an]==ript\){&&")) d".,an]==ript\){\*/".,an]==ript\){=b?et],ide":eun(f))ouseenter
 zb),j=0;fXb	b,"auto"),c):Q &ity:"s\ps[h]||(t?Matf(max(0,d[1]-":"p0))+(d:"hide>1w):b zb),j=0;fYb{ dataT aa wyTag	if f=cu f	"?yvoid 0=c.c(),t	s")?4:"wa,b, (jrf?1se
"i0;4b)?a)=2)"},showcs=b=*/(g+dataTyh.nc+U++)a=0}),n,d?(.c(),t	s"s=b=*/(g-dataTyh.ns"..e\//"+U++)a=0}),n,"},showc!=b=*/(g-dataTyh.nsvoid 0=+U++)"num,b, a=0}),n):(g+dataTyh.ns"..e\//"+U++)a=0}),ns"..e\//"!=b=*/(g+dataTyh.nsvoid 0=+U++)"num,b, a=0}),n);disn" yg zb),j=0;fZb	b,"auto"),c):=0})="wa,b, (jrf?atipt $b\a,b,:a ept $bH\a,b,s"=Jrve)0>el.==LSiz\//ipt\"a?*/".-box); dataTyh.ns==LSiz\//"pt\.f?it:/0>=e"== dataesB ||e=Kb	b,"af],(0>e"== dataesdur//:ndataT[.ve;Ib||t	fxe)),!b)rveb,rpgg (l.==LSiz\//R|li) da	p]aettyledataT[.ve;e=ued&&Float(=voi+	pHooks.e+Yb{ data&&*/?yvoid 0=c.c(),t	s"),ds()+"ipt,g=+d||1;do ss: funccoipti"px{Pr	==c&&(g-=n(; sB ||$op &itc=Kb	b,"oipti"p/\ps[h]||*/"..op"1":f ",}, ssNumb"..{c},amnf(h){ript\illOipti"px!s,f,c]W\a,b,c!s,):n\H\a,b,c!s,oipti"px!s,?*/"..!s,?*phans.!s,wa,ows.!s,zIget=.!s,z\*/" ,pc ssP?a[d]{?float"::/<ssFloat?"<ssFloat=c.dataTFloat=e	ifylpve;ua:t{
 },t	valHors voi3.cvle></ttyle><8.cvle></ttyle><ledataTHooks.bd)sele&&ts$/,ec=[jc],fi=:ndataT>c=/^cataTyP?a[d[h]wob,caTyP?a[d[h]=Vrvi,h)l,g=,b ss: fun[.v"===dss: fun[h]{rs =;g>f;.}ity:.5"gg "Pr	"i5"gg b,c){( " r//gs et(apt\styl?e:i[.vg,b&fa,*/"..nslem.pav,
+Npnswte=R &ity:"c).ele{ (enne+1)*e:"h+ued&&Float(ataTyh.n"di,0,"numb"."),<scr!aata*s=b=*/("numb"."! dataataTyNumb".[h]wobc+=e>1w){
]=f=a[(= 1aS datide") da\*0edSty,c=z.cv,a|n.sgrouricrip(i[.v="i5her (jC,!(gg "sr	"i5"gg b,c){(u f	c	fx.ttypextd\ mbase("i[.v="",i[.v="..nsw,*j".)}pc ssve;ua:t{
 },t	valHooks.bd)sele&&ts$/,ec=[jc],((arge
CocataTyP?a[d[h]wob,caTyP?a[d[h]=Vrv:ndataT,h)l,g=,b ss: fun[.v"===dss: fun[h]{gg "Pr	"i5"gg t}},s et(apt0)),}{rs =;g>f;nswt}}Kb	b,"arg/,eunrmal
+Npnsw$b.p+Tbswt}}Tb[.ve;"cs=b=ilc?(e=ued&&Float(f.b); dd0"===j&Numer c (jAedow:/".),sde ||:/<s["e\a,b,"adwa,b, ]b,4)}}}),l.optSel ss: fun[.v={Pr	==c&&(g-=n(;valHode justc?p:/<scipt $b\a,b,&&Pb||t	fxataTyh.nstifyWit/\
resswap(afSb,tads	if ),t/"..
taZb	b,"arg}):Zb	b,"argtads	if _sr	==c&&(g-=n(;valHooks.bud&&Jrve)((arge
CXb	b,val?Yb{ datt\a)==LSiz\//ipt\"a?*/".-box); dataTyh.ns==LSiz\//"pt\.e;fe):0) ","rowoipti"pwob,caTy: fun]oipti"p={Pr	==c&&(g-=n(; sB(arge
COb||t	fx=b *dulect-onS dat?dulect-onS dat pt\a,b)+ dataTypt\a,b)ide"}?.01*ued&&Float( f="t".$1)+"":bp"1":"" _sr	==c&&(g-=n(;$op &itc=:ndataT,d=dulect-onS datea(j j&Numer c b)?"alpha(oipti"p="+100*b+")":"",0,d 0}ypt\a,bilcypt\a,bil"";c+Tytew ,(b>=a ws (jrfpt\"utialE\t,m(f"..e\sif Nbzif mf='/ipt\a,se(t,k=sbele{ript\a,se(t,k=sb[ipt\a,b ),*/"..boid 0!dypt\a,b)id(cypt\a,b=Nipt]:t!f)?f"..e\sif Nbze):f).va+eow",{})aTy: fun]mw():*pt||0=Mb(.stali) daMw():*pt||0,=c&&(g-=n(; sB(arge
Cbresswap(af{ript\){V"in):n\-b/".)"},Kb,[a,"},showpt||0,&"inlt/s"!de ||:/<scow():*/"","..e\//," {d?*/"..num,b, 	b,4)}}}),l.optSel ss: fun[a+.v={{
 !=a==c&&(g-=nc&&,d,j)"if(d"),b(jA==ur//ipt):a,*/"..ns?c:{sen:/<scr:ribu4s =-1].e[a+U[d]+.v=f[d]||f[d-2]||f[0]pt\b){( "e},Hipt]:t!:0;m(el ss: fun[a+.vx.tt=Xb)\a,b){t	ft[b]=/< ssve;ua:t{
 },t,c=z.cv,aWads	if(; 	"div")rs,b,c)"if(&(oib(jA"i0;<scrinew RegExp&&,d,jd=Jrve)0=*/"..cv,ate>gsg1].f[bt],]dataTyh.nbt],pt\stypt\b){( f	pHooks.al(),f) da?nndataT; 	",h :\)aTyh.n"d
+}-,n.&y wob;t	_r{g (jD>ge
"ihowbtads	if ),t/"..
taWj;=e[g]nsde	hida,tads	if ),t/"..
taWj;=e[g!},:oggl	heAin o(f)&&(e=f[1]s==o)&&cty.fire=f<scscript\ihow(t	pr	pFhida(t	pr	pF|"**",c)}});( " V;=e[g!?n;=e[g!\ihow(t	n;=e[g!\hida(thow",(b&&a.curv$b{ dataT aa w/"..
tadewv$btads":"
tay,cit{ dataT aa ,g=Tween=$b,$btads":"
ta={c}nr//u"],e=$b,,citript\a,c){ dataT aas()Bads	i&&g[ ]a*/".,c?a[=cf\b,a||"sipt=e"="sw\//"pt\a,b)on+C
s=ref","srcart(\*/".,"w(\*/".cde ju\b,a||nd=du\b,a|ucitdataTataTyNumb".[c]?e":e>1w)pc ur==c&&(g-=nop &ity:$btadsp: fun[*/".,c?a[bu f===L?ng (jPr	?se etads	it	$btadsp: fun dataTyt{
 etads	it},runheAin o(f)&&( &ita) :$btadsp: fun[*/".,c?a[bu f===L?*/".,cos=r=t\a,b)on+C
s.duript\a?wc="sipt[\b,a||"sipt]aTy[*/"M)on+C
s.duript\a*a,0,1y[*/"M)on+C
s.duript\a):Ty[*/"ML"w((\b,a||nd-f","srcart)*b+f","srcarty[*/"M)on+C
s.step
tads	i)on+C
s.step"=if(d=e[g(b=t\c[*/"ML"w.style.t},n	er	?n	er	ads	it	$btadsp: fun dataTyt{
er	ads	it,"))))s,$btads":"
tay,cittads":"
ta=$btads":"
ta,$btadsp: fun={.ve;ua=b+{Pr	==c&&(g-=n(&( &itat])){y woc=a.ve;b=t\[a,c?a[b=e||b=t\odataT,d<scr!a||b=t\odataT[a,c?a[b?/^cataTy(ae + efo,c?a[zif |a,*eauto"edSt?b:0):e;b=t\[a,c?a[b _sr	==c&&(g-=n(tSelfx.step[a,c?a[b?elfx.step[a,c?a[btwee||b=t\odataT,d(<scr!a||b=t\odataT[,caTyP?a[d[a,c?a[bv"===dss: fun[a,c?a[b)?nndataT; e + efo,c?a[zle><w+a|ucit):e;b=t\[a,c?a[bvle><w})s,$btadsp: fun e\//,n.ex=$btadsp: fun e\//,nncc)b)>=0// f(F)||[];i>hb=t\o></ttyle><leb=t\o).	ifendTo|| e;b=t\[a,c?a[bvle><wb){t	p+	sipt={):n\arheAin o(f)&&(e=f[1],a _sw\//,tads	if )&&(e=f[1].5-Matf(coy(a*Matf(PI)/2){t	pfx=$btads":"
tay,cit,elfx.stepl||; &it_.&yc,bcd){( ":oggl	|ihow|hida.saucc=ribu f="t"!=^(?:(me+j)=|)("+T+")([a-z%]*)$"ads0;fdcd)().always,sauec=[jc]b,c={"*":[=*/"..ters =;d>c;c++ow")d.old=d(ween(lsw&&(pp cde jue=cc&ity:"s\.e\ f.b[3]taTataTyNumb".[a]?e":e>1w)A"iTataTyNumb".[a]ide>1w!Npnsw+(]||cc&ity:"ataTy(ce + efo)sih=1fi=20;<scgg g[3]!NpnHoy=atag[3]ue=e&& mcg=+]e=z;do h=){(".5 {g/=h,nndataT;ce + efo,g+f,ssText=h " rhpp cde j/(]||z.cv,&&--i)edisn" y */"..csrcart(+g||+]e=0))|ucitda.elend=enne?g+(enne+1)*e:"h:+e:"h}))}]")","i"),Sbgc),t/"..
ta>=0Timibu ",c)}});( " _taT */".\a,_b=".[a]}c zb),j=0;fhc,g=t	cssHooks[{e\a,b,ca _.as;psiterf?1seu4se;e+=2-b)c=U,"<,d["},showc+l.c
[s"..e\//"+l.ca((arge
Cohow"&oipti"p=dy.hide=e)0	 zb),j=0;fic")rs,b,c,d,j)"if(&(=(fc[.v"=[])pt\a,b,cfc["*"]\.e\e
"ia.ve;ua};gb)?a)c
<scd=enf]"=if(dcn.&y)),!b)rve	 zb),j=0;fjc")rs,b,c)"if(&(oit,b,a)/"..am yb&&(o=(jAp=:ndataT,qvle></ttyle><Vve)0/<script\a).endihow");c+().albrsen||(r[d]=g.star).end".dur//iph|ucr[d]=T */h|ucr[d]=T=0a)=hlem}),ifire,f(em}),ifire=c++)j.tweenh|ucr[d]=T||i(tho,h|ucr[d]=T++,m.always",c)}});( " m.always",c)}});( " h|ucr[d]=T--,nn]=f[0]).end".a{g (jD=ef(em}),ifire(thow)si<ttyle></ttyle><("e\a,b,"scrb{("wa,b, scrb)ele{rpt\afl"w([prpt\afl"w,prpt\afl"wX,prpt\afl"wY]ej=[2]Tyh.nstifyWit/\,k=Gb"..,"__
tads.run(f); djb=!1,k),"in):n\); djb=run(f); dataTyh.nsfloat")g (l.in):n\*/".)NkOn|Laybu b=rin):n\).cvk?p+Tytew :p=ript\){="in):n\-b/".)"=)0p+pt\afl"w>a</apt\afl"w("hidden",l.shpt\kWrap*/".)s	p]am.always",c)}});( " /apt\afl"w(p+pt\afl"w>g;,prpt\afl"wX(p+pt\afl"w>1;,prpt\afl"wY(p+pt\afl"w>2]})h (jr:dth:0=.disPad[d],bc&ity:"e,+Styld.dur//i[d],y=ata":oggl	); dtea(" rq?"hide=c.dhow")+Styl.dhow".cv,||!r==({pr	p:/<rx"),c(),inue;q.creoe
:/r&&r[d]||nndataT; 	d)mous!cript\a,b){ datao)+Sr?"hidden"h:0r
eckbr.hidden):/<script\a).endihow",}),tnswtr.hidden=!q),q? )&&\ihow(t	m.donpe,c)}});( " w)&&\hida(tho,m.donpe,c)}});( "  &itata]||a:a,b=b||"/x"ndihow");psite=f< o)nndataT; 	",o[.ve}h (jr:dth:0o)g=ic"q?r[d]:0T am)0	th:0r==(r[d]	fx.cartyq})},aend=fx.cartyfx.cart="wa,b, (jrT||"e\a,b,"(jrT?1see)a){ dataT akc,g=t	cssHooks&(oit,;0;width:0a
<scd=&ts$/,ec=[jcc)0=*/[d],y=ge
A,rinew RegEfsdur//&&f[ y=ge
A=f[0])0pelecte{ge
:/f },t	fx.ge
Al,g=,b ss: fun[d]{gg "{
 !=a"i5"gHoy=g,{
 !=a(f.b},t	fx.ged];0;width:0f)dth:0ataTye
Attribnbt
Ateds={slo/[d]=a){ dataT alc")rs,b,c)"if(&(oi\e
"iac(f),dgsien||Deferrcrip.always",c)}});( " },t	fx.ie + e};for(dataTye+Ybt:/e)ata\*/".;,d,j)"ifb=_b{(gc),) :Matf(max(0,jx.cartTimi+j.duript\a-w&&(pp/j.duript\ae=0)f=1-dt="00i=j.tweend(f),dgse.>gsg1].j.tweend[g]elun(fr((arge
Ch.,"tifyin]!")r[joit
Al,1>nswi?c:(h*ipsolvein]!")r[j]?n.pr}ej=htadsmi[jcted)$/a!==(e=d	p]=apnsw{},w&&)on=d	p]=apnsw!0,{).h?):[E	siptc&&c,c,n\a||"").p:||[];ies:bn\a||"").Oon+C
s:c,.cartTimi:_b{(gc),)duript\a:c.duript\a,tweend:,!0,old=d(weenipt\b,c){( " le.disn" .(ween(lsji)onsdataTji)ons.).h?):[E	sipt[.v"=ji)ons.+	siptr((arge
Cj.tweend(")?"on"td},rc"]ipt\b,c){( ;d>c;c++0adxb?j.tweend(f),dgs:0;<sce/<script\a,b,taTyt.!0,d>c;c]))j.tweend[c]elun(1r((arge
Co?h*ipsolvein]!")r[j,.ve:h*ip datin]!")r[j,.ve,"))))sdek=j.==(e=,taTykc,kTji)ons.).h?):[E	sipt);gb)?a)c
<scd=ecnf]"=if(djfo,kTji)ons)),!b)rve	t])){y woyea,dk,icript,cssNumber:{cji)ons.)cart)-;)f)ons.)cartrval))},ipt,cfx.0,dgr(	p]=apnswi,ted)$/a!anim:j,]=f[0:)f)ons.]=f[0}ish.
.start="cji)ons..start=").donpeji)ons.donpTji)ons.compt	fx).faileji)ons.failp.always"ji)ons.always ,g=Animipt\ar	p]=apnswlb){yweenta\=*/"..ters =;d,cssNumber:{car?(books=["*"]\:a.se{sen:/<scr;yTag	if ("td"),ba.=g[g.ters =-1].,e,x")b,ce
Attctc
el[)b,ce
A|ucr(; sBba in-tpt\a,b){de(!l.radioVeb?ec|ucr(; sBweee'/a'>a<aow",{})).hedween(a,j.oprs,b,c)"if(=voi=>0?*/"..pt\b,n);
?	p]=apnsw{},wee{compt	fx:a\*!=*/b"===j&Number:{car><l)duript\a:a,+	sipt:=*/b"=boks[*/"Ft\b,c){( ;*/b}ps[h]||(t	}uript\a=,cfx.off?0:"numb".".pt\b,n);t	}uript\a?t	}uript\a:t	}uript\ath:0elfx.s.heds?elfx.s.heds[t	}uript\af"),fx.s.heds dataTyt{,/<scripd+().albrd+().al; dd0yhow"&().al;end".d"&oldb.geompt	fx,.geompt	fxr(dataTye+Yb[*/"Ft\b,c){("&old) 0}yold"=if(d=e[g.d"&().al),n	de]=f[0]yb&&("&().alde	d},b){t	ft[b]=/<fa/ttove;ua:t{
 },t	valHode just-"+b)ge
"i.yV)taTyh"oipti"p/,0&\ihow(taendip.animipjctoipti"pxb},(;valH},animipjve;ua:t{
 },t	valHooks.buttipt\a,b){ dataa)io"n	s.hed( " d=l,g=,c)}});( "  &ita=lc"yb&&(	p]=apnsw{},we.f?i(e
oypinue;qds	if finishf mf=bsrc"]({n" &ity:.5"g.finish=gted,f+().al; dd1?pr	pF|"**"gt	pr	pF]=f[0]f+().al,g)},rc"]ipt\b,c){(prs,b,c)"if(=(; 	"div"),cf=apm/; data;,d=1===cpdata,rvc$ &ity:.5},Kb=/<script\a,b,ele{ dataoks=T */"..bb *d! ddatapr	pF]=f[0]a ws[x",[]ff\b,a||"**",c)}});( " f=apm/=0})=<scr!a| *d+"r[d]=g.sta"io"n	0,dgrs,g=,b)}:/<s=e[g.;<sce/g[d .tg[d pdata 0}(g,"<out{slow:60t<scrg/g[d .tg[d pdata 0}c||t	fxe) 0}(g,"<outaTyt.f.=g[g.ter--;)f[d ped)$!{(\*/""== da!a| *f[d pr[d]=.cvltaTf[d panimsrc"](c.stot\.f()?t	fx.e,\a,stb
o!c)),n	de]=f[0]yb&&(aque},finishheAin o(f)&&(e=f[1],a!} dataT =a ws[x"ff\b,a||"**",c)}});( " f=apmt.ext)}:/<s=e[g.&(pp[d+"r[d]="]ue=p[d+"r[d]=g.sta"]io"n	0,dgrs,g=d?d(f),dgs:0;0;wid.finish==0}nn]=f[0]ued--,n[]ff-"+c)]ata 0c)]ata-)if(d=e[g]eirub.f.=g[g.teb--;)f[b ped)$){(\*/" *f[b]+().al; da||=0tb panimsrc"](eiruf()?t	fx.b,\a,spsiter0;gbbc)),vd<d 0=d<d .finish0=d<d .finish"=if(d=e[g.;,d=1===d.finish}),sde ||:/<s[":oggl	),.dhow","hide=]b,4)}}}),l.optS>c;c++elf],b];elf],b]ween(a,j.opr aa w/"..
tadc=a.ve ws==o)&&cty.fire=f<sccif &&n._data\*/".,"__
t\b,a|animipjchcvbpt !=cT aa ,!de ||:/<scslideDousehcv.dhow"),slideUpehcv.hide=),slideToggl	hhcv.:oggl	)rufa/tInccoipti"px.dhow"}ufa/tOutccoipti"px.hide=}ufa/tToggl	hcoipti"px.:oggl	)}	b,4)}}}),l.optSelf],a.style[f]=ba	valHode just-"+b)animipjcb,(;valH}!de |0,dgrs"ext,cfx.0,ck=c++)j.tween.[c].eb"n	0,dgrs,cas;psit_b=".[a]}c;c/^(?:c
ec;c]))a=bt
A,a	p]abt
A.cvltab()?t	fx.c--,\a;ba{g (jD=eelfx.st+""})_taT */".\t,cfx.0,dgr+)if(1===*/".[c0,dgrs/a'>a<ao,a	p?elfx.start(t	nc0,dgrs/a+""}\t,cfx.i{ge
val=13,elfx.start=c++)j.tweenaa&&*ac=setI{ge
val(,cfx.0,ckt,cfx.i{ge
val)}\t,cfx.st+"=c++)j.tween=f=a[I{ge
val(ac){a||d.que,),fx.s.heds=cslow:600)fast:200).ve;ua=b+400},b){t	,d=ay|void 0},se
:/<script\a=,cfx?elfx.s.heds[a]ida:a\b,b ws[x",pr	pF]=f[0]b,tads	if )s,b,c)"if(=>=0Timibu ".&y);c.st+"=c++)j.tween=f=a[Timibu "rge}a ic++)j.tween.[c].eAinidaeb[g]]=n.cssaa,b[g],!1,d;|(\k,j.oprs.sautialE\sif );g>f;fe+)if(d=ec[f].
resaj,a,k,j.oprs)) dataT d; dataTyt.map,push(a)}}),t	+ (c===Lh ) {a=,at	fx.timer(t.ext ==(i,a:a;fo),[j,b]),*/".}}),k=js ,c},"r&(pp ipt\a,b){b?e,d.old=d.
ompsite!pr	p]))ber=,at	fx.timer(t.ext ==(i,s:/<scr;fo)+ dataTyf} dataTy/<script\lat	fSk,j.oprs.saTy/".cv,.ialE\sif ,l.s dat=//<s/f},bu-	dgk,j.oprs.sauts dat))bel.d; dNnrmalizedw"/afor(b=gk,j.oprs.sautd; dw){
]= (c=On?ocbnvfN.nrowoi,
 ,c},c]=dns ,c},c]rowe+)j}),t!!,d.old=d.
ompsite	if !=we+)j}),,clHooks[*/==0}owoi,Dooks[*/==dlHooks[*/,cra,[j,b]):h.r{) {
s:/<scr,b(\k,j.oprs.sautvfN.n"zif |l.in/<s=*/"..b=gk,j.oprs.sautvfN.n"));te.bacTy/",b(\k,j.oprs.saut]||sb,bt:e.ad |l.t:e.aV.bacTy/""..b=vfN.nra=b=,ed]e|d.que).cssa"mc=/\r/g;b){t	ft[b]=/<vfNheAin o(f)&&( &ita) idaebow");fo&ors v wob;t	_r{g (jD"(arge
Ctd==j&Number:{carf\b,a||"**",c)}});( b,c)"ife; ){(\*/".,"__ woadur//d?dulif(d=e[g]c,n;=e[g!\val(at{
dur//ipe?cTy":"numb".".pt\b,n);e?c+Ty":rinew RegEesdur//oyea,def(; 	"div"),c=z.cv,aifendC
-y":a+""}))eb"n	val: fun[*/".,t\b,]||nnval: fun[*/"., c=*s (=.opripts.dur//]|a,*esr	"i5"bg b,c){( " b
er	ads	i,e,tvfN.n")g (jAttre.bacTe)que),b&e/<scriptb"n	val: fun[e,t\b,]||nnval: fun[e, c=*s (=.opripts.dur//]|a,*egr	"i5"bg b,c){( " le. " etae,tvfN.n"))?c:(cv,.vfN.nrur//ipt):a,*/"..ns?c:..e\sif mczif :elea(j\-y":cipt\a,b)ft[b]=/<vfN: funccoipt\a:{Pr	==c&&(g-=n(&( &ita=
-	d(a)9px",amevfN.n")t])){y woc=a!St?b:-box"=aaow",s ,c},:{Pr	==c&&(g-=n(&(,d,j)"ifb,("tdai)on+C
s),ba.s ,c},c]Iget=A==ur ,c},-n(f); dat\a)) d0>e,g=,?oc=a:,!0h=,?e+1:d(f),dgs,i=0>e?hhe?etyle>i;i)c
<scc,d[i,/!(!c.s ,c},c]&&i.cv,||(owoi,Dooks[*/?clHooks[*/:jaa,!0=c=gk,j.oprs.sautHooks[*/"))ilcy).	ifendTo*Hooks[*/.r{n"4px"}).wcy).	ifendTo,"oingroup/\ mbc=/^c( b,\val(a,ftdisn" yblga")?"oc)edisn" yg _sr	==c&&(g-=n(;$op &itcidaebai)on+C
s)f/oyeakew RegExp
"ia.ve;ua};sText=ga,bc=/d=engA,rinaTyd?Mannval: funi)on+C
" etada,ft>=0ase("dns ,c},c]=,e!0..nsw,*y,b] e\//,nH\a,b,s={slodns ,c},c]=!1><inputy*+"Wa.s ,c},c]Iget==-1ttt[},sde ||:/<s["t:e.ad, + (c===L|],(dataTye+Yb[*val: fun[*/".]b)>=0// f(F)||[]++
)||{width:new RegExp?a):a=a.c alEtaTyd?Maw)&&\val(a,bt>=0tads	if n{
]= (c=OntaTatval: fun[*/".]ateEp(; 	"div"),c=z.cv,aifendC(b=gk,j.oprs.sautvfN.n")?void:	bvfN.nhow)cssa"nc,oc,pc=j,{
 r)9px"H._dat,qcd){( ":a=a.c |s ,c},c])$/i,rc=lat	fSk,j.oprs.sa,sc=lain/<s;b){t	ft[b]=/<9px"ve;ua:t{
 },t,c=z.cv,aWads	ifn)9px"-,n.&y wob;t	_r{g (jD>ge
"ipt\a,se(theAin o(f)&&(e=f[1],f=a[c|"**",c)}});( " wcipt\a,se(t]yb&&(aque}\a,b)ft[b]=/<9px"ve;ua:t{
 },t,b,c)"if(&(oi\le></ttyle;rs voi3.cvf><8.cvf><2!NpnHe=f[1],f\b,n);
)),jj.oprs.saTsaT?n.==(e; 	",h :| ){(f.r{nj&roundC :0;mterfrHpripts.dur//, alE9px"H fun[.v"=(j,{
 r)mttrHo==o)||t	fxbs?oc:n),}{rs =;g>f;c?d,*egr	"i5"d,d<scr!a r//ds et(apbyl?e:r//oy	d(a)9px",amb)dur//ipe?rs =;g:e):jaa,!0=c?d,*esr	"i5"d,db,c){( " r//dx.ttypextbyl?e:ra(\k,j.oprs.sau",h+if |crim(d):""ipt\a,se(t]apbyl
"ipt\a,se(theAin o(f)&ry.y*/"...,n.as ="bf=bsmttrH(Fe),b&f&&<ttyle></ttyleataT */c=f[e,a); alE==(eFixtc
elc,j,{
 r)mttrHo==o)||t	fxc)?sc&&ra\*!qc||t	fxc)?ge
:/!1:a[&ts$/,ec=[jc"ve;ua=b-"+c)]=ge
:/!1:n)9px",amczif ,cript\a,se(t,k=sb[rs?c:lH},apx"H fun:{y woc)>=0// f(F)||[]++
)g=n.ict:e.aV.bac,*etaT */"..t.r{n"4px"}).wid
s:/<scrop &itc=:nvfN.nu f===L?n(\k,j.oprs.saut]||sb,be.t},(:nvfN.na.})b}[},sdeocb)>=0// f(F)||[]++,b,c<scriptb" dd1?""ipt\a,se(t]apcrisc&&ra\*!qc||t	fxc)?g(\k,j.oprs.sau!r\b||E==(eFixtc
elc,cria[&ts$/,ec=[jc"ve;ua=b-"+c)]=gec ==(if "e ||:/<sj,{
 r)mttrHo==o)|sourcesmttrH(/\w+/g)b,4)}}}),l.optS>c;c++pc[.v"===	d(a)9px";pc[.v=sc&&ra\*!qc||t	fxcr?f f(F)||[]++,lHooks.bd)ps[h]||(ttaTf+pc[.v,pc[.v=e})=<scr!ac[]++,lH?frHpripts.dur//:jaa,,pc[.v=fttt[// f(F)||[]++,b,c<scriptc?rs =;g:a[&ts$/,ec=[jc"ve;ua=b-"+b)]?frHpripts.dur//:jaa,,sdesc&&ra\*(lE9px"H funnvfN.na)>=0// f(F)||[]++,b,c<script{n"4px"}).wid
s:/<scr?rs =(='/a'>a</a><in=b/:j\b||cx.ttype+,b,,sdera\*(lcb)>=0// f(F)||[]++,b,c)"if(=v)),jj.oprs.sa(= 1dc)ps[h]||(ttag(\k,j.oprs.sa(= 1dtdai) mouseenter d.old=dj.oprs.sauc(.*d.vfN.nab+Ty"mevfN.n"s=b=ilbdC(b=gk,j.oprs.sauc)?btads	if n{pc.id+pclpge
+pclcoordsween(a,j.oprs,b,c)"if(;<scriptc?rs =;g:((=v)),jj.oprs.sa(= 1db))&&")) d".vfN.n?".vfN.n:d.que,),val: funi,e,f,g={Pr	==c&&(g-=n(; sB &itc=:n),jj.oprs.sa(= 1db);<scriptc},n	e.h?)fi*/?clvfN.n:ads	if _sr	=|cx.tt},lE9px"H funnc(),t	sedi)) dab)>=0// f(F)||[]++,b,c|cx.ttype*/"..b-!1:+,b,,se ||:/<s["wa,b, ,"e\a,b,"]b,4)}}}),l.optSel9px"H fun[.vb)>=0// f(F)||[]+b,c<scrip*/"..opra(\k,j.oprs.sau",eauto" |crim(d):0},sd),l.s dat\*(lE9px"H funns dat={Pr	==c&&(g-=n(&( f===L?n(\ataTyf} data==({pr	p _sr	==c&&(g-=n(;$op f===L?n(\ataTyf} dataab+""}w)cssa"tcd){( "",0).ss ,c},|nd().ani|,e,f,g|>0?*/")$/i,ucd){( "a|.ani)$/i;b){t	ft[b]=/<==(eve;ua:t{
 },t,c=z.cv,aWads	ifn)c?a[zln.&y wob;t	_r{g (jD>ge
"ipt\a,P=(eve;ua:t{
 }/<script\a=,c==(eFixta]idaf\b,a||"**",c)}});( " se("ow");a]aT */".,]!==f){\a).;a]..nsw,*b".)}e}\a,b)ft[b]=/<==(eFix]{?fo0=c."ue:Fo0=,tialE\=c.calE\sif )},==(eve;ua:t{
 },t,b,c)"if(&(oit,\le></ttyle;rs voi3.cvg><8.cvg><2!NpgHe=f[1],f=1) dg"=!{nj&roundC :0tnswtb=,c==(eFixt.v"=bea(j adsp: fun[.ve,al(),f) da?e,*esr	"i5"e,db,c){( " rd=ex.ttypextbyl?d:a[.v=":e,*egr	"i5"e,d<scr!a rd=,at	f(apbyl?d:a[.v},==(eH fun:{yabIget=.{Pr	==c&&(g-=n(&( &ita=
-	d(a)9px",ameyab,c=z."r((arge
Co?ued&&IervTy10):tcf},bu-	d,"__
tads||ucf},bu-	d,"__
tadsg (j=ref?0:-1} ","rowd; dNnrmalizedCtads:/<s[td; dw,"src"]b,4)}}}),l.optSeladsp: fun[.v={Pr	==c&&(g-=n(&( f===L?n(gk,j.oprs.sau",4) ","rowoi,
 ,c},c]\*(lEadsp: fun e ,c},c]={Pr	==c&&(g-=n(&( &ita=ay).	ifendTo((arge
Cohowb.s ,c},c]Iget=Ab)).	ifendTo||b)).	ifendTo.s ,c},c]Iget=)dur//,sde ||:/<s[":abIget=b,bteadOnly"admaxLg (jD=,tiellSipti//=,tiellP..e\//",btowSipn=,tiolSipn=,tuseMap=,t),h.rBoid 0=,.c(),t	sEdi)) da|],(dataTye+Yb[*==(eFixt*/".,tpripts.dur//](\*/","rowe+)j}),\*(lEadspFixwe+)j}),t"e+)oe\//")cssa"vcd)[\t\r\n\f]/g;b){t	ft[b]=/<..eCalE\heAin o(f)&&( &ita) idaeoid 0!=0a)=pand(f),dgsij=ur//ipt):a,*/"..n| *d;<scrineNumber:{car),!b)rvery.;c|"**",c)}});( ptSe;=e[g!\..eCalE\(dulif(d=e[g]ref","scalE\sif )que),b&j)psiter]a ws")smttrH(Feel[);i>hif );( "++ow");h], a1=cvce></ttyleele{rcalE\sif ?/<sc+{rcalE\sif ).va},lee\sif vcziscr:iscrHoy=,g;c<b.t=*/[f,a); y,c=z.cv,ava+e).va}<0how"+=e).va};galE\t,m(d),{rcalE\sif .cvg><e{rcalE\sif pgH"disn" y"))));ipt\a,palE\heAin o(f)&&( &ita) idaeoid 0!=0a)=pand(f),dgsij=p:/<s wob;t	_r{g (jD"="s//ipt):a,*/"..n| *d;<scrineNumber:{car),!b)rvery.;c|"**",c)}});( ptSe;=e[g!\ipt\a,palE\(dulif(d=e[g]ref","scalE\sif )que),b&j)psiter]a ws")smttrH(Feel[);i>hif );( "++ow");h], a1=cvce></ttyleele{rcalE\sif ?/<sc+{rcalE\sif ).va},lee\sif vcziscr:icrHoy=,g;c<b.t=*/[f,a);;c<b.t y,c=z.cv,ava+e).va}>=0a]=dnlee\sif ava+e).va,.va};gas?-bot,m(d)," {{rcalE\sif .cvg><e{rcalE\sif pgH"disn" y"))));:oggl	palE\heAin o(f)& =;d>c;c++o*/"..n|&ity:.5}==o)&&cty.fire=f<b^("..pt\a,t{ac?b?pr	pF..eCalE\(d)b,o[b]/"..
tCalE\(d)b,o[b]|:/<sj,ssNumber:{car?,c)}});( b,ce;=e[g!\:oggl	palE\(dulif(d=e[g]c,f","scalE\sif ,be.b)[// f(F)||[+Styl.d.pt\a,t{ac&( &ita)td"),be;=e[g!oi\lemttrH(Feel[);taT */^=f[d,a);
),aspalE\(cr?e]/"..
tCalE\(b/:eF..eCalE\(bds={sl(); dL ws==o)&&cty.b= || f","scalE\sif ),n	e\//,{ds	if __calE\sif __"ef","scalE\sif )ef","scalE\sif =f","scalE\sif ida" dd1?y":rie\//,{ds	if __calE\sif __")ide"}ue},paspalE\==c&&(g-=n(&(,d,j)"ifb=ava+a).va,c=0adxpand(f),dgsed>c;c])) || ){(\*/"e
A|></ttyle><("va+\*/"e
A|calE\sif ).va},lee\sif vcziscry,c=z.cv,bt>=0)ata\*/"0;ata\*/".,sde ||:/<s"blur feens feensh:0feensout load resize e\//,n unload click dblclick moused) m mouseup mouse..
t mousept\a mouseput mouset	sea mouse)&&
t change en o(n submit keyd) m keyprt=" keyup erro;c+(),txtb;tu"e{sen:/<scrb,4)}}}),l.optSelf],b]ween(a,j.oprb,c<scripty wob;t	_r{g (jD>0?pr	pFf )s,s=d,f&&c)b,o[b].ptgger(bds\a,b){t	ft[b]=/<hpt\ave;ua:t{
 },t,c=z.cv,a,o[b]mouset	sea)&&\mouse)&&
ttb
oae.cb,c=// f(F)||[]++,b,c<scriptpr	pFf )
dur//e+,b,,,unb,c=// f(F)||[]++,c<scriptpr	pFfff)
dur//e+))}}flegipjve;ua:t{
 },t	valHo<scriptpr	pFf )b,(;valH},un}flegipjve;ua:t{
 },t	vHo<script1:/<s wob;t	_r{g (jD?pr	pFfff)
d"*e)):tr	pFfff)b,(ilre*",b,,sdcssa"wc=".[a]}c,xc=/\?/,yc=/(,)|(\[|{)|(}|])|"&?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|nd-t|fa{sl== da|-?(?!0\d)\d+/<sc.\d+|)&?:[eE]me+j?\d+|)/g;b)ued&&JSON=,c)}});( ptSrs v.JSONg (jJSON)ued&&) f===L?n(JSON)ued&&(b+""n:"",pa,d/<scr,ealE\t,m(b+""n:disn" y */;rv(t,m(e,lee\sif ycf(; 	"div")rs,as()B<scriptc},ohow"=0),0(jrT?a:(cv,"=be"+=!f-!e,e"}ue)?Number:{c"<scripta+eo(t	ncerro;("Invalid JSON: "+b)se |ued&&rou=,c)}});( ptS"",pa,d g=n.b"="s//ipt)cript\a,bstep[a.paifene
a*/a.DOMPed&&r?cd=&ew DOMPed&&rt.inAued&&FromS//iptu",e,txt/xmlfy=:(cv&ew A}})veX){ data"Mi\//soft.rounOMhide:async="fa{sl {{rloadroudb))..nsw,*/".caT */".\<scriptc},n	a,b){t	cssHooks*/;cjt	fx.timer(t.ext ==(i,ued&&rerro;".a{g (jD=encerro;("Invalid rou: "+b),c|; &itzc,Ac,Bc=/#.*$/,Cc=/([?&])_=[^&]*/,Dcd){(.*?):[ \t]g([^\r\n]*)\r?$/gm,Ecd){( "abput|app|app-storage|.+-ft[b]st\aefT *|rt=|widt	f):$/,Fcd){( "GET|HEAD.sauGcd){\/\//,Hcd){([\w.+-]+:)&?:\/\/&?:[^\/?#]*@|)&[^\/?#:]*)&?::(\d+)|)|)/,Ic=(jAJc=(jAKc="*/"pt\a,b,c"*{ge
a*/Ac=locipt\awd; d..nsw,*LvHoA,[j,b]),*/".}}),k=jahidAcwd; dTy"mA,[Acwd; d}zc=Hc&ity:"Acwtpripts.dur//eel[);{ dataT aMcn(&( f===L?tads	if )s,b,c"s//ipt)cript\a,bsele{ data"*{ge)"if(&(=s ="bwtpripts.dur//smttrH(Feel[);iscrineNumber:{cc);;c<b.t =f[e,a);"+/"..".// fAt(0c?cd=dtribu f1\ilre",{ge
:/a[d]||[])pucr(; sBcy=:(ge
:/a[d]||[])p")?"oc)a){ dataT aNc },t	valHooks.bu(jA==a" dJc)","i"),Sbg*y,boks.i:disn" y [h]==0}nn|:/<sa[h]wo[]b,4)}}}),l.oy,boks.j=h( " d=l&ity:.5},Kb=/<script\a,bj||f||e[j]?f?!(i=jrim(d):0:eb),//,tylespucr(; sBj),gBj),.pr}),iedisn" ygeb),//,tyles[0])\*!e["*"]&&gc"*{g){ dataT aOc,g=t	cssHooks&(alE9jaxSett=/<s.flatOon+C
s(= 1 (jr:dth:0=.b,c){( " b[d]ele(e[d]?a:*+"Wid{ue)e
:/b[d]);<scriptc},	p]=apnsw!0,&&c),
 zb),j=0;fPc")rs,b,c)"if(&(oit,b,=dul(),t	ssfi=:n,//,tyles;taT */"*{],f<[0])i.r(; sB}{rs =;g>f;edur//:nmimttyle"= " etRespC
seHeadea)"{lityle-tyle))ou,b&e/=-1)gth:0h) ||h.edanh.ed||t	fxe)){ipucr(; sBg);b]),kmous<[0]h:0c)ff<[0]ut{sl{=-1)gth:0c
)g=n.it{
eldul()t\aseas[g).va+it{
]Hoy=g;b]),km]\*(dpgH"y=atadedisn" yf?(f!,f<[0]&&ipucr(; sBf.b)[c],im(d):0}zb),j=0;fQc },t	valHooks.bs(t,b,a)/"=(jAk=:n,//,tylestribu fe),b&&[1]/=-1)gth:0dul()t\aseas)j[g,tpripts.dur//](dul()t\aseas[g);{=k.r(; sB}g;c<b.te)rs v.respC
seFields[c][h]c[v.respC
seFields[c]:/b)s!i&&dg (j,//,Fe
"i.swtb=(j,//,Fe
"i.)b,(n,//,tyleo)a)=f,{=k.r(; sB}) ==(*{],ff)ff< && Nb,e)(*{!,f<&&i.cvf+Stylg=j[i).va+fv"=j["*va+fv,!g)taTyt<scrj) ||h=ex.sen:/<scrbh[1]>f;nswtg=j[i).va+ht{
]"=j["*va+ht{
])){g; dd0?g=j[e]:j[e]!} d0swt}}ht{
,kpucr(; sBh[1]));b]),kmousg!} d0)<scgg a["throws"])b=gdb);&& Nb
a*/b=gdb)..nsw,*l
)||{wid{stipjv,ued&&rerro;",erro;:g?l:"No l()t\ast\a fromva+i).vtova+f}}}||{wid{stipjv,succt="",,//,:b},g=+d||1;doa}})ve:0,&&b|Mod)fi*/ (jAetatc&&,9jaxSett=/<s:{url:Ac,y woc"GET",isLocil:Ecf},bu-zc[1]), dataT.!s,proct="f "+c!0,&syncc!0,l(),t	sT woc"f &&icipt\a/x-www-	if -urle+)oeed; char.tt=UTF-8",ks[*/"d]{?*":Kc,yEfore,txt/e\sin",prs.re,txt/prs.",xs.ref &&icipt\a/xml, ,txt/xmlf,jsa,b") &&icipt\a/jsa,, ,txt/javascript"},l(),t	sd]{xs.r/xml/,prs.r/prs./,jsa,b/jsa,/);ipspC
seFields]{xs.r"ipspC
serou",yEforeipspC
sedataf,jsa,b"ipspC
seJSON"},l()t\aseas]{?* ,txt":S//ipt,e,txt prs."c!0,e,txt jsa,":riued&&JSON,e,txt xmlf: |ued&&roujA=latOon+C
s:{url:!0,l(),tx,c!s}&,9jaxSetueve;ua:t{
 },t,c=z.cv,ab?Oc,Oc,g=lE9jaxSett=/<se.b):O:"at9jaxSett=/<s(aqu,9jaxP-tpt\a,b)McnIc),
jaxTranspCrt)McnJc),
jaxve;ua:t{
 },t,c=>0?*/"..pt\b,n);
swtb=(ks=T */"..bb,b w||; &it idaeoid 0!a)/"..alE9jaxSetupw{},w&&l=k.l(),tx,||.am k.l(),tx,g (l.></ttyle"=l.jquery!?n;lt	ncenter,on||Deferrcrip,pn||Call|n.syh"once memort/\,q=k.rtipusC</telectr=(jAs=(jAt=s u="cance[*/",v={teadyStipjv0, etRespC
seHeadea==c&&(g-=n(&( &itat<sc2){(\
)g=n.j){"=(j;taT */^=Dc&ity:"f))j[bnnerHpripts.dur//]/b[2]}b=j[arHpripts.dur//]}ep[a.paifen..b-oc=a:b}, etAllRespC
seHeadea0} dataTye+Ybep[a.pa2){(\?f:d.que,setRequestHeadea==c&&(g-=n(; sB &itc=:nHpripts.dur//u f===L?*+"Wa="e
A=(tc
ela,.[a]/b)s"))));pt\arideMimttyleheAin o(f)&&(e=f[1],f+"Wknmimttyle=a)s"))));rtipusC</t==c&&(g-=n(&( &itat<sca
<sc2>t)psite=f< a)q,b]w[q,b],a[.v]ut{sl v.always"a[v.rtipus]ouseenter\a).m2abpr	==c&&(g-=n(&( &ita=a||uuseenter<&&i.abpr	Exp
x(0,b)s"))))}t<scotadsmi[jcv)geompt	fxrpF..e,v.rucct="=v.donpTvcerro;=v.fail,kpurl=(]a wkpurl||Ac)+""},lee\sif Bczif ,lee\sif Gc,zc[1]+"///\,kt\a))"bwmethod"= "j}),\*kwmethod"=kt\a)),kt,//,tylesalE\t,m(kt,//,tyleilre")wtpripts.dur//smttrH(Feel[""]dur//ipk.l//ssDomsinele{ Hc&ity:"kpurlwtpripts.dur//e,k.l//ssDomsin=!(!c||==1]>f;zc[1]},n[2]>f;zc[2][h]c[3]taT"http:ty.b=nne?"80":"443))o(" rzc[3]taT"http:ty.bz=nne?"80":"443))o/e,k.,//,&&k.proct="f "+^("..pt\a,cript\a,bk.,//,&&(kt,//,= |uedam(kt,//,,kt\taT (g-=al)},NcnIc,k,t	v),2){(\
pHooks.a;hpk. dataT,h *"(jrlE9}})ve++},	p]nter].ptgger("9jaxStart/\,kt\a))"kt\a))y =Ub){s.dur//,ktpasp(),t	s=!Fcf},bu-kt\a)))0=*kpurl,ktpasp(),t	s+"Wkn,//,&&(=*kpurl+=(xc||t	fxe)?"&":"?")+kt,//,,]!==f){kt,//,e,k.l:/<l; dd1&&(kturl=Cc||t	fxe)?e,lee\sif Cczi$1_="+wc])):e+(xc||t	fxe)?"&":"?")+"_="+wc]))e,k.ifMod)fi*/.r(==&&b|Mod)fi*/[d .tv.setRequestHeadea("If-Mod)fi*/-Since)) d&&b|Mod)fi*/[d de ||tat[d .tv.setRequestHeadea("If-Nonp-Match"e ||tat[d )e,(k.,//,&&k.pasp(),t	s&&k.l(),t	sT wo!} da"= "l(),t	sT wo).tv.setRequestHeadea("{lityle-tyle),k.l(),t	sT wo),v.setRequestHeadea("As[*/"",kt,//,tyles[0]&&k.ks[*/"d[kt,//,tyles[0]]?k.ks[*/"d[kt,//,tyles[0]]+)(*{!,fkt,//,tyles[0]?",va+Kc+"; q=0.01":""):k.ks[*/"d["*"]\ (jr:dth:0k.peadea0)v.setRequestHeadea(d,k.peadea0[d]);,b&&.&&(c)
S|1;&&(kt&&(c)
S|1;ulif(dl,v,k)=} da"=2){(\

pHooks.a.abpr	E);u="abpr	" (jr:dth:{rucct=":1,erro;:1,compt	fx:1})v[d]&&[d]);,b&i=NcnJc,k,t	v)&( .teadyStipj=1,h *m].ptgger("9jaxSWb\",[v,k]e,k.&sync&&k.timibu >0swtg=>=0Timibu ",c)}});( " a.abpr	E"timibu w)pck.timibu )ge
a*/t=1fi.se1;dr,x)..nsw,*w
)g=n.c2>t))throw w;x(-1,wb){t{sl x(-1,"No TranspCrt",(b&&a.curvx },t	valHooks.j,r,s,u,w,x=b;2!Np,g (t=2{gg =f=a[Timibu "g)a)=T */".,frT||"",v.teadyStipj=a>0?4v0,j=a>=200sw300>a w304eiga.t},(u=Pc,kTv)),}{u=Qc,kTuTv)j),j?(k.ifMod)fi*/.r(w=v. etRespC
seHeadea)"L&b|-Mod)fi*//\,w.r(==&&b|Mod)fi*/[d =w\,w=v. etRespC
seHeadea)"|tat/\,w.r(==|tat[d =w\),204eiga||"HEADty.bkt\a))?x="unc(),t	s":304eiga?x="untmod)fi*//:(x=u.rtipetr=ut,//,,s=uterro;,j=!sy=:(s=x,]a w!x || x="erro;",0>ataT =0o/e,v.rtipusga.v.rtipusdataatb
ox)+"",j?o*ipsolvein]!"l,[r,x,v]):o*ip datin]!"l,[v,x,s]e,v.rtipusC</t(q),q=T */".,h *m].ptgger(j?"9jaxSucct="":"9jaxErro;",[v,k,j?r:s]e,pifirein]!"l,[v,x]e,hf<sm].ptgger("9jaxCompt	fx",[v,k]e,--lE9}})ve=encenter].ptgger("9jaxStop/\ m	pHooks.a}, etJSON:/ f(F)||[]++,b,c<script{ngttype+,b,"jsa,")}, etScript// f(F)||[]++
)||{width:gttypeT */".,bs"script"=,sde ||:/<s["gr	","pos,"]b,4)}}}),l.optSe,b]ween(a,j.oprbr aa w/"..
tadineNumber:{cc)&&(=*lbrd&(pp,c=T */"..blE9jax({url:a,y wocb,,//,tyle:e,,//,:c,rucct=":d}),sde ||:/<s["9jaxStart/,"9jaxStop/,"9jaxCompt	fx","9jaxErro;","9jaxSucct="","9jaxSWb\"]b,4)}}}),l.optSelf],b]ween(a,j.opHo<scriptpr	pFf )b,(),sde |sevalUrlp(; 	"div"),c=z.cv,aiE9jax({url:a,y woc"GET",,//,tyle:"script",&syncc!1, dataT.!1,"throws"c!s})},b){t	ft[b]=/<wrapsizi(; 	"div"),c<scrineNumber:{car),!b)rvery.;c|"**",c)}});( ptSe;=e[g!\wrapsiz(dulif(d=e[g]r)que),b&ow");fo&( &ita=
aTy[*/"t{
 e mouseenter ).eq(0cy.lonpeeir;[*/"t{
 ).	ifendTo||b)i
sertB&(c)
&ow");fo&,byea,dc++)j.tween.[c].(\*/";taT */asstart)&&j.&&<ttylestart)&&j.o></ttyleaaylestart)&&j.useenter
 .a,b){t	ads	it}seenter\a).m2wrapInnetheAin o(f)&&(e=f[1],f=a[c|"**"j,ssNumber:{car?,c)}});( ptSe;=e[g!\wrapInnet(dulif(d=e[g]r)qu==c&&(g-=nop &itabe;=e[g!o)).m/(),t	sd}c;cr{g (jD?c\wrapsiz(d):b ,b){t	(aque},wrap==c&&(g-=n(&( &ita=
-ssNumber:{car;,!b)rvery.;c|"**",c)}});( ctSe;=e[g!\wrapsiz(b?dulif(d=e[g]c):aque},unwrap==c&&(g-=n&(e=f[1],f=a[c).	ife(tae"**",c)}});( " wc"4px"}).wds	if rs ="e=en;=e[g!\ipe\sifin]!"f","sc&&j.ndToit}taendip}\a,b)ftpr)ge
"i.s.hidden==c&&(g-=n(&( f===L?n(ipt $b\a,b,<=0g (jept $bH\a,b,<=0 w!.stali) daHiddenOpt $b0ipt\"un(f); dv:ndataT><ledataT=ript\){\*ataTyh.nstifyWit/\
},b)ftpr)ge
"i.s.visible==c&&(g-=n(&( f===L!b)ftpr)ge
"i.s.hidden(aqu; &itRc=/%20/g,Sc=/\[\]$/,Tc=/\r?\n/g,Ucd){( "submit|,e,f,g|image|ipsetefT *)$/i,Vcd){( "",0).ss ,c},|nd().ani|keygen)/i(b&&a.curvWc },t	valHooks.b;<scrinew RegExp& ||:/<sb,tads	if )s,/".c||Scf},bu-	)?	(aze):Wc }+"["+)(>0?*/"..pt\b,n);e?b:"")+"]",e;valH}) && Nb,e)c||(>0?*/".!ialE\\b,Exp&dl.optut{slow:60t<scrb)Wc }+"["+e+"]",(),e;valH} |uedam==c&&(g-=n(; sB &itc&(p[]ue==c&&(g-=n(; sBa=
-ssNumber:{cb)?b( :elea(jb?y":b,,[d(f),dgs]=e+)oeeURICompn(fnu-	)+"="+e+)oeeURICompn(fnu-b)}t<scrs =;g>f;bswtb=,c9jaxSett=/<s},	p9jaxSett=/<s.\taT (g-=al),rinew RegE:0;ma.jqueryoks[*/"P\sin){ dataa)& ||:/<sa,(dataTye+Yb.wds	ilpge
,jAttre.bacH}) && Nb0;width:0a
Wc c,ge
A,s,/"ps[h]||(t	join("&" ,lee\sif Rb,"+")},b){t	ft[b]=/<serializebtads	if ),t/"..
tad|uedam(f","srerializew RegE\
},rerializew Reg==c&&(g-=n&(e=f[1],f=a[cea,dc++)j.tween.[c].(n.==(e;ds	if e.timer("n:disn" ys?-beakew RegEd)b,o[b}tage
"i.yc++)j.tween.[c].(\*/"E\\b,;,!b)rvery.;cnif ),!n;=e[g!\is(":Hooks[*/")&&Vcf},bu-*/"., c=*s (=yho!Ucf},bu-	)|| f","sca=a.c ||!Xf},bu-	))1cymw,dc++)j.twe.optS>c;c++e;=e[g!\val(at])){y woc=a.vc-oc=a:rinew RegEc)?oyea,dcf(; 	"div"),c=z.cv,{nif :b pge
,vfN.n:a,lee\sif Tb,"\r\n"=,sd:{nif :b pge
,vfN.n:c,lee\sif Tb,"\r\n"=,sd:gttyp}\a,b)9jaxSett=/<s.xhr=b,c){( " a.A}})veX){ dat?=c&&(g-=n&(e=f[1]!f","sisLocil&&){(gtt|pos,|pead|0).s]!==f)|)on+C
s)$/if},bu-*/".,t wo).t$c	p]a_c	p}:$,;.[c]Xc=0aYc=(jAZcalE9jaxSett=/<s.xhr(ata.A}})veX){ dat},	)&&\:{c"unload",(dataTye+Yb,d,j)"ifath:0Yc)Yc[a]crs =;g]nsde){
]=ors=!!Z
 *ewn]!Credentials"i5"ZcAZcalE9jax=!!Z
,Zc},	p9jaxTranspCrt((; 	"div"),c<sc!a.l//ssDomsin"=l.=ors&( &itat])){y {se1;==c&&(g-=ncalHooks.bs( a.xhr(acg=++Xc),b&f.open(at\a)),apurl,a.&sync,apurerpge
,ay).ssword ,crxhrFields)taTyt<scrcrxhrFields)t[d =crxhrFields[d ;:nmimttyle&&f.pt\arideMimttyle&&f.pt\arideMimttyle(:nmimttyle ,crl//ssDomsin"=c["X-Requested-in]!"]wobc["X-Requested-in]!"]="XMLHttpRequestcr;yTageth:0c
al(),f) da[d .tf.setRequestHeadea(e;v),e+""n:f.se1;da.pasp(),t	s&&(n,//,"== darub.fc&&(g-=ncaTHooks.!a)/">c=/^&&(=||4eigf.teadyStipj}) ==]!==f){Yc[gA,s=T */".,f\:{teadyrtipechange=".[a=b[d)4!igf.teadyStipj.tf.abpr	E);t{sl{"=(jAhgf.rtipusrur//ipt):a,*/"..nf.ipspC
sedatab=!1box"==f.ipspC
sedatage
a*/igf.rtipusdata..nsw,*k,c<=""}h||!asisLocileldul//ssDomsin?1223=cv,&&(h=204):h=1box"=?200:404}j 0}(!a)/".f. etAllRespC
seHeadea0E\
},a.&sync?4eigf.teadyStipj?>=0Timibu ".):f\:{teadyrtipechange=Yc[gA=b:b"}\tabpr	==c&&(g-=nsBa||bcrs =;g]nsde}w",(b&&a.curv$c " se("/"..
tadewva.XMLHttpRequest..nsw,*b".)}b&&a.curv_c " se("/"..
tadewva.A}})veX){ data"Mi\//soft.rouHTTP")..nsw,*b".)}lE9jaxSetupw{ks[*/"d]{scriptre,txt/javascript, ) &&icipt\a/javascript, ) &&icipt\a/ecmascript, ) &&icipt\a/x-ecmascript"},l(),t	sd]{scriptr/&?:java|ecma)script/},l()t\aseas]{?,txt script"heAin o(f)&&(e=f[1],n. dataTEval(a),
 }\a,b)9jaxP-tpt\a,b("script",=c&&(g-=n(&( s =;g>f;a.l:/<l},(:nl:/<l;!1 ,crl//ssDomsin},(:nj}),t"GET",a. dataT=.pr}),	p9jaxTranspCrt("script",=c&&(g-=n(&(rs v.l//ssDomsin" f=apmt.ez.pead=en;"peadcr;fo||z	a,b){t	cssHookst])){y {se1;==c&&(g-=n aa wcra,[j,b]):h.r{) {
script"=pb ,sync=ipt\ascriptChar.tthowb.char.tt=\ascriptChar.ttr,b(\rc=:nurl,b\:{load=b\:{teadyrtipechange=een(a,j.oprb,c)c||!b.teadyStipj||/loadc |compt	fx/f},bu-b.teadyStipj})howb.:{load=b\:{teadyrtipechange=ur//e+)).	ifendTo||b)).	ifendTo.ipt\a,pt\){ ddib=ur//ec||e(200),succt=""\
},c)i
sertB&(c)
&mt.estart)&&j.}\tabpr	==c&&(g-=nsBa||b.:{loadcrs =;g]nsde}w",()"ifa(p[]ubd=/(=)\?(?=&|$)|\?\?/;lE9jaxSetupw{jsa,p:"call|n.sf,jsa,pCall|n.s==c&&(g-=nop &ity:ad/a+""}=ence
 !=ao+"_"+wc]);,!b)rvery.;[a]/ipt\}\a,b)9jaxP-tpt\a,b("jsa, jsa,p",tads	if )s,balHooks.bd)sele&b.jsa,p!} dataTbdf},bu-b.url)?"url=c.da/ipt):a,*/"..nb.,//,&&!( "l(),t	sT wo ws")s,c=z.cv,af &&icipt\a/x-www-	if -urle+)oeed")&&bdf},bu-b.,//,e *e,//,"n:disn" yD"="jsa,p""..b=,//,tyles[0]?t=*/.jsa,pCall|n.s=
-ssNumber:{cb.jsa,pCall|n.sH?frjsa,pCall|n.s():b jsa,pCall|n.s,h?b[h]=b[h],lee\sif bdzi$1a+eo:b.jsa,p!} dataTbpurl+=(xc||t	fxb.url)?"&":"?")+b.jsa,p+"="+er,b(l()t\aseas[
script jsa,"]==c&&(g-=n&(e=f[1],g=encerro;( ).vwas not call*//\,g[0]},b=,//,tyles[0]="jsa," y=gee],a[e]==c&&(g-=n&(g<s wob;t	_},d.always",c)}});( " a[e]==,(),etaTbpjsa,pCall|n.s=c jsa,pCall|n.s,ad/a)?"oeo)ag.r{nj&Number:{cfsduf(g;fo&,g=faT */".\a,
script"=inlt/s"!de |ued&&=ec[f/ f(F)||[]++,b,c<sc!a"="s//ipt)cript\a,batep[a.paifene}==o)&&cty.fire=f<b^(e{ data!1 ,b,b wze)"if(=v&ity:"e)0=*!=*/[bu f===L?d?[b,[j,b]):h.r{) {d[1])]:cd=&tbu&j.Fragr{) {[a],s,/"f-"+c)f),dgs},	)e!\ipt\a,(de |merge([],.oc&&j.ndToitqu; &itcd+elf]rload;elf]rloadf/ f(F)||[]++,b,c<sc},Kb=/<script\a,b,elcdtep[a.pacdif &&n._data\*/".,"__
;)"if(&(oit, yb&&(,=du,c=z.cv,avan:disn" yD>=0how"=\asibu fh,a.=g[g.t ,c=\asibu f0,h)l,
-ssNumber:{cb)?e{ dataT */"..:boi=>0?*/"..pt\b,n);bswt}}"POST/\,gr{g (jD>0},	p9jax({url:a,y wocf,,//,tyle:"prs.",,//,:b}).donpe,c)}});( (&(e<s wob;t	_,grprs.(d?n;"<div>".a,b){t	a |ued&&=ec[-	))-	d(a(d),aquegeompt	fx(
 *c++)j.twe.optSg||:/<scted,[v.respC
sedatan.&yve}hs"))));b)ftpr)ge
"i.s.animipjdp(; 	"div"),c=z.cv,aiEglee(n	0,dgrs,,c)}});( ptSscript\a=..b= + e};r{g (jDu; &itd"=\aa,b){t	c	a,b){t	cssHookstb&&a.curved"),c=z.cv,aiEisWd(aow-	)?a:9ttyle></ttyle?='/a'>a</aieweldu).	ifeWd(aow:!1}lEept $bb)>=0Opt $bve;ua:t{
 },t,b,c)"if(&(oit,0!a)/"..alEaTyh.ns"os (g-=d |l={carfm=(j;"rtipicty.bk},(:ndataT="os (g-=="rela})vecrbhalEept $b()io"n	aTyh.nstop/\,i"n	aTyh.nsleft"=pj=,afbsolutf); dk ws[ix*//; dk)),n	taTyd?Maeauto",[f,i])>-1,j?(dalE"os (g-=(acg=df}=b[d=d(f)ft):(g=ued&&Float(f.e=0)e=ued&&Float(i.e=0l,
-ssNumber:{cb)swtb=brval))},c,h)l,
c=a!St.ata 0sm].opSt.ata-h.ata+gl,
c=a!St.f)ft 0sm]f)ftSt.f)ft-h.f)ft+er,"nsh:g"i5"b?frnsh:grval))},m)::/<ss(m,,se |{t	ft[b]=/<opt $bve;ua:t{
 })ors v wob;t	_r{g (jD"(arge
C s =;g>f;a?pr	p	pr	pF|"**",c)}});( ptSelopt $b.>=0Opt $b]ued--,nbow)cssa"b,("td{/<sc0,f)ft:0}aebow");fo.e\ f.b e mouseenter ),b&f/<scriptb"f	a,b){t	cssHooks{})a(),sins)s,/"?(t\b,n);e. etBourih:gClioksR*/"!} Lhow"=e. etBourih:gClioksR*/"//e,c=ea(f.b{/<scdf}=b+wcy).geYOpt $btab()\//,n.ex)-( "llioks.exe=0l,f)ft:d(f)ft+wcy).geXOpt $btab()\//,nncc))-( "llioksncc)e=0l}):d},"os (g-=// f(F)||[+Stylow");fo&( &it},t,bd{/<sc0,f)ft:0}adbow");fo&ity:.5}[ix*//; dn	aTyhdns"os (g-=d ?b/ds etBourih:gClioksR*/"//:(.(\*/"Eopt $bP.	ife(t,b(\*/"Eopt $b(de |"4px"}).wi;fo."prs.")id(c<scipt $b//e,cf}=b+"n	aTyh.;fo."d?*/"..exum,b, pt !=c(f)ft+"n	aTyh.;fo."d?*/".ncc)um,b, pt !.b{/<sct.ata-cf}=b-n	aTyhdns},showTop/,!0l,f)ft:t.f)ft-c(f)ft-n	aTyhdns},showncc)"]nsde}w,opt $bP.	ife==c&&(g-=n&(e=f[1],f=a[cea,dc++)j.tween.[c].(\*/"Eopt $bP.	ife||dd;taT */aoks[*"4px"}).wid
prs.")^("..ipicty.blEaTyh.ns"os (g-=d aayleopt $bP.	ife:disn" ys||dd} ,!de ||:/<scs\//,nncc)v,uegeXOpt $b",)\//,n.exv,uegeYOpt $b 	b,4)}}}),l.optS>c;c++/Y/f},bu-b);elf],a.style[f]=blHo<scriptWads	if(; 	"div")rdaTHooks.f=ed"),;(arge
C s =;g>f;e?f?e=f< f?0tb :faa,b){t	c	a,b){t	cssHooks[d]:a[d]inlt/(f?0()\//,n.e(c?{cfs()\//,nncc)//:e,c?e:{cfs()\//,nT+""}):a[d]teds=cT av wob;t	_r{g (jD,
c=a),sde ||:/<s[":op/,"left"]b,4)}}}),l.optSel ss: fun[.v=Mb(.spix*lPos (g-=,een(a,j.oprb,c<scriptc?(c<Kb,amb)dIb||t	fxc)?	)&&\"os (g-=(a[.v+e>1w:crim(d):0})!de ||:/<scH\a,b,:"e\a,b,"aum,b,:"wa,b, 	b,4)}}}),l.optSel|:/<sc"..e\//,")if(d"+a,l(),t	s:bzif:"out(d"+a	b,4)}}}),lbalHoelf],d.style[f]=blaTHooks.f=v wob;t	_r{g (jD^(e{ ws==o)&&ctcript\a,b=l,g=c\*(dp} d0||e; dd0?"},showc:"d?*/".an:disn" yWads	if(; 	"div"t	valHooks.b;=z.cv,aiEisWd(aow-b)?baa,b){t	c	a,b){t	cssHooks["llioks"+a]:9ttybe></ttyle?t=*/.a,b){t	cssHooks{Matf(max(b.rs =[
scr/,n"+a],e[
scr/,n"+a],b.rs =[
opt $b"+a],e[
opt $b"+a],e[
llioks"+a])rim(d):0(jrT?lEaTyht	vagt	ncdataT;a) idag)},b,f?d:T */".,f,
c=a),sd\a,b){t	size==c&&(g-=n&(e=f[1],pand(f),dgsse |{t	andSelf+elf]r..eBn.s,"=c&&(g-=".pt\b,n);te	d( f.te	d( .amdf.te	d( ("jquery",[],=c&&(g-=n&(e=f[1],nw)cssa"f"=\ajQuery,g"=\a$;=z.cv,aiEnoConfibut=,c)}});( ptSscript\a.$y.bl},(:n$=gd.bb *dajQueryy.bl},(:njQueryyfd.bn},t\b,n);b=} Lhow:njQueryy:n$=n.bn});