{"version":3,"sources":["bundle-jquery.min.js"],"names":["window","undefined","isArraylike","obj","length","type","jQuery","isWindow","nodeType","createOptions","options","object","optionsCache","each","match","core_rnotwhite","_","flag","internalData","elem","name","data","pvt","acceptData","ret","thisCache","internalKey","expando","isNode","cache","id","core_deletedIds","pop","guid","toJSON","noop","extend","camelCase","internalRemoveData","i","isArray","concat","map","split","isEmptyDataObject","isEmptyObject","cleanData","support","deleteExpando","dataAttr","key","replace","rmultiDash","toLowerCase","getAttribute","rbrace","test","parseJSON","e","returnTrue","returnFalse","safeActiveElement","document","activeElement","err","sibling","cur","dir","winnow","elements","qualifier","not","isFunction","grep","call","isSimple","filter","inArray","createSafeFragment","list","nodeNames","safeFrag","createDocumentFragment","createElement","manipulationTarget","content","nodeName","firstChild","getElementsByTagName","appendChild","ownerDocument","disableScript","find","attr","restoreScript","rscriptTypeMasked","exec","removeAttribute","setGlobalEval","elems","refElements","_data","cloneCopyEvent","src","dest","hasData","l","oldData","curData","events","handle","event","add","fixCloneNodeIssues","noCloneEvent","removeEvent","text","parentNode","outerHTML","html5Clone","innerHTML","trim","manipulation_rcheckableType","defaultChecked","checked","value","defaultSelected","selected","defaultValue","getAll","context","tag","found","core_strundefined","querySelectorAll","childNodes","push","merge","fixDefaultChecked","vendorPropName","style","capName","charAt","toUpperCase","slice","origName","cssPrefixes","isHidden","el","css","contains","showHide","show","display","hidden","values","index","css_defaultDisplay","setPositiveNumber","subtract","matches","rnumsplit","Math","max","augmentWidthOrHeight","extra","isBorderBox","styles","val","cssExpand","getWidthOrHeight","valueIsBorderBox","offsetWidth","offsetHeight","getStyles","boxSizing","curCSS","rnumnonpx","boxSizingReliable","parseFloat","doc","elemdisplay","actualDisplay","iframe","appendTo","documentElement","contentWindow","contentDocument","write","close","detach","body","remove","buildParams","prefix","traditional","v","rbracket","addToPrefiltersOrTransports","structure","dataTypeExpression","func","dataType","dataTypes","unshift","inspectPrefiltersOrTransports","originalOptions","jqXHR","inspect","inspected","prefilterOrFactory","dataTypeOrTransport","seekingTransport","transports","ajaxExtend","target","deep","flatOptions","ajaxSettings","ajaxHandleResponses","s","responses","firstDataType","ct","finalDataType","contents","shift","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","tmp","prev","responseFields","dataFilter","state","error","createStandardXHR","XMLHttpRequest","createActiveXHR","ActiveXObject","createFxNow","setTimeout","fxNow","now","createTween","prop","animation","tween","collection","tweeners","Animation","properties","result","stopped","animationPrefilters","deferred","Deferred","always","tick","currentTime","remaining","startTime","duration","temp","percent","tweens","run","notifyWith","resolveWith","promise","props","opts","specialEasing","originalProperties","end","Tween","easing","stop","gotoEnd","this","rejectWith","propFilter","start","fx","timer","anim","queue","progress","done","complete","fail","hooks","cssHooks","expand","defaultPrefilter","toggle","oldfire","orig","dataShow","_queueHooks","unqueued","empty","fire","overflow","overflowX","overflowY","inlineBlockNeedsLayout","zoom","shrinkWrapBlocks","rfxtypes","hide","_removeData","prototype","init","genFx","includeWidth","which","attrs","height","opacity","width","getWindow","defaultView","parentWindow","readyList","rootjQuery","location","docElem","_jQuery","_$","$","class2type","core_version","core_concat","core_push","core_slice","core_indexOf","indexOf","core_toString","toString","core_hasOwn","hasOwnProperty","core_trim","selector","fn","core_pnum","source","rtrim","rquickExpr","rsingleTag","rvalidchars","rvalidbraces","rvalidescape","rvalidtokens","rmsPrefix","rdashAlpha","fcamelCase","all","letter","completed","addEventListener","readyState","ready","removeEventListener","detachEvent","jquery","constructor","parseHTML","isPlainObject","getElementById","makeArray","toArray","get","num","pushStack","prevObject","callback","args","apply","arguments","first","eq","last","len","j","sort","splice","copyIsArray","copy","clone","random","noConflict","isReady","readyWait","holdReady","hold","wait","trigger","off","Array","isNumeric","isNaN","isFinite","String","ownLast","msg","Error","keepScripts","parsed","scripts","buildFragment","JSON","parse","Function","parseXML","xml","DOMParser","parseFromString","async","loadXML","globalEval","execScript","string","arr","results","Object","second","inv","retVal","arg","proxy","access","chainable","emptyGet","raw","bulk","Date","getTime","swap","old","attachEvent","top","frameElement","doScroll","doScrollCheck","Sizzle","seed","m","groups","nid","newContext","newSelector","preferredDoc","setDocument","documentIsHTML","getElementsByClassName","qsa","rbuggyQSA","tokenize","rescape","setAttribute","toSelector","rsibling","join","qsaError","select","createCache","keys","Expr","cacheLength","markFunction","assert","div","removeChild","addHandle","handler","attrHandle","siblingCheck","a","b","diff","sourceIndex","MAX_NEGATIVE","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","setFilters","parseOnly","matched","tokens","soFar","preFilters","cached","tokenCache","preFilter","rcomma","rcombinators","matchExpr","addCombinator","matcher","combinator","base","checkNonElements","doneName","outerCache","dirkey","dirruns","cachedruns","elementMatcher","matchers","condense","unmatched","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","preMap","postMap","preexisting","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","relative","implicitRelative","matchContext","matchAnyContext","outermostContext","matcherFromGroupMatchers","elementMatchers","setMatchers","matcherCachedRuns","bySet","byElement","superMatcher","expandContext","setMatched","matchedCount","outermost","contextBackup","dirrunsUnique","uniqueSort","contexts","token","getById","runescape","funescape","compile","getText","isXML","sortInput","rbuggyMatches","classCache","compilerCache","hasDuplicate","sortOrder","strundefined","hasOwn","push_native","booleans","whitespace","characterEncoding","identifier","attributes","pseudos","RegExp","rattributeQuotes","rpseudo","ridentifier","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rnative","rinputs","rheader","escaped","escapedWhitespace","high","fromCharCode","els","node","parent","className","createComment","getElementsByName","attrId","getAttributeNode","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","expr","specified","duplicates","detectDuplicates","sortStable","textContent","nodeValue","selectors","createPseudo",">"," ","+","~","excess","unquoted","nodeNameSelector","pattern","operator","check","what","simple","forward","ofType","nodeIndex","useCache","lastChild","pseudo","idx","has","innerText","lang","elemLang","hash","root","focus","hasFocus","href","tabIndex","enabled","disabled","selectedIndex","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","group","div1","unique","isXMLDoc","Callbacks","firing","memory","fired","firingLength","firingIndex","firingStart","stack","once","stopOnFalse","self","disable","lock","locked","fireWith","tuples","then","fns","newDefer","tuple","action","returned","resolve","reject","notify","pipe","stateString","when","subordinate","progressValues","progressContexts","resolveContexts","resolveValues","updateFunc","fragment","opt","eventName","isSupported","cssText","getSetAttribute","leadingWhitespace","tbody","htmlSerialize","hrefNormalized","cssFloat","checkOn","optSelected","enctype","cloneNode","pixelPosition","reliableMarginRight","noCloneChecked","optDisabled","radioValue","appendChecked","checkClone","click","change","focusin","backgroundClip","clearCloneStyle","container","marginDiv","tds","divReset","reliableHiddenOffsets","getComputedStyle","marginRight","noData","applet","embed","removeData","dequeue","startLength","next","setter","delay","time","speeds","timeout","clearTimeout","clearQueue","count","defer","nodeHook","boolHook","rclass","rreturn","rfocusable","rclickable","ruseDefault","getSetInput","removeAttr","removeProp","propFix","addClass","classes","clazz","proceed","removeClass","toggleClass","stateVal","classNames","hasClass","valHooks","set","option","one","optionSet","nType","attrHooks","propName","attrNames","for","class","notxml","propHooks","tabindex","parseInt","getter","setAttributeNode","createAttribute","coords","contenteditable","rformElems","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","global","types","t","handleObjIn","special","eventHandle","handleObj","handlers","namespaces","origType","elemData","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","onlyHandlers","ontype","bubbleType","eventPath","Event","isTrigger","namespace_re","noBubble","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","sel","originalEvent","fixHook","fixHooks","mouseHooks","keyHooks","srcElement","metaKey","original","charCode","keyCode","eventDoc","fromElement","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","load","blur","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","getPreventDefault","timeStamp","cancelBubble","stopImmediatePropagation","mouseenter","mouseleave","related","submitBubbles","form","_submit_bubble","changeBubbles","propertyName","_just_changed","focusinBubbles","attaches","on","origFn","triggerHandler","rparentsprev","rneedsContext","guaranteedUnique","children","targets","is","closest","pos","prevAll","addBack","parents","parentsUntil","until","nextAll","nextUntil","prevUntil","siblings","reverse","n","r","rinlinejQuery","rnoshimcache","rleadingWhitespace","rxhtmlTag","rtagName","rtbody","rhtml","rnoInnerhtml","rchecked","rscriptType","rcleanScript","wrapMap","legend","area","param","thead","tr","col","td","safeFragment","fragmentDiv","optgroup","tfoot","colgroup","caption","th","append","createTextNode","domManip","prepend","insertBefore","before","after","keepData","dataAndEvents","deepDataAndEvents","html","replaceWith","allowIntersection","hasScripts","iNoClone","_evalUrl","prependTo","insertAfter","replaceAll","insert","destElements","srcElements","inPage","selection","wrap","safe","nodes","url","ajax","throws","wrapAll","wrapInner","unwrap","ralpha","ropacity","rposition","rdisplayswap","rmargin","rrelNum","BODY","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","computed","cssNumber","columnCount","fillOpacity","lineHeight","order","orphans","widows","zIndex","cssProps","float","_computed","minWidth","maxWidth","getPropertyValue","currentStyle","left","rs","rsLeft","runtimeStyle","pixelLeft","$1","visible","margin","padding","border","suffix","expanded","parts","r20","rCRLF","rsubmitterTypes","rsubmittable","serialize","serializeArray","encodeURIComponent","hover","fnOver","fnOut","bind","unbind","delegate","undelegate","ajaxLocParts","ajaxLocation","ajax_nonce","ajax_rquery","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","_load","prefilters","allTypes","params","responseText","status","active","lastModified","etag","isLocal","processData","contentType","accepts","*","json","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","nativeStatusText","headers","success","modified","statusText","timeoutTimer","transport","responseHeadersString","ifModified","cacheURL","callbackContext","statusCode","fireGlobals","globalEventContext","completeDeferred","responseHeaders","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","code","abort","finalText","method","crossDomain","hasContent","beforeSend","send","getJSON","getScript","script","text script","head","scriptCharset","charset","onload","onreadystatechange","isAbort","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","xhrCallbacks","xhrSupported","xhrId","xhrOnUnloadAbort","xhr","cors","username","open","xhrFields","firefoxAccessException","unload","timerId","rfxnum","rrun","unit","scale","maxIterations","tweener","prefilter","eased","step","cssFn","speed","animate","fadeTo","to","optall","doAnimation","finish","stopQueue","timers","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","linear","p","swing","cos","PI","interval","setInterval","clearInterval","slow","fast","animated","offset","setOffset","win","box","getBoundingClientRect","pageYOffset","pageXOffset","curTop","curLeft","curElem","curOffset","curCSSTop","curCSSLeft","calculatePosition","curPosition","using","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","size","andSelf","module","exports","define","amd","factory","moment","utils_hooks__hooks","hookCallback","setHookCallback","defaultParsingFlags","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","isDate","res","hasOwnProp","valueOf","create_utc__createUTC","format","locale","strict","createLocalOrUTC","utc","valid__isValid","_isValid","_d","_pf","_strict","bigHour","valid__createInvalid","flags","NaN","copyConfig","from","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","momentProperties","Moment","config","updateInProgress","updateOffset","isMoment","toInt","argumentForCoercion","coercedNumber","floor","ceil","compareArrays","array1","array2","dontConvert","min","lengthDiff","abs","diffs","Locale","normalizeLocale","chooseLocale","names","loadLocale","oldLocale","locales","globalLocale","_abbr","require","locale_locales__getSetGlobalLocale","locale_locales__getLocale","defineLocale","abbr","addUnitAlias","shorthand","lowerCase","aliases","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","makeGetSet","keepTime","get_set__set","get_set__get","mom","getSet","zeroFill","number","targetLength","forceSign","output","sign","addFormatToken","padded","ordinal","formatTokenFunctions","localeData","removeFormattingTokens","makeFormatFunction","array","formattingTokens","formatMoment","isValid","expandFormat","formatFunctions","invalidDate","replaceLongDateFormatTokens","longDateFormat","localFormattingTokens","lastIndex","addRegexToken","regex","strictRegex","regexes","isStrict","getParseRegexForToken","unescapeFormat","p1","p2","p3","p4","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","daysInMonth","year","month","UTC","getUTCDate","localeMonths","_months","localeMonthsShort","_monthsShort","localeMonthsParse","monthName","_monthsParse","_longMonthsParse","_shortMonthsParse","months","monthsShort","setMonth","dayOfMonth","monthsParse","date","getSetMonth","getDaysInMonth","checkOverflow","MONTH","DATE","YEAR","HOUR","MINUTE","SECOND","MILLISECOND","_overflowDayOfYear","warn","suppressDeprecationWarnings","console","deprecate","firstTime","deprecateSimple","deprecations","configFromISO","from_string__isoRegex","isoDates","isoTimes","matchOffset","configFromStringAndFormat","configFromString","aspNetJsonRegex","createFromInputFallback","createDate","y","d","h","M","ms","setFullYear","createUTCDate","setUTCFullYear","daysInYear","isLeapYear","getIsLeapYear","weekOfYear","firstDayOfWeek","firstDayOfWeekOfYear","adjustedMoment","daysToDayOfWeek","day","local__createLocal","week","dayOfYear","localeWeek","_week","dow","doy","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","dayOfYearFromWeeks","weekday","daysToAdd","getUTCDay","getSetDayOfYear","round","startOf","defaults","c","currentDateArray","_useUTC","getUTCFullYear","getUTCMonth","getFullYear","getMonth","getDate","configFromArray","currentDate","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","setUTCMinutes","getUTCMinutes","w","weekYear","GG","W","E","gg","ISO_8601","parsedInput","skipped","stringLength","totalParsedInputLength","substr","meridiemFixWrap","_meridiem","hour","meridiem","isPm","meridiemHour","isPM","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromObject","minute","millisecond","createFromConfig","preparse","configFromInput","isUTC","pickBy","moments","Duration","years","quarters","quarter","weeks","days","hours","minutes","seconds","milliseconds","_milliseconds","_days","_bubble","isDuration","separator","utcOffset","offsetFromString","chunk","chunkOffset","cloneWithOffset","model","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","localAdjust","_changeInProgress","add_subtract__addSubtract","create__createDuration","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","other","isUtcOffset","isUtc","diffRes","aspNetRegex","create__isoRegex","parseIso","momentsDifference","inp","positiveMomentsDifference","isAfter","isBefore","createAdder","direction","period","dur","isAdding","moment_calendar__calendar","sod","calendar","inputMs","endOf","isBetween","isSame","absFloor","asFloat","delta","that","zoneDelta","monthDiff","anchor2","adjust","wholeMonthDiff","anchor","moment_format__toISOString","toISOString","toDate","inputString","defaultFormat","postformat","withoutSuffix","humanize","fromNow","newLocaleData","isoWeekday","to_type__valueOf","unix","moment_valid__isValid","parsingFlags","invalidAt","addWeekYearFormatToken","weeksInYear","getSetWeekYear","getSetISOWeekYear","getISOWeeksInYear","getWeeksInYear","weekInfo","getSetQuarter","parseWeekday","weekdaysParse","localeWeekdays","_weekdays","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","localeWeekdaysParse","weekdayName","_weekdaysParse","weekdays","weekdaysShort","weekdaysMin","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","lowercase","matchMeridiem","_meridiemParse","localeIsPM","localeMeridiem","isLower","millisecond__milliseconds","getZoneAbbr","getZoneName","moment__createUnix","moment__createInZone","parseZone","locale_calendar__calendar","_calendar","_longDateFormat","_invalidDate","_ordinal","preParsePostFormat","relative__relativeTime","isFuture","_relativeTime","pastFuture","locale_set__set","_ordinalParseLenient","_ordinalParse","lists__get","field","out","lists__listMonths","lists__listMonthsShort","lists__listWeekdays","lists__listWeekdaysShort","lists__listWeekdaysMin","duration_abs__abs","mathAbs","duration_add_subtract__addSubtract","duration_add_subtract__add","duration_add_subtract__subtract","daysToYears","yearsToDays","as","duration_as__valueOf","makeAs","alias","duration_get__get","makeGetter","substituteTimeAgo","relativeTime","duration_humanize__relativeTime","posNegDuration","thresholds","duration_humanize__getSetRelativeTimeThreshold","threshold","limit","withSuffix","iso_string__toISOString","Y","iso_string__abs","D","total","asSeconds","match1","match2","match3","match4","match6","match1to2","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchTimestamp","matchWord","defaultLocaleMonths","defaultLocaleMonthsShort","parseTwoDigitYear","getSetYear","defaultLocaleWeek","prototypeMin","prototypeMax","add_subtract__add","add_subtract__subtract","isoWeekYear","getSetDayOfMonth","invalidWeekday","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","_isPm","defaultLocaleMeridiemParse","getSetHour","getSetMinute","getSetSecond","getSetMillisecond","momentPrototype__proto","isoWeek","isoWeeks","isoWeeksInYear","isDST","isDSTShifted","zoneAbbr","zoneName","dates","zone","momentPrototype","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","defaultInvalidDate","defaultOrdinal","defaultOrdinalParse","defaultRelativeTime","future","past","mm","hh","dd","MM","yy","prototype__proto","firstDayOfYear","ordinalParse","langData","asMilliseconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","duration_get__milliseconds","duration_prototype__proto","toIsoString","version","invalid","relativeTimeThreshold","_moment","repeatZero","qty","padZero","str","isRight","isObject","findLast","item","pluck","compact","intersection","_b","rest","initial","reversed","tokenizer","typeMap","momentTypes","foundFirst","remainder","template","precision","escape","momentType","wholeValue","decimalValue","isLeast","isMost","forceLength","decVal","pow","general","lastType","formDataCreator","create","$jq","FormData"],"mappings":"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","file":"bundle-jquery.min.js","sourcesContent":["/* NUGET: BEGIN LICENSE TEXT\n *\n * Microsoft grants you the right to use these script files for the sole\n * purpose of either: (i) interacting through your browser with the Microsoft\n * website or online service, subject to the applicable licensing or use\n * terms; or (ii) using the files as included with a Microsoft product subject\n * to that product's license terms. Microsoft reserves all other rights to the\n * files not expressly granted by Microsoft, whether by implication, estoppel\n * or otherwise. Insofar as a script file is dual licensed under GPL,\n * Microsoft neither took the code under GPL nor distributes it thereunder but\n * under the terms set out in this paragraph. All notices and licenses\n * below are for informational purposes only.\n *\n * NUGET: END LICENSE TEXT */\n/*!\n * jQuery JavaScript Library v1.10.2\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2013-07-03T13:48Z\n */\n(function( window, undefined ) {\n\n// Can't do this because several apps including ASP.NET trace\n// the stack via arguments.caller.callee and Firefox dies if\n// you try to trace through \"use strict\" call chains. (#13335)\n// Support: Firefox 18+\n//\"use strict\";\nvar\n\t// The deferred used on DOM ready\n\treadyList,\n\n\t// A central reference to the root jQuery(document)\n\trootjQuery,\n\n\t// Support: IE<10\n\t// For `typeof xmlNode.method` instead of `xmlNode.method !== undefined`\n\tcore_strundefined = typeof undefined,\n\n\t// Use the correct document accordingly with window argument (sandbox)\n\tlocation = window.location,\n\tdocument = window.document,\n\tdocElem = document.documentElement,\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$,\n\n\t// [[Class]] -> type pairs\n\tclass2type = {},\n\n\t// List of deleted data cache ids, so we can reuse them\n\tcore_deletedIds = [],\n\n\tcore_version = \"1.10.2\",\n\n\t// Save a reference to some core methods\n\tcore_concat = core_deletedIds.concat,\n\tcore_push = core_deletedIds.push,\n\tcore_slice = core_deletedIds.slice,\n\tcore_indexOf = core_deletedIds.indexOf,\n\tcore_toString = class2type.toString,\n\tcore_hasOwn = class2type.hasOwnProperty,\n\tcore_trim = core_version.trim,\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\treturn new jQuery.fn.init( selector, context, rootjQuery );\n\t},\n\n\t// Used for matching numbers\n\tcore_pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source,\n\n\t// Used for splitting on whitespace\n\tcore_rnotwhite = /\\S+/g,\n\n\t// Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE)\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,\n\n\t// Match a standalone tag\n\trsingleTag = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,\n\n\t// JSON RegExp\n\trvalidchars = /^[\\],:{}\\s]*$/,\n\trvalidbraces = /(?:^|:|,)(?:\\s*\\[)+/g,\n\trvalidescape = /\\\\(?:[\"\\\\\\/bfnrt]|u[\\da-fA-F]{4})/g,\n\trvalidtokens = /\"[^\"\\\\\\r\\n]*\"|true|false|null|-?(?:\\d+\\.|)\\d+(?:[eE][+-]?\\d+|)/g,\n\n\t// Matches dashed string for camelizing\n\trmsPrefix = /^-ms-/,\n\trdashAlpha = /-([\\da-z])/gi,\n\n\t// Used by jQuery.camelCase as callback to replace()\n\tfcamelCase = function( all, letter ) {\n\t\treturn letter.toUpperCase();\n\t},\n\n\t// The ready event handler\n\tcompleted = function( event ) {\n\n\t\t// readyState === \"complete\" is good enough for us to call the dom ready in oldIE\n\t\tif ( document.addEventListener || event.type === \"load\" || document.readyState === \"complete\" ) {\n\t\t\tdetach();\n\t\t\tjQuery.ready();\n\t\t}\n\t},\n\t// Clean-up method for dom ready events\n\tdetach = function() {\n\t\tif ( document.addEventListener ) {\n\t\t\tdocument.removeEventListener( \"DOMContentLoaded\", completed, false );\n\t\t\twindow.removeEventListener( \"load\", completed, false );\n\n\t\t} else {\n\t\t\tdocument.detachEvent( \"onreadystatechange\", completed );\n\t\t\twindow.detachEvent( \"onload\", completed );\n\t\t}\n\t};\n\njQuery.fn = jQuery.prototype = {\n\t// The current version of jQuery being used\n\tjquery: core_version,\n\n\tconstructor: jQuery,\n\tinit: function( selector, context, rootjQuery ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector.charAt(0) === \"<\" && selector.charAt( selector.length - 1 ) === \">\" && selector.length >= 3 ) {\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && (match[1] || !context) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[1] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[0] : context;\n\n\t\t\t\t\t// scripts is true for back-compat\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[1],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( jQuery.isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[2] );\n\n\t\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Handle the case where IE and Opera return items\n\t\t\t\t\t\t// by name instead of ID\n\t\t\t\t\t\tif ( elem.id !== match[2] ) {\n\t\t\t\t\t\t\treturn rootjQuery.find( selector );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Otherwise, we inject the element directly into the jQuery object\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t\tthis[0] = elem;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.context = document;\n\t\t\t\t\tthis.selector = selector;\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || rootjQuery ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis.context = this[0] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( jQuery.isFunction( selector ) ) {\n\t\t\treturn rootjQuery.ready( selector );\n\t\t}\n\n\t\tif ( selector.selector !== undefined ) {\n\t\t\tthis.selector = selector.selector;\n\t\t\tthis.context = selector.context;\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t},\n\n\t// Start with an empty selector\n\tselector: \"\",\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn core_slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\t\treturn num == null ?\n\n\t\t\t// Return a 'clean' array\n\t\t\tthis.toArray() :\n\n\t\t\t// Return just the object\n\t\t\t( num < 0 ? this[ this.length + num ] : this[ num ] );\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\t\tret.context = this.context;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\t// (You can seed the arguments with an array of args, but this is\n\t// only used internally.)\n\teach: function( callback, args ) {\n\t\treturn jQuery.each( this, callback, args );\n\t},\n\n\tready: function( fn ) {\n\t\t// Add the callback\n\t\tjQuery.ready.promise().done( fn );\n\n\t\treturn this;\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( core_slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map(this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t}));\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor(null);\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: core_push,\n\tsort: [].sort,\n\tsplice: [].splice\n};\n\n// Give the init function the jQuery prototype for later instantiation\njQuery.fn.init.prototype = jQuery.fn;\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar src, copyIsArray, copy, name, options, clone,\n\t\ttarget = arguments[0] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !jQuery.isFunction(target) ) {\n\t\ttarget = {};\n\t}\n\n\t// extend jQuery itself if only one argument is passed\n\tif ( length === i ) {\n\t\ttarget = this;\n\t\t--i;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\t\t// Only deal with non-null/undefined values\n\t\tif ( (options = arguments[ i ]) != null ) {\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && jQuery.isArray(src) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && jQuery.isPlainObject(src) ? src : {};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend({\n\t// Unique for each copy of jQuery on the page\n\t// Non-digits removed to match rinlinejQuery\n\texpando: \"jQuery\" + ( core_version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\tnoConflict: function( deep ) {\n\t\tif ( window.$ === jQuery ) {\n\t\t\twindow.$ = _$;\n\t\t}\n\n\t\tif ( deep && window.jQuery === jQuery ) {\n\t\t\twindow.jQuery = _jQuery;\n\t\t}\n\n\t\treturn jQuery;\n\t},\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Hold (or release) the ready event\n\tholdReady: function( hold ) {\n\t\tif ( hold ) {\n\t\t\tjQuery.readyWait++;\n\t\t} else {\n\t\t\tjQuery.ready( true );\n\t\t}\n\t},\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).\n\t\tif ( !document.body ) {\n\t\t\treturn setTimeout( jQuery.ready );\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\n\t\t// Trigger any bound ready events\n\t\tif ( jQuery.fn.trigger ) {\n\t\t\tjQuery( document ).trigger(\"ready\").off(\"ready\");\n\t\t}\n\t},\n\n\t// See test/unit/core.js for details concerning isFunction.\n\t// Since version 1.3, DOM methods and functions like alert\n\t// aren't supported. They return false on IE (#2968).\n\tisFunction: function( obj ) {\n\t\treturn jQuery.type(obj) === \"function\";\n\t},\n\n\tisArray: Array.isArray || function( obj ) {\n\t\treturn jQuery.type(obj) === \"array\";\n\t},\n\n\tisWindow: function( obj ) {\n\t\t/* jshint eqeqeq: false */\n\t\treturn obj != null && obj == obj.window;\n\t},\n\n\tisNumeric: function( obj ) {\n\t\treturn !isNaN( parseFloat(obj) ) && isFinite( obj );\n\t},\n\n\ttype: function( obj ) {\n\t\tif ( obj == null ) {\n\t\t\treturn String( obj );\n\t\t}\n\t\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\t\tclass2type[ core_toString.call(obj) ] || \"object\" :\n\t\t\ttypeof obj;\n\t},\n\n\tisPlainObject: function( obj ) {\n\t\tvar key;\n\n\t\t// Must be an Object.\n\t\t// Because of IE, we also have to check the presence of the constructor property.\n\t\t// Make sure that DOM nodes and window objects don't pass through, as well\n\t\tif ( !obj || jQuery.type(obj) !== \"object\" || obj.nodeType || jQuery.isWindow( obj ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t// Not own constructor property must be Object\n\t\t\tif ( obj.constructor &&\n\t\t\t\t!core_hasOwn.call(obj, \"constructor\") &&\n\t\t\t\t!core_hasOwn.call(obj.constructor.prototype, \"isPrototypeOf\") ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\t// IE8,9 Will throw exceptions on certain host objects #9897\n\t\t\treturn false;\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// Handle iteration over inherited properties before own properties.\n\t\tif ( jQuery.support.ownLast ) {\n\t\t\tfor ( key in obj ) {\n\t\t\t\treturn core_hasOwn.call( obj, key );\n\t\t\t}\n\t\t}\n\n\t\t// Own properties are enumerated firstly, so to speed up,\n\t\t// if last one is own, then all properties are own.\n\t\tfor ( key in obj ) {}\n\n\t\treturn key === undefined || core_hasOwn.call( obj, key );\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\t// data: string of html\n\t// context (optional): If specified, the fragment will be created in this context, defaults to document\n\t// keepScripts (optional): If true, will include scripts passed in the html string\n\tparseHTML: function( data, context, keepScripts ) {\n\t\tif ( !data || typeof data !== \"string\" ) {\n\t\t\treturn null;\n\t\t}\n\t\tif ( typeof context === \"boolean\" ) {\n\t\t\tkeepScripts = context;\n\t\t\tcontext = false;\n\t\t}\n\t\tcontext = context || document;\n\n\t\tvar parsed = rsingleTag.exec( data ),\n\t\t\tscripts = !keepScripts && [];\n\n\t\t// Single tag\n\t\tif ( parsed ) {\n\t\t\treturn [ context.createElement( parsed[1] ) ];\n\t\t}\n\n\t\tparsed = jQuery.buildFragment( [ data ], context, scripts );\n\t\tif ( scripts ) {\n\t\t\tjQuery( scripts ).remove();\n\t\t}\n\t\treturn jQuery.merge( [], parsed.childNodes );\n\t},\n\n\tparseJSON: function( data ) {\n\t\t// Attempt to parse using the native JSON parser first\n\t\tif ( window.JSON && window.JSON.parse ) {\n\t\t\treturn window.JSON.parse( data );\n\t\t}\n\n\t\tif ( data === null ) {\n\t\t\treturn data;\n\t\t}\n\n\t\tif ( typeof data === \"string\" ) {\n\n\t\t\t// Make sure leading/trailing whitespace is removed (IE can't handle it)\n\t\t\tdata = jQuery.trim( data );\n\n\t\t\tif ( data ) {\n\t\t\t\t// Make sure the incoming data is actual JSON\n\t\t\t\t// Logic borrowed from http://json.org/json2.js\n\t\t\t\tif ( rvalidchars.test( data.replace( rvalidescape, \"@\" )\n\t\t\t\t\t.replace( rvalidtokens, \"]\" )\n\t\t\t\t\t.replace( rvalidbraces, \"\")) ) {\n\n\t\t\t\t\treturn ( new Function( \"return \" + data ) )();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tjQuery.error( \"Invalid JSON: \" + data );\n\t},\n\n\t// Cross-browser xml parsing\n\tparseXML: function( data ) {\n\t\tvar xml, tmp;\n\t\tif ( !data || typeof data !== \"string\" ) {\n\t\t\treturn null;\n\t\t}\n\t\ttry {\n\t\t\tif ( window.DOMParser ) { // Standard\n\t\t\t\ttmp = new DOMParser();\n\t\t\t\txml = tmp.parseFromString( data , \"text/xml\" );\n\t\t\t} else { // IE\n\t\t\t\txml = new ActiveXObject( \"Microsoft.XMLDOM\" );\n\t\t\t\txml.async = \"false\";\n\t\t\t\txml.loadXML( data );\n\t\t\t}\n\t\t} catch( e ) {\n\t\t\txml = undefined;\n\t\t}\n\t\tif ( !xml || !xml.documentElement || xml.getElementsByTagName( \"parsererror\" ).length ) {\n\t\t\tjQuery.error( \"Invalid XML: \" + data );\n\t\t}\n\t\treturn xml;\n\t},\n\n\tnoop: function() {},\n\n\t// Evaluates a script in a global context\n\t// Workarounds based on findings by Jim Driscoll\n\t// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context\n\tglobalEval: function( data ) {\n\t\tif ( data && jQuery.trim( data ) ) {\n\t\t\t// We use execScript on Internet Explorer\n\t\t\t// We use an anonymous function so that context is window\n\t\t\t// rather than jQuery in Firefox\n\t\t\t( window.execScript || function( data ) {\n\t\t\t\twindow[ \"eval\" ].call( window, data );\n\t\t\t} )( data );\n\t\t}\n\t},\n\n\t// Convert dashed to camelCase; used by the css and data modules\n\t// Microsoft forgot to hump their vendor prefix (#9572)\n\tcamelCase: function( string ) {\n\t\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n\t},\n\n\tnodeName: function( elem, name ) {\n\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\t},\n\n\t// args is for internal usage only\n\teach: function( obj, callback, args ) {\n\t\tvar value,\n\t\t\ti = 0,\n\t\t\tlength = obj.length,\n\t\t\tisArray = isArraylike( obj );\n\n\t\tif ( args ) {\n\t\t\tif ( isArray ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// A special, fast, case for the most common use of each\n\t\t} else {\n\t\t\tif ( isArray ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Use native String.trim function wherever possible\n\ttrim: core_trim && !core_trim.call(\"\\uFEFF\\xA0\") ?\n\t\tfunction( text ) {\n\t\t\treturn text == null ?\n\t\t\t\t\"\" :\n\t\t\t\tcore_trim.call( text );\n\t\t} :\n\n\t\t// Otherwise use our own trimming functionality\n\t\tfunction( text ) {\n\t\t\treturn text == null ?\n\t\t\t\t\"\" :\n\t\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArraylike( Object(arr) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcore_push.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\tvar len;\n\n\t\tif ( arr ) {\n\t\t\tif ( core_indexOf ) {\n\t\t\t\treturn core_indexOf.call( arr, elem, i );\n\t\t\t}\n\n\t\t\tlen = arr.length;\n\t\t\ti = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;\n\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t// Skip accessing in sparse arrays\n\t\t\t\tif ( i in arr && arr[ i ] === elem ) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn -1;\n\t},\n\n\tmerge: function( first, second ) {\n\t\tvar l = second.length,\n\t\t\ti = first.length,\n\t\t\tj = 0;\n\n\t\tif ( typeof l === \"number\" ) {\n\t\t\tfor ( ; j < l; j++ ) {\n\t\t\t\tfirst[ i++ ] = second[ j ];\n\t\t\t}\n\t\t} else {\n\t\t\twhile ( second[j] !== undefined ) {\n\t\t\t\tfirst[ i++ ] = second[ j++ ];\n\t\t\t}\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, inv ) {\n\t\tvar retVal,\n\t\t\tret = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length;\n\t\tinv = !!inv;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tretVal = !!callback( elems[ i ], i );\n\t\t\tif ( inv !== retVal ) {\n\t\t\t\tret.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar value,\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tisArray = isArraylike( elems ),\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their\n\t\tif ( isArray ) {\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret[ ret.length ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret[ ret.length ] = value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn core_concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// Bind a function to a context, optionally partially applying any\n\t// arguments.\n\tproxy: function( fn, context ) {\n\t\tvar args, proxy, tmp;\n\n\t\tif ( typeof context === \"string\" ) {\n\t\t\ttmp = fn[ context ];\n\t\t\tcontext = fn;\n\t\t\tfn = tmp;\n\t\t}\n\n\t\t// Quick check to determine if target is callable, in the spec\n\t\t// this throws a TypeError, but we will just return undefined.\n\t\tif ( !jQuery.isFunction( fn ) ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Simulated bind\n\t\targs = core_slice.call( arguments, 2 );\n\t\tproxy = function() {\n\t\t\treturn fn.apply( context || this, args.concat( core_slice.call( arguments ) ) );\n\t\t};\n\n\t\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\t\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\t\treturn proxy;\n\t},\n\n\t// Multifunctional method to get and set values of a collection\n\t// The value/s can optionally be executed if it's a function\n\taccess: function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\t\tvar i = 0,\n\t\t\tlength = elems.length,\n\t\t\tbulk = key == null;\n\n\t\t// Sets many values\n\t\tif ( jQuery.type( key ) === \"object\" ) {\n\t\t\tchainable = true;\n\t\t\tfor ( i in key ) {\n\t\t\t\tjQuery.access( elems, fn, i, key[i], true, emptyGet, raw );\n\t\t\t}\n\n\t\t// Sets one value\n\t\t} else if ( value !== undefined ) {\n\t\t\tchainable = true;\n\n\t\t\tif ( !jQuery.isFunction( value ) ) {\n\t\t\t\traw = true;\n\t\t\t}\n\n\t\t\tif ( bulk ) {\n\t\t\t\t// Bulk operations run against the entire set\n\t\t\t\tif ( raw ) {\n\t\t\t\t\tfn.call( elems, value );\n\t\t\t\t\tfn = null;\n\n\t\t\t\t// ...except when executing function values\n\t\t\t\t} else {\n\t\t\t\t\tbulk = fn;\n\t\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( fn ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tfn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn chainable ?\n\t\t\telems :\n\n\t\t\t// Gets\n\t\t\tbulk ?\n\t\t\t\tfn.call( elems ) :\n\t\t\t\tlength ? fn( elems[0], key ) : emptyGet;\n\t},\n\n\tnow: function() {\n\t\treturn ( new Date() ).getTime();\n\t},\n\n\t// A method for quickly swapping in/out CSS properties to get correct calculations.\n\t// Note: this method belongs to the css module but it's needed here for the support module.\n\t// If support gets modularized, this method should be moved back to the css module.\n\tswap: function( elem, options, callback, args ) {\n\t\tvar ret, name,\n\t\t\told = {};\n\n\t\t// Remember the old values, and insert the new ones\n\t\tfor ( name in options ) {\n\t\t\told[ name ] = elem.style[ name ];\n\t\t\telem.style[ name ] = options[ name ];\n\t\t}\n\n\t\tret = callback.apply( elem, args || [] );\n\n\t\t// Revert the old values\n\t\tfor ( name in options ) {\n\t\t\telem.style[ name ] = old[ name ];\n\t\t}\n\n\t\treturn ret;\n\t}\n});\n\njQuery.ready.promise = function( obj ) {\n\tif ( !readyList ) {\n\n\t\treadyList = jQuery.Deferred();\n\n\t\t// Catch cases where $(document).ready() is called after the browser event has already occurred.\n\t\t// we once tried to use readyState \"interactive\" here, but it caused issues like the one\n\t\t// discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15\n\t\tif ( document.readyState === \"complete\" ) {\n\t\t\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\t\t\tsetTimeout( jQuery.ready );\n\n\t\t// Standards-based browsers support DOMContentLoaded\n\t\t} else if ( document.addEventListener ) {\n\t\t\t// Use the handy event callback\n\t\t\tdocument.addEventListener( \"DOMContentLoaded\", completed, false );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.addEventListener( \"load\", completed, false );\n\n\t\t// If IE event model is used\n\t\t} else {\n\t\t\t// Ensure firing before onload, maybe late but safe also for iframes\n\t\t\tdocument.attachEvent( \"onreadystatechange\", completed );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.attachEvent( \"onload\", completed );\n\n\t\t\t// If IE and not a frame\n\t\t\t// continually check to see if the document is ready\n\t\t\tvar top = false;\n\n\t\t\ttry {\n\t\t\t\ttop = window.frameElement == null && document.documentElement;\n\t\t\t} catch(e) {}\n\n\t\t\tif ( top && top.doScroll ) {\n\t\t\t\t(function doScrollCheck() {\n\t\t\t\t\tif ( !jQuery.isReady ) {\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t// Use the trick by Diego Perini\n\t\t\t\t\t\t\t// http://javascript.nwbox.com/IEContentLoaded/\n\t\t\t\t\t\t\ttop.doScroll(\"left\");\n\t\t\t\t\t\t} catch(e) {\n\t\t\t\t\t\t\treturn setTimeout( doScrollCheck, 50 );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// detach all dom ready events\n\t\t\t\t\t\tdetach();\n\n\t\t\t\t\t\t// and execute any waiting functions\n\t\t\t\t\t\tjQuery.ready();\n\t\t\t\t\t}\n\t\t\t\t})();\n\t\t\t}\n\t\t}\n\t}\n\treturn readyList.promise( obj );\n};\n\n// Populate the class2type map\njQuery.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function(i, name) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n});\n\nfunction isArraylike( obj ) {\n\tvar length = obj.length,\n\t\ttype = jQuery.type( obj );\n\n\tif ( jQuery.isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\tif ( obj.nodeType === 1 && length ) {\n\t\treturn true;\n\t}\n\n\treturn type === \"array\" || type !== \"function\" &&\n\t\t( length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj );\n}\n\n// All jQuery objects should point back to these\nrootjQuery = jQuery(document);\n/*!\n * Sizzle CSS Selector Engine v1.10.2\n * http://sizzlejs.com/\n *\n * Copyright 2013 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2013-07-03\n */\n(function( window, undefined ) {\n\nvar i,\n\tsupport,\n\tcachedruns,\n\tExpr,\n\tgetText,\n\tisXML,\n\tcompile,\n\toutermostContext,\n\tsortInput,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + -(new Date()),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\thasDuplicate = false,\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// General-purpose constants\n\tstrundefined = typeof undefined,\n\tMAX_NEGATIVE = 1 << 31,\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf if we can't use a native one\n\tindexOf = arr.indexOf || function( elem ) {\n\t\tvar i = 0,\n\t\t\tlen = this.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( this[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\t// http://www.w3.org/TR/css3-syntax/#characters\n\tcharacterEncoding = \"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",\n\n\t// Loosely modeled on CSS identifier characters\n\t// An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors\n\t// Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = characterEncoding.replace( \"w\", \"w#\" ),\n\n\t// Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + characterEncoding + \")\" + whitespace +\n\t\t\"*(?:([*^$|!~]?=)\" + whitespace + \"*(?:(['\\\"])((?:\\\\\\\\.|[^\\\\\\\\])*?)\\\\3|(\" + identifier + \")|)|)\" + whitespace + \"*\\\\]\",\n\n\t// Prefer arguments quoted,\n\t// then not containing pseudos/brackets,\n\t// then attribute selectors/non-parenthetical expressions,\n\t// then anything else\n\t// These preferences are here to reduce the number of selectors\n\t// needing tokenize in the PSEUDO preFilter\n\tpseudos = \":(\" + characterEncoding + \")(?:\\\\(((['\\\"])((?:\\\\\\\\.|[^\\\\\\\\])*?)\\\\3|((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes.replace( 3, 8 ) + \")*)|.*)\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\n\trsibling = new RegExp( whitespace + \"*[+~]\" ),\n\trattributeQuotes = new RegExp( \"=\" + whitespace + \"*([^\\\\]'\\\"]*)\" + whitespace + \"*\\\\]\", \"g\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + characterEncoding + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + characterEncoding + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + characterEncoding.replace( \"w\", \"w*\" ) + \")\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trescape = /'|\\\\/g,\n\n\t// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\t// BMP codepoint\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t};\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar match, elem, m, nodeType,\n\t\t// QSA vars\n\t\ti, groups, old, nid, newContext, newSelector;\n\n\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\n\tcontext = context || document;\n\tresults = results || [];\n\n\tif ( !selector || typeof selector !== \"string\" ) {\n\t\treturn results;\n\t}\n\n\tif ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) {\n\t\treturn [];\n\t}\n\n\tif ( documentIsHTML && !seed ) {\n\n\t\t// Shortcuts\n\t\tif ( (match = rquickExpr.exec( selector )) ) {\n\t\t\t// Speed-up: Sizzle(\"#ID\")\n\t\t\tif ( (m = match[1]) ) {\n\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\telem = context.getElementById( m );\n\t\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Handle the case where IE, Opera, and Webkit return items\n\t\t\t\t\t\t// by name instead of ID\n\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Context is not a document\n\t\t\t\t\tif ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&\n\t\t\t\t\t\tcontains( context, elem ) && elem.id === m ) {\n\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Speed-up: Sizzle(\"TAG\")\n\t\t\t} else if ( match[2] ) {\n\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\treturn results;\n\n\t\t\t// Speed-up: Sizzle(\".CLASS\")\n\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) {\n\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\treturn results;\n\t\t\t}\n\t\t}\n\n\t\t// QSA path\n\t\tif ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\n\t\t\tnid = old = expando;\n\t\t\tnewContext = context;\n\t\t\tnewSelector = nodeType === 9 && selector;\n\n\t\t\t// qSA works strangely on Element-rooted queries\n\t\t\t// We can work around this by specifying an extra ID on the root\n\t\t\t// and working up from there (Thanks to Andrew Dupont for the technique)\n\t\t\t// IE 8 doesn't work on object elements\n\t\t\tif ( nodeType === 1 && context.nodeName.toLowerCase() !== \"object\" ) {\n\t\t\t\tgroups = tokenize( selector );\n\n\t\t\t\tif ( (old = context.getAttribute(\"id\")) ) {\n\t\t\t\t\tnid = old.replace( rescape, \"\\\\$&\" );\n\t\t\t\t} else {\n\t\t\t\t\tcontext.setAttribute( \"id\", nid );\n\t\t\t\t}\n\t\t\t\tnid = \"[id='\" + nid + \"'] \";\n\n\t\t\t\ti = groups.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tgroups[i] = nid + toSelector( groups[i] );\n\t\t\t\t}\n\t\t\t\tnewContext = rsibling.test( selector ) && context.parentNode || context;\n\t\t\t\tnewSelector = groups.join(\",\");\n\t\t\t}\n\n\t\t\tif ( newSelector ) {\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch(qsaError) {\n\t\t\t\t} finally {\n\t\t\t\t\tif ( !old ) {\n\t\t\t\t\t\tcontext.removeAttribute(\"id\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {Function(string, Object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key += \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created div and expects a boolean result\n */\nfunction assert( fn ) {\n\tvar div = document.createElement(\"div\");\n\n\ttry {\n\t\treturn !!fn( div );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( div.parentNode ) {\n\t\t\tdiv.parentNode.removeChild( div );\n\t\t}\n\t\t// release memory in IE\n\t\tdiv = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = attrs.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\t( ~b.sourceIndex || MAX_NEGATIVE ) -\n\t\t\t( ~a.sourceIndex || MAX_NEGATIVE );\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Detect xml\n * @param {Element|Object} elem An element or a document\n */\nisXML = Sizzle.isXML = function( elem ) {\n\t// documentElement is verified for cases where it doesn't yet exist\n\t// (such as loading iframes in IE - #4833)\n\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\n\treturn documentElement ? documentElement.nodeName !== \"HTML\" : false;\n};\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar doc = node ? node.ownerDocument || node : preferredDoc,\n\t\tparent = doc.defaultView;\n\n\t// If no document and documentElement is available, return\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Set our document\n\tdocument = doc;\n\tdocElem = doc.documentElement;\n\n\t// Support tests\n\tdocumentIsHTML = !isXML( doc );\n\n\t// Support: IE>8\n\t// If iframe document is assigned to \"document\" variable and if iframe has been reloaded,\n\t// IE will throw \"permission denied\" error when accessing \"document\" variable, see jQuery #13936\n\t// IE6-8 do not support the defaultView property so parent will be undefined\n\tif ( parent && parent.attachEvent && parent !== parent.top ) {\n\t\tparent.attachEvent( \"onbeforeunload\", function() {\n\t\t\tsetDocument();\n\t\t});\n\t}\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans)\n\tsupport.attributes = assert(function( div ) {\n\t\tdiv.className = \"i\";\n\t\treturn !div.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( div ) {\n\t\tdiv.appendChild( doc.createComment(\"\") );\n\t\treturn !div.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Check if getElementsByClassName can be trusted\n\tsupport.getElementsByClassName = assert(function( div ) {\n\t\tdiv.innerHTML = \"
\";\n\n\t\t// Support: Safari<4\n\t\t// Catch class over-caching\n\t\tdiv.firstChild.className = \"i\";\n\t\t// Support: Opera<10\n\t\t// Catch gEBCN failure to find non-leading classes\n\t\treturn div.getElementsByClassName(\"i\").length === 2;\n\t});\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( div ) {\n\t\tdocElem.appendChild( div ).id = expando;\n\t\treturn !doc.getElementsByName || !doc.getElementsByName( expando ).length;\n\t});\n\n\t// ID find and filter\n\tif ( support.getById ) {\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== strundefined && documentIsHTML ) {\n\t\t\t\tvar m = context.getElementById( id );\n\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\treturn m && m.parentNode ? [m] : [];\n\t\t\t}\n\t\t};\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t} else {\n\t\t// Support: IE6/7\n\t\t// getElementById is not reliable as a find shortcut\n\t\tdelete Expr.find[\"ID\"];\n\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== strundefined ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\t\t\t}\n\t\t} :\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See http://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( div ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// http://bugs.jquery.com/ticket/12359\n\t\t\tdiv.innerHTML = \"\";\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !div.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( div ) {\n\n\t\t\t// Support: Opera 10-12/IE8\n\t\t\t// ^= $= *= and empty values\n\t\t\t// Should not select anything\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type attribute is restricted during .innerHTML assignment\n\t\t\tvar input = doc.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tdiv.appendChild( input ).setAttribute( \"t\", \"\" );\n\n\t\t\tif ( div.querySelectorAll(\"[t^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":enabled\").length ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tdiv.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( div ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( div, \"div\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( div, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\n\t// Element contains another\n\t// Purposefully does not implement inclusive descendent\n\t// As in, an element does not contain itself\n\tcontains = rnative.test( docElem.contains ) || docElem.compareDocumentPosition ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = docElem.compareDocumentPosition ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b );\n\n\t\tif ( compare ) {\n\t\t\t// Disconnected nodes\n\t\t\tif ( compare & 1 ||\n\t\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t\tif ( a === doc || contains(preferredDoc, a) ) {\n\t\t\t\t\treturn -1;\n\t\t\t\t}\n\t\t\t\tif ( b === doc || contains(preferredDoc, b) ) {\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\n\t\t\t\t// Maintain original order\n\t\t\t\treturn sortInput ?\n\t\t\t\t\t( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :\n\t\t\t\t\t0;\n\t\t\t}\n\n\t\t\treturn compare & 4 ? -1 : 1;\n\t\t}\n\n\t\t// Not directly comparable, sort on existence of method\n\t\treturn a.compareDocumentPosition ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\t} else if ( !aup || !bup ) {\n\t\t\treturn a === doc ? -1 :\n\t\t\t\tb === doc ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn doc;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\t// Make sure that attribute selectors are quoted\n\texpr = expr.replace( rattributeQuotes, \"='$1']\" );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch(e) {}\n\t}\n\n\treturn Sizzle( expr, document, null, [elem] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val === undefined ?\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull :\n\t\tval;\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\tfor ( ; (node = elem[i]); i++ ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (see #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[5] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] && match[4] !== undefined ) {\n\t\t\t\tmatch[2] = match[4];\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, outerCache, node, diff, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\t\t\t\t\t\t\touterCache = parent[ expando ] || (parent[ expando ] = {});\n\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[0] === dirruns && cache[1];\n\t\t\t\t\t\t\tdiff = cache[0] === dirruns && cache[2];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t} else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {\n\t\t\t\t\t\t\tdiff = cache[1];\n\n\t\t\t\t\t\t// xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\tif ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {\n\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t(node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf.call( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": function( elem ) {\n\t\t\treturn elem.disabled === false;\n\t\t},\n\n\t\t\"disabled\": function( elem ) {\n\t\t\treturn elem.disabled === true;\n\t\t},\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is only affected by element nodes and content nodes(including text(3), cdata(4)),\n\t\t\t// not comment, processing instructions, or others\n\t\t\t// Thanks to Diego Perini for the nodeName shortcut\n\t\t\t// Greater than \"@\" means alpha characters (specifically not starting with \"#\" or \"?\")\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeName > \"@\" || elem.nodeType === 3 || elem.nodeType === 4 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\t// IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc)\n\t\t\t// use getAttribute instead to test this case\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === elem.type );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\nfunction tokenize( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( tokens = [] );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n}\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tcheckNonElements = base && dir === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar data, cache, outerCache,\n\t\t\t\tdirkey = dirruns + \" \" + doneName;\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from dir caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\t\t\t\t\t\tif ( (cache = outerCache[ dir ]) && cache[0] === dirkey ) {\n\t\t\t\t\t\t\tif ( (data = cache[1]) === true || data === cachedruns ) {\n\t\t\t\t\t\t\t\treturn data === true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcache = outerCache[ dir ] = [ dirkey ];\n\t\t\t\t\t\t\tcache[1] = matcher( elem, context, xml ) || cachedruns;\n\t\t\t\t\t\t\tif ( cache[1] === true ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf.call( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\treturn ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\t// A counter to specify which element is currently being matched\n\tvar matcherCachedRuns = 0,\n\t\tbySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, expandContext ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tsetMatched = [],\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\toutermost = expandContext != null,\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", expandContext && context.parentNode || context ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1);\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context !== document && context;\n\t\t\t\tcachedruns = matcherCachedRuns;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Keep `i` a string if there are no elements so `matchedCount` will be \"00\" below\n\t\t\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t\tcachedruns = ++matcherCachedRuns;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\tmatchedCount += i;\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !group ) {\n\t\t\tgroup = tokenize( selector );\n\t\t}\n\t\ti = group.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( group[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\t}\n\treturn cached;\n};\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction select( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tmatch = tokenize( selector );\n\n\tif ( !seed ) {\n\t\t// Try to minimize operations if there is only one group\n\t\tif ( match.length === 1 ) {\n\n\t\t\t// Take a shortcut and set the context if the root selector is an ID\n\t\t\ttokens = match[0] = match[0].slice( 0 );\n\t\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\t\tsupport.getById && context.nodeType === 9 && documentIsHTML &&\n\t\t\t\t\tExpr.relative[ tokens[1].type ] ) {\n\n\t\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\t\tif ( !context ) {\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t\t}\n\n\t\t\t// Fetch a seed set for right-to-left matching\n\t\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\ttoken = tokens[i];\n\n\t\t\t\t// Abort if we hit a combinator\n\t\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\t\tif ( (seed = find(\n\t\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\t\trsibling.test( tokens[0].type ) && context.parentNode || context\n\t\t\t\t\t)) ) {\n\n\t\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\tcompile( selector, match )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\trsibling.test( selector )\n\t);\n\treturn results;\n}\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome<14\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( div1 ) {\n\t// Should return 1, but returns 4 (following)\n\treturn div1.compareDocumentPosition( document.createElement(\"div\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( div ) {\n\tdiv.innerHTML = \"\";\n\treturn div.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( div ) {\n\tdiv.innerHTML = \"\";\n\tdiv.firstChild.setAttribute( \"value\", \"\" );\n\treturn div.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( div ) {\n\treturn div.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn (val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\telem[ name ] === true ? name.toLowerCase() : null;\n\t\t}\n\t});\n}\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\njQuery.expr[\":\"] = jQuery.expr.pseudos;\njQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\n\n\n})( window );\n// String to Object options format cache\nvar optionsCache = {};\n\n// Convert String-formatted options into Object-formatted ones and store in cache\nfunction createOptions( options ) {\n\tvar object = optionsCache[ options ] = {};\n\tjQuery.each( options.match( core_rnotwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t});\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\t( optionsCache[ options ] || createOptions( options ) ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\t\t// Last fire value (for non-forgettable lists)\n\t\tmemory,\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\t\t// End of the loop when firing\n\t\tfiringLength,\n\t\t// Index of currently firing callback (modified by remove if needed)\n\t\tfiringIndex,\n\t\t// First callback to fire (used internally by add and fireWith)\n\t\tfiringStart,\n\t\t// Actual callback list\n\t\tlist = [],\n\t\t// Stack of fire calls for repeatable lists\n\t\tstack = !options.once && [],\n\t\t// Fire callbacks\n\t\tfire = function( data ) {\n\t\t\tmemory = options.memory && data;\n\t\t\tfired = true;\n\t\t\tfiringIndex = firingStart || 0;\n\t\t\tfiringStart = 0;\n\t\t\tfiringLength = list.length;\n\t\t\tfiring = true;\n\t\t\tfor ( ; list && firingIndex < firingLength; firingIndex++ ) {\n\t\t\t\tif ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {\n\t\t\t\t\tmemory = false; // To prevent further calls using add\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfiring = false;\n\t\t\tif ( list ) {\n\t\t\t\tif ( stack ) {\n\t\t\t\t\tif ( stack.length ) {\n\t\t\t\t\t\tfire( stack.shift() );\n\t\t\t\t\t}\n\t\t\t\t} else if ( memory ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t} else {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Actual Callbacks object\n\t\tself = {\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\t// First, we save the current length\n\t\t\t\t\tvar start = list.length;\n\t\t\t\t\t(function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tvar type = jQuery.type( arg );\n\t\t\t\t\t\t\tif ( type === \"function\" ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && type !== \"string\" ) {\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t})( arguments );\n\t\t\t\t\t// Do we need to add the callbacks to the\n\t\t\t\t\t// current firing batch?\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tfiringLength = list.length;\n\t\t\t\t\t// With memory, if we're not firing then\n\t\t\t\t\t// we should call right away\n\t\t\t\t\t} else if ( memory ) {\n\t\t\t\t\t\tfiringStart = start;\n\t\t\t\t\t\tfire( memory );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\t\tvar index;\n\t\t\t\t\t\twhile( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\t\tlist.splice( index, 1 );\n\t\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\t\t\tif ( index <= firingLength ) {\n\t\t\t\t\t\t\t\t\tfiringLength--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length );\n\t\t\t},\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tlist = [];\n\t\t\t\tfiringLength = 0;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Have the list do nothing anymore\n\t\t\tdisable: function() {\n\t\t\t\tlist = stack = memory = undefined;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it disabled?\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\t\t\t// Lock the list in its current state\n\t\t\tlock: function() {\n\t\t\t\tstack = undefined;\n\t\t\t\tif ( !memory ) {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it locked?\n\t\t\tlocked: function() {\n\t\t\t\treturn !stack;\n\t\t\t},\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( list && ( !fired || stack ) ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tstack.push( args );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfire( args );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\njQuery.extend({\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\t\t\t\t// action, add listener, listener list, final state\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), \"rejected\" ],\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks(\"memory\") ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\tthen: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\t\t\t\t\treturn jQuery.Deferred(function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\t\t\t\t\tvar action = tuple[ 0 ],\n\t\t\t\t\t\t\t\tfn = jQuery.isFunction( fns[ i ] ) && fns[ i ];\n\t\t\t\t\t\t\t// deferred[ done | fail | progress ] for forwarding actions to newDefer\n\t\t\t\t\t\t\tdeferred[ tuple[1] ](function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && jQuery.isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject )\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ action + \"With\" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t}).promise();\n\t\t\t\t},\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Keep pipe for back-compat\n\t\tpromise.pipe = promise.then;\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 3 ];\n\n\t\t\t// promise[ done | fail | progress ] = list.add\n\t\t\tpromise[ tuple[1] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(function() {\n\t\t\t\t\t// state = [ resolved | rejected ]\n\t\t\t\t\tstate = stateString;\n\n\t\t\t\t// [ reject_list | resolve_list ].disable; progress_list.lock\n\t\t\t\t}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );\n\t\t\t}\n\n\t\t\t// deferred[ resolve | reject | notify ]\n\t\t\tdeferred[ tuple[0] ] = function() {\n\t\t\t\tdeferred[ tuple[0] + \"With\" ]( this === deferred ? promise : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\t\t\tdeferred[ tuple[0] + \"With\" ] = list.fireWith;\n\t\t});\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( subordinate /* , ..., subordinateN */ ) {\n\t\tvar i = 0,\n\t\t\tresolveValues = core_slice.call( arguments ),\n\t\t\tlength = resolveValues.length,\n\n\t\t\t// the count of uncompleted subordinates\n\t\t\tremaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,\n\n\t\t\t// the master Deferred. If resolveValues consist of only a single Deferred, just use that.\n\t\t\tdeferred = remaining === 1 ? subordinate : jQuery.Deferred(),\n\n\t\t\t// Update function for both resolve and progress values\n\t\t\tupdateFunc = function( i, contexts, values ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tcontexts[ i ] = this;\n\t\t\t\t\tvalues[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value;\n\t\t\t\t\tif( values === progressValues ) {\n\t\t\t\t\t\tdeferred.notifyWith( contexts, values );\n\t\t\t\t\t} else if ( !( --remaining ) ) {\n\t\t\t\t\t\tdeferred.resolveWith( contexts, values );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\n\t\t\tprogressValues, progressContexts, resolveContexts;\n\n\t\t// add listeners to Deferred subordinates; treat others as resolved\n\t\tif ( length > 1 ) {\n\t\t\tprogressValues = new Array( length );\n\t\t\tprogressContexts = new Array( length );\n\t\t\tresolveContexts = new Array( length );\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {\n\t\t\t\t\tresolveValues[ i ].promise()\n\t\t\t\t\t\t.done( updateFunc( i, resolveContexts, resolveValues ) )\n\t\t\t\t\t\t.fail( deferred.reject )\n\t\t\t\t\t\t.progress( updateFunc( i, progressContexts, progressValues ) );\n\t\t\t\t} else {\n\t\t\t\t\t--remaining;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// if we're not waiting on anything, resolve the master\n\t\tif ( !remaining ) {\n\t\t\tdeferred.resolveWith( resolveContexts, resolveValues );\n\t\t}\n\n\t\treturn deferred.promise();\n\t}\n});\njQuery.support = (function( support ) {\n\n\tvar all, a, input, select, fragment, opt, eventName, isSupported, i,\n\t\tdiv = document.createElement(\"div\");\n\n\t// Setup\n\tdiv.setAttribute( \"className\", \"t\" );\n\tdiv.innerHTML = \"
a\";\n\n\t// Finish early in limited (non-browser) environments\n\tall = div.getElementsByTagName(\"*\") || [];\n\ta = div.getElementsByTagName(\"a\")[ 0 ];\n\tif ( !a || !a.style || !all.length ) {\n\t\treturn support;\n\t}\n\n\t// First batch of tests\n\tselect = document.createElement(\"select\");\n\topt = select.appendChild( document.createElement(\"option\") );\n\tinput = div.getElementsByTagName(\"input\")[ 0 ];\n\n\ta.style.cssText = \"top:1px;float:left;opacity:.5\";\n\n\t// Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)\n\tsupport.getSetAttribute = div.className !== \"t\";\n\n\t// IE strips leading whitespace when .innerHTML is used\n\tsupport.leadingWhitespace = div.firstChild.nodeType === 3;\n\n\t// Make sure that tbody elements aren't automatically inserted\n\t// IE will insert them into empty tables\n\tsupport.tbody = !div.getElementsByTagName(\"tbody\").length;\n\n\t// Make sure that link elements get serialized correctly by innerHTML\n\t// This requires a wrapper element in IE\n\tsupport.htmlSerialize = !!div.getElementsByTagName(\"link\").length;\n\n\t// Get the style information from getAttribute\n\t// (IE uses .cssText instead)\n\tsupport.style = /top/.test( a.getAttribute(\"style\") );\n\n\t// Make sure that URLs aren't manipulated\n\t// (IE normalizes it by default)\n\tsupport.hrefNormalized = a.getAttribute(\"href\") === \"/a\";\n\n\t// Make sure that element opacity exists\n\t// (IE uses filter instead)\n\t// Use a regex to work around a WebKit issue. See #5145\n\tsupport.opacity = /^0.5/.test( a.style.opacity );\n\n\t// Verify style float existence\n\t// (IE uses styleFloat instead of cssFloat)\n\tsupport.cssFloat = !!a.style.cssFloat;\n\n\t// Check the default checkbox/radio value (\"\" on WebKit; \"on\" elsewhere)\n\tsupport.checkOn = !!input.value;\n\n\t// Make sure that a selected-by-default option has a working selected property.\n\t// (WebKit defaults to false instead of true, IE too, if it's in an optgroup)\n\tsupport.optSelected = opt.selected;\n\n\t// Tests for enctype support on a form (#6743)\n\tsupport.enctype = !!document.createElement(\"form\").enctype;\n\n\t// Makes sure cloning an html5 element does not cause problems\n\t// Where outerHTML is undefined, this still works\n\tsupport.html5Clone = document.createElement(\"nav\").cloneNode( true ).outerHTML !== \"<:nav>\";\n\n\t// Will be defined later\n\tsupport.inlineBlockNeedsLayout = false;\n\tsupport.shrinkWrapBlocks = false;\n\tsupport.pixelPosition = false;\n\tsupport.deleteExpando = true;\n\tsupport.noCloneEvent = true;\n\tsupport.reliableMarginRight = true;\n\tsupport.boxSizingReliable = true;\n\n\t// Make sure checked status is properly cloned\n\tinput.checked = true;\n\tsupport.noCloneChecked = input.cloneNode( true ).checked;\n\n\t// Make sure that the options inside disabled selects aren't marked as disabled\n\t// (WebKit marks them as disabled)\n\tselect.disabled = true;\n\tsupport.optDisabled = !opt.disabled;\n\n\t// Support: IE<9\n\ttry {\n\t\tdelete div.test;\n\t} catch( e ) {\n\t\tsupport.deleteExpando = false;\n\t}\n\n\t// Check if we can trust getAttribute(\"value\")\n\tinput = document.createElement(\"input\");\n\tinput.setAttribute( \"value\", \"\" );\n\tsupport.input = input.getAttribute( \"value\" ) === \"\";\n\n\t// Check if an input maintains its value after becoming a radio\n\tinput.value = \"t\";\n\tinput.setAttribute( \"type\", \"radio\" );\n\tsupport.radioValue = input.value === \"t\";\n\n\t// #11217 - WebKit loses check when the name is after the checked attribute\n\tinput.setAttribute( \"checked\", \"t\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tfragment = document.createDocumentFragment();\n\tfragment.appendChild( input );\n\n\t// Check if a disconnected checkbox will retain its checked\n\t// value of true after appended to the DOM (IE6/7)\n\tsupport.appendChecked = input.checked;\n\n\t// WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE<9\n\t// Opera does not clone events (and typeof div.attachEvent === undefined).\n\t// IE9-10 clones events bound via attachEvent, but they don't trigger with .click()\n\tif ( div.attachEvent ) {\n\t\tdiv.attachEvent( \"onclick\", function() {\n\t\t\tsupport.noCloneEvent = false;\n\t\t});\n\n\t\tdiv.cloneNode( true ).click();\n\t}\n\n\t// Support: IE<9 (lack submit/change bubble), Firefox 17+ (lack focusin event)\n\t// Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP)\n\tfor ( i in { submit: true, change: true, focusin: true }) {\n\t\tdiv.setAttribute( eventName = \"on\" + i, \"t\" );\n\n\t\tsupport[ i + \"Bubbles\" ] = eventName in window || div.attributes[ eventName ].expando === false;\n\t}\n\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\t// Support: IE<9\n\t// Iteration over object's inherited properties before its own.\n\tfor ( i in jQuery( support ) ) {\n\t\tbreak;\n\t}\n\tsupport.ownLast = i !== \"0\";\n\n\t// Run tests that need a body at doc ready\n\tjQuery(function() {\n\t\tvar container, marginDiv, tds,\n\t\t\tdivReset = \"padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;\",\n\t\t\tbody = document.getElementsByTagName(\"body\")[0];\n\n\t\tif ( !body ) {\n\t\t\t// Return for frameset docs that don't have a body\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer = document.createElement(\"div\");\n\t\tcontainer.style.cssText = \"border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px\";\n\n\t\tbody.appendChild( container ).appendChild( div );\n\n\t\t// Support: IE8\n\t\t// Check if table cells still have offsetWidth/Height when they are set\n\t\t// to display:none and there are still other visible table cells in a\n\t\t// table row; if so, offsetWidth/Height are not reliable for use when\n\t\t// determining if an element has been hidden directly using\n\t\t// display:none (it is still safe to use offsets if a parent element is\n\t\t// hidden; don safety goggles and see bug #4512 for more information).\n\t\tdiv.innerHTML = \"
t
\";\n\t\ttds = div.getElementsByTagName(\"td\");\n\t\ttds[ 0 ].style.cssText = \"padding:0;margin:0;border:0;display:none\";\n\t\tisSupported = ( tds[ 0 ].offsetHeight === 0 );\n\n\t\ttds[ 0 ].style.display = \"\";\n\t\ttds[ 1 ].style.display = \"none\";\n\n\t\t// Support: IE8\n\t\t// Check if empty table cells still have offsetWidth/Height\n\t\tsupport.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 );\n\n\t\t// Check box-sizing and margin behavior.\n\t\tdiv.innerHTML = \"\";\n\t\tdiv.style.cssText = \"box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;\";\n\n\t\t// Workaround failing boxSizing test due to offsetWidth returning wrong value\n\t\t// with some non-1 values of body zoom, ticket #13543\n\t\tjQuery.swap( body, body.style.zoom != null ? { zoom: 1 } : {}, function() {\n\t\t\tsupport.boxSizing = div.offsetWidth === 4;\n\t\t});\n\n\t\t// Use window.getComputedStyle because jsdom on node.js will break without it.\n\t\tif ( window.getComputedStyle ) {\n\t\t\tsupport.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== \"1%\";\n\t\t\tsupport.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: \"4px\" } ).width === \"4px\";\n\n\t\t\t// Check if div with explicit width and no margin-right incorrectly\n\t\t\t// gets computed margin-right based on width of container. (#3333)\n\t\t\t// Fails in WebKit before Feb 2011 nightlies\n\t\t\t// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right\n\t\t\tmarginDiv = div.appendChild( document.createElement(\"div\") );\n\t\t\tmarginDiv.style.cssText = div.style.cssText = divReset;\n\t\t\tmarginDiv.style.marginRight = marginDiv.style.width = \"0\";\n\t\t\tdiv.style.width = \"1px\";\n\n\t\t\tsupport.reliableMarginRight =\n\t\t\t\t!parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight );\n\t\t}\n\n\t\tif ( typeof div.style.zoom !== core_strundefined ) {\n\t\t\t// Support: IE<8\n\t\t\t// Check if natively block-level elements act like inline-block\n\t\t\t// elements when setting their display to 'inline' and giving\n\t\t\t// them layout\n\t\t\tdiv.innerHTML = \"\";\n\t\t\tdiv.style.cssText = divReset + \"width:1px;padding:1px;display:inline;zoom:1\";\n\t\t\tsupport.inlineBlockNeedsLayout = ( div.offsetWidth === 3 );\n\n\t\t\t// Support: IE6\n\t\t\t// Check if elements with layout shrink-wrap their children\n\t\t\tdiv.style.display = \"block\";\n\t\t\tdiv.innerHTML = \"
\";\n\t\t\tdiv.firstChild.style.width = \"5px\";\n\t\t\tsupport.shrinkWrapBlocks = ( div.offsetWidth !== 3 );\n\n\t\t\tif ( support.inlineBlockNeedsLayout ) {\n\t\t\t\t// Prevent IE 6 from affecting layout for positioned elements #11048\n\t\t\t\t// Prevent IE from shrinking the body in IE 7 mode #12869\n\t\t\t\t// Support: IE<8\n\t\t\t\tbody.style.zoom = 1;\n\t\t\t}\n\t\t}\n\n\t\tbody.removeChild( container );\n\n\t\t// Null elements to avoid leaks in IE\n\t\tcontainer = div = tds = marginDiv = null;\n\t});\n\n\t// Null elements to avoid leaks in IE\n\tall = select = fragment = opt = a = input = null;\n\n\treturn support;\n})({});\n\nvar rbrace = /(?:\\{[\\s\\S]*\\}|\\[[\\s\\S]*\\])$/,\n\trmultiDash = /([A-Z])/g;\n\nfunction internalData( elem, name, data, pvt /* Internal Use Only */ ){\n\tif ( !jQuery.acceptData( elem ) ) {\n\t\treturn;\n\t}\n\n\tvar ret, thisCache,\n\t\tinternalKey = jQuery.expando,\n\n\t\t// We have to handle DOM nodes and JS objects differently because IE6-7\n\t\t// can't GC object references properly across the DOM-JS boundary\n\t\tisNode = elem.nodeType,\n\n\t\t// Only DOM nodes need the global jQuery cache; JS object data is\n\t\t// attached directly to the object so GC can occur automatically\n\t\tcache = isNode ? jQuery.cache : elem,\n\n\t\t// Only defining an ID for JS objects if its cache already exists allows\n\t\t// the code to shortcut on the same path as a DOM node with no cache\n\t\tid = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey;\n\n\t// Avoid doing any more work than we need to when trying to get data on an\n\t// object that has no data at all\n\tif ( (!id || !cache[id] || (!pvt && !cache[id].data)) && data === undefined && typeof name === \"string\" ) {\n\t\treturn;\n\t}\n\n\tif ( !id ) {\n\t\t// Only DOM nodes need a new unique ID for each element since their data\n\t\t// ends up in the global cache\n\t\tif ( isNode ) {\n\t\t\tid = elem[ internalKey ] = core_deletedIds.pop() || jQuery.guid++;\n\t\t} else {\n\t\t\tid = internalKey;\n\t\t}\n\t}\n\n\tif ( !cache[ id ] ) {\n\t\t// Avoid exposing jQuery metadata on plain JS objects when the object\n\t\t// is serialized using JSON.stringify\n\t\tcache[ id ] = isNode ? {} : { toJSON: jQuery.noop };\n\t}\n\n\t// An object can be passed to jQuery.data instead of a key/value pair; this gets\n\t// shallow copied over onto the existing cache\n\tif ( typeof name === \"object\" || typeof name === \"function\" ) {\n\t\tif ( pvt ) {\n\t\t\tcache[ id ] = jQuery.extend( cache[ id ], name );\n\t\t} else {\n\t\t\tcache[ id ].data = jQuery.extend( cache[ id ].data, name );\n\t\t}\n\t}\n\n\tthisCache = cache[ id ];\n\n\t// jQuery data() is stored in a separate object inside the object's internal data\n\t// cache in order to avoid key collisions between internal data and user-defined\n\t// data.\n\tif ( !pvt ) {\n\t\tif ( !thisCache.data ) {\n\t\t\tthisCache.data = {};\n\t\t}\n\n\t\tthisCache = thisCache.data;\n\t}\n\n\tif ( data !== undefined ) {\n\t\tthisCache[ jQuery.camelCase( name ) ] = data;\n\t}\n\n\t// Check for both converted-to-camel and non-converted data property names\n\t// If a data property was specified\n\tif ( typeof name === \"string\" ) {\n\n\t\t// First Try to find as-is property data\n\t\tret = thisCache[ name ];\n\n\t\t// Test for null|undefined property data\n\t\tif ( ret == null ) {\n\n\t\t\t// Try to find the camelCased property\n\t\t\tret = thisCache[ jQuery.camelCase( name ) ];\n\t\t}\n\t} else {\n\t\tret = thisCache;\n\t}\n\n\treturn ret;\n}\n\nfunction internalRemoveData( elem, name, pvt ) {\n\tif ( !jQuery.acceptData( elem ) ) {\n\t\treturn;\n\t}\n\n\tvar thisCache, i,\n\t\tisNode = elem.nodeType,\n\n\t\t// See jQuery.data for more information\n\t\tcache = isNode ? jQuery.cache : elem,\n\t\tid = isNode ? elem[ jQuery.expando ] : jQuery.expando;\n\n\t// If there is already no cache entry for this object, there is no\n\t// purpose in continuing\n\tif ( !cache[ id ] ) {\n\t\treturn;\n\t}\n\n\tif ( name ) {\n\n\t\tthisCache = pvt ? cache[ id ] : cache[ id ].data;\n\n\t\tif ( thisCache ) {\n\n\t\t\t// Support array or space separated string names for data keys\n\t\t\tif ( !jQuery.isArray( name ) ) {\n\n\t\t\t\t// try the string as a key before any manipulation\n\t\t\t\tif ( name in thisCache ) {\n\t\t\t\t\tname = [ name ];\n\t\t\t\t} else {\n\n\t\t\t\t\t// split the camel cased version by spaces unless a key with the spaces exists\n\t\t\t\t\tname = jQuery.camelCase( name );\n\t\t\t\t\tif ( name in thisCache ) {\n\t\t\t\t\t\tname = [ name ];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tname = name.split(\" \");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If \"name\" is an array of keys...\n\t\t\t\t// When data is initially created, via (\"key\", \"val\") signature,\n\t\t\t\t// keys will be converted to camelCase.\n\t\t\t\t// Since there is no way to tell _how_ a key was added, remove\n\t\t\t\t// both plain key and camelCase key. #12786\n\t\t\t\t// This will only penalize the array argument path.\n\t\t\t\tname = name.concat( jQuery.map( name, jQuery.camelCase ) );\n\t\t\t}\n\n\t\t\ti = name.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete thisCache[ name[i] ];\n\t\t\t}\n\n\t\t\t// If there is no data left in the cache, we want to continue\n\t\t\t// and let the cache object itself get destroyed\n\t\t\tif ( pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\t// See jQuery.data for more information\n\tif ( !pvt ) {\n\t\tdelete cache[ id ].data;\n\n\t\t// Don't destroy the parent cache unless the internal data object\n\t\t// had been the only thing left in it\n\t\tif ( !isEmptyDataObject( cache[ id ] ) ) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// Destroy the cache\n\tif ( isNode ) {\n\t\tjQuery.cleanData( [ elem ], true );\n\n\t// Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)\n\t/* jshint eqeqeq: false */\n\t} else if ( jQuery.support.deleteExpando || cache != cache.window ) {\n\t\t/* jshint eqeqeq: true */\n\t\tdelete cache[ id ];\n\n\t// When all else fails, null\n\t} else {\n\t\tcache[ id ] = null;\n\t}\n}\n\njQuery.extend({\n\tcache: {},\n\n\t// The following elements throw uncatchable exceptions if you\n\t// attempt to add expando properties to them.\n\tnoData: {\n\t\t\"applet\": true,\n\t\t\"embed\": true,\n\t\t// Ban all objects except for Flash (which handle expandos)\n\t\t\"object\": \"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"\n\t},\n\n\thasData: function( elem ) {\n\t\telem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];\n\t\treturn !!elem && !isEmptyDataObject( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn internalData( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\treturn internalRemoveData( elem, name );\n\t},\n\n\t// For internal use only.\n\t_data: function( elem, name, data ) {\n\t\treturn internalData( elem, name, data, true );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\treturn internalRemoveData( elem, name, true );\n\t},\n\n\t// A method for determining if a DOM node can handle the data expando\n\tacceptData: function( elem ) {\n\t\t// Do not set data on non-element because it will not be cleared (#8335).\n\t\tif ( elem.nodeType && elem.nodeType !== 1 && elem.nodeType !== 9 ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ];\n\n\t\t// nodes accept data unless otherwise specified; rejection can be conditional\n\t\treturn !noData || noData !== true && elem.getAttribute(\"classid\") === noData;\n\t}\n});\n\njQuery.fn.extend({\n\tdata: function( key, value ) {\n\t\tvar attrs, name,\n\t\t\tdata = null,\n\t\t\ti = 0,\n\t\t\telem = this[0];\n\n\t\t// Special expections of .data basically thwart jQuery.access,\n\t\t// so implement the relevant behavior ourselves\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = jQuery.data( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !jQuery._data( elem, \"parsedAttrs\" ) ) {\n\t\t\t\t\tattrs = elem.attributes;\n\t\t\t\t\tfor ( ; i < attrs.length; i++ ) {\n\t\t\t\t\t\tname = attrs[i].name;\n\n\t\t\t\t\t\tif ( name.indexOf(\"data-\") === 0 ) {\n\t\t\t\t\t\t\tname = jQuery.camelCase( name.slice(5) );\n\n\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tjQuery._data( elem, \"parsedAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each(function() {\n\t\t\t\tjQuery.data( this, key );\n\t\t\t});\n\t\t}\n\n\t\treturn arguments.length > 1 ?\n\n\t\t\t// Sets one value\n\t\t\tthis.each(function() {\n\t\t\t\tjQuery.data( this, key, value );\n\t\t\t}) :\n\n\t\t\t// Gets one value\n\t\t\t// Try to fetch any internally stored data first\n\t\t\telem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : null;\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.removeData( this, key );\n\t\t});\n\t}\n});\n\nfunction dataAttr( elem, key, data ) {\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\n\t\tvar name = \"data-\" + key.replace( rmultiDash, \"-$1\" ).toLowerCase();\n\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = data === \"true\" ? true :\n\t\t\t\t\tdata === \"false\" ? false :\n\t\t\t\t\tdata === \"null\" ? null :\n\t\t\t\t\t// Only convert to a number if it doesn't change the string\n\t\t\t\t\t+data + \"\" === data ? +data :\n\t\t\t\t\trbrace.test( data ) ? jQuery.parseJSON( data ) :\n\t\t\t\t\t\tdata;\n\t\t\t} catch( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tjQuery.data( elem, key, data );\n\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\n\treturn data;\n}\n\n// checks a cache object for emptiness\nfunction isEmptyDataObject( obj ) {\n\tvar name;\n\tfor ( name in obj ) {\n\n\t\t// if the public data object is empty, the private is still empty\n\t\tif ( name === \"data\" && jQuery.isEmptyObject( obj[name] ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\tif ( name !== \"toJSON\" ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\njQuery.extend({\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = jQuery._data( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || jQuery.isArray(data) ) {\n\t\t\t\t\tqueue = jQuery._data( elem, type, jQuery.makeArray(data) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// not intended for public consumption - generates a queueHooks object, or returns the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn jQuery._data( elem, key ) || jQuery._data( elem, key, {\n\t\t\tempty: jQuery.Callbacks(\"once memory\").add(function() {\n\t\t\t\tjQuery._removeData( elem, type + \"queue\" );\n\t\t\t\tjQuery._removeData( elem, key );\n\t\t\t})\n\t\t});\n\t}\n});\n\njQuery.fn.extend({\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[0], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each(function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[0] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t});\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t});\n\t},\n\t// Based off of the plugin by Clint Helfers, with permission.\n\t// http://blindsignals.com/index.php/2009/07/jquery-delay/\n\tdelay: function( time, type ) {\n\t\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\t\ttype = type || \"fx\";\n\n\t\treturn this.queue( type, function( next, hooks ) {\n\t\t\tvar timeout = setTimeout( next, time );\n\t\t\thooks.stop = function() {\n\t\t\t\tclearTimeout( timeout );\n\t\t\t};\n\t\t});\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile( i-- ) {\n\t\t\ttmp = jQuery._data( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n});\nvar nodeHook, boolHook,\n\trclass = /[\\t\\r\\n\\f]/g,\n\trreturn = /\\r/g,\n\trfocusable = /^(?:input|select|textarea|button|object)$/i,\n\trclickable = /^(?:a|area)$/i,\n\truseDefault = /^(?:checked|selected)$/i,\n\tgetSetAttribute = jQuery.support.getSetAttribute,\n\tgetSetInput = jQuery.support.input;\n\njQuery.fn.extend({\n\tattr: function( name, value ) {\n\t\treturn jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t});\n\t},\n\n\tprop: function( name, value ) {\n\t\treturn jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\tname = jQuery.propFix[ name ] || name;\n\t\treturn this.each(function() {\n\t\t\t// try/catch handles cases where IE balks (such as removing a property on window)\n\t\t\ttry {\n\t\t\t\tthis[ name ] = undefined;\n\t\t\t\tdelete this[ name ];\n\t\t\t} catch( e ) {}\n\t\t});\n\t},\n\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, clazz, j,\n\t\t\ti = 0,\n\t\t\tlen = this.length,\n\t\t\tproceed = typeof value === \"string\" && value;\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each(function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, this.className ) );\n\t\t\t});\n\t\t}\n\n\t\tif ( proceed ) {\n\t\t\t// The disjunction here is for better compressibility (see removeClass)\n\t\t\tclasses = ( value || \"\" ).match( core_rnotwhite ) || [];\n\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\telem = this[ i ];\n\t\t\t\tcur = elem.nodeType === 1 && ( elem.className ?\n\t\t\t\t\t( \" \" + elem.className + \" \" ).replace( rclass, \" \" ) :\n\t\t\t\t\t\" \"\n\t\t\t\t);\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (clazz = classes[j++]) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telem.className = jQuery.trim( cur );\n\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, clazz, j,\n\t\t\ti = 0,\n\t\t\tlen = this.length,\n\t\t\tproceed = arguments.length === 0 || typeof value === \"string\" && value;\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each(function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, this.className ) );\n\t\t\t});\n\t\t}\n\t\tif ( proceed ) {\n\t\t\tclasses = ( value || \"\" ).match( core_rnotwhite ) || [];\n\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\telem = this[ i ];\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( elem.className ?\n\t\t\t\t\t( \" \" + elem.className + \" \" ).replace( rclass, \" \" ) :\n\t\t\t\t\t\"\"\n\t\t\t\t);\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (clazz = classes[j++]) ) {\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) >= 0 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telem.className = value ? jQuery.trim( cur ) : \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value;\n\n\t\tif ( typeof stateVal === \"boolean\" && type === \"string\" ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each(function( i ) {\n\t\t\t\tjQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );\n\t\t\t});\n\t\t}\n\n\t\treturn this.each(function() {\n\t\t\tif ( type === \"string\" ) {\n\t\t\t\t// toggle individual class names\n\t\t\t\tvar className,\n\t\t\t\t\ti = 0,\n\t\t\t\t\tself = jQuery( this ),\n\t\t\t\t\tclassNames = value.match( core_rnotwhite ) || [];\n\n\t\t\t\twhile ( (className = classNames[ i++ ]) ) {\n\t\t\t\t\t// check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( type === core_strundefined || type === \"boolean\" ) {\n\t\t\t\tif ( this.className ) {\n\t\t\t\t\t// store className if set\n\t\t\t\t\tjQuery._data( this, \"__className__\", this.className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed \"false\",\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tthis.className = this.className || value === false ? \"\" : jQuery._data( this, \"__className__\" ) || \"\";\n\t\t\t}\n\t\t});\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className = \" \" + selector + \" \",\n\t\t\ti = 0,\n\t\t\tl = this.length;\n\t\tfor ( ; i < l; i++ ) {\n\t\t\tif ( this[i].nodeType === 1 && (\" \" + this[i].className + \" \").replace(rclass, \" \").indexOf( className ) >= 0 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t},\n\n\tval: function( value ) {\n\t\tvar ret, hooks, isFunction,\n\t\t\telem = this[0];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks && \"get\" in hooks && (ret = hooks.get( elem, \"value\" )) !== undefined ) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\treturn typeof ret === \"string\" ?\n\t\t\t\t\t// handle most common string cases\n\t\t\t\t\tret.replace(rreturn, \"\") :\n\t\t\t\t\t// handle cases where value is null/undef or number\n\t\t\t\t\tret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tisFunction = jQuery.isFunction( value );\n\n\t\treturn this.each(function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( isFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\t\t\t} else if ( jQuery.isArray( val ) ) {\n\t\t\t\tval = jQuery.map(val, function ( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t});\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !(\"set\" in hooks) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t});\n\t}\n});\n\njQuery.extend({\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\t\t\t\t// Use proper attribute retrieval(#6932, #12072)\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\t\t\t\t\telem.text;\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\" || index < 0,\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length,\n\t\t\t\t\ti = index < 0 ?\n\t\t\t\t\t\tmax :\n\t\t\t\t\t\tone ? index : 0;\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// oldIE doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t( jQuery.support.optDisabled ? !option.disabled : option.getAttribute(\"disabled\") === null ) &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\t\t\t\t\tif ( (option.selected = jQuery.inArray( jQuery(option).val(), values ) >= 0) ) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t},\n\n\tattr: function( elem, name, value ) {\n\t\tvar hooks, ret,\n\t\t\tnType = elem.nodeType;\n\n\t\t// don't get/set attributes on text, comment and attribute nodes\n\t\tif ( !elem || nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === core_strundefined ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// All attributes are lowercase\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\tname = name.toLowerCase();\n\t\t\thooks = jQuery.attrHooks[ name ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\n\t\t\t} else if ( hooks && \"set\" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {\n\t\t\t\treturn ret;\n\n\t\t\t} else {\n\t\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\t\treturn value;\n\t\t\t}\n\n\t\t} else if ( hooks && \"get\" in hooks && (ret = hooks.get( elem, name )) !== null ) {\n\t\t\treturn ret;\n\n\t\t} else {\n\t\t\tret = jQuery.find.attr( elem, name );\n\n\t\t\t// Non-existent attributes return null, we normalize to undefined\n\t\t\treturn ret == null ?\n\t\t\t\tundefined :\n\t\t\t\tret;\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name, propName,\n\t\t\ti = 0,\n\t\t\tattrNames = value && value.match( core_rnotwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( (name = attrNames[i++]) ) {\n\t\t\t\tpropName = jQuery.propFix[ name ] || name;\n\n\t\t\t\t// Boolean attributes get special treatment (#10870)\n\t\t\t\tif ( jQuery.expr.match.bool.test( name ) ) {\n\t\t\t\t\t// Set corresponding property to false\n\t\t\t\t\tif ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {\n\t\t\t\t\t\telem[ propName ] = false;\n\t\t\t\t\t// Support: IE<9\n\t\t\t\t\t// Also clear defaultChecked/defaultSelected (if appropriate)\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem[ jQuery.camelCase( \"default-\" + name ) ] =\n\t\t\t\t\t\t\telem[ propName ] = false;\n\t\t\t\t\t}\n\n\t\t\t\t// See #9699 for explanation of this approach (setting first, then removal)\n\t\t\t\t} else {\n\t\t\t\t\tjQuery.attr( elem, name, \"\" );\n\t\t\t\t}\n\n\t\t\t\telem.removeAttribute( getSetAttribute ? name : propName );\n\t\t\t}\n\t\t}\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !jQuery.support.radioValue && value === \"radio\" && jQuery.nodeName(elem, \"input\") ) {\n\t\t\t\t\t// Setting the type on a radio button after the value resets the value in IE6-9\n\t\t\t\t\t// Reset value to default in case type is set after value during creation\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t},\n\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks, notxml,\n\t\t\tnType = elem.nodeType;\n\n\t\t// don't get/set properties on text, comment and attribute nodes\n\t\tif ( !elem || nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tnotxml = nType !== 1 || !jQuery.isXMLDoc( elem );\n\n\t\tif ( notxml ) {\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\treturn hooks && \"set\" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ?\n\t\t\t\tret :\n\t\t\t\t( elem[ name ] = value );\n\n\t\t} else {\n\t\t\treturn hooks && \"get\" in hooks && (ret = hooks.get( elem, name )) !== null ?\n\t\t\t\tret :\n\t\t\t\telem[ name ];\n\t\t}\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\t\t\t\t// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set\n\t\t\t\t// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\treturn tabindex ?\n\t\t\t\t\tparseInt( tabindex, 10 ) :\n\t\t\t\t\trfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?\n\t\t\t\t\t\t0 :\n\t\t\t\t\t\t-1;\n\t\t\t}\n\t\t}\n\t}\n});\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {\n\t\t\t// IE<8 needs the *property* name\n\t\t\telem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name );\n\n\t\t// Use defaultChecked and defaultSelected for oldIE\n\t\t} else {\n\t\t\telem[ jQuery.camelCase( \"default-\" + name ) ] = elem[ name ] = true;\n\t\t}\n\n\t\treturn name;\n\t}\n};\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( i, name ) {\n\tvar getter = jQuery.expr.attrHandle[ name ] || jQuery.find.attr;\n\n\tjQuery.expr.attrHandle[ name ] = getSetInput && getSetAttribute || !ruseDefault.test( name ) ?\n\t\tfunction( elem, name, isXML ) {\n\t\t\tvar fn = jQuery.expr.attrHandle[ name ],\n\t\t\t\tret = isXML ?\n\t\t\t\t\tundefined :\n\t\t\t\t\t/* jshint eqeqeq: false */\n\t\t\t\t\t(jQuery.expr.attrHandle[ name ] = undefined) !=\n\t\t\t\t\t\tgetter( elem, name, isXML ) ?\n\n\t\t\t\t\t\tname.toLowerCase() :\n\t\t\t\t\t\tnull;\n\t\t\tjQuery.expr.attrHandle[ name ] = fn;\n\t\t\treturn ret;\n\t\t} :\n\t\tfunction( elem, name, isXML ) {\n\t\t\treturn isXML ?\n\t\t\t\tundefined :\n\t\t\t\telem[ jQuery.camelCase( \"default-\" + name ) ] ?\n\t\t\t\t\tname.toLowerCase() :\n\t\t\t\t\tnull;\n\t\t};\n});\n\n// fix oldIE attroperties\nif ( !getSetInput || !getSetAttribute ) {\n\tjQuery.attrHooks.value = {\n\t\tset: function( elem, value, name ) {\n\t\t\tif ( jQuery.nodeName( elem, \"input\" ) ) {\n\t\t\t\t// Does not return so that setAttribute is also used\n\t\t\t\telem.defaultValue = value;\n\t\t\t} else {\n\t\t\t\t// Use nodeHook if defined (#1954); otherwise setAttribute is fine\n\t\t\t\treturn nodeHook && nodeHook.set( elem, value, name );\n\t\t\t}\n\t\t}\n\t};\n}\n\n// IE6/7 do not support getting/setting some attributes with get/setAttribute\nif ( !getSetAttribute ) {\n\n\t// Use this for any attribute in IE6/7\n\t// This fixes almost every IE6/7 issue\n\tnodeHook = {\n\t\tset: function( elem, value, name ) {\n\t\t\t// Set the existing or create a new attribute node\n\t\t\tvar ret = elem.getAttributeNode( name );\n\t\t\tif ( !ret ) {\n\t\t\t\telem.setAttributeNode(\n\t\t\t\t\t(ret = elem.ownerDocument.createAttribute( name ))\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tret.value = value += \"\";\n\n\t\t\t// Break association with cloned elements by also using setAttribute (#9646)\n\t\t\treturn name === \"value\" || value === elem.getAttribute( name ) ?\n\t\t\t\tvalue :\n\t\t\t\tundefined;\n\t\t}\n\t};\n\tjQuery.expr.attrHandle.id = jQuery.expr.attrHandle.name = jQuery.expr.attrHandle.coords =\n\t\t// Some attributes are constructed with empty-string values when not defined\n\t\tfunction( elem, name, isXML ) {\n\t\t\tvar ret;\n\t\t\treturn isXML ?\n\t\t\t\tundefined :\n\t\t\t\t(ret = elem.getAttributeNode( name )) && ret.value !== \"\" ?\n\t\t\t\t\tret.value :\n\t\t\t\t\tnull;\n\t\t};\n\tjQuery.valHooks.button = {\n\t\tget: function( elem, name ) {\n\t\t\tvar ret = elem.getAttributeNode( name );\n\t\t\treturn ret && ret.specified ?\n\t\t\t\tret.value :\n\t\t\t\tundefined;\n\t\t},\n\t\tset: nodeHook.set\n\t};\n\n\t// Set contenteditable to false on removals(#10429)\n\t// Setting to empty string throws an error as an invalid value\n\tjQuery.attrHooks.contenteditable = {\n\t\tset: function( elem, value, name ) {\n\t\t\tnodeHook.set( elem, value === \"\" ? false : value, name );\n\t\t}\n\t};\n\n\t// Set width and height to auto instead of 0 on empty string( Bug #8150 )\n\t// This is for removals\n\tjQuery.each([ \"width\", \"height\" ], function( i, name ) {\n\t\tjQuery.attrHooks[ name ] = {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( value === \"\" ) {\n\t\t\t\t\telem.setAttribute( name, \"auto\" );\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t});\n}\n\n\n// Some attributes require a special call on IE\n// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !jQuery.support.hrefNormalized ) {\n\t// href/src property should get the full normalized URL (#10299/#12915)\n\tjQuery.each([ \"href\", \"src\" ], function( i, name ) {\n\t\tjQuery.propHooks[ name ] = {\n\t\t\tget: function( elem ) {\n\t\t\t\treturn elem.getAttribute( name, 4 );\n\t\t\t}\n\t\t};\n\t});\n}\n\nif ( !jQuery.support.style ) {\n\tjQuery.attrHooks.style = {\n\t\tget: function( elem ) {\n\t\t\t// Return undefined in the case of empty string\n\t\t\t// Note: IE uppercases css property names, but if we were to .toLowerCase()\n\t\t\t// .cssText, that would destroy case senstitivity in URL's, like in \"background\"\n\t\t\treturn elem.style.cssText || undefined;\n\t\t},\n\t\tset: function( elem, value ) {\n\t\t\treturn ( elem.style.cssText = value + \"\" );\n\t\t}\n\t};\n}\n\n// Safari mis-reports the default selected property of an option\n// Accessing the parent's selectedIndex property fixes it\nif ( !jQuery.support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\t\t\tvar parent = elem.parentNode;\n\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\t// Make sure that it also works with optgroups, see #5701\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t};\n}\n\njQuery.each([\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n});\n\n// IE6/7 call enctype encoding\nif ( !jQuery.support.enctype ) {\n\tjQuery.propFix.enctype = \"encoding\";\n}\n\n// Radios and checkboxes getter/setter\njQuery.each([ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( jQuery.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !jQuery.support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\t// Support: Webkit\n\t\t\t// \"\" is returned instead of \"on\" if a value isn't specified\n\t\t\treturn elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\n\t\t};\n\t}\n});\nvar rformElems = /^(?:input|select|textarea)$/i,\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|contextmenu)|click/,\n\trfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)$/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\t\tvar tmp, events, t, handleObjIn,\n\t\t\tspecial, eventHandle, handleObj,\n\t\t\thandlers, type, namespaces, origType,\n\t\t\telemData = jQuery._data( elem );\n\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !(events = elemData.events) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !(eventHandle = elemData.handle) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== core_strundefined && (!e || jQuery.event.triggered !== e.type) ?\n\t\t\t\t\tjQuery.event.dispatch.apply( eventHandle.elem, arguments ) :\n\t\t\t\t\tundefined;\n\t\t\t};\n\t\t\t// Add elem as a property of the handle fn to prevent a memory leak with IE non-native events\n\t\t\teventHandle.elem = elem;\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( core_rnotwhite ) || [\"\"];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend({\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join(\".\")\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !(handlers = events[ type ]) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener/attachEvent if the special events handler returns false\n\t\t\t\tif ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\t\t\t\t\t// Bind the global event handler to the element\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle, false );\n\n\t\t\t\t\t} else if ( elem.attachEvent ) {\n\t\t\t\t\t\telem.attachEvent( \"on\" + type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t\t// Nullify elem to prevent memory leaks in IE\n\t\telem = null;\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\t\tvar j, handleObj, tmp,\n\t\t\torigCount, t, events,\n\t\t\tspecial, handlers, type,\n\t\t\tnamespaces, origType,\n\t\t\telemData = jQuery.hasData( elem ) && jQuery._data( elem );\n\n\t\tif ( !elemData || !(events = elemData.events) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( core_rnotwhite ) || [\"\"];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[2] && new RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdelete elemData.handle;\n\n\t\t\t// removeData also checks for emptiness and clears the expando if empty\n\t\t\t// so use it instead of delete\n\t\t\tjQuery._removeData( elem, \"events\" );\n\t\t}\n\t},\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\t\tvar handle, ontype, cur,\n\t\t\tbubbleType, special, tmp, i,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = core_hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = core_hasOwn.call( event, \"namespace\" ) ? event.namespace.split(\".\") : [];\n\n\t\tcur = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf(\".\") >= 0 ) {\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split(\".\");\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf(\":\") < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join(\".\");\n\t\tevent.namespace_re = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === (elem.ownerDocument || document) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {\n\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( jQuery._data( cur, \"events\" ) || {} )[ event.type ] && jQuery._data( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && jQuery.acceptData( cur ) && handle.apply && handle.apply( cur, data ) === false ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) &&\n\t\t\t\tjQuery.acceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name name as the event.\n\t\t\t\t// Can't use an .isFunction() check here because IE6/7 fails that test.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\t\t\t\t\ttry {\n\t\t\t\t\t\telem[ type ]();\n\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t// IE<9 dies on focus/blur to hidden element (#1486,#12518)\n\t\t\t\t\t\t// only reproducible on winXP IE8 native, not IE9 in IE8 mode\n\t\t\t\t\t}\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\tdispatch: function( event ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tevent = jQuery.event.fix( event );\n\n\t\tvar i, ret, handleObj, matched, j,\n\t\t\thandlerQueue = [],\n\t\t\targs = core_slice.call( arguments ),\n\t\t\thandlers = ( jQuery._data( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[0] = event;\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// Triggered event must either 1) have no namespace, or\n\t\t\t\t// 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\tif ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )\n\t\t\t\t\t\t\t.apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( (event.result = ret) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar sel, handleObj, matches, i,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\t// Black-hole SVG instance trees (#13180)\n\t\t// Avoid non-left-click bubbling in Firefox (#3861)\n\t\tif ( delegateCount && cur.nodeType && (!event.button || event.type !== \"click\") ) {\n\n\t\t\t/* jshint eqeqeq: false */\n\t\t\tfor ( ; cur != this; cur = cur.parentNode || this ) {\n\t\t\t\t/* jshint eqeqeq: true */\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== \"click\") ) {\n\t\t\t\t\tmatches = [];\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matches[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatches[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) >= 0 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matches[ sel ] ) {\n\t\t\t\t\t\t\tmatches.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matches.length ) {\n\t\t\t\t\t\thandlerQueue.push({ elem: cur, handlers: matches });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) });\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\tfix: function( event ) {\n\t\tif ( event[ jQuery.expando ] ) {\n\t\t\treturn event;\n\t\t}\n\n\t\t// Create a writable copy of the event object and normalize some properties\n\t\tvar i, prop, copy,\n\t\t\ttype = event.type,\n\t\t\toriginalEvent = event,\n\t\t\tfixHook = this.fixHooks[ type ];\n\n\t\tif ( !fixHook ) {\n\t\t\tthis.fixHooks[ type ] = fixHook =\n\t\t\t\trmouseEvent.test( type ) ? this.mouseHooks :\n\t\t\t\trkeyEvent.test( type ) ? this.keyHooks :\n\t\t\t\t{};\n\t\t}\n\t\tcopy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;\n\n\t\tevent = new jQuery.Event( originalEvent );\n\n\t\ti = copy.length;\n\t\twhile ( i-- ) {\n\t\t\tprop = copy[ i ];\n\t\t\tevent[ prop ] = originalEvent[ prop ];\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// Fix target property (#1925)\n\t\tif ( !event.target ) {\n\t\t\tevent.target = originalEvent.srcElement || document;\n\t\t}\n\n\t\t// Support: Chrome 23+, Safari?\n\t\t// Target should not be a text node (#504, #13143)\n\t\tif ( event.target.nodeType === 3 ) {\n\t\t\tevent.target = event.target.parentNode;\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// For mouse/key events, metaKey==false if it's undefined (#3368, #11328)\n\t\tevent.metaKey = !!event.metaKey;\n\n\t\treturn fixHook.filter ? fixHook.filter( event, originalEvent ) : event;\n\t},\n\n\t// Includes some event props shared by KeyEvent and MouseEvent\n\tprops: \"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which\".split(\" \"),\n\n\tfixHooks: {},\n\n\tkeyHooks: {\n\t\tprops: \"char charCode key keyCode\".split(\" \"),\n\t\tfilter: function( event, original ) {\n\n\t\t\t// Add which for key events\n\t\t\tif ( event.which == null ) {\n\t\t\t\tevent.which = original.charCode != null ? original.charCode : original.keyCode;\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tmouseHooks: {\n\t\tprops: \"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement\".split(\" \"),\n\t\tfilter: function( event, original ) {\n\t\t\tvar body, eventDoc, doc,\n\t\t\t\tbutton = original.button,\n\t\t\t\tfromElement = original.fromElement;\n\n\t\t\t// Calculate pageX/Y if missing and clientX/Y available\n\t\t\tif ( event.pageX == null && original.clientX != null ) {\n\t\t\t\teventDoc = event.target.ownerDocument || document;\n\t\t\t\tdoc = eventDoc.documentElement;\n\t\t\t\tbody = eventDoc.body;\n\n\t\t\t\tevent.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );\n\t\t\t\tevent.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 );\n\t\t\t}\n\n\t\t\t// Add relatedTarget, if necessary\n\t\t\tif ( !event.relatedTarget && fromElement ) {\n\t\t\t\tevent.relatedTarget = fromElement === event.target ? original.toElement : fromElement;\n\t\t\t}\n\n\t\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\t\t// Note: button is not normalized, so don't use it\n\t\t\tif ( !event.which && button !== undefined ) {\n\t\t\t\tevent.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tspecial: {\n\t\tload: {\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tfocus: {\n\t\t\t// Fire native event if possible so blur/focus sequence is correct\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this !== safeActiveElement() && this.focus ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis.focus();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t// Support: IE<9\n\t\t\t\t\t\t// If we error on focus to hidden element (#1486, #12518),\n\t\t\t\t\t\t// let .trigger() run the handlers\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusin\"\n\t\t},\n\t\tblur: {\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this === safeActiveElement() && this.blur ) {\n\t\t\t\t\tthis.blur();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusout\"\n\t\t},\n\t\tclick: {\n\t\t\t// For checkbox, fire native event so checked state will be right\n\t\t\ttrigger: function() {\n\t\t\t\tif ( jQuery.nodeName( this, \"input\" ) && this.type === \"checkbox\" && this.click ) {\n\t\t\t\t\tthis.click();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, don't fire native .click() on links\n\t\t\t_default: function( event ) {\n\t\t\t\treturn jQuery.nodeName( event.target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Even when returnValue equals to undefined Firefox will still show alert\n\t\t\t\tif ( event.result !== undefined ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tsimulate: function( type, elem, event, bubble ) {\n\t\t// Piggyback on a donor event to simulate a different one.\n\t\t// Fake originalEvent to avoid donor's stopPropagation, but if the\n\t\t// simulated event prevents default then we do the same on the donor.\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true,\n\t\t\t\toriginalEvent: {}\n\t\t\t}\n\t\t);\n\t\tif ( bubble ) {\n\t\t\tjQuery.event.trigger( e, null, elem );\n\t\t} else {\n\t\t\tjQuery.event.dispatch.call( elem, e );\n\t\t}\n\t\tif ( e.isDefaultPrevented() ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n};\n\njQuery.removeEvent = document.removeEventListener ?\n\tfunction( elem, type, handle ) {\n\t\tif ( elem.removeEventListener ) {\n\t\t\telem.removeEventListener( type, handle, false );\n\t\t}\n\t} :\n\tfunction( elem, type, handle ) {\n\t\tvar name = \"on\" + type;\n\n\t\tif ( elem.detachEvent ) {\n\n\t\t\t// #8545, #7054, preventing memory leaks for custom events in IE6-8\n\t\t\t// detachEvent needed property on element, by name of that event, to properly expose it to GC\n\t\t\tif ( typeof elem[ name ] === core_strundefined ) {\n\t\t\t\telem[ name ] = null;\n\t\t\t}\n\n\t\t\telem.detachEvent( name, handle );\n\t\t}\n\t};\n\njQuery.Event = function( src, props ) {\n\t// Allow instantiation without the 'new' keyword\n\tif ( !(this instanceof jQuery.Event) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false ||\n\t\t\tsrc.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || jQuery.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\t\tif ( !e ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If preventDefault exists, run it on the original event\n\t\tif ( e.preventDefault ) {\n\t\t\te.preventDefault();\n\n\t\t// Support: IE\n\t\t// Otherwise set the returnValue property of the original event to false\n\t\t} else {\n\t\t\te.returnValue = false;\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\t\tif ( !e ) {\n\t\t\treturn;\n\t\t}\n\t\t// If stopPropagation exists, run it on the original event\n\t\tif ( e.stopPropagation ) {\n\t\t\te.stopPropagation();\n\t\t}\n\n\t\t// Support: IE\n\t\t// Set the cancelBubble property of the original event to true\n\t\te.cancelBubble = true;\n\t},\n\tstopImmediatePropagation: function() {\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\njQuery.each({\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mousenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || (related !== target && !jQuery.contains( target, related )) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n});\n\n// IE submit delegation\nif ( !jQuery.support.submitBubbles ) {\n\n\tjQuery.event.special.submit = {\n\t\tsetup: function() {\n\t\t\t// Only need this for delegated form submit events\n\t\t\tif ( jQuery.nodeName( this, \"form\" ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Lazy-add a submit handler when a descendant form may potentially be submitted\n\t\t\tjQuery.event.add( this, \"click._submit keypress._submit\", function( e ) {\n\t\t\t\t// Node name check avoids a VML-related crash in IE (#9807)\n\t\t\t\tvar elem = e.target,\n\t\t\t\t\tform = jQuery.nodeName( elem, \"input\" ) || jQuery.nodeName( elem, \"button\" ) ? elem.form : undefined;\n\t\t\t\tif ( form && !jQuery._data( form, \"submitBubbles\" ) ) {\n\t\t\t\t\tjQuery.event.add( form, \"submit._submit\", function( event ) {\n\t\t\t\t\t\tevent._submit_bubble = true;\n\t\t\t\t\t});\n\t\t\t\t\tjQuery._data( form, \"submitBubbles\", true );\n\t\t\t\t}\n\t\t\t});\n\t\t\t// return undefined since we don't need an event listener\n\t\t},\n\n\t\tpostDispatch: function( event ) {\n\t\t\t// If form was submitted by the user, bubble the event up the tree\n\t\t\tif ( event._submit_bubble ) {\n\t\t\t\tdelete event._submit_bubble;\n\t\t\t\tif ( this.parentNode && !event.isTrigger ) {\n\t\t\t\t\tjQuery.event.simulate( \"submit\", this.parentNode, event, true );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tteardown: function() {\n\t\t\t// Only need this for delegated form submit events\n\t\t\tif ( jQuery.nodeName( this, \"form\" ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Remove delegated handlers; cleanData eventually reaps submit handlers attached above\n\t\t\tjQuery.event.remove( this, \"._submit\" );\n\t\t}\n\t};\n}\n\n// IE change delegation and checkbox/radio fix\nif ( !jQuery.support.changeBubbles ) {\n\n\tjQuery.event.special.change = {\n\n\t\tsetup: function() {\n\n\t\t\tif ( rformElems.test( this.nodeName ) ) {\n\t\t\t\t// IE doesn't fire change on a check/radio until blur; trigger it on click\n\t\t\t\t// after a propertychange. Eat the blur-change in special.change.handle.\n\t\t\t\t// This still fires onchange a second time for check/radio after blur.\n\t\t\t\tif ( this.type === \"checkbox\" || this.type === \"radio\" ) {\n\t\t\t\t\tjQuery.event.add( this, \"propertychange._change\", function( event ) {\n\t\t\t\t\t\tif ( event.originalEvent.propertyName === \"checked\" ) {\n\t\t\t\t\t\t\tthis._just_changed = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tjQuery.event.add( this, \"click._change\", function( event ) {\n\t\t\t\t\t\tif ( this._just_changed && !event.isTrigger ) {\n\t\t\t\t\t\t\tthis._just_changed = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Allow triggered, simulated change events (#11500)\n\t\t\t\t\t\tjQuery.event.simulate( \"change\", this, event, true );\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Delegated event; lazy-add a change handler on descendant inputs\n\t\t\tjQuery.event.add( this, \"beforeactivate._change\", function( e ) {\n\t\t\t\tvar elem = e.target;\n\n\t\t\t\tif ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, \"changeBubbles\" ) ) {\n\t\t\t\t\tjQuery.event.add( elem, \"change._change\", function( event ) {\n\t\t\t\t\t\tif ( this.parentNode && !event.isSimulated && !event.isTrigger ) {\n\t\t\t\t\t\t\tjQuery.event.simulate( \"change\", this.parentNode, event, true );\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tjQuery._data( elem, \"changeBubbles\", true );\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\thandle: function( event ) {\n\t\t\tvar elem = event.target;\n\n\t\t\t// Swallow native change events from checkbox/radio, we already triggered them above\n\t\t\tif ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== \"radio\" && elem.type !== \"checkbox\") ) {\n\t\t\t\treturn event.handleObj.handler.apply( this, arguments );\n\t\t\t}\n\t\t},\n\n\t\tteardown: function() {\n\t\t\tjQuery.event.remove( this, \"._change\" );\n\n\t\t\treturn !rformElems.test( this.nodeName );\n\t\t}\n\t};\n}\n\n// Create \"bubbling\" focus and blur events\nif ( !jQuery.support.focusinBubbles ) {\n\tjQuery.each({ focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler while someone wants focusin/focusout\n\t\tvar attaches = 0,\n\t\t\thandler = function( event ) {\n\t\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );\n\t\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\t\t\t\tif ( attaches++ === 0 ) {\n\t\t\t\t\tdocument.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tif ( --attaches === 0 ) {\n\t\t\t\t\tdocument.removeEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t});\n}\n\njQuery.fn.extend({\n\n\ton: function( types, selector, data, fn, /*INTERNAL*/ one ) {\n\t\tvar type, origFn;\n\n\t\t// Types can be a map of types/handlers\n\t\tif ( typeof types === \"object\" ) {\n\t\t\t// ( types-Object, selector, data )\n\t\t\tif ( typeof selector !== \"string\" ) {\n\t\t\t\t// ( types-Object, data )\n\t\t\t\tdata = data || selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.on( type, selector, data, types[ type ], one );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( data == null && fn == null ) {\n\t\t\t// ( types, fn )\n\t\t\tfn = selector;\n\t\t\tdata = selector = undefined;\n\t\t} else if ( fn == null ) {\n\t\t\tif ( typeof selector === \"string\" ) {\n\t\t\t\t// ( types, selector, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = undefined;\n\t\t\t} else {\n\t\t\t\t// ( types, data, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t} else if ( !fn ) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( one === 1 ) {\n\t\t\torigFn = fn;\n\t\t\tfn = function( event ) {\n\t\t\t\t// Can use an empty set, since event contains the info\n\t\t\t\tjQuery().off( event );\n\t\t\t\treturn origFn.apply( this, arguments );\n\t\t\t};\n\t\t\t// Use same guid so caller can remove using origFn\n\t\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.add( this, types, fn, data, selector );\n\t\t});\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn this.on( types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each(function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t});\n\t},\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t});\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[0];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n});\nvar isSimple = /^.[^:#\\[\\.,]*$/,\n\trparentsprev = /^(?:parents|prev(?:Until|All))/,\n\trneedsContext = jQuery.expr.match.needsContext,\n\t// methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend({\n\tfind: function( selector ) {\n\t\tvar i,\n\t\t\tret = [],\n\t\t\tself = this,\n\t\t\tlen = self.length;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter(function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}) );\n\t\t}\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\t// Needed because $( selector, context ) becomes $( context ).find( selector )\n\t\tret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );\n\t\tret.selector = this.selector ? this.selector + \" \" + selector : selector;\n\t\treturn ret;\n\t},\n\n\thas: function( target ) {\n\t\tvar i,\n\t\t\ttargets = jQuery( target, this ),\n\t\t\tlen = targets.length;\n\n\t\treturn this.filter(function() {\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[i] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector || [], true) );\n\t},\n\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector || [], false) );\n\t},\n\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tret = [],\n\t\t\tpos = rneedsContext.test( selectors ) || typeof selectors !== \"string\" ?\n\t\t\t\tjQuery( selectors, context || this.context ) :\n\t\t\t\t0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\tfor ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) {\n\t\t\t\t// Always skip document fragments\n\t\t\t\tif ( cur.nodeType < 11 && (pos ?\n\t\t\t\t\tpos.index(cur) > -1 :\n\n\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\tjQuery.find.matchesSelector(cur, selectors)) ) {\n\n\t\t\t\t\tcur = ret.push( cur );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( ret.length > 1 ? jQuery.unique( ret ) : ret );\n\t},\n\n\t// Determine the position of an element within\n\t// the matched set of elements\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn jQuery.inArray( this[0], jQuery( elem ) );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn jQuery.inArray(\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[0] : elem, this );\n\t},\n\n\tadd: function( selector, context ) {\n\t\tvar set = typeof selector === \"string\" ?\n\t\t\t\tjQuery( selector, context ) :\n\t\t\t\tjQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ),\n\t\t\tall = jQuery.merge( this.get(), set );\n\n\t\treturn this.pushStack( jQuery.unique(all) );\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter(selector)\n\t\t);\n\t}\n});\n\nfunction sibling( cur, dir ) {\n\tdo {\n\t\tcur = cur[ dir ];\n\t} while ( cur && cur.nodeType !== 1 );\n\n\treturn cur;\n}\n\njQuery.each({\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn jQuery.dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn jQuery.dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn jQuery.dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn jQuery.sibling( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\treturn jQuery.nodeName( elem, \"iframe\" ) ?\n\t\t\telem.contentDocument || elem.contentWindow.document :\n\t\t\tjQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar ret = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tret = jQuery.filter( selector, ret );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tret = jQuery.unique( ret );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tret = ret.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n});\n\njQuery.extend({\n\tfilter: function( expr, elems, not ) {\n\t\tvar elem = elems[ 0 ];\n\n\t\tif ( not ) {\n\t\t\texpr = \":not(\" + expr + \")\";\n\t\t}\n\n\t\treturn elems.length === 1 && elem.nodeType === 1 ?\n\t\t\tjQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :\n\t\t\tjQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\t\t\treturn elem.nodeType === 1;\n\t\t\t}));\n\t},\n\n\tdir: function( elem, dir, until ) {\n\t\tvar matched = [],\n\t\t\tcur = elem[ dir ];\n\n\t\twhile ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {\n\t\t\tif ( cur.nodeType === 1 ) {\n\t\t\t\tmatched.push( cur );\n\t\t\t}\n\t\t\tcur = cur[dir];\n\t\t}\n\t\treturn matched;\n\t},\n\n\tsibling: function( n, elem ) {\n\t\tvar r = [];\n\n\t\tfor ( ; n; n = n.nextSibling ) {\n\t\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\t\tr.push( n );\n\t\t\t}\n\t\t}\n\n\t\treturn r;\n\t}\n});\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( jQuery.isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\t/* jshint -W018 */\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t});\n\n\t}\n\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t});\n\n\t}\n\n\tif ( typeof qualifier === \"string\" ) {\n\t\tif ( isSimple.test( qualifier ) ) {\n\t\t\treturn jQuery.filter( qualifier, elements, not );\n\t\t}\n\n\t\tqualifier = jQuery.filter( qualifier, elements );\n\t}\n\n\treturn jQuery.grep( elements, function( elem ) {\n\t\treturn ( jQuery.inArray( elem, qualifier ) >= 0 ) !== not;\n\t});\n}\nfunction createSafeFragment( document ) {\n\tvar list = nodeNames.split( \"|\" ),\n\t\tsafeFrag = document.createDocumentFragment();\n\n\tif ( safeFrag.createElement ) {\n\t\twhile ( list.length ) {\n\t\t\tsafeFrag.createElement(\n\t\t\t\tlist.pop()\n\t\t\t);\n\t\t}\n\t}\n\treturn safeFrag;\n}\n\nvar nodeNames = \"abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|\" +\n\t\t\"header|hgroup|mark|meter|nav|output|progress|section|summary|time|video\",\n\trinlinejQuery = / jQuery\\d+=\"(?:null|\\d+)\"/g,\n\trnoshimcache = new RegExp(\"<(?:\" + nodeNames + \")[\\\\s/>]\", \"i\"),\n\trleadingWhitespace = /^\\s+/,\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/gi,\n\trtagName = /<([\\w:]+)/,\n\trtbody = /\\s*$/g,\n\n\t// We have to close these tags to support XHTML (#13200)\n\twrapMap = {\n\t\toption: [ 1, \"\" ],\n\t\tlegend: [ 1, \"
\", \"
\" ],\n\t\tarea: [ 1, \"\", \"\" ],\n\t\tparam: [ 1, \"\", \"\" ],\n\t\tthead: [ 1, \"\", \"
\" ],\n\t\ttr: [ 2, \"\", \"
\" ],\n\t\tcol: [ 2, \"\", \"
\" ],\n\t\ttd: [ 3, \"\", \"
\" ],\n\n\t\t// IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags,\n\t\t// unless wrapped in a div with non-breaking characters in front of it.\n\t\t_default: jQuery.support.htmlSerialize ? [ 0, \"\", \"\" ] : [ 1, \"X
\", \"
\" ]\n\t},\n\tsafeFragment = createSafeFragment( document ),\n\tfragmentDiv = safeFragment.appendChild( document.createElement(\"div\") );\n\nwrapMap.optgroup = wrapMap.option;\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\njQuery.fn.extend({\n\ttext: function( value ) {\n\t\treturn jQuery.access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t});\n\t},\n\n\tprepend: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t});\n\t},\n\n\tbefore: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t});\n\t},\n\n\tafter: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t});\n\t},\n\n\t// keepData is for internal use only--do not document\n\tremove: function( selector, keepData ) {\n\t\tvar elem,\n\t\t\telems = selector ? jQuery.filter( selector, this ) : this,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\n\t\t\tif ( !keepData && elem.nodeType === 1 ) {\n\t\t\t\tjQuery.cleanData( getAll( elem ) );\n\t\t\t}\n\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\tif ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\t\t\t\tsetGlobalEval( getAll( elem, \"script\" ) );\n\t\t\t\t}\n\t\t\t\telem.parentNode.removeChild( elem );\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = this[i]) != null; i++ ) {\n\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t}\n\n\t\t\t// Remove any remaining nodes\n\t\t\twhile ( elem.firstChild ) {\n\t\t\t\telem.removeChild( elem.firstChild );\n\t\t\t}\n\n\t\t\t// If this is a select, ensure that it displays empty (#12336)\n\t\t\t// Support: IE<9\n\t\t\tif ( elem.options && jQuery.nodeName( elem, \"select\" ) ) {\n\t\t\t\telem.options.length = 0;\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function () {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t});\n\t},\n\n\thtml: function( value ) {\n\t\treturn jQuery.access( this, function( value ) {\n\t\t\tvar elem = this[0] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined ) {\n\t\t\t\treturn elem.nodeType === 1 ?\n\t\t\t\t\telem.innerHTML.replace( rinlinejQuery, \"\" ) :\n\t\t\t\t\tundefined;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t( jQuery.support.htmlSerialize || !rnoshimcache.test( value ) ) &&\n\t\t\t\t( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [\"\", \"\"] )[1].toLowerCase() ] ) {\n\n\t\t\t\tvalue = value.replace( rxhtmlTag, \"<$1>\" );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor (; i < l; i++ ) {\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\telem = this[i] || {};\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch(e) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar\n\t\t\t// Snapshot the DOM in case .domManip sweeps something relevant into its fragment\n\t\t\targs = jQuery.map( this, function( elem ) {\n\t\t\t\treturn [ elem.nextSibling, elem.parentNode ];\n\t\t\t}),\n\t\t\ti = 0;\n\n\t\t// Make the changes, replacing each context element with the new content\n\t\tthis.domManip( arguments, function( elem ) {\n\t\t\tvar next = args[ i++ ],\n\t\t\t\tparent = args[ i++ ];\n\n\t\t\tif ( parent ) {\n\t\t\t\t// Don't use the snapshot next if it has moved (#13810)\n\t\t\t\tif ( next && next.parentNode !== parent ) {\n\t\t\t\t\tnext = this.nextSibling;\n\t\t\t\t}\n\t\t\t\tjQuery( this ).remove();\n\t\t\t\tparent.insertBefore( elem, next );\n\t\t\t}\n\t\t// Allow new content to include elements from the context set\n\t\t}, true );\n\n\t\t// Force removal if there was no new content (e.g., from empty arguments)\n\t\treturn i ? this : this.remove();\n\t},\n\n\tdetach: function( selector ) {\n\t\treturn this.remove( selector, true );\n\t},\n\n\tdomManip: function( args, callback, allowIntersection ) {\n\n\t\t// Flatten any nested arrays\n\t\targs = core_concat.apply( [], args );\n\n\t\tvar first, node, hasScripts,\n\t\t\tscripts, doc, fragment,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tset = this,\n\t\t\tiNoClone = l - 1,\n\t\t\tvalue = args[0],\n\t\t\tisFunction = jQuery.isFunction( value );\n\n\t\t// We can't cloneNode fragments that contain checked, in WebKit\n\t\tif ( isFunction || !( l <= 1 || typeof value !== \"string\" || jQuery.support.checkClone || !rchecked.test( value ) ) ) {\n\t\t\treturn this.each(function( index ) {\n\t\t\t\tvar self = set.eq( index );\n\t\t\t\tif ( isFunction ) {\n\t\t\t\t\targs[0] = value.call( this, index, self.html() );\n\t\t\t\t}\n\t\t\t\tself.domManip( args, callback, allowIntersection );\n\t\t\t});\n\t\t}\n\n\t\tif ( l ) {\n\t\t\tfragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, !allowIntersection && this );\n\t\t\tfirst = fragment.firstChild;\n\n\t\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\t\tfragment = first;\n\t\t\t}\n\n\t\t\tif ( first ) {\n\t\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\t\thasScripts = scripts.length;\n\n\t\t\t\t// Use the original fragment for the last item instead of the first because it can end up\n\t\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\tnode = fragment;\n\n\t\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\t\tif ( hasScripts ) {\n\t\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcallback.call( this[i], node, i );\n\t\t\t\t}\n\n\t\t\t\tif ( hasScripts ) {\n\t\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t\t// Reenable scripts\n\t\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t\t!jQuery._data( node, \"globalEval\" ) && jQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\t\tif ( node.src ) {\n\t\t\t\t\t\t\t\t// Hope ajax is available...\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.globalEval( ( node.text || node.textContent || node.innerHTML || \"\" ).replace( rcleanScript, \"\" ) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Fix #11809: Avoid leaking memory\n\t\t\t\tfragment = first = null;\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n});\n\n// Support: IE<8\n// Manipulating tables requires a tbody\nfunction manipulationTarget( elem, content ) {\n\treturn jQuery.nodeName( elem, \"table\" ) &&\n\t\tjQuery.nodeName( content.nodeType === 1 ? content : content.firstChild, \"tr\" ) ?\n\n\t\telem.getElementsByTagName(\"tbody\")[0] ||\n\t\t\telem.appendChild( elem.ownerDocument.createElement(\"tbody\") ) :\n\t\telem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = (jQuery.find.attr( elem, \"type\" ) !== null) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tvar match = rscriptTypeMasked.exec( elem.type );\n\tif ( match ) {\n\t\telem.type = match[1];\n\t} else {\n\t\telem.removeAttribute(\"type\");\n\t}\n\treturn elem;\n}\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar elem,\n\t\ti = 0;\n\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\t\tjQuery._data( elem, \"globalEval\", !refElements || jQuery._data( refElements[i], \"globalEval\" ) );\n\t}\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\n\tif ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {\n\t\treturn;\n\t}\n\n\tvar type, i, l,\n\t\toldData = jQuery._data( src ),\n\t\tcurData = jQuery._data( dest, oldData ),\n\t\tevents = oldData.events;\n\n\tif ( events ) {\n\t\tdelete curData.handle;\n\t\tcurData.events = {};\n\n\t\tfor ( type in events ) {\n\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t}\n\t\t}\n\t}\n\n\t// make the cloned public data object a copy from the original\n\tif ( curData.data ) {\n\t\tcurData.data = jQuery.extend( {}, curData.data );\n\t}\n}\n\nfunction fixCloneNodeIssues( src, dest ) {\n\tvar nodeName, e, data;\n\n\t// We do not need to do anything for non-Elements\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\tnodeName = dest.nodeName.toLowerCase();\n\n\t// IE6-8 copies events bound via attachEvent when using cloneNode.\n\tif ( !jQuery.support.noCloneEvent && dest[ jQuery.expando ] ) {\n\t\tdata = jQuery._data( dest );\n\n\t\tfor ( e in data.events ) {\n\t\t\tjQuery.removeEvent( dest, e, data.handle );\n\t\t}\n\n\t\t// Event data gets referenced instead of copied if the expando gets copied too\n\t\tdest.removeAttribute( jQuery.expando );\n\t}\n\n\t// IE blanks contents when cloning scripts, and tries to evaluate newly-set text\n\tif ( nodeName === \"script\" && dest.text !== src.text ) {\n\t\tdisableScript( dest ).text = src.text;\n\t\trestoreScript( dest );\n\n\t// IE6-10 improperly clones children of object elements using classid.\n\t// IE10 throws NoModificationAllowedError if parent is null, #12132.\n\t} else if ( nodeName === \"object\" ) {\n\t\tif ( dest.parentNode ) {\n\t\t\tdest.outerHTML = src.outerHTML;\n\t\t}\n\n\t\t// This path appears unavoidable for IE9. When cloning an object\n\t\t// element in IE9, the outerHTML strategy above is not sufficient.\n\t\t// If the src has innerHTML and the destination does not,\n\t\t// copy the src.innerHTML into the dest.innerHTML. #10324\n\t\tif ( jQuery.support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) {\n\t\t\tdest.innerHTML = src.innerHTML;\n\t\t}\n\n\t} else if ( nodeName === \"input\" && manipulation_rcheckableType.test( src.type ) ) {\n\t\t// IE6-8 fails to persist the checked state of a cloned checkbox\n\t\t// or radio button. Worse, IE6-7 fail to give the cloned element\n\t\t// a checked appearance if the defaultChecked value isn't also set\n\n\t\tdest.defaultChecked = dest.checked = src.checked;\n\n\t\t// IE6-7 get confused and end up setting the value of a cloned\n\t\t// checkbox/radio button to an empty string instead of \"on\"\n\t\tif ( dest.value !== src.value ) {\n\t\t\tdest.value = src.value;\n\t\t}\n\n\t// IE6-8 fails to return the selected option to the default selected\n\t// state when cloning options\n\t} else if ( nodeName === \"option\" ) {\n\t\tdest.defaultSelected = dest.selected = src.defaultSelected;\n\n\t// IE6-8 fails to set the defaultValue to the correct value when\n\t// cloning other types of input fields\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\njQuery.each({\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\ti = 0,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone(true);\n\t\t\tjQuery( insert[i] )[ original ]( elems );\n\n\t\t\t// Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get()\n\t\t\tcore_push.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n});\n\nfunction getAll( context, tag ) {\n\tvar elems, elem,\n\t\ti = 0,\n\t\tfound = typeof context.getElementsByTagName !== core_strundefined ? context.getElementsByTagName( tag || \"*\" ) :\n\t\t\ttypeof context.querySelectorAll !== core_strundefined ? context.querySelectorAll( tag || \"*\" ) :\n\t\t\tundefined;\n\n\tif ( !found ) {\n\t\tfor ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) {\n\t\t\tif ( !tag || jQuery.nodeName( elem, tag ) ) {\n\t\t\t\tfound.push( elem );\n\t\t\t} else {\n\t\t\t\tjQuery.merge( found, getAll( elem, tag ) );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn tag === undefined || tag && jQuery.nodeName( context, tag ) ?\n\t\tjQuery.merge( [ context ], found ) :\n\t\tfound;\n}\n\n// Used in buildFragment, fixes the defaultChecked property\nfunction fixDefaultChecked( elem ) {\n\tif ( manipulation_rcheckableType.test( elem.type ) ) {\n\t\telem.defaultChecked = elem.checked;\n\t}\n}\n\njQuery.extend({\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar destElements, node, clone, i, srcElements,\n\t\t\tinPage = jQuery.contains( elem.ownerDocument, elem );\n\n\t\tif ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( \"<\" + elem.nodeName + \">\" ) ) {\n\t\t\tclone = elem.cloneNode( true );\n\n\t\t// IE<=8 does not properly clone detached, unknown element nodes\n\t\t} else {\n\t\t\tfragmentDiv.innerHTML = elem.outerHTML;\n\t\t\tfragmentDiv.removeChild( clone = fragmentDiv.firstChild );\n\t\t}\n\n\t\tif ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) &&\n\t\t\t\t(elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\t// Fix all IE cloning issues\n\t\t\tfor ( i = 0; (node = srcElements[i]) != null; ++i ) {\n\t\t\t\t// Ensure that the destination node is not null; Fixes #9587\n\t\t\t\tif ( destElements[i] ) {\n\t\t\t\t\tfixCloneNodeIssues( node, destElements[i] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0; (node = srcElements[i]) != null; i++ ) {\n\t\t\t\t\tcloneCopyEvent( node, destElements[i] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\tdestElements = srcElements = node = null;\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tbuildFragment: function( elems, context, scripts, selection ) {\n\t\tvar j, elem, contains,\n\t\t\ttmp, tag, tbody, wrap,\n\t\t\tl = elems.length,\n\n\t\t\t// Ensure a safe fragment\n\t\t\tsafe = createSafeFragment( context ),\n\n\t\t\tnodes = [],\n\t\t\ti = 0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\telem = elems[ i ];\n\n\t\t\tif ( elem || elem === 0 ) {\n\n\t\t\t\t// Add nodes directly\n\t\t\t\tif ( jQuery.type( elem ) === \"object\" ) {\n\t\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t\t// Convert non-html into a text node\n\t\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t\t// Convert html into DOM nodes\n\t\t\t\t} else {\n\t\t\t\t\ttmp = tmp || safe.appendChild( context.createElement(\"div\") );\n\n\t\t\t\t\t// Deserialize a standard representation\n\t\t\t\t\ttag = ( rtagName.exec( elem ) || [\"\", \"\"] )[1].toLowerCase();\n\t\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\n\t\t\t\t\ttmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, \"<$1>\" ) + wrap[2];\n\n\t\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\t\tj = wrap[0];\n\t\t\t\t\twhile ( j-- ) {\n\t\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Manually add leading whitespace removed by IE\n\t\t\t\t\tif ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {\n\t\t\t\t\t\tnodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remove IE's autoinserted from table fragments\n\t\t\t\t\tif ( !jQuery.support.tbody ) {\n\n\t\t\t\t\t\t// String was a , *may* have spurious \n\t\t\t\t\t\telem = tag === \"table\" && !rtbody.test( elem ) ?\n\t\t\t\t\t\t\ttmp.firstChild :\n\n\t\t\t\t\t\t\t// String was a bare or \n\t\t\t\t\t\t\twrap[1] === \"
\" && !rtbody.test( elem ) ?\n\t\t\t\t\t\t\t\ttmp :\n\t\t\t\t\t\t\t\t0;\n\n\t\t\t\t\t\tj = elem && elem.childNodes.length;\n\t\t\t\t\t\twhile ( j-- ) {\n\t\t\t\t\t\t\tif ( jQuery.nodeName( (tbody = elem.childNodes[j]), \"tbody\" ) && !tbody.childNodes.length ) {\n\t\t\t\t\t\t\t\telem.removeChild( tbody );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t\t// Fix #12392 for WebKit and IE > 9\n\t\t\t\t\ttmp.textContent = \"\";\n\n\t\t\t\t\t// Fix #12392 for oldIE\n\t\t\t\t\twhile ( tmp.firstChild ) {\n\t\t\t\t\t\ttmp.removeChild( tmp.firstChild );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remember the top-level container for proper cleanup\n\t\t\t\t\ttmp = safe.lastChild;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Fix #11356: Clear elements from fragment\n\t\tif ( tmp ) {\n\t\t\tsafe.removeChild( tmp );\n\t\t}\n\n\t\t// Reset defaultChecked for any radios and checkboxes\n\t\t// about to be appended to the DOM in IE 6/7 (#8060)\n\t\tif ( !jQuery.support.appendChecked ) {\n\t\t\tjQuery.grep( getAll( nodes, \"input\" ), fixDefaultChecked );\n\t\t}\n\n\t\ti = 0;\n\t\twhile ( (elem = nodes[ i++ ]) ) {\n\n\t\t\t// #4087 - If origin and destination elements are the same, and this is\n\t\t\t// that element, do not do anything\n\t\t\tif ( selection && jQuery.inArray( elem, selection ) !== -1 ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tcontains = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t\t// Append to fragment\n\t\t\ttmp = getAll( safe.appendChild( elem ), \"script\" );\n\n\t\t\t// Preserve script evaluation history\n\t\t\tif ( contains ) {\n\t\t\t\tsetGlobalEval( tmp );\n\t\t\t}\n\n\t\t\t// Capture executables\n\t\t\tif ( scripts ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (elem = tmp[ j++ ]) ) {\n\t\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\t\tscripts.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\ttmp = null;\n\n\t\treturn safe;\n\t},\n\n\tcleanData: function( elems, /* internal */ acceptData ) {\n\t\tvar elem, type, id, data,\n\t\t\ti = 0,\n\t\t\tinternalKey = jQuery.expando,\n\t\t\tcache = jQuery.cache,\n\t\t\tdeleteExpando = jQuery.support.deleteExpando,\n\t\t\tspecial = jQuery.event.special;\n\n\t\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\n\t\t\tif ( acceptData || jQuery.acceptData( elem ) ) {\n\n\t\t\t\tid = elem[ internalKey ];\n\t\t\t\tdata = id && cache[ id ];\n\n\t\t\t\tif ( data ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remove cache only if it was not already removed by jQuery.event.remove\n\t\t\t\t\tif ( cache[ id ] ) {\n\n\t\t\t\t\t\tdelete cache[ id ];\n\n\t\t\t\t\t\t// IE does not allow us to delete expando properties from nodes,\n\t\t\t\t\t\t// nor does it have a removeAttribute function on Document nodes;\n\t\t\t\t\t\t// we must handle all of these cases\n\t\t\t\t\t\tif ( deleteExpando ) {\n\t\t\t\t\t\t\tdelete elem[ internalKey ];\n\n\t\t\t\t\t\t} else if ( typeof elem.removeAttribute !== core_strundefined ) {\n\t\t\t\t\t\t\telem.removeAttribute( internalKey );\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\telem[ internalKey ] = null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcore_deletedIds.push( id );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t_evalUrl: function( url ) {\n\t\treturn jQuery.ajax({\n\t\t\turl: url,\n\t\t\ttype: \"GET\",\n\t\t\tdataType: \"script\",\n\t\t\tasync: false,\n\t\t\tglobal: false,\n\t\t\t\"throws\": true\n\t\t});\n\t}\n});\njQuery.fn.extend({\n\twrapAll: function( html ) {\n\t\tif ( jQuery.isFunction( html ) ) {\n\t\t\treturn this.each(function(i) {\n\t\t\t\tjQuery(this).wrapAll( html.call(this, i) );\n\t\t\t});\n\t\t}\n\n\t\tif ( this[0] ) {\n\t\t\t// The elements to wrap the target around\n\t\t\tvar wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true);\n\n\t\t\tif ( this[0].parentNode ) {\n\t\t\t\twrap.insertBefore( this[0] );\n\t\t\t}\n\n\t\t\twrap.map(function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstChild && elem.firstChild.nodeType === 1 ) {\n\t\t\t\t\telem = elem.firstChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t}).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( jQuery.isFunction( html ) ) {\n\t\t\treturn this.each(function(i) {\n\t\t\t\tjQuery(this).wrapInner( html.call(this, i) );\n\t\t\t});\n\t\t}\n\n\t\treturn this.each(function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t});\n\t},\n\n\twrap: function( html ) {\n\t\tvar isFunction = jQuery.isFunction( html );\n\n\t\treturn this.each(function(i) {\n\t\t\tjQuery( this ).wrapAll( isFunction ? html.call(this, i) : html );\n\t\t});\n\t},\n\n\tunwrap: function() {\n\t\treturn this.parent().each(function() {\n\t\t\tif ( !jQuery.nodeName( this, \"body\" ) ) {\n\t\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t\t}\n\t\t}).end();\n\t}\n});\nvar iframe, getStyles, curCSS,\n\tralpha = /alpha\\([^)]*\\)/i,\n\tropacity = /opacity\\s*=\\s*([^)]*)/,\n\trposition = /^(top|right|bottom|left)$/,\n\t// swappable if display is none or starts with table except \"table\", \"table-cell\", or \"table-caption\"\n\t// see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trmargin = /^margin/,\n\trnumsplit = new RegExp( \"^(\" + core_pnum + \")(.*)$\", \"i\" ),\n\trnumnonpx = new RegExp( \"^(\" + core_pnum + \")(?!px)[a-z%]+$\", \"i\" ),\n\trrelNum = new RegExp( \"^([+-])=(\" + core_pnum + \")\", \"i\" ),\n\telemdisplay = { BODY: \"block\" },\n\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: 0,\n\t\tfontWeight: 400\n\t},\n\n\tcssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ],\n\tcssPrefixes = [ \"Webkit\", \"O\", \"Moz\", \"ms\" ];\n\n// return a css property mapped to a potentially vendor prefixed property\nfunction vendorPropName( style, name ) {\n\n\t// shortcut for names that are not vendor prefixed\n\tif ( name in style ) {\n\t\treturn name;\n\t}\n\n\t// check for vendor prefixed names\n\tvar capName = name.charAt(0).toUpperCase() + name.slice(1),\n\t\torigName = name,\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in style ) {\n\t\t\treturn name;\n\t\t}\n\t}\n\n\treturn origName;\n}\n\nfunction isHidden( elem, el ) {\n\t// isHidden might be called from jQuery#filter function;\n\t// in that case, element will be second argument\n\telem = el || elem;\n\treturn jQuery.css( elem, \"display\" ) === \"none\" || !jQuery.contains( elem.ownerDocument, elem );\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem, hidden,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tvalues[ index ] = jQuery._data( elem, \"olddisplay\" );\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\t\t\t// Reset the inline display of this element to learn if it is\n\t\t\t// being hidden by cascaded rules or not\n\t\t\tif ( !values[ index ] && display === \"none\" ) {\n\t\t\t\telem.style.display = \"\";\n\t\t\t}\n\n\t\t\t// Set elements which have been overridden with display: none\n\t\t\t// in a stylesheet to whatever the default browser style is\n\t\t\t// for such an element\n\t\t\tif ( elem.style.display === \"\" && isHidden( elem ) ) {\n\t\t\t\tvalues[ index ] = jQuery._data( elem, \"olddisplay\", css_defaultDisplay(elem.nodeName) );\n\t\t\t}\n\t\t} else {\n\n\t\t\tif ( !values[ index ] ) {\n\t\t\t\thidden = isHidden( elem );\n\n\t\t\t\tif ( display && display !== \"none\" || !hidden ) {\n\t\t\t\t\tjQuery._data( elem, \"olddisplay\", hidden ? display : jQuery.css( elem, \"display\" ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of most of the elements in a second loop\n\t// to avoid the constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\t\tif ( !show || elem.style.display === \"none\" || elem.style.display === \"\" ) {\n\t\t\telem.style.display = show ? values[ index ] || \"\" : \"none\";\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend({\n\tcss: function( name, value ) {\n\t\treturn jQuery.access( this, function( elem, name, value ) {\n\t\t\tvar len, styles,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( jQuery.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t},\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each(function() {\n\t\t\tif ( isHidden( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t});\n\t}\n});\n\njQuery.extend({\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"fontWeight\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {\n\t\t// normalize float css property\n\t\t\"float\": jQuery.support.cssFloat ? \"cssFloat\" : \"styleFloat\"\n\t},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = jQuery.camelCase( name ),\n\t\t\tstyle = elem.style;\n\n\t\tname = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) );\n\n\t\t// gets hook for the prefixed version\n\t\t// followed by the unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// convert relative number strings (+= or -=) to relative numbers. #7345\n\t\t\tif ( type === \"string\" && (ret = rrelNum.exec( value )) ) {\n\t\t\t\tvalue = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) );\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that NaN and null values aren't set. See: #7116\n\t\t\tif ( value == null || type === \"number\" && isNaN( value ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add 'px' to the (except for certain CSS properties)\n\t\t\tif ( type === \"number\" && !jQuery.cssNumber[ origName ] ) {\n\t\t\t\tvalue += \"px\";\n\t\t\t}\n\n\t\t\t// Fixes #8908, it can be done more correctly by specifing setters in cssHooks,\n\t\t\t// but it would mean to define eight (for every problematic property) identical functions\n\t\t\tif ( !jQuery.support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !(\"set\" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) {\n\n\t\t\t\t// Wrapped to prevent IE from throwing errors when 'invalid' values are provided\n\t\t\t\t// Fixes bug #5509\n\t\t\t\ttry {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t} catch(e) {}\n\t\t\t}\n\n\t\t} else {\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar num, val, hooks,\n\t\t\torigName = jQuery.camelCase( name );\n\n\t\t// Make sure that we're working with the right name\n\t\tname = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) );\n\n\t\t// gets hook for the prefixed version\n\t\t// followed by the unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t//convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Return, converting to number if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || jQuery.isNumeric( num ) ? num || 0 : val;\n\t\t}\n\t\treturn val;\n\t}\n});\n\n// NOTE: we've included the \"window\" in window.getComputedStyle\n// because jsdom on node.js will break without it.\nif ( window.getComputedStyle ) {\n\tgetStyles = function( elem ) {\n\t\treturn window.getComputedStyle( elem, null );\n\t};\n\n\tcurCSS = function( elem, name, _computed ) {\n\t\tvar width, minWidth, maxWidth,\n\t\t\tcomputed = _computed || getStyles( elem ),\n\n\t\t\t// getPropertyValue is only needed for .css('filter') in IE9, see #12537\n\t\t\tret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined,\n\t\t\tstyle = elem.style;\n\n\t\tif ( computed ) {\n\n\t\t\tif ( ret === \"\" && !jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\t\t\tret = jQuery.style( elem, name );\n\t\t\t}\n\n\t\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t\t// Chrome < 17 and Safari 5.0 uses \"computed value\" instead of \"used value\" for margin-right\n\t\t\t// Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels\n\t\t\t// this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values\n\t\t\tif ( rnumnonpx.test( ret ) && rmargin.test( name ) ) {\n\n\t\t\t\t// Remember the original values\n\t\t\t\twidth = style.width;\n\t\t\t\tminWidth = style.minWidth;\n\t\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t\t// Put in the new values to get a computed value out\n\t\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\t\tret = computed.width;\n\n\t\t\t\t// Revert the changed values\n\t\t\t\tstyle.width = width;\n\t\t\t\tstyle.minWidth = minWidth;\n\t\t\t\tstyle.maxWidth = maxWidth;\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t};\n} else if ( document.documentElement.currentStyle ) {\n\tgetStyles = function( elem ) {\n\t\treturn elem.currentStyle;\n\t};\n\n\tcurCSS = function( elem, name, _computed ) {\n\t\tvar left, rs, rsLeft,\n\t\t\tcomputed = _computed || getStyles( elem ),\n\t\t\tret = computed ? computed[ name ] : undefined,\n\t\t\tstyle = elem.style;\n\n\t\t// Avoid setting ret to empty string here\n\t\t// so we don't default to auto\n\t\tif ( ret == null && style && style[ name ] ) {\n\t\t\tret = style[ name ];\n\t\t}\n\n\t\t// From the awesome hack by Dean Edwards\n\t\t// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n\n\t\t// If we're not dealing with a regular pixel number\n\t\t// but a number that has a weird ending, we need to convert it to pixels\n\t\t// but not position css attributes, as those are proportional to the parent element instead\n\t\t// and we can't measure the parent instead because it might trigger a \"stacking dolls\" problem\n\t\tif ( rnumnonpx.test( ret ) && !rposition.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\tleft = style.left;\n\t\t\trs = elem.runtimeStyle;\n\t\t\trsLeft = rs && rs.left;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tif ( rsLeft ) {\n\t\t\t\trs.left = elem.currentStyle.left;\n\t\t\t}\n\t\t\tstyle.left = name === \"fontSize\" ? \"1em\" : ret;\n\t\t\tret = style.pixelLeft + \"px\";\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.left = left;\n\t\t\tif ( rsLeft ) {\n\t\t\t\trs.left = rsLeft;\n\t\t\t}\n\t\t}\n\n\t\treturn ret === \"\" ? \"auto\" : ret;\n\t};\n}\n\nfunction setPositiveNumber( elem, value, subtract ) {\n\tvar matches = rnumsplit.exec( value );\n\treturn matches ?\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {\n\tvar i = extra === ( isBorderBox ? \"border\" : \"content\" ) ?\n\t\t// If we already have the right measurement, avoid augmentation\n\t\t4 :\n\t\t// Otherwise initialize for horizontal or vertical properties\n\t\tname === \"width\" ? 1 : 0,\n\n\t\tval = 0;\n\n\tfor ( ; i < 4; i += 2 ) {\n\t\t// both box models exclude margin, so add it if we want it\n\t\tif ( extra === \"margin\" ) {\n\t\t\tval += jQuery.css( elem, extra + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\tif ( isBorderBox ) {\n\t\t\t// border-box includes padding, so remove it if we want content\n\t\t\tif ( extra === \"content\" ) {\n\t\t\t\tval -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// at this point, extra isn't border nor margin, so remove border\n\t\t\tif ( extra !== \"margin\" ) {\n\t\t\t\tval -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t} else {\n\t\t\t// at this point, extra isn't content, so add padding\n\t\t\tval += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// at this point, extra isn't content nor padding, so add border\n\t\t\tif ( extra !== \"padding\" ) {\n\t\t\t\tval += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn val;\n}\n\nfunction getWidthOrHeight( elem, name, extra ) {\n\n\t// Start with offset property, which is equivalent to the border-box value\n\tvar valueIsBorderBox = true,\n\t\tval = name === \"width\" ? elem.offsetWidth : elem.offsetHeight,\n\t\tstyles = getStyles( elem ),\n\t\tisBorderBox = jQuery.support.boxSizing && jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t// some non-html elements return undefined for offsetWidth, so check for null/undefined\n\t// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285\n\t// MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668\n\tif ( val <= 0 || val == null ) {\n\t\t// Fall back to computed then uncomputed css if necessary\n\t\tval = curCSS( elem, name, styles );\n\t\tif ( val < 0 || val == null ) {\n\t\t\tval = elem.style[ name ];\n\t\t}\n\n\t\t// Computed unit is not pixels. Stop here and return.\n\t\tif ( rnumnonpx.test(val) ) {\n\t\t\treturn val;\n\t\t}\n\n\t\t// we need the check for style in case a browser which returns unreliable values\n\t\t// for getComputedStyle silently falls back to the reliable elem.style\n\t\tvalueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] );\n\n\t\t// Normalize \"\", auto, and prepare for extra\n\t\tval = parseFloat( val ) || 0;\n\t}\n\n\t// use the active box-sizing model to add/subtract irrelevant styles\n\treturn ( val +\n\t\taugmentWidthOrHeight(\n\t\t\telem,\n\t\t\tname,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles\n\t\t)\n\t) + \"px\";\n}\n\n// Try to determine the default display value of an element\nfunction css_defaultDisplay( nodeName ) {\n\tvar doc = document,\n\t\tdisplay = elemdisplay[ nodeName ];\n\n\tif ( !display ) {\n\t\tdisplay = actualDisplay( nodeName, doc );\n\n\t\t// If the simple way fails, read from inside an iframe\n\t\tif ( display === \"none\" || !display ) {\n\t\t\t// Use the already-created iframe if possible\n\t\t\tiframe = ( iframe ||\n\t\t\t\tjQuery(\"