{"version":3,"sources":["plugins.js"],"names":["global","factory","module","exports","document","w","Error","window","this","noGlobal","DOMEval","code","doc","script","createElement","text","head","appendChild","parentNode","removeChild","isArrayLike","obj","length","type","jQuery","isWindow","nodeName","elem","name","toLowerCase","winnow","elements","qualifier","not","isFunction","grep","i","call","nodeType","indexOf","risSimple","test","filter","sibling","cur","dir","createOptions","options","object","each","match","rnothtmlwhite","_","flag","Identity","v","Thrower","ex","adoptValue","value","resolve","reject","noValue","method","promise","done","fail","then","apply","undefined","slice","completed","removeEventListener","ready","Data","expando","uid","getData","data","rbrace","JSON","parse","dataAttr","key","replace","rmultiDash","getAttribute","e","dataUser","set","adjustCSS","prop","valueParts","tween","adjusted","scale","maxIterations","currentValue","css","initial","unit","cssNumber","initialInUnit","rcssNum","exec","style","start","end","getDefaultDisplay","temp","ownerDocument","display","defaultDisplayMap","body","showHide","show","values","index","dataPriv","get","isHiddenWithinTree","getAll","context","tag","ret","getElementsByTagName","querySelectorAll","merge","setGlobalEval","elems","refElements","l","buildFragment","scripts","selection","ignored","tmp","wrap","contains","j","fragment","createDocumentFragment","nodes","rhtml","rtagName","wrapMap","_default","innerHTML","htmlPrefilter","lastChild","childNodes","firstChild","textContent","push","createTextNode","inArray","rscriptType","returnTrue","returnFalse","safeActiveElement","activeElement","err","on","types","selector","fn","one","origFn","event","off","arguments","guid","add","manipulationTarget","content","disableScript","restoreScript","rscriptTypeMasked","removeAttribute","cloneCopyEvent","src","dest","pdataOld","pdataCur","udataOld","udataCur","events","hasData","access","handle","extend","fixInput","rcheckableType","checked","defaultValue","domManip","collection","args","callback","concat","first","hasScripts","node","iNoClone","support","checkClone","rchecked","self","eq","html","map","clone","_evalUrl","rcleanScript","remove","keepData","cleanData","curCSS","computed","width","minWidth","maxWidth","getStyles","getPropertyValue","pixelMarginRight","rnumnonpx","rmargin","addGetHookIf","conditionFn","hookFn","vendorPropName","emptyStyle","capName","toUpperCase","cssPrefixes","finalPropName","cssProps","setPositiveNumber","subtract","matches","Math","max","augmentWidthOrHeight","extra","isBorderBox","styles","val","cssExpand","getWidthOrHeight","valueIsBorderBox","boxSizingReliable","parseFloat","Tween","easing","prototype","init","schedule","inProgress","hidden","requestAnimationFrame","setTimeout","fx","interval","tick","createFxNow","fxNow","now","genFx","includeWidth","which","attrs","height","opacity","createTween","animation","Animation","tweeners","defaultPrefilter","props","opts","toggle","hooks","oldfire","propTween","restoreDisplay","isBox","anim","orig","dataShow","queue","_queueHooks","unqueued","empty","fire","always","rfxtypes","isEmptyObject","overflow","overflowX","overflowY","propFilter","specialEasing","camelCase","Array","isArray","cssHooks","expand","properties","result","stopped","prefilters","deferred","Deferred","currentTime","remaining","startTime","duration","percent","tweens","run","notifyWith","resolveWith","originalProperties","originalOptions","stop","gotoEnd","rejectWith","proxy","progress","complete","timer","stripAndCollapse","tokens","join","getClass","buildParams","prefix","traditional","rbracket","addToPrefiltersOrTransports","structure","dataTypeExpression","func","dataType","dataTypes","unshift","inspectPrefiltersOrTransports","jqXHR","inspect","selected","inspected","prefilterOrFactory","dataTypeOrTransport","seekingTransport","transports","ajaxExtend","target","deep","flatOptions","ajaxSettings","ajaxHandleResponses","s","responses","ct","finalDataType","firstDataType","contents","shift","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","prev","responseFields","dataFilter","split","state","error","arr","getProto","Object","getPrototypeOf","class2type","toString","hasOwn","hasOwnProperty","fnToString","ObjectFunctionString","version","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","jquery","constructor","toArray","num","pushStack","prevObject","last","len","sort","splice","copy","copyIsArray","isPlainObject","random","isReady","msg","noop","isNumeric","isNaN","proto","Ctor","globalEval","string","trim","makeArray","results","second","invert","callbackInverse","callbackExpect","arg","Date","Symbol","iterator","Sizzle","seed","m","nid","groups","newSelector","newContext","preferredDoc","setDocument","documentIsHTML","rquickExpr","getElementById","id","getElementsByClassName","qsa","compilerCache","rbuggyQSA","rcssescape","fcssescape","setAttribute","tokenize","toSelector","rsibling","testContext","qsaError","select","createCache","cache","keys","Expr","cacheLength","markFunction","assert","el","addHandle","handler","attrHandle","siblingCheck","a","b","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","disabled","isDisabled","disabledAncestor","createPositionalPseudo","argument","matchIndexes","setFilters","addCombinator","matcher","combinator","base","skip","next","checkNonElements","doneName","xml","oldCache","uniqueCache","outerCache","newCache","dirruns","uniqueID","elementMatcher","matchers","multipleContexts","contexts","condense","unmatched","newUnmatched","mapped","setMatcher","preFilter","postFilter","postFinder","postSelector","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","relative","implicitRelative","matchContext","matchAnyContext","outermostContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","find","dirrunsUnique","pop","uniqueSort","getText","isXML","compile","sortInput","hasDuplicate","docElem","rbuggyMatches","classCache","tokenCache","sortOrder","push_native","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","runescape","funescape","escaped","escapedWhitespace","high","String","fromCharCode","ch","asCodePoint","charCodeAt","unloadHandler","els","documentElement","hasCompare","subWindow","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","attrId","getAttributeNode","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","expr","attr","specified","escape","sel","duplicates","detectDuplicates","sortStable","nodeValue","selectors","createPseudo",">"," ","+","~","excess","unquoted","nodeNameSelector","pattern","operator","check","what","simple","forward","ofType","nodeIndex","parent","useCache","pseudo","idx","matched","has","innerText","lang","elemLang","hash","location","root","focus","hasFocus","href","tabIndex","enabled","selectedIndex","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","soFar","preFilters","cached","token","compiled","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","n","rneedsContext","rsingleTag","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","children","targets","closest","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","reverse","Callbacks","firing","memory","fired","locked","firingIndex","once","stopOnFalse","disable","lock","fireWith","tuples","catch","pipe","fns","newDefer","tuple","returned","notify","onFulfilled","onRejected","onProgress","depth","special","that","mightThrow","maxDepth","TypeError","process","exceptionHook","stackTrace","getStackHook","stateString","when","singleValue","resolveContexts","resolveValues","master","updateFunc","rerrorNames","stack","console","warn","message","readyException","readyList","readyWait","wait","readyState","doScroll","chainable","emptyGet","raw","bulk","acceptData","owner","defineProperty","configurable","removeData","_data","_removeData","dequeue","startLength","setter","clearQueue","count","defer","pnum","source","swap","old","hide","option","thead","col","tr","td","optgroup","tbody","tfoot","colgroup","caption","th","div","cloneNode","noCloneChecked","rkeyEvent","rmouseEvent","rtypenamespace","handleObjIn","eventHandle","t","handleObj","handlers","namespaces","origType","elemData","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","preventDefault","stopPropagation","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","Event","enumerable","originalEvent","writable","load","noBubble","trigger","blur","click","beforeunload","returnValue","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","isSimulated","stopImmediatePropagation","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","char","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","mouseenter","mouseleave","pointerenter","pointerleave","related","rxhtmlTag","rnoInnerhtml","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","opener","getComputedStyle","computeStyleTests","cssText","container","divStyle","pixelPositionVal","reliableMarginLeftVal","marginLeft","boxSizingReliableVal","marginRight","pixelMarginRightVal","backgroundClip","clearCloneStyle","pixelPosition","reliableMarginLeft","rdisplayswap","rcustomProp","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","zoom","float","origName","isCustomProp","setProperty","isFinite","getClientRects","getBoundingClientRect","left","margin","padding","border","suffix","expanded","parts","propHooks","eased","pos","step","scrollTop","scrollLeft","linear","p","swing","cos","PI","rrun","*","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","attrNames","getter","lowercaseName","rfocusable","rclickable","removeProp","propFix","tabindex","parseInt","for","class","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","classNames","hasClass","rreturn","valHooks","optionSet","rfocusMorph","onlyHandlers","bubbleType","ontype","eventPath","isTrigger","parentWindow","simulate","triggerHandler","hover","fnOver","fnOut","focusin","attaches","nonce","rquery","parseXML","DOMParser","parseFromString","rCRLF","rsubmitterTypes","rsubmittable","param","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rlocalProtocol","rnoContent","rprotocol","allTypes","originAnchor","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","json","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","status","nativeStatusText","headers","success","modified","statusText","timeoutTimer","transport","responseHeadersString","ifModified","cacheURL","callbackContext","statusCode","fireGlobals","globalEventContext","completeDeferred","responseHeaders","urlAnchor","uncached","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","overrideMimeType","abort","finalText","crossDomain","host","hasContent","beforeSend","send","getJSON","getScript","throws","wrapAll","firstElementChild","wrapInner","unwrap","visible","offsetWidth","offsetHeight","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","open","username","xhrFields","onload","onerror","onabort","onreadystatechange","responseType","responseText","binary","text script","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","rect","win","pageYOffset","clientTop","pageXOffset","clientLeft","offsetParent","parentOffset","scrollTo","Height","Width","","defaultExtra","funcName","bind","unbind","delegate","undelegate","holdReady","hold","parseJSON","define","amd","_jQuery","_$","$","noConflict","c","Cowboy","throttle","f","g","d","o","k","h","debounce","isMode","mode","$body","resizeHandler","bas","bootstrapActiveSize","windowInnerWidth","$window","innerWidth","sizes","defaults","onChangeToXsSize","onChangeToSmSize","onChangeToMdSize","onChangeToLgSize","debug","debugInfo","newActiveSize","getActiveSize","lastActiveSize","removeActiveSizeAttributeFromBody","BootstrapActiveSize","instance","triggerDelay","md","sm","lg","VERSION","resize","destroy","isXs","isSm","isMd","isLg","getVersion","objectFitImages","createPlaceholder","polyfillCurrentSrc","srcset","supportsCurrentSrc","picturefill","pf","ns","evaled","fillImg","reselect","curSrc","supported","currentSrc","getStyle","fontFamily","propRegex","setPlaceholder","img","placeholder","nativeGetAttribute","nativeSetAttribute","onImageReady","naturalWidth","fixOne","ofi","OFI","skipTest","supportsObjectFit","Image","naturalHeight","keepSrcUsable","backgroundImage","backgroundPosition","backgroundRepeat","backgroundOrigin","backgroundSize","descriptors","ss","hijackAttributes","getOfiImageMaybe","supportsObjectPosition","HTMLImageElement","imgs","startAutoMode","autoModeEnabled","supportsOFI","tagName","watchMQ","testImg","object-position","slideSelector","infiniteLoop","hideControlOnEnd","slideMargin","startSlide","randomStart","captions","ticker","tickerHover","adaptiveHeight","adaptiveHeightSpeed","video","useCSS","preloadImages","responsive","slideZIndex","wrapperClass","touchEnabled","swipeThreshold","oneToOneTouch","preventDefaultSwipeX","preventDefaultSwipeY","ariaLive","ariaHidden","keyboardEnabled","pager","pagerType","pagerShortSeparator","pagerSelector","buildPager","pagerCustom","controls","nextText","prevText","nextSelector","prevSelector","autoControls","startText","stopText","autoControlsCombine","autoControlsSelector","auto","pause","autoStart","autoDirection","stopAutoOnClick","autoHover","autoDelay","autoSlideForOnePage","minSlides","maxSlides","moveSlides","slideWidth","shrinkItems","onSliderLoad","onSlideBefore","onSlideAfter","onSlideNext","onSlidePrev","onSliderResize","bxSlider","slider","windowWidth","windowHeight","floor","carousel","minThreshold","maxThreshold","working","animProp","usingCSS","cssPrefix","preloadSelector","viewport","loader","getViewportMaxWidth","listStyle","getSlideWidth","appendCaptions","getPagerQty","fitVids","appendControls","appendControlsAuto","appendPager","loadElements","total","sliceAppend","slicePrepend","setSlidePosition","getViewportHeight","redrawSlider","initialized","resizeWindow","initAuto","initTicker","updatePagerActive","updateDirectionControls","initTouch","keydown","keyPress","currentIndex","getMoveBy","outerHeight","newElWidth","wrapWidth","ceil","getNumberSlidesShowing","slidesShowing","childWidth","pagerQty","breakPoint","counter","lastShowingIndex","setPositionProperty","outerWidth","animateObj","propValue","updateAfterSlideTransition","resetValue","tickerLoop","populatePager","pagerHtml","linkContent","pagerEl","clickPagerBind","clickNextBind","clickPrevBind","directionEl","autoEl","clickStartBind","clickStopBind","updateAutoControls","title","stopAuto","goToNextSlide","goToPrevSlide","startAuto","pagerLink","pagerIndex","goToSlide","slideIndex","oldIndex","autoPaused","transform","ratio","property","newSpeed","totalDimens","startPosition","abs","resumeSpeed","animateProperty","isOnScreen","bounds","right","bottom","activeElementTag","tagFilters","touch","x","y","onTouchStart","originalPos","touchPoints","setPointerCapture","onTouchMove","onTouchEnd","onPointerCancel","releasePointerCapture","xMovement","yMovement","change","distance","windowWidthNew","windowHeightNew","applyAriaHiddenAttributes","startVisibleIndex","numberOfSlidesShowing","setSlideIndex","direction","requestEl","performTransition","moveBy","preventControlUpdate","setInterval","clearInterval","getCurrentSlide","getCurrentSlideElement","getSlideElement","getSlideCount","isWorking","destroySlider","reloadSlider","customSelector","ignore","ignoreList","$allVideos","$this","aspectRatio","videoName","_count","Zepto","require","Mask","mask","invalid","getCaret","ctrl","dSel","cSelStart","selectionStart","navigator","appVersion","createRange","moveStart","setCaret","range","setSelectionRange","createTextRange","collapse","moveEnd","maskDigitPosMapOld","maskDigitPosMap","jMaskGlobals","useInput","behaviour","keyup","oldValue","selectOnFocus","clearIfNotMatch","regexMask","getRegexMask","translation","optional","recursive","oRecursive","r","maskChunks","jMask","charAt","digit","destroyEvents","isInput","calculateCaretPosition","oldVal","newVal","getMasked","caretPosNew","caretPosOld","newValL","oldValL","maskDigitsBeforeCaret","maskDigitsAfterCaret","maskDigitsBeforeCaretAll","maskDigitsBeforeCaretAllOld","caretPos","byPassKeys","keyStrokeCompensation","callbacks","skipMaskChars","lastMaskChar","buf","maskLen","valLen","addMethod","resetPos","maskDigitCount","maskDigitPosArr","lastUntranslatedMaskChar","maskDigit","valDigit","fallback","lastMaskCharDigit","mapMaskdigitPositions","maskDiff","changed","defaultArgs","criteria","caret","getCleanVal","getMaskedVal","onlyMask","maxlength","maskWatchers","HTMLAttributes","notSameMaskObject","field","maskObject","stringify","eventSupported","eventName","isSupported","globals","watchInterval","watchInputs","maskFunction","masked","unmask","dataMask","cleanVal","applyDataMask","maskElements","$selector","dataMaskAttr","userAgent","watchDataMask","9","#","A","S","doAjaxSubmit","ajaxSubmit","captureSubmittingElement","$el","form","clk","clk_x","clk_y","offsetLeft","offsetTop","log","opera","postError","feature","fileapi","files","formdata","FormData","hasProp","attr2","onSuccess","deepSerialize","extraData","part","serialized","decodeURIComponent","fileUploadXhr","serializedData","uploadProgress","upload","loaded","lengthComputable","formData","fileUploadIframe","getDoc","frame","contentWindow","doSubmit","checkState","io","cb","SERVER_ABORT","timeoutHandle","$form","mp","et","skipEncodingOverride","encoding","enctype","timedOut","CLIENT_TIMEOUT_ABORT","extraInputs","iframeTarget","$io","submitFn","aborted","callbackProcessed","iframeSrc","detachEvent","errMsg","isXml","XMLDocument","domCheckCount","docRoot","responseXML","content-type","Number","dt","scr","textarea","ta","pre","toXml","httpData","sub","getTime","execCommand","csrf_token","csrf_param","forceSync","ActiveXObject","loadXML","action","veto","beforeSerialize","qx","formToArray","semantic","filtering","optionsData","beforeSubmit","q","resetForm","clearForm","includeHidden","oldSuccess","textStatus","successArguments","replaceTarget","oldError","oldComplete","fileInputs","hasFileInputs","multipart","fileAPI","jqxhr","shouldUseFrame","iframe","closeKeepAlive","ajaxForm","delegation","ajaxFormUnbind","els2","formId","jmax","fieldValue","required","$input","formSerialize","fieldSerialize","successful","ops","op","clearFields","clearInputs","re","defaultChecked","multiple","defaultSelected","forEl","enable","$sel","getTargetFromTrigger","$trigger","Plugin","Collapse","DEFAULTS","element","$element","transitioning","$parent","getParent","addAriaAndCollapsedClass","TRANSITION_DURATION","dimension","hasWidth","activesData","actives","startEvent","transition","scrollSize","emulateTransitionEnd","isOpen","Constructor","$target","transitionEnd","transEndEventNames","WebkitTransition","MozTransition","OTransition","called","bsTransitionEnd"],"mappings":"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","file":"plugins.js","sourcesContent":["/*!\n * jQuery JavaScript Library v3.2.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2017-03-20T18:59Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar document = window.document;\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar concat = arr.concat;\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\n\n\n\tfunction DOMEval( code, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar script = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.2.1\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t},\n\n\t// Support: Android <=4.0 only\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\n\n\t// Matches dashed string for camelizing\n\trmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g,\n\n\t// Used by jQuery.camelCase as callback to replace()\n\tfcamelCase = function( all, letter ) {\n\t\treturn letter.toUpperCase();\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn 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\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : 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\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\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\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\tslice: function() {\n\t\treturn this.pushStack( 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\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, 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\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\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 ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\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 ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && Array.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\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisFunction: function( obj ) {\n\t\treturn jQuery.type( obj ) === \"function\";\n\t},\n\n\tisWindow: function( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t},\n\n\tisNumeric: function( obj ) {\n\n\t\t// As of jQuery 3.0, isNumeric is limited to\n\t\t// strings and numbers (primitives or objects)\n\t\t// that can be coerced to finite numbers (gh-2662)\n\t\tvar type = jQuery.type( obj );\n\t\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t\t// subtraction forces infinities to NaN\n\t\t\t!isNaN( obj - parseFloat( obj ) );\n\t},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\n\t\t/* eslint-disable no-unused-vars */\n\t\t// See https://github.com/eslint/eslint/issues/6125\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\ttype: function( obj ) {\n\t\tif ( obj == null ) {\n\t\t\treturn obj + \"\";\n\t\t}\n\n\t\t// Support: Android <=2.3 only (functionish RegExp)\n\t\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\t\ttypeof obj;\n\t},\n\n\t// Evaluates a script in a global context\n\tglobalEval: function( code ) {\n\t\tDOMEval( code );\n\t},\n\n\t// Convert dashed to camelCase; used by the css and data modules\n\t// Support: IE <=9 - 11, Edge 12 - 13\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\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Support: Android <=4.0 only\n\ttrim: function( text ) {\n\t\treturn text == null ?\n\t\t\t\"\" :\n\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\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\tpush.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\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\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\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\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.push( 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.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn 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 tmp, args, proxy;\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 = slice.call( arguments, 2 );\n\t\tproxy = function() {\n\t\t\treturn fn.apply( context || this, args.concat( 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\tnow: Date.now,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\nfunction( i, name ) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = jQuery.type( obj );\n\n\tif ( type === \"function\" || jQuery.isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.3\n * https://sizzlejs.com/\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2016-08-08\n */\n(function( window ) {\n\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\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\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\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 as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[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// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = \"(?:\\\\\\\\.|[\\\\w-]|[^\\0-\\\\xa0])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\t\t\"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\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( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\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\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\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\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// 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<24\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\thigh < 0 ?\n\t\t\t\t// BMP codepoint\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\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tdisabledAncestor = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && (\"form\" in elem || \"label\" in elem);\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\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 m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\n\t\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\t\tsetDocument( context );\n\t\t}\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( (m = match[1]) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( (elem = context.getElementById( m )) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && (elem = newContext.getElementById( m )) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\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}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[2] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!compilerCache[ selector + \" \" ] &&\n\t\t\t\t(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\n\n\t\t\t\tif ( nodeType !== 1 ) {\n\t\t\t\t\tnewContext = context;\n\t\t\t\t\tnewSelector = selector;\n\n\t\t\t\t// qSA looks outside Element context, which is not what we want\n\t\t\t\t// Thanks to Andrew Dupont for this workaround technique\n\t\t\t\t// Support: IE <=8\n\t\t\t\t// Exclude object elements\n\t\t\t\t} else if ( context.nodeName.toLowerCase() !== \"object\" ) {\n\n\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\tif ( (nid = context.getAttribute( \"id\" )) ) {\n\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontext.setAttribute( \"id\", (nid = expando) );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[i] = \"#\" + nid + \" \" + toSelector( groups[i] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\t\t\t\t}\n\n\t\t\t\tif ( newSelector ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\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\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 element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement(\"fieldset\");\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\t\t// release memory in IE\n\t\tel = 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 = arr.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\ta.sourceIndex - b.sourceIndex;\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 :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\t\tdisabledAncestor( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\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 * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\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/**\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 hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9-11, Edge\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\tif ( preferredDoc !== document &&\n\t\t(subWindow = document.defaultView) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\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\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert(function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.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( el ) {\n\t\tel.appendChild( document.createComment(\"\") );\n\t\treturn !el.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\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 programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t});\n\n\t// ID filter and find\n\tif ( support.getById ) {\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\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\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 !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( (elem = elems[i++]) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\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 !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\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\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\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 !== \"undefined\" && 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 https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( document.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( el ) {\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// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push(\"~=\");\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 ( !el.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( el ) {\n\t\t\tel.innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll(\"[name=d]\").length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + 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 ( el.querySelectorAll(\":enabled\").length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll(\":disabled\").length !== 2 ) {\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\tel.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( el ) {\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( el, \"*\" );\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( el, \"[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\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\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 = hasCompare ?\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\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\tif ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\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\t\t}\n\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// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\t\t\treturn a === document ? -1 :\n\t\t\t\tb === document ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( 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 document;\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!compilerCache[ expr + \" \" ] &&\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\tval :\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};\n\nSizzle.escape = function( sel ) {\n\treturn (sel + \"\").replace( rcssescape, fcssescape );\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\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\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\twhile ( (node = elem[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 (jQuery #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[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[6] && 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] ) {\n\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\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 !== \"undefined\" && 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.replace( rwhitespace, \" \" ) + \" \" ).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, uniqueCache, outerCache, node, 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\t\t\t\t\t\tdiff = false;\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 ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\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\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && 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\tuniqueCache[ 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} else {\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\t\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\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\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\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\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( 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\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[0] = null;\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\ttext = text.replace( runescape, funescape );\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\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\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 negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\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\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\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\ntokenize = Sizzle.tokenize = function( 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\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"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\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator 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\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( (oldCache = uniqueCache[ key ]) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\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\treturn false;\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 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 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( 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( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !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\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\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\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\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\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context === document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\tif ( !context && elem.ownerDocument !== document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, 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}\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// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\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, match /* 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 ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[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\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[0] = match[0].slice( 0 );\n\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {\n\n\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[i];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( (seed = find(\n\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\t\t\t\t)) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\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-35+\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( el ) {\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement(\"fieldset\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( el ) {\n\tel.innerHTML = \"\";\n\treturn el.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( el ) {\n\tel.innerHTML = \"\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.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( el ) {\n\treturn el.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\tnull;\n\t\t}\n\t});\n}\n\nreturn Sizzle;\n\n})( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n};\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\nvar risSimple = /^.[^:#\\[\\.,]*$/;\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\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Simple selector that can be filtered directly, removing non-Elements\n\tif ( risSimple.test( qualifier ) ) {\n\t\treturn jQuery.filter( qualifier, elements, not );\n\t}\n\n\t// Complex selector, compare the two sets, removing non-Elements\n\tqualifier = jQuery.filter( qualifier, elements );\n\treturn jQuery.grep( elements, function( elem ) {\n\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1;\n\t} );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\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\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\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\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\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\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\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// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\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// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\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\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\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\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 || root ).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[ 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 root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\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\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; 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\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\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 this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\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 indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\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\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\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 dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn 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 dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n if ( nodeName( elem, \"iframe\" ) ) {\n return elem.contentDocument;\n }\n\n // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n // Treat the template element as a regular one in browsers that\n // don't support it.\n if ( nodeName( elem, \"template\" ) ) {\n elem = elem.content || elem;\n }\n\n return jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = 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\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\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\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], 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\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\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\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\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\tif ( jQuery.isFunction( arg ) ) {\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 && jQuery.type( arg ) !== \"string\" ) {\n\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\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\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\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 ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\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 ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\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\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};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && jQuery.isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && jQuery.isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\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\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\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.progress( newDefer.notify )\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} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\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\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( jQuery.isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\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 jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tjQuery.isFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tjQuery.isFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tjQuery.isFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\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// 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[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = 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(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\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( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the master Deferred\n\t\t\tmaster = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tmaster.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( master.state() === \"pending\" ||\n\t\t\t\tjQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn master.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), master.reject );\n\t\t}\n\n\t\treturn master.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\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// 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// 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\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( jQuery.type( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !jQuery.isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\tvalue :\n\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ jQuery.camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ jQuery.camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( jQuery.camelCase );\n\t\t\t} else {\n\t\t\t\tkey = jQuery.camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\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\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\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\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = jQuery.camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\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\tdataPriv.set( elem, \"hasDataAttrs\", 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\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\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 = dataPriv.get( 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 || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( 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 public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", 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\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\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 = dataPriv.get( 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 pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tjQuery.contains( elem.ownerDocument, elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\nvar swap = function( elem, options, callback, args ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.apply( elem, args || [] );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted,\n\t\tscale = 1,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = ( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\tdo {\n\n\t\t\t// If previous iteration zeroed out, double until we get *something*.\n\t\t\t// Use string for doubling so we don't accidentally see scale as unchanged below\n\t\t\tscale = scale || \".5\";\n\n\t\t\t// Adjust and apply\n\t\t\tinitialInUnit = initialInUnit / scale;\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Update scale, tolerating zero or NaN from tween.cur()\n\t\t// Break the loop if scale is unchanged or perfect, or if we've just had enough.\n\t\t} while (\n\t\t\tscale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations\n\t\t);\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\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\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\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 ( isHiddenWithinTree( 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} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]+)/i );\n\nvar rscriptType = ( /^$|\\/(?:java|ecma)script/i );\n\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// Support: IE <=9 only\n\toption: [ 1, \"\" ],\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting or other required elements.\n\tthead: [ 1, \"\" ],\n\tcol: [ 2, \"\" ],\n\ttr: [ 2, \"\" ],\n\ttd: [ 3, \"\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\n// Support: IE <=9 only\nwrapMap.optgroup = wrapMap.option;\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, contains, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( jQuery.type( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tcontains = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( contains ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n} )();\nvar documentElement = document.documentElement;\n\n\n\nvar\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 only\n// See #13393 for more info\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\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\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( 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// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, 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\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 !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\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 if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( 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},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( 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( rnothtmlwhite ) || [ \"\" ];\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 ] &&\n\t\t\t\tnew 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 ||\n\t\t\t\t\t\tselector === \"**\" && 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 ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\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 data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tvar event = jQuery.event.fix( nativeEvent );\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\t\t\thandlers = ( dataPriv.get( 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\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\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++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// Triggered event must either 1) have no namespace, or 2) have namespace(s)\n\t\t\t\t// a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\tif ( !event.rnamespace || event.rnamespace.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 ||\n\t\t\t\t\t\thandleObj.handler ).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 i, handleObj, sel, matchedHandlers, matchedSelectors,\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\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG