{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./app/javascript/packs/website.js","webpack:///./node_modules/jquery-ui-dist/external/jquery/jquery.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","require","start","$","document","ready","hide","overlay","on","addClass","removeClass","window","addEventListener","element","querySelector","event","show","global","factory","_typeof","iterator","obj","constructor","this","noGlobal","deletedIds","_slice","slice","concat","push","indexOf","class2type","toString","hasOwn","support","jQuery","selector","context","fn","init","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","isArrayLike","length","type","isWindow","jquery","toArray","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","apply","arguments","first","eq","last","len","j","end","sort","splice","extend","src","copyIsArray","copy","options","clone","target","deep","isFunction","isPlainObject","isArray","undefined","expando","Math","random","replace","isReady","error","msg","Error","noop","Array","isNumeric","realStringObj","parseFloat","isEmptyObject","nodeType","e","ownFirst","globalEval","data","trim","execScript","camelCase","string","nodeName","toLowerCase","text","makeArray","arr","results","inArray","max","second","grep","invert","matches","callbackExpect","arg","guid","proxy","args","tmp","now","Date","split","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","sortOrder","a","b","pop","push_native","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","rinputs","rheader","rnative","rquickExpr","rsibling","rescape","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","unloadHandler","childNodes","els","seed","nid","nidselect","match","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","getAttribute","setAttribute","toSelector","join","testContext","parentNode","querySelectorAll","qsaError","removeAttribute","keys","cache","cacheLength","shift","markFunction","assert","div","createElement","removeChild","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","documentElement","node","hasCompare","parent","doc","defaultView","top","attachEvent","className","appendChild","createComment","getById","getElementsByName","find","filter","attrId","getAttributeNode","tag","innerHTML","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","val","specified","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative","dir","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","useCache","lastChild","uniqueID","pseudo","setFilters","idx","matched","matcher","unmatched","innerText","lang","elemLang","hash","location","activeElement","hasFocus","href","tabIndex","disabled","checked","selected","selectedIndex","radio","checkbox","file","password","image","submit","reset","tokens","addCombinator","combinator","base","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","token","compiled","div1","defaultValue","unique","isXMLDoc","_dir","until","truncate","is","_siblings","rneedsContext","needsContext","rsingleTag","risSimple","winnow","qualifier","not","self","rootjQuery","root","charAt","parseHTML","rparentsprev","guaranteedUnique","children","contents","next","prev","sibling","has","targets","closest","pos","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","contentDocument","contentWindow","reverse","readyList","rnotwhite","detach","removeEventListener","completed","detachEvent","readyState","Callbacks","flag","createOptions","firing","memory","_fired","_locked","queue","firingIndex","fire","once","stopOnFalse","remove","empty","disable","lock","locked","fireWith","fired","Deferred","func","tuples","_state","_promise","state","always","deferred","fail","then","fns","newDefer","tuple","returned","promise","progress","notify","resolve","reject","pipe","stateString","when","subordinate","progressValues","progressContexts","resolveContexts","resolveValues","remaining","updateFunc","values","notifyWith","resolveWith","readyWait","holdReady","hold","wait","triggerHandler","off","doScroll","setTimeout","frameElement","doScrollCheck","inlineBlockNeedsLayout","body","container","style","cssText","zoom","offsetWidth","deleteExpando","shrinkWrapBlocksVal","acceptData","noData","rbrace","rmultiDash","dataAttr","parseJSON","isEmptyDataObject","internalData","pvt","thisCache","internalKey","isNode","toJSON","internalRemoveData","cleanData","hasData","_data","removeData","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","shrinkWrapBlocks","width","pnum","source","rcssNum","cssExpand","isHidden","el","css","adjustCSS","prop","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","fragment","access","chainable","emptyGet","raw","bulk","rcheckableType","rtagName","rscriptType","rleadingWhitespace","nodeNames","createSafeFragment","safeFrag","createDocumentFragment","leadingWhitespace","tbody","htmlSerialize","html5Clone","cloneNode","outerHTML","appendChecked","noCloneChecked","checkClone","noCloneEvent","wrapMap","option","legend","area","param","thead","tr","col","td","_default","getAll","found","setGlobalEval","refElements","optgroup","tfoot","colgroup","caption","th","rhtml","rtbody","fixDefaultChecked","defaultChecked","buildFragment","scripts","selection","ignored","wrap","safe","nodes","htmlPrefilter","createTextNode","eventName","change","focusin","rformElems","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","returnTrue","returnFalse","safeActiveElement","err","_on","types","one","origFn","events","handleObjIn","special","eventHandle","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","trigger","onlyHandlers","ontype","bubbleType","eventPath","Event","isTrigger","rnamespace","noBubble","parentWindow","isPropagationStopped","preventDefault","isDefaultPrevented","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","_handlers","sel","isNaN","button","originalEvent","fixHook","fixHooks","mouseHooks","keyHooks","props","srcElement","metaKey","original","which","charCode","keyCode","eventDoc","fromElement","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","load","focus","blur","click","beforeunload","returnValue","simulate","isSimulated","defaultPrevented","timeStamp","cancelBubble","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","form","_submitBubble","propertyName","_justChanged","attaches","rinlinejQuery","rnoshimcache","rxhtmlTag","rnoInnerhtml","rchecked","rscriptTypeMasked","rcleanScript","fragmentDiv","manipulationTarget","content","disableScript","restoreScript","cloneCopyEvent","dest","oldData","curData","fixCloneNodeIssues","defaultSelected","domManip","collection","hasScripts","iNoClone","html","_evalUrl","_remove","keepData","dataAndEvents","deepDataAndEvents","destElements","srcElements","inPage","forceAcceptData","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","insert","iframe","elemdisplay","HTML","BODY","actualDisplay","display","defaultDisplay","write","close","rmargin","rnumnonpx","swap","old","pixelPositionVal","pixelMarginRightVal","boxSizingReliableVal","reliableHiddenOffsetsVal","reliableMarginRightVal","reliableMarginLeftVal","computeStyleTests","divStyle","getComputedStyle","marginLeft","marginRight","getClientRects","borderCollapse","offsetHeight","opacity","cssFloat","backgroundClip","clearCloneStyle","boxSizing","MozBoxSizing","WebkitBoxSizing","reliableHiddenOffsets","boxSizingReliable","pixelMarginRight","pixelPosition","reliableMarginRight","reliableMarginLeft","getStyles","curCSS","rposition","addGetHookIf","conditionFn","hookFn","view","opener","computed","minWidth","maxWidth","getPropertyValue","currentStyle","left","rs","rsLeft","runtimeStyle","pixelLeft","ralpha","ropacity","rdisplayswap","rnumsplit","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssPrefixes","emptyStyle","vendorPropName","capName","showHide","hidden","setPositiveNumber","subtract","augmentWidthOrHeight","extra","isBorderBox","styles","getWidthOrHeight","valueIsBorderBox","Tween","easing","cssHooks","cssProps","origName","set","isFinite","$1","getBoundingClientRect","margin","padding","border","prefix","suffix","expand","expanded","parts","toggle","propHooks","run","percent","eased","duration","step","fx","linear","swing","cos","PI","fxNow","timerId","rfxtypes","rrun","createFxNow","genFx","includeWidth","height","createTween","animation","Animation","tweeners","properties","stopped","prefilters","tick","currentTime","startTime","tweens","opts","specialEasing","originalProperties","originalOptions","gotoEnd","rejectWith","propFilter","timer","anim","complete","tweener","oldfire","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","clearInterval","slow","fast","delay","time","timeout","clearTimeout","getSetAttribute","hrefNormalized","checkOn","optSelected","enctype","optDisabled","radioValue","rreturn","rspaces","valHooks","optionSet","scrollHeight","nodeHook","boolHook","ruseDefault","getSetInput","removeAttr","nType","attrHooks","bool","propName","attrNames","propFix","setAttributeNode","createAttribute","coords","contenteditable","rfocusable","rclickable","removeProp","tabindex","parseInt","rclass","getClass","classes","curValue","clazz","finalValue","toggleClass","stateVal","classNames","hasClass","hover","fnOver","fnOut","nonce","rquery","rvalidtokens","JSON","parse","requireNonComma","depth","str","comma","open","Function","parseXML","DOMParser","parseFromString","ActiveXObject","async","loadXML","rhash","rts","rheaders","rnoContent","rprotocol","rurl","transports","allTypes","ajaxLocation","ajaxLocParts","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","getDisplay","active","lastModified","etag","url","isLocal","processData","contentType","accepts","json","responseFields","converters","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","cacheURL","responseHeadersString","timeoutTimer","fireGlobals","transport","responseHeaders","callbackContext","globalEventContext","completeDeferred","_statusCode","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","mimeType","code","status","abort","statusText","finalText","success","method","crossDomain","traditional","hasContent","ifModified","headers","beforeSend","send","nativeStatusText","responses","isSuccess","response","modified","firstDataType","ct","finalDataType","ajaxHandleResponses","conv2","current","conv","dataFilter","ajaxConvert","getJSON","getScript","wrapAll","wrapInner","unwrap","filterHidden","visible","r20","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","v","encodeURIComponent","serialize","serializeArray","xhr","createActiveXHR","documentMode","createStandardXHR","xhrId","xhrCallbacks","xhrSupported","XMLHttpRequest","cors","_callback","username","xhrFields","isAbort","onreadystatechange","responseText","script","head","scriptCharset","charset","onload","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","getWindow","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","win","box","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","delegate","undelegate","size","andSelf","_jQuery","_$","noConflict","w","webpackPolyfill","deprecate","paths","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","loadCSPNonce","ref","cspNonce","Element","getData","setData","csrfParam","csrfToken","meta","CSRFProtection","refreshCSRFTokens","forEach","CustomEvent","evt","createEvent","initCustomEvent","bubbles","cancelable","detail","dispatchEvent","stopEverything","eventType","AcceptHeaders","createXHR","prepareOptions","processResponse","floor","OPENED","accept","withCredentials","DONE","parser","isCrossDomain","originAnchor","urlAnchor","protocol","host","serializeElement","additionalParam","inputs","formElements","allowAction","handleConfirm","confirm","message","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","action","isRemote","handleRemote","FormData","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","ctrlKey","rails","_rails_loaded"],"mappings":"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","file":"js/website-01bec2c2a7de1bc6d6fd.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 192);\n","import Rails from '@rails/ujs';\n\n\nrequire(\"@rails/ujs\").start()\n\n// POST FORM TO RAILS API\n$( document ).ready(function() {\n $('#formError').hide();\n $('#formSuccess').hide();\n\n const overlay = $('#overlay');\n $('.overlay-show').on('click', function() {\n overlay.addClass('show');\n });\n\n $('#close').on('click', function() {\n overlay.removeClass('show');\n })\n});\n\n// Handle form\nwindow.addEventListener(\"load\", () => {\n const element = document.querySelector(\"#new-customer\");\n element.addEventListener(\"ajax:success\", (event) => {\n $('#formSuccess').show();\n });\n element.addEventListener(\"ajax:error\", () => {\n $('#formError').show();\n });\n});\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * jQuery JavaScript Library v1.12.4\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://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-05-20T17:17Z\n */\n(function (global, factory) {\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && _typeof(module.exports) === \"object\") {\n // For CommonJS and CommonJS-like environments where a proper `window`\n // is present, execute the factory and get jQuery.\n // For environments that do not have a `window` with a `document`\n // (such as Node.js), expose a factory as module.exports.\n // This accentuates the need for the creation of a real `window`.\n // e.g. var jQuery = require(\"jquery\")(window);\n // See ticket #14549 for more info.\n module.exports = global.document ? factory(global, true) : function (w) {\n if (!w.document) {\n throw new Error(\"jQuery requires a window with a document\");\n }\n\n return factory(w);\n };\n } else {\n factory(global);\n } // Pass this if window is not defined yet\n\n})(typeof window !== \"undefined\" ? window : this, function (window, noGlobal) {\n // Support: Firefox 18+\n // Can't be in strict mode, several libs including ASP.NET trace\n // the stack via arguments.caller.callee and Firefox dies if\n // you try to trace through \"use strict\" call chains. (#13335)\n //\"use strict\";\n var deletedIds = [];\n var document = window.document;\n var _slice = deletedIds.slice;\n var concat = deletedIds.concat;\n var push = deletedIds.push;\n var indexOf = deletedIds.indexOf;\n var class2type = {};\n var toString = class2type.toString;\n var hasOwn = class2type.hasOwnProperty;\n var support = {};\n\n var version = \"1.12.4\",\n // Define a local copy of jQuery\n jQuery = function jQuery(selector, context) {\n // The jQuery object is actually just the init constructor 'enhanced'\n // Need init if jQuery is called (just allow error to be thrown if not included)\n return new jQuery.fn.init(selector, context);\n },\n // Support: Android<4.1, IE<9\n // Make sure we trim BOM and NBSP\n rtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\n // Matches dashed string for camelizing\n rmsPrefix = /^-ms-/,\n rdashAlpha = /-([\\da-z])/gi,\n // Used by jQuery.camelCase as callback to replace()\n fcamelCase = function fcamelCase(all, letter) {\n return letter.toUpperCase();\n };\n\n jQuery.fn = jQuery.prototype = {\n // The current version of jQuery being used\n jquery: version,\n constructor: jQuery,\n // Start with an empty selector\n selector: \"\",\n // The default length of a jQuery object is 0\n length: 0,\n toArray: function toArray() {\n return _slice.call(this);\n },\n // Get the Nth element in the matched element set OR\n // Get the whole matched element set as a clean array\n get: function get(num) {\n return num != null ? num < 0 ? this[num + this.length] : this[num] : // Return all the elements in a clean array\n _slice.call(this);\n },\n // Take an array of elements and push it onto the stack\n // (returning the new matched element set)\n pushStack: function pushStack(elems) {\n // Build a new jQuery matched element set\n var ret = jQuery.merge(this.constructor(), elems); // Add the old object onto the stack (as a reference)\n\n ret.prevObject = this;\n ret.context = this.context; // Return the newly-formed element set\n\n return ret;\n },\n // Execute a callback for every element in the matched set.\n each: function each(callback) {\n return jQuery.each(this, callback);\n },\n map: function map(callback) {\n return this.pushStack(jQuery.map(this, function (elem, i) {\n return callback.call(elem, i, elem);\n }));\n },\n slice: function slice() {\n return this.pushStack(_slice.apply(this, arguments));\n },\n first: function first() {\n return this.eq(0);\n },\n last: function last() {\n return this.eq(-1);\n },\n eq: function eq(i) {\n var len = this.length,\n j = +i + (i < 0 ? len : 0);\n return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\n },\n end: function end() {\n return this.prevObject || this.constructor();\n },\n // For internal use only.\n // Behaves like an Array's method, not like a jQuery method.\n push: push,\n sort: deletedIds.sort,\n splice: deletedIds.splice\n };\n\n jQuery.extend = jQuery.fn.extend = function () {\n var src,\n copyIsArray,\n copy,\n name,\n options,\n clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false; // Handle a deep copy situation\n\n if (typeof target === \"boolean\") {\n deep = target; // skip the boolean and the target\n\n target = arguments[i] || {};\n i++;\n } // Handle case when target is a string or something (possible in deep copy)\n\n\n if (_typeof(target) !== \"object\" && !jQuery.isFunction(target)) {\n target = {};\n } // extend jQuery itself if only one argument is passed\n\n\n if (i === length) {\n target = this;\n i--;\n }\n\n for (; i < length; i++) {\n // Only deal with non-null/undefined values\n if ((options = arguments[i]) != null) {\n // Extend the base object\n for (name in options) {\n src = target[name];\n copy = options[name]; // Prevent never-ending loop\n\n if (target === copy) {\n continue;\n } // Recurse if we're merging plain objects or arrays\n\n\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)))) {\n if (copyIsArray) {\n copyIsArray = false;\n clone = src && jQuery.isArray(src) ? src : [];\n } else {\n clone = src && jQuery.isPlainObject(src) ? src : {};\n } // Never move original objects, clone them\n\n\n target[name] = jQuery.extend(deep, clone, copy); // Don't bring in undefined values\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n } // Return the modified object\n\n\n return target;\n };\n\n jQuery.extend({\n // Unique for each copy of jQuery on the page\n expando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\n // Assume jQuery is ready without the ready module\n isReady: true,\n error: function error(msg) {\n throw new Error(msg);\n },\n noop: function noop() {},\n // See test/unit/core.js for details concerning isFunction.\n // Since version 1.3, DOM methods and functions like alert\n // aren't supported. They return false on IE (#2968).\n isFunction: function isFunction(obj) {\n return jQuery.type(obj) === \"function\";\n },\n isArray: Array.isArray || function (obj) {\n return jQuery.type(obj) === \"array\";\n },\n isWindow: function isWindow(obj) {\n /* jshint eqeqeq: false */\n return obj != null && obj == obj.window;\n },\n isNumeric: function isNumeric(obj) {\n // parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n // ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n // subtraction forces infinities to NaN\n // adding 1 corrects loss of precision from parseFloat (#15100)\n var realStringObj = obj && obj.toString();\n return !jQuery.isArray(obj) && realStringObj - parseFloat(realStringObj) + 1 >= 0;\n },\n isEmptyObject: function isEmptyObject(obj) {\n var name;\n\n for (name in obj) {\n return false;\n }\n\n return true;\n },\n isPlainObject: function isPlainObject(obj) {\n var key; // Must be an Object.\n // Because of IE, we also have to check the presence of the constructor property.\n // Make sure that DOM nodes and window objects don't pass through, as well\n\n if (!obj || jQuery.type(obj) !== \"object\" || obj.nodeType || jQuery.isWindow(obj)) {\n return false;\n }\n\n try {\n // Not own constructor property must be Object\n if (obj.constructor && !hasOwn.call(obj, \"constructor\") && !hasOwn.call(obj.constructor.prototype, \"isPrototypeOf\")) {\n return false;\n }\n } catch (e) {\n // IE8,9 Will throw exceptions on certain host objects #9897\n return false;\n } // Support: IE<9\n // Handle iteration over inherited properties before own properties.\n\n\n if (!support.ownFirst) {\n for (key in obj) {\n return hasOwn.call(obj, key);\n }\n } // Own properties are enumerated firstly, so to speed up,\n // if last one is own, then all properties are own.\n\n\n for (key in obj) {}\n\n return key === undefined || hasOwn.call(obj, key);\n },\n type: function type(obj) {\n if (obj == null) {\n return obj + \"\";\n }\n\n return _typeof(obj) === \"object\" || typeof obj === \"function\" ? class2type[toString.call(obj)] || \"object\" : _typeof(obj);\n },\n // Workarounds based on findings by Jim Driscoll\n // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context\n globalEval: function globalEval(data) {\n if (data && jQuery.trim(data)) {\n // We use execScript on Internet Explorer\n // We use an anonymous function so that context is window\n // rather than jQuery in Firefox\n (window.execScript || function (data) {\n window[\"eval\"].call(window, data); // jscs:ignore requireDotNotation\n })(data);\n }\n },\n // Convert dashed to camelCase; used by the css and data modules\n // Microsoft forgot to hump their vendor prefix (#9572)\n camelCase: function camelCase(string) {\n return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n },\n nodeName: function nodeName(elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n },\n each: function each(obj, callback) {\n var length,\n i = 0;\n\n if (isArrayLike(obj)) {\n length = obj.length;\n\n for (; i < length; i++) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n }\n\n return obj;\n },\n // Support: Android<4.1, IE<9\n trim: function trim(text) {\n return text == null ? \"\" : (text + \"\").replace(rtrim, \"\");\n },\n // results is for internal usage only\n makeArray: function makeArray(arr, results) {\n var ret = results || [];\n\n if (arr != null) {\n if (isArrayLike(Object(arr))) {\n jQuery.merge(ret, typeof arr === \"string\" ? [arr] : arr);\n } else {\n push.call(ret, arr);\n }\n }\n\n return ret;\n },\n inArray: function inArray(elem, arr, i) {\n var len;\n\n if (arr) {\n if (indexOf) {\n return indexOf.call(arr, elem, i);\n }\n\n len = arr.length;\n i = i ? i < 0 ? Math.max(0, len + i) : i : 0;\n\n for (; i < len; i++) {\n // Skip accessing in sparse arrays\n if (i in arr && arr[i] === elem) {\n return i;\n }\n }\n }\n\n return -1;\n },\n merge: function merge(first, second) {\n var len = +second.length,\n j = 0,\n i = first.length;\n\n while (j < len) {\n first[i++] = second[j++];\n } // Support: IE<9\n // Workaround casting of .length to NaN on otherwise arraylike objects (e.g., NodeLists)\n\n\n if (len !== len) {\n while (second[j] !== undefined) {\n first[i++] = second[j++];\n }\n }\n\n first.length = i;\n return first;\n },\n grep: function grep(elems, callback, invert) {\n var callbackInverse,\n matches = [],\n i = 0,\n length = elems.length,\n callbackExpect = !invert; // Go through the array, only saving the items\n // that pass the validator function\n\n for (; i < length; i++) {\n callbackInverse = !callback(elems[i], i);\n\n if (callbackInverse !== callbackExpect) {\n matches.push(elems[i]);\n }\n }\n\n return matches;\n },\n // arg is for internal usage only\n map: function map(elems, callback, arg) {\n var length,\n value,\n i = 0,\n ret = []; // Go through the array, translating each of the items to their new values\n\n if (isArrayLike(elems)) {\n length = elems.length;\n\n for (; i < length; i++) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n } // Go through every key on the object,\n\n } else {\n for (i in elems) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n }\n } // Flatten any nested arrays\n\n\n return concat.apply([], ret);\n },\n // A global GUID counter for objects\n guid: 1,\n // Bind a function to a context, optionally partially applying any\n // arguments.\n proxy: function proxy(fn, context) {\n var args, proxy, tmp;\n\n if (typeof context === \"string\") {\n tmp = fn[context];\n context = fn;\n fn = tmp;\n } // Quick check to determine if target is callable, in the spec\n // this throws a TypeError, but we will just return undefined.\n\n\n if (!jQuery.isFunction(fn)) {\n return undefined;\n } // Simulated bind\n\n\n args = _slice.call(arguments, 2);\n\n proxy = function proxy() {\n return fn.apply(context || this, args.concat(_slice.call(arguments)));\n }; // Set the guid of unique handler to the same of original handler, so it can be removed\n\n\n proxy.guid = fn.guid = fn.guid || jQuery.guid++;\n return proxy;\n },\n now: function now() {\n return +new Date();\n },\n // jQuery.support is not used in Core but other projects attach their\n // properties to it so it needs to exist.\n support: support\n }); // JSHint would error on this code due to the Symbol not being defined in ES5.\n // Defining this global in .jshintrc would create a danger of using the global\n // unguarded in another place, it seems safer to just disable JSHint for these\n // three lines.\n\n /* jshint ignore: start */\n\n if (typeof Symbol === \"function\") {\n jQuery.fn[Symbol.iterator] = deletedIds[Symbol.iterator];\n }\n /* jshint ignore: end */\n // Populate the class2type map\n\n\n jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n\n function isArrayLike(obj) {\n // Support: iOS 8.2 (not reproducible in simulator)\n // `in` check used to prevent JIT error (gh-2145)\n // hasOwn isn't used here due to false negatives\n // regarding Nodelist length in IE\n var length = !!obj && \"length\" in obj && obj.length,\n type = jQuery.type(obj);\n\n if (type === \"function\" || jQuery.isWindow(obj)) {\n return false;\n }\n\n return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\n\n var Sizzle =\n /*!\n * Sizzle CSS Selector Engine v2.2.1\n * http://sizzlejs.com/\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2015-10-17\n */\n function (window) {\n var i,\n support,\n Expr,\n getText,\n isXML,\n tokenize,\n compile,\n select,\n outermostContext,\n sortInput,\n hasDuplicate,\n // Local document vars\n setDocument,\n document,\n docElem,\n documentIsHTML,\n rbuggyQSA,\n rbuggyMatches,\n matches,\n contains,\n // Instance-specific data\n expando = \"sizzle\" + 1 * new Date(),\n preferredDoc = window.document,\n dirruns = 0,\n done = 0,\n classCache = createCache(),\n tokenCache = createCache(),\n compilerCache = createCache(),\n sortOrder = function sortOrder(a, b) {\n if (a === b) {\n hasDuplicate = true;\n }\n\n return 0;\n },\n // General-purpose constants\n MAX_NEGATIVE = 1 << 31,\n // Instance methods\n hasOwn = {}.hasOwnProperty,\n arr = [],\n pop = arr.pop,\n push_native = arr.push,\n push = arr.push,\n slice = arr.slice,\n // Use a stripped-down indexOf as it's faster than native\n // http://jsperf.com/thor-indexof-vs-for/5\n indexOf = function indexOf(list, elem) {\n var i = 0,\n len = list.length;\n\n for (; i < len; i++) {\n if (list[i] === elem) {\n return i;\n }\n }\n\n return -1;\n },\n booleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n // Regular expressions\n // http://www.w3.org/TR/css3-selectors/#whitespace\n whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n identifier = \"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",\n // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n attributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace + // Operator (capture 2)\n \"*([*^$|!~]?=)\" + whitespace + // \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace + \"*\\\\]\",\n pseudos = \":(\" + identifier + \")(?:\\\\((\" + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n // 1. quoted (capture 3; capture 4 or capture 5)\n \"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" + // 2. simple (capture 6)\n \"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" + // 3. anything else (capture 2)\n \".*\" + \")\\\\)|)\",\n // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n rwhitespace = new RegExp(whitespace + \"+\", \"g\"),\n rtrim = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\"),\n rcomma = new RegExp(\"^\" + whitespace + \"*,\" + whitespace + \"*\"),\n rcombinators = new RegExp(\"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\"),\n rattributeQuotes = new RegExp(\"=\" + whitespace + \"*([^\\\\]'\\\"]*?)\" + whitespace + \"*\\\\]\", \"g\"),\n rpseudo = new RegExp(pseudos),\n ridentifier = new RegExp(\"^\" + identifier + \"$\"),\n matchExpr = {\n \"ID\": new RegExp(\"^#(\" + identifier + \")\"),\n \"CLASS\": new RegExp(\"^\\\\.(\" + identifier + \")\"),\n \"TAG\": new RegExp(\"^(\" + identifier + \"|[*])\"),\n \"ATTR\": new RegExp(\"^\" + attributes),\n \"PSEUDO\": new RegExp(\"^\" + pseudos),\n \"CHILD\": new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\"),\n \"bool\": new RegExp(\"^(?:\" + booleans + \")$\", \"i\"),\n // For use in libraries implementing .is()\n // We use this for POS matching in `select`\n \"needsContext\": new RegExp(\"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\")\n },\n rinputs = /^(?:input|select|textarea|button)$/i,\n rheader = /^h\\d$/i,\n rnative = /^[^{]+\\{\\s*\\[native \\w/,\n // Easily-parseable/retrievable ID or TAG or CLASS selectors\n rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n rsibling = /[+~]/,\n rescape = /'|\\\\/g,\n // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n runescape = new RegExp(\"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\"),\n funescape = function funescape(_, escaped, escapedWhitespace) {\n var high = \"0x\" + escaped - 0x10000; // NaN means non-codepoint\n // Support: Firefox<24\n // Workaround erroneous numeric interpretation of +\"0x\"\n\n return high !== high || escapedWhitespace ? escaped : high < 0 ? // BMP codepoint\n String.fromCharCode(high + 0x10000) : // Supplemental Plane codepoint (surrogate pair)\n String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);\n },\n // Used for iframes\n // See setDocument()\n // Removing the function wrapper causes a \"Permission Denied\"\n // error in IE\n unloadHandler = function unloadHandler() {\n setDocument();\n }; // Optimize for push.apply( _, NodeList )\n\n\n try {\n push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes); // Support: Android<4.0\n // Detect silently failing push.apply\n\n arr[preferredDoc.childNodes.length].nodeType;\n } catch (e) {\n push = {\n apply: arr.length ? // Leverage slice if possible\n function (target, els) {\n push_native.apply(target, slice.call(els));\n } : // Support: IE<9\n // Otherwise append directly\n function (target, els) {\n var j = target.length,\n i = 0; // Can't trust NodeList.length\n\n while (target[j++] = els[i++]) {}\n\n target.length = j - 1;\n }\n };\n }\n\n function Sizzle(selector, context, results, seed) {\n var m,\n i,\n elem,\n nid,\n nidselect,\n match,\n groups,\n newSelector,\n newContext = context && context.ownerDocument,\n // nodeType defaults to 9, since context defaults to document\n nodeType = context ? context.nodeType : 9;\n results = results || []; // Return early from calls with invalid selector or context\n\n if (typeof selector !== \"string\" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) {\n return results;\n } // Try to shortcut find operations (as opposed to filters) in HTML documents\n\n\n if (!seed) {\n if ((context ? context.ownerDocument || context : preferredDoc) !== document) {\n setDocument(context);\n }\n\n context = context || document;\n\n if (documentIsHTML) {\n // If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n // (excepting DocumentFragment context, where the methods don't exist)\n if (nodeType !== 11 && (match = rquickExpr.exec(selector))) {\n // ID selector\n if (m = match[1]) {\n // Document context\n if (nodeType === 9) {\n if (elem = context.getElementById(m)) {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (elem.id === m) {\n results.push(elem);\n return results;\n }\n } else {\n return results;\n } // Element context\n\n } else {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (newContext && (elem = newContext.getElementById(m)) && contains(context, elem) && elem.id === m) {\n results.push(elem);\n return results;\n }\n } // Type selector\n\n } else if (match[2]) {\n push.apply(results, context.getElementsByTagName(selector));\n return results; // Class selector\n } else if ((m = match[3]) && support.getElementsByClassName && context.getElementsByClassName) {\n push.apply(results, context.getElementsByClassName(m));\n return results;\n }\n } // Take advantage of querySelectorAll\n\n\n if (support.qsa && !compilerCache[selector + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(selector))) {\n if (nodeType !== 1) {\n newContext = context;\n newSelector = selector; // qSA looks outside Element context, which is not what we want\n // Thanks to Andrew Dupont for this workaround technique\n // Support: IE <=8\n // Exclude object elements\n } else if (context.nodeName.toLowerCase() !== \"object\") {\n // Capture the context ID, setting it first if necessary\n if (nid = context.getAttribute(\"id\")) {\n nid = nid.replace(rescape, \"\\\\$&\");\n } else {\n context.setAttribute(\"id\", nid = expando);\n } // Prefix every selector in the list\n\n\n groups = tokenize(selector);\n i = groups.length;\n nidselect = ridentifier.test(nid) ? \"#\" + nid : \"[id='\" + nid + \"']\";\n\n while (i--) {\n groups[i] = nidselect + \" \" + toSelector(groups[i]);\n }\n\n newSelector = groups.join(\",\"); // Expand context for sibling selectors\n\n newContext = rsibling.test(selector) && testContext(context.parentNode) || context;\n }\n\n if (newSelector) {\n try {\n push.apply(results, newContext.querySelectorAll(newSelector));\n return results;\n } catch (qsaError) {} finally {\n if (nid === expando) {\n context.removeAttribute(\"id\");\n }\n }\n }\n }\n }\n } // All others\n\n\n return select(selector.replace(rtrim, \"$1\"), context, results, seed);\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 */\n\n\n function createCache() {\n var keys = [];\n\n function cache(key, value) {\n // Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n if (keys.push(key + \" \") > Expr.cacheLength) {\n // Only keep the most recent entries\n delete cache[keys.shift()];\n }\n\n return cache[key + \" \"] = value;\n }\n\n return cache;\n }\n /**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\n\n\n function markFunction(fn) {\n fn[expando] = true;\n return fn;\n }\n /**\n * Support testing using an element\n * @param {Function} fn Passed the created div and expects a boolean result\n */\n\n\n function assert(fn) {\n var div = document.createElement(\"div\");\n\n try {\n return !!fn(div);\n } catch (e) {\n return false;\n } finally {\n // Remove from its parent by default\n if (div.parentNode) {\n div.parentNode.removeChild(div);\n } // release memory in IE\n\n\n div = null;\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 */\n\n\n function addHandle(attrs, handler) {\n var arr = attrs.split(\"|\"),\n i = arr.length;\n\n while (i--) {\n Expr.attrHandle[arr[i]] = handler;\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 */\n\n\n function siblingCheck(a, b) {\n var cur = b && a,\n diff = cur && a.nodeType === 1 && b.nodeType === 1 && (~b.sourceIndex || MAX_NEGATIVE) - (~a.sourceIndex || MAX_NEGATIVE); // Use IE sourceIndex if available on both nodes\n\n if (diff) {\n return diff;\n } // Check if b follows a\n\n\n if (cur) {\n while (cur = cur.nextSibling) {\n if (cur === b) {\n return -1;\n }\n }\n }\n\n return a ? 1 : -1;\n }\n /**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\n\n\n function createInputPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\n\n\n function createButtonPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return (name === \"input\" || name === \"button\") && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\n\n\n function createPositionalPseudo(fn) {\n return markFunction(function (argument) {\n argument = +argument;\n return markFunction(function (seed, matches) {\n var j,\n matchIndexes = fn([], seed.length, argument),\n i = matchIndexes.length; // Match elements found at the specified indexes\n\n while (i--) {\n if (seed[j = matchIndexes[i]]) {\n seed[j] = !(matches[j] = seed[j]);\n }\n }\n });\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 */\n\n\n function testContext(context) {\n return context && typeof context.getElementsByTagName !== \"undefined\" && context;\n } // Expose support vars for convenience\n\n\n support = Sizzle.support = {};\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 */\n\n isXML = Sizzle.isXML = function (elem) {\n // documentElement is verified for cases where it doesn't yet exist\n // (such as loading iframes in IE - #4833)\n var documentElement = elem && (elem.ownerDocument || elem).documentElement;\n return documentElement ? documentElement.nodeName !== \"HTML\" : false;\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 */\n\n\n setDocument = Sizzle.setDocument = function (node) {\n var hasCompare,\n parent,\n doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected\n\n if (doc === document || doc.nodeType !== 9 || !doc.documentElement) {\n return document;\n } // Update global variables\n\n\n document = doc;\n docElem = document.documentElement;\n documentIsHTML = !isXML(document); // Support: IE 9-11, Edge\n // Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\n if ((parent = document.defaultView) && parent.top !== parent) {\n // Support: IE 11\n if (parent.addEventListener) {\n parent.addEventListener(\"unload\", unloadHandler, false); // Support: IE 9 - 10 only\n } else if (parent.attachEvent) {\n parent.attachEvent(\"onunload\", unloadHandler);\n }\n }\n /* Attributes\n ---------------------------------------------------------------------- */\n // Support: IE<8\n // Verify that getAttribute really returns attributes and not properties\n // (excepting IE8 booleans)\n\n\n support.attributes = assert(function (div) {\n div.className = \"i\";\n return !div.getAttribute(\"className\");\n });\n /* getElement(s)By*\n ---------------------------------------------------------------------- */\n // Check if getElementsByTagName(\"*\") returns only elements\n\n support.getElementsByTagName = assert(function (div) {\n div.appendChild(document.createComment(\"\"));\n return !div.getElementsByTagName(\"*\").length;\n }); // Support: IE<9\n\n support.getElementsByClassName = rnative.test(document.getElementsByClassName); // Support: IE<10\n // Check if getElementById returns elements by name\n // The broken getElementById methods don't pick up programatically-set names,\n // so use a roundabout getElementsByName test\n\n support.getById = assert(function (div) {\n docElem.appendChild(div).id = expando;\n return !document.getElementsByName || !document.getElementsByName(expando).length;\n }); // ID find and filter\n\n if (support.getById) {\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var m = context.getElementById(id);\n return m ? [m] : [];\n }\n };\n\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n return elem.getAttribute(\"id\") === attrId;\n };\n };\n } else {\n // Support: IE6/7\n // getElementById is not reliable as a find shortcut\n delete Expr.find[\"ID\"];\n\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n var node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n return node && node.value === attrId;\n };\n };\n } // Tag\n\n\n Expr.find[\"TAG\"] = support.getElementsByTagName ? function (tag, context) {\n if (typeof context.getElementsByTagName !== \"undefined\") {\n return context.getElementsByTagName(tag); // DocumentFragment nodes don't have gEBTN\n } else if (support.qsa) {\n return context.querySelectorAll(tag);\n }\n } : function (tag, context) {\n var elem,\n tmp = [],\n i = 0,\n // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n results = context.getElementsByTagName(tag); // Filter out possible comments\n\n if (tag === \"*\") {\n while (elem = results[i++]) {\n if (elem.nodeType === 1) {\n tmp.push(elem);\n }\n }\n\n return tmp;\n }\n\n return results;\n }; // Class\n\n Expr.find[\"CLASS\"] = support.getElementsByClassName && function (className, context) {\n if (typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML) {\n return context.getElementsByClassName(className);\n }\n };\n /* QSA/matchesSelector\n ---------------------------------------------------------------------- */\n // QSA and matchesSelector support\n // matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\n\n rbuggyMatches = []; // qSa(:focus) reports false when true (Chrome 21)\n // We allow this because of a bug in IE8/9 that throws an error\n // whenever `document.activeElement` is accessed on an iframe\n // So, we allow :focus to pass through QSA all the time to avoid the IE error\n // See http://bugs.jquery.com/ticket/13378\n\n rbuggyQSA = [];\n\n if (support.qsa = rnative.test(document.querySelectorAll)) {\n // Build QSA regex\n // Regex strategy adopted from Diego Perini\n assert(function (div) {\n // Select is set to empty string on purpose\n // This is to test IE's treatment of not explicitly\n // setting a boolean content attribute,\n // since its presence should be enough\n // http://bugs.jquery.com/ticket/12359\n docElem.appendChild(div).innerHTML = \"\" + \"\"; // Support: IE8, Opera 11-12.16\n // Nothing should be selected when empty strings follow ^= or $= or *=\n // The test attribute must be unknown in Opera but \"safe\" for WinRT\n // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\n if (div.querySelectorAll(\"[msallowcapture^='']\").length) {\n rbuggyQSA.push(\"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Support: IE8\n // Boolean attributes and \"value\" are not treated correctly\n\n\n if (!div.querySelectorAll(\"[selected]\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\n } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\n\n if (!div.querySelectorAll(\"[id~=\" + expando + \"-]\").length) {\n rbuggyQSA.push(\"~=\");\n } // Webkit/Opera - :checked should return selected option elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n // IE8 throws error here and will not see later tests\n\n\n if (!div.querySelectorAll(\":checked\").length) {\n rbuggyQSA.push(\":checked\");\n } // Support: Safari 8+, iOS 8+\n // https://bugs.webkit.org/show_bug.cgi?id=136851\n // In-page `selector#id sibing-combinator selector` fails\n\n\n if (!div.querySelectorAll(\"a#\" + expando + \"+*\").length) {\n rbuggyQSA.push(\".#.+[+~]\");\n }\n });\n assert(function (div) {\n // Support: Windows 8 Native Apps\n // The type and name attributes are restricted during .innerHTML assignment\n var input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"hidden\");\n div.appendChild(input).setAttribute(\"name\", \"D\"); // Support: IE8\n // Enforce case-sensitivity of name attribute\n\n if (div.querySelectorAll(\"[name=d]\").length) {\n rbuggyQSA.push(\"name\" + whitespace + \"*[*^$|!~]?=\");\n } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n // IE8 throws error here and will not see later tests\n\n\n if (!div.querySelectorAll(\":enabled\").length) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Opera 10-11 does not throw on post-comma invalid pseudos\n\n\n div.querySelectorAll(\"*,:x\");\n rbuggyQSA.push(\",.*:\");\n });\n }\n\n if (support.matchesSelector = rnative.test(matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector)) {\n assert(function (div) {\n // Check to see if it's possible to do matchesSelector\n // on a disconnected node (IE 9)\n support.disconnectedMatch = matches.call(div, \"div\"); // This should fail with an exception\n // Gecko does not error, returns false instead\n\n matches.call(div, \"[s!='']:x\");\n rbuggyMatches.push(\"!=\", pseudos);\n });\n }\n\n rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\n rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join(\"|\"));\n /* Contains\n ---------------------------------------------------------------------- */\n\n hasCompare = rnative.test(docElem.compareDocumentPosition); // Element contains another\n // Purposefully self-exclusive\n // As in, an element does not contain itself\n\n contains = hasCompare || rnative.test(docElem.contains) ? function (a, b) {\n var adown = a.nodeType === 9 ? a.documentElement : a,\n bup = b && b.parentNode;\n return a === bup || !!(bup && bup.nodeType === 1 && (adown.contains ? adown.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16));\n } : function (a, b) {\n if (b) {\n while (b = b.parentNode) {\n if (b === a) {\n return true;\n }\n }\n }\n\n return false;\n };\n /* Sorting\n ---------------------------------------------------------------------- */\n // Document order sorting\n\n sortOrder = hasCompare ? function (a, b) {\n // Flag for duplicate removal\n if (a === b) {\n hasDuplicate = true;\n return 0;\n } // Sort on method existence if only one input has compareDocumentPosition\n\n\n var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\n if (compare) {\n return compare;\n } // Calculate position if both inputs belong to the same document\n\n\n compare = (a.ownerDocument || a) === (b.ownerDocument || b) ? a.compareDocumentPosition(b) : // Otherwise we know they are disconnected\n 1; // Disconnected nodes\n\n if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) {\n // Choose the first element that is related to our preferred document\n if (a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a)) {\n return -1;\n }\n\n if (b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b)) {\n return 1;\n } // Maintain original order\n\n\n return sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0;\n }\n\n return compare & 4 ? -1 : 1;\n } : function (a, b) {\n // Exit early if the nodes are identical\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n\n var cur,\n i = 0,\n aup = a.parentNode,\n bup = b.parentNode,\n ap = [a],\n bp = [b]; // Parentless nodes are either documents or disconnected\n\n if (!aup || !bup) {\n return a === document ? -1 : b === document ? 1 : aup ? -1 : bup ? 1 : sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0; // If the nodes are siblings, we can do a quick check\n } else if (aup === bup) {\n return siblingCheck(a, b);\n } // Otherwise we need full lists of their ancestors for comparison\n\n\n cur = a;\n\n while (cur = cur.parentNode) {\n ap.unshift(cur);\n }\n\n cur = b;\n\n while (cur = cur.parentNode) {\n bp.unshift(cur);\n } // Walk down the tree looking for a discrepancy\n\n\n while (ap[i] === bp[i]) {\n i++;\n }\n\n return i ? // Do a sibling check if the nodes have a common ancestor\n siblingCheck(ap[i], bp[i]) : // Otherwise nodes in our document sort first\n ap[i] === preferredDoc ? -1 : bp[i] === preferredDoc ? 1 : 0;\n };\n return document;\n };\n\n Sizzle.matches = function (expr, elements) {\n return Sizzle(expr, null, null, elements);\n };\n\n Sizzle.matchesSelector = function (elem, expr) {\n // Set document vars if needed\n if ((elem.ownerDocument || elem) !== document) {\n setDocument(elem);\n } // Make sure that attribute selectors are quoted\n\n\n expr = expr.replace(rattributeQuotes, \"='$1']\");\n\n if (support.matchesSelector && documentIsHTML && !compilerCache[expr + \" \"] && (!rbuggyMatches || !rbuggyMatches.test(expr)) && (!rbuggyQSA || !rbuggyQSA.test(expr))) {\n try {\n var ret = matches.call(elem, expr); // IE 9's matchesSelector returns false on disconnected nodes\n\n if (ret || support.disconnectedMatch || // As well, disconnected nodes are said to be in a document\n // fragment in IE 9\n elem.document && elem.document.nodeType !== 11) {\n return ret;\n }\n } catch (e) {}\n }\n\n return Sizzle(expr, document, null, [elem]).length > 0;\n };\n\n Sizzle.contains = function (context, elem) {\n // Set document vars if needed\n if ((context.ownerDocument || context) !== document) {\n setDocument(context);\n }\n\n return contains(context, elem);\n };\n\n Sizzle.attr = function (elem, name) {\n // Set document vars if needed\n if ((elem.ownerDocument || elem) !== document) {\n setDocument(elem);\n }\n\n var fn = Expr.attrHandle[name.toLowerCase()],\n // Don't get fooled by Object.prototype properties (jQuery #13807)\n val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined;\n return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute(name) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n };\n\n Sizzle.error = function (msg) {\n throw new Error(\"Syntax error, unrecognized expression: \" + msg);\n };\n /**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\n\n\n Sizzle.uniqueSort = function (results) {\n var elem,\n duplicates = [],\n j = 0,\n i = 0; // Unless we *know* we can detect duplicates, assume their presence\n\n hasDuplicate = !support.detectDuplicates;\n sortInput = !support.sortStable && results.slice(0);\n results.sort(sortOrder);\n\n if (hasDuplicate) {\n while (elem = results[i++]) {\n if (elem === results[i]) {\n j = duplicates.push(i);\n }\n }\n\n while (j--) {\n results.splice(duplicates[j], 1);\n }\n } // Clear input after sorting to release objects\n // See https://github.com/jquery/sizzle/pull/225\n\n\n sortInput = null;\n return results;\n };\n /**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\n\n\n getText = Sizzle.getText = function (elem) {\n var node,\n ret = \"\",\n i = 0,\n nodeType = elem.nodeType;\n\n if (!nodeType) {\n // If no nodeType, this is expected to be an array\n while (node = elem[i++]) {\n // Do not traverse comment nodes\n ret += getText(node);\n }\n } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) {\n // Use textContent for elements\n // innerText usage removed for consistency of new lines (jQuery #11153)\n if (typeof elem.textContent === \"string\") {\n return elem.textContent;\n } else {\n // Traverse its children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n ret += getText(elem);\n }\n }\n } else if (nodeType === 3 || nodeType === 4) {\n return elem.nodeValue;\n } // Do not include comment or processing instruction nodes\n\n\n return ret;\n };\n\n Expr = Sizzle.selectors = {\n // Can be adjusted by the user\n cacheLength: 50,\n createPseudo: markFunction,\n match: matchExpr,\n attrHandle: {},\n find: {},\n relative: {\n \">\": {\n dir: \"parentNode\",\n first: true\n },\n \" \": {\n dir: \"parentNode\"\n },\n \"+\": {\n dir: \"previousSibling\",\n first: true\n },\n \"~\": {\n dir: \"previousSibling\"\n }\n },\n preFilter: {\n \"ATTR\": function ATTR(match) {\n match[1] = match[1].replace(runescape, funescape); // Move the given value to match[3] whether quoted or unquoted\n\n match[3] = (match[3] || match[4] || match[5] || \"\").replace(runescape, funescape);\n\n if (match[2] === \"~=\") {\n match[3] = \" \" + match[3] + \" \";\n }\n\n return match.slice(0, 4);\n },\n \"CHILD\": function CHILD(match) {\n /* matches from matchExpr[\"CHILD\"]\n \t1 type (only|nth|...)\n \t2 what (child|of-type)\n \t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n \t4 xn-component of xn+y argument ([+-]?\\d*n|)\n \t5 sign of xn-component\n \t6 x of xn-component\n \t7 sign of y-component\n \t8 y of y-component\n */\n match[1] = match[1].toLowerCase();\n\n if (match[1].slice(0, 3) === \"nth\") {\n // nth-* requires argument\n if (!match[3]) {\n Sizzle.error(match[0]);\n } // numeric x and y parameters for Expr.filter.CHILD\n // remember that false/true cast respectively to 0/1\n\n\n match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === \"even\" || match[3] === \"odd\"));\n match[5] = +(match[7] + match[8] || match[3] === \"odd\"); // other types prohibit arguments\n } else if (match[3]) {\n Sizzle.error(match[0]);\n }\n\n return match;\n },\n \"PSEUDO\": function PSEUDO(match) {\n var excess,\n unquoted = !match[6] && match[2];\n\n if (matchExpr[\"CHILD\"].test(match[0])) {\n return null;\n } // Accept quoted arguments as-is\n\n\n if (match[3]) {\n match[2] = match[4] || match[5] || \"\"; // Strip excess characters from unquoted arguments\n } else if (unquoted && rpseudo.test(unquoted) && (excess = tokenize(unquoted, true)) && (excess = unquoted.indexOf(\")\", unquoted.length - excess) - unquoted.length)) {\n // excess is a negative index\n match[0] = match[0].slice(0, excess);\n match[2] = unquoted.slice(0, excess);\n } // Return only captures needed by the pseudo filter method (type and argument)\n\n\n return match.slice(0, 3);\n }\n },\n filter: {\n \"TAG\": function TAG(nodeNameSelector) {\n var nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\n return nodeNameSelector === \"*\" ? function () {\n return true;\n } : function (elem) {\n return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n };\n },\n \"CLASS\": function CLASS(className) {\n var pattern = classCache[className + \" \"];\n return pattern || (pattern = new RegExp(\"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\")) && classCache(className, function (elem) {\n return pattern.test(typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\");\n });\n },\n \"ATTR\": function ATTR(name, operator, check) {\n return function (elem) {\n var result = Sizzle.attr(elem, name);\n\n if (result == null) {\n return operator === \"!=\";\n }\n\n if (!operator) {\n return true;\n }\n\n result += \"\";\n return operator === \"=\" ? result === check : operator === \"!=\" ? result !== check : operator === \"^=\" ? check && result.indexOf(check) === 0 : operator === \"*=\" ? check && result.indexOf(check) > -1 : operator === \"$=\" ? check && result.slice(-check.length) === check : operator === \"~=\" ? (\" \" + result.replace(rwhitespace, \" \") + \" \").indexOf(check) > -1 : operator === \"|=\" ? result === check || result.slice(0, check.length + 1) === check + \"-\" : false;\n };\n },\n \"CHILD\": function CHILD(type, what, argument, first, last) {\n var simple = type.slice(0, 3) !== \"nth\",\n forward = type.slice(-4) !== \"last\",\n ofType = what === \"of-type\";\n return first === 1 && last === 0 ? // Shortcut for :nth-*(n)\n function (elem) {\n return !!elem.parentNode;\n } : function (elem, context, xml) {\n var cache,\n uniqueCache,\n outerCache,\n node,\n nodeIndex,\n start,\n dir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n parent = elem.parentNode,\n name = ofType && elem.nodeName.toLowerCase(),\n useCache = !xml && !ofType,\n diff = false;\n\n if (parent) {\n // :(first|last|only)-(child|of-type)\n if (simple) {\n while (dir) {\n node = elem;\n\n while (node = node[dir]) {\n if (ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) {\n return false;\n }\n } // Reverse direction for :only-* (if we haven't yet done so)\n\n\n start = dir = type === \"only\" && !start && \"nextSibling\";\n }\n\n return true;\n }\n\n start = [forward ? parent.firstChild : parent.lastChild]; // non-xml :nth-child(...) stores cache data on `parent`\n\n if (forward && useCache) {\n // Seek `elem` from a previously-cached index\n // ...in a gzip-friendly way\n node = parent;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex && cache[2];\n node = nodeIndex && parent.childNodes[nodeIndex];\n\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n // When found, cache indexes on `parent` and break\n if (node.nodeType === 1 && ++diff && node === elem) {\n uniqueCache[type] = [dirruns, nodeIndex, diff];\n break;\n }\n }\n } else {\n // Use previously-cached element index if available\n if (useCache) {\n // ...in a gzip-friendly way\n node = elem;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex;\n } // xml :nth-child(...)\n // or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\n\n if (diff === false) {\n // Use the same loop as above to seek `elem` from the start\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n if ((ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) && ++diff) {\n // Cache the index of each encountered element\n if (useCache) {\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n uniqueCache[type] = [dirruns, diff];\n }\n\n if (node === elem) {\n break;\n }\n }\n }\n }\n } // Incorporate the offset, then check against cycle size\n\n\n diff -= last;\n return diff === first || diff % first === 0 && diff / first >= 0;\n }\n };\n },\n \"PSEUDO\": function PSEUDO(pseudo, argument) {\n // pseudo-class names are case-insensitive\n // http://www.w3.org/TR/selectors/#pseudo-classes\n // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n // Remember that setFilters inherits from pseudos\n var args,\n fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || Sizzle.error(\"unsupported pseudo: \" + pseudo); // The user may use createPseudo to indicate that\n // arguments are needed to create the filter function\n // just as Sizzle does\n\n if (fn[expando]) {\n return fn(argument);\n } // But maintain support for old signatures\n\n\n if (fn.length > 1) {\n args = [pseudo, pseudo, \"\", argument];\n return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) {\n var idx,\n matched = fn(seed, argument),\n i = matched.length;\n\n while (i--) {\n idx = indexOf(seed, matched[i]);\n seed[idx] = !(matches[idx] = matched[i]);\n }\n }) : function (elem) {\n return fn(elem, 0, args);\n };\n }\n\n return fn;\n }\n },\n pseudos: {\n // Potentially complex pseudos\n \"not\": markFunction(function (selector) {\n // Trim the selector passed to compile\n // to avoid treating leading and trailing\n // spaces as combinators\n var input = [],\n results = [],\n matcher = compile(selector.replace(rtrim, \"$1\"));\n return matcher[expando] ? markFunction(function (seed, matches, context, xml) {\n var elem,\n unmatched = matcher(seed, null, xml, []),\n i = seed.length; // Match elements unmatched by `matcher`\n\n while (i--) {\n if (elem = unmatched[i]) {\n seed[i] = !(matches[i] = elem);\n }\n }\n }) : function (elem, context, xml) {\n input[0] = elem;\n matcher(input, null, xml, results); // Don't keep the element (issue #299)\n\n input[0] = null;\n return !results.pop();\n };\n }),\n \"has\": markFunction(function (selector) {\n return function (elem) {\n return Sizzle(selector, elem).length > 0;\n };\n }),\n \"contains\": markFunction(function (text) {\n text = text.replace(runescape, funescape);\n return function (elem) {\n return (elem.textContent || elem.innerText || getText(elem)).indexOf(text) > -1;\n };\n }),\n // \"Whether an element is represented by a :lang() selector\n // is based solely on the element's language value\n // being equal to the identifier C,\n // or beginning with the identifier C immediately followed by \"-\".\n // The matching of C against the element's language value is performed case-insensitively.\n // The identifier C does not have to be a valid language name.\"\n // http://www.w3.org/TR/selectors/#lang-pseudo\n \"lang\": markFunction(function (lang) {\n // lang value must be a valid identifier\n if (!ridentifier.test(lang || \"\")) {\n Sizzle.error(\"unsupported lang: \" + lang);\n }\n\n lang = lang.replace(runescape, funescape).toLowerCase();\n return function (elem) {\n var elemLang;\n\n do {\n if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) {\n elemLang = elemLang.toLowerCase();\n return elemLang === lang || elemLang.indexOf(lang + \"-\") === 0;\n }\n } while ((elem = elem.parentNode) && elem.nodeType === 1);\n\n return false;\n };\n }),\n // Miscellaneous\n \"target\": function target(elem) {\n var hash = window.location && window.location.hash;\n return hash && hash.slice(1) === elem.id;\n },\n \"root\": function root(elem) {\n return elem === docElem;\n },\n \"focus\": function focus(elem) {\n return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n },\n // Boolean properties\n \"enabled\": function enabled(elem) {\n return elem.disabled === false;\n },\n \"disabled\": function disabled(elem) {\n return elem.disabled === true;\n },\n \"checked\": function checked(elem) {\n // In CSS3, :checked should return both checked and selected elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n var nodeName = elem.nodeName.toLowerCase();\n return nodeName === \"input\" && !!elem.checked || nodeName === \"option\" && !!elem.selected;\n },\n \"selected\": function selected(elem) {\n // Accessing this property makes selected-by-default\n // options in Safari work properly\n if (elem.parentNode) {\n elem.parentNode.selectedIndex;\n }\n\n return elem.selected === true;\n },\n // Contents\n \"empty\": function empty(elem) {\n // http://www.w3.org/TR/selectors/#empty-pseudo\n // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n // but not by others (comment: 8; processing instruction: 7; etc.)\n // nodeType < 6 works because attributes (2) do not appear as children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n if (elem.nodeType < 6) {\n return false;\n }\n }\n\n return true;\n },\n \"parent\": function parent(elem) {\n return !Expr.pseudos[\"empty\"](elem);\n },\n // Element/input types\n \"header\": function header(elem) {\n return rheader.test(elem.nodeName);\n },\n \"input\": function input(elem) {\n return rinputs.test(elem.nodeName);\n },\n \"button\": function button(elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === \"button\" || name === \"button\";\n },\n \"text\": function text(elem) {\n var attr;\n return elem.nodeName.toLowerCase() === \"input\" && elem.type === \"text\" && ((attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\");\n },\n // Position-in-collection\n \"first\": createPositionalPseudo(function () {\n return [0];\n }),\n \"last\": createPositionalPseudo(function (matchIndexes, length) {\n return [length - 1];\n }),\n \"eq\": createPositionalPseudo(function (matchIndexes, length, argument) {\n return [argument < 0 ? argument + length : argument];\n }),\n \"even\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 0;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"odd\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 1;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"lt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n\n for (; --i >= 0;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"gt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n\n for (; ++i < length;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n })\n }\n };\n Expr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"]; // Add button/input type pseudos\n\n for (i in {\n radio: true,\n checkbox: true,\n file: true,\n password: true,\n image: true\n }) {\n Expr.pseudos[i] = createInputPseudo(i);\n }\n\n for (i in {\n submit: true,\n reset: true\n }) {\n Expr.pseudos[i] = createButtonPseudo(i);\n } // Easy API for creating new setFilters\n\n\n function setFilters() {}\n\n setFilters.prototype = Expr.filters = Expr.pseudos;\n Expr.setFilters = new setFilters();\n\n tokenize = Sizzle.tokenize = function (selector, parseOnly) {\n var matched,\n match,\n tokens,\n type,\n soFar,\n groups,\n preFilters,\n cached = tokenCache[selector + \" \"];\n\n if (cached) {\n return parseOnly ? 0 : cached.slice(0);\n }\n\n soFar = selector;\n groups = [];\n preFilters = Expr.preFilter;\n\n while (soFar) {\n // Comma and first run\n if (!matched || (match = rcomma.exec(soFar))) {\n if (match) {\n // Don't consume trailing commas as valid\n soFar = soFar.slice(match[0].length) || soFar;\n }\n\n groups.push(tokens = []);\n }\n\n matched = false; // Combinators\n\n if (match = rcombinators.exec(soFar)) {\n matched = match.shift();\n tokens.push({\n value: matched,\n // Cast descendant combinators to space\n type: match[0].replace(rtrim, \" \")\n });\n soFar = soFar.slice(matched.length);\n } // Filters\n\n\n for (type in Expr.filter) {\n if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) {\n matched = match.shift();\n tokens.push({\n value: matched,\n type: type,\n matches: match\n });\n soFar = soFar.slice(matched.length);\n }\n }\n\n if (!matched) {\n break;\n }\n } // Return the length of the invalid excess\n // if we're just parsing\n // Otherwise, throw an error or return tokens\n\n\n return parseOnly ? soFar.length : soFar ? Sizzle.error(selector) : // Cache the tokens\n tokenCache(selector, groups).slice(0);\n };\n\n function toSelector(tokens) {\n var i = 0,\n len = tokens.length,\n selector = \"\";\n\n for (; i < len; i++) {\n selector += tokens[i].value;\n }\n\n return selector;\n }\n\n function addCombinator(matcher, combinator, base) {\n var dir = combinator.dir,\n checkNonElements = base && dir === \"parentNode\",\n doneName = done++;\n return combinator.first ? // Check against closest ancestor/preceding element\n function (elem, context, xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n return matcher(elem, context, xml);\n }\n }\n } : // Check against all ancestor/preceding elements\n function (elem, context, xml) {\n var oldCache,\n uniqueCache,\n outerCache,\n newCache = [dirruns, doneName]; // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\n if (xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n if (matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n } else {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n outerCache = elem[expando] || (elem[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[elem.uniqueID] || (outerCache[elem.uniqueID] = {});\n\n if ((oldCache = uniqueCache[dir]) && oldCache[0] === dirruns && oldCache[1] === doneName) {\n // Assign to newCache so results back-propagate to previous elements\n return newCache[2] = oldCache[2];\n } else {\n // Reuse newcache so results back-propagate to previous elements\n uniqueCache[dir] = newCache; // A match means we're done; a fail means we have to keep checking\n\n if (newCache[2] = matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n }\n }\n };\n }\n\n function elementMatcher(matchers) {\n return matchers.length > 1 ? function (elem, context, xml) {\n var i = matchers.length;\n\n while (i--) {\n if (!matchers[i](elem, context, xml)) {\n return false;\n }\n }\n\n return true;\n } : matchers[0];\n }\n\n function multipleContexts(selector, contexts, results) {\n var i = 0,\n len = contexts.length;\n\n for (; i < len; i++) {\n Sizzle(selector, contexts[i], results);\n }\n\n return results;\n }\n\n function condense(unmatched, map, filter, context, xml) {\n var elem,\n newUnmatched = [],\n i = 0,\n len = unmatched.length,\n mapped = map != null;\n\n for (; i < len; i++) {\n if (elem = unmatched[i]) {\n if (!filter || filter(elem, context, xml)) {\n newUnmatched.push(elem);\n\n if (mapped) {\n map.push(i);\n }\n }\n }\n }\n\n return newUnmatched;\n }\n\n function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\n if (postFilter && !postFilter[expando]) {\n postFilter = setMatcher(postFilter);\n }\n\n if (postFinder && !postFinder[expando]) {\n postFinder = setMatcher(postFinder, postSelector);\n }\n\n return markFunction(function (seed, results, context, xml) {\n var temp,\n i,\n elem,\n preMap = [],\n postMap = [],\n preexisting = results.length,\n // Get initial elements from seed or context\n elems = seed || multipleContexts(selector || \"*\", context.nodeType ? [context] : context, []),\n // Prefilter to get matcher input, preserving a map for seed-results synchronization\n matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems,\n matcherOut = matcher ? // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n postFinder || (seed ? preFilter : preexisting || postFilter) ? // ...intermediate processing is necessary\n [] : // ...otherwise use results directly\n results : matcherIn; // Find primary matches\n\n if (matcher) {\n matcher(matcherIn, matcherOut, context, xml);\n } // Apply postFilter\n\n\n if (postFilter) {\n temp = condense(matcherOut, postMap);\n postFilter(temp, [], context, xml); // Un-match failing elements by moving them back to matcherIn\n\n i = temp.length;\n\n while (i--) {\n if (elem = temp[i]) {\n matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\n }\n }\n }\n\n if (seed) {\n if (postFinder || preFilter) {\n if (postFinder) {\n // Get the final matcherOut by condensing this intermediate into postFinder contexts\n temp = [];\n i = matcherOut.length;\n\n while (i--) {\n if (elem = matcherOut[i]) {\n // Restore matcherIn since elem is not yet a final match\n temp.push(matcherIn[i] = elem);\n }\n }\n\n postFinder(null, matcherOut = [], temp, xml);\n } // Move matched elements from seed to results to keep them synchronized\n\n\n i = matcherOut.length;\n\n while (i--) {\n if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf(seed, elem) : preMap[i]) > -1) {\n seed[temp] = !(results[temp] = elem);\n }\n }\n } // Add elements to results, through postFinder if defined\n\n } else {\n matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut);\n\n if (postFinder) {\n postFinder(null, results, matcherOut, xml);\n } else {\n push.apply(results, matcherOut);\n }\n }\n });\n }\n\n function matcherFromTokens(tokens) {\n var checkContext,\n matcher,\n j,\n len = tokens.length,\n leadingRelative = Expr.relative[tokens[0].type],\n implicitRelative = leadingRelative || Expr.relative[\" \"],\n i = leadingRelative ? 1 : 0,\n // The foundational matcher ensures that elements are reachable from top-level context(s)\n matchContext = addCombinator(function (elem) {\n return elem === checkContext;\n }, implicitRelative, true),\n matchAnyContext = addCombinator(function (elem) {\n return indexOf(checkContext, elem) > -1;\n }, implicitRelative, true),\n matchers = [function (elem, context, xml) {\n var ret = !leadingRelative && (xml || context !== outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml)); // Avoid hanging onto element (issue #299)\n\n checkContext = null;\n return ret;\n }];\n\n for (; i < len; i++) {\n if (matcher = Expr.relative[tokens[i].type]) {\n matchers = [addCombinator(elementMatcher(matchers), matcher)];\n } else {\n matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches); // Return special upon seeing a positional matcher\n\n if (matcher[expando]) {\n // Find the next relative operator (if any) for proper handling\n j = ++i;\n\n for (; j < len; j++) {\n if (Expr.relative[tokens[j].type]) {\n break;\n }\n }\n\n return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector( // If the preceding token was a descendant combinator, insert an implicit any-element `*`\n tokens.slice(0, i - 1).concat({\n value: tokens[i - 2].type === \" \" ? \"*\" : \"\"\n })).replace(rtrim, \"$1\"), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens));\n }\n\n matchers.push(matcher);\n }\n }\n\n return elementMatcher(matchers);\n }\n\n function matcherFromGroupMatchers(elementMatchers, setMatchers) {\n var bySet = setMatchers.length > 0,\n byElement = elementMatchers.length > 0,\n superMatcher = function superMatcher(seed, context, xml, results, outermost) {\n var elem,\n j,\n matcher,\n matchedCount = 0,\n i = \"0\",\n unmatched = seed && [],\n setMatched = [],\n contextBackup = outermostContext,\n // We must always have either seed elements or outermost context\n elems = seed || byElement && Expr.find[\"TAG\"](\"*\", outermost),\n // Use integer dirruns iff this is the outermost matcher\n dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1,\n len = elems.length;\n\n if (outermost) {\n outermostContext = context === document || context || outermost;\n } // Add elements passing elementMatchers directly to results\n // Support: IE<9, Safari\n // Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\n\n for (; i !== len && (elem = elems[i]) != null; i++) {\n if (byElement && elem) {\n j = 0;\n\n if (!context && elem.ownerDocument !== document) {\n setDocument(elem);\n xml = !documentIsHTML;\n }\n\n while (matcher = elementMatchers[j++]) {\n if (matcher(elem, context || document, xml)) {\n results.push(elem);\n break;\n }\n }\n\n if (outermost) {\n dirruns = dirrunsUnique;\n }\n } // Track unmatched elements for set filters\n\n\n if (bySet) {\n // They will have gone through all possible matchers\n if (elem = !matcher && elem) {\n matchedCount--;\n } // Lengthen the array for every element, matched or not\n\n\n if (seed) {\n unmatched.push(elem);\n }\n }\n } // `i` is now the count of elements visited above, and adding it to `matchedCount`\n // makes the latter nonnegative.\n\n\n matchedCount += i; // Apply set filters to unmatched elements\n // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n // equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n // no element matchers and no seed.\n // Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n // case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n // numerically zero.\n\n if (bySet && i !== matchedCount) {\n j = 0;\n\n while (matcher = setMatchers[j++]) {\n matcher(unmatched, setMatched, context, xml);\n }\n\n if (seed) {\n // Reintegrate element matches to eliminate the need for sorting\n if (matchedCount > 0) {\n while (i--) {\n if (!(unmatched[i] || setMatched[i])) {\n setMatched[i] = pop.call(results);\n }\n }\n } // Discard index placeholder values to get only actual matches\n\n\n setMatched = condense(setMatched);\n } // Add matches to results\n\n\n push.apply(results, setMatched); // Seedless set matches succeeding multiple successful matchers stipulate sorting\n\n if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {\n Sizzle.uniqueSort(results);\n }\n } // Override manipulation of globals by nested matchers\n\n\n if (outermost) {\n dirruns = dirrunsUnique;\n outermostContext = contextBackup;\n }\n\n return unmatched;\n };\n\n return bySet ? markFunction(superMatcher) : superMatcher;\n }\n\n compile = Sizzle.compile = function (selector, match\n /* Internal Use Only */\n ) {\n var i,\n setMatchers = [],\n elementMatchers = [],\n cached = compilerCache[selector + \" \"];\n\n if (!cached) {\n // Generate a function of recursive functions that can be used to check each element\n if (!match) {\n match = tokenize(selector);\n }\n\n i = match.length;\n\n while (i--) {\n cached = matcherFromTokens(match[i]);\n\n if (cached[expando]) {\n setMatchers.push(cached);\n } else {\n elementMatchers.push(cached);\n }\n } // Cache the compiled function\n\n\n cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers)); // Save selector and tokenization\n\n cached.selector = selector;\n }\n\n return cached;\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 */\n\n\n select = Sizzle.select = function (selector, context, results, seed) {\n var i,\n tokens,\n token,\n type,\n find,\n compiled = typeof selector === \"function\" && selector,\n match = !seed && tokenize(selector = compiled.selector || selector);\n results = results || []; // Try to minimize operations if there is only one selector in the list and no seed\n // (the latter of which guarantees us context)\n\n if (match.length === 1) {\n // Reduce context if the leading compound selector is an ID\n tokens = match[0] = match[0].slice(0);\n\n if (tokens.length > 2 && (token = tokens[0]).type === \"ID\" && support.getById && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {\n context = (Expr.find[\"ID\"](token.matches[0].replace(runescape, funescape), context) || [])[0];\n\n if (!context) {\n return results; // Precompiled matchers will still verify ancestry, so step up a level\n } else if (compiled) {\n context = context.parentNode;\n }\n\n selector = selector.slice(tokens.shift().value.length);\n } // Fetch a seed set for right-to-left matching\n\n\n i = matchExpr[\"needsContext\"].test(selector) ? 0 : tokens.length;\n\n while (i--) {\n token = tokens[i]; // Abort if we hit a combinator\n\n if (Expr.relative[type = token.type]) {\n break;\n }\n\n if (find = Expr.find[type]) {\n // Search, expanding context for leading sibling combinators\n if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) {\n // If seed is empty or no tokens remain, we can return early\n tokens.splice(i, 1);\n selector = seed.length && toSelector(tokens);\n\n if (!selector) {\n push.apply(results, seed);\n return results;\n }\n\n break;\n }\n }\n }\n } // Compile and execute a filtering function if one is not provided\n // Provide `match` to avoid retokenization if we modified the selector above\n\n\n (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, !context || rsibling.test(selector) && testContext(context.parentNode) || context);\n return results;\n }; // One-time assignments\n // Sort stability\n\n\n support.sortStable = expando.split(\"\").sort(sortOrder).join(\"\") === expando; // Support: Chrome 14-35+\n // Always assume duplicates if they aren't passed to the comparison function\n\n support.detectDuplicates = !!hasDuplicate; // Initialize against the default document\n\n setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n // Detached nodes confoundingly follow *each other*\n\n support.sortDetached = assert(function (div1) {\n // Should return 1, but returns 4 (following)\n return div1.compareDocumentPosition(document.createElement(\"div\")) & 1;\n }); // Support: IE<8\n // Prevent attribute/property \"interpolation\"\n // http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\n\n if (!assert(function (div) {\n div.innerHTML = \"\";\n return div.firstChild.getAttribute(\"href\") === \"#\";\n })) {\n addHandle(\"type|href|height|width\", function (elem, name, isXML) {\n if (!isXML) {\n return elem.getAttribute(name, name.toLowerCase() === \"type\" ? 1 : 2);\n }\n });\n } // Support: IE<9\n // Use defaultValue in place of getAttribute(\"value\")\n\n\n if (!support.attributes || !assert(function (div) {\n div.innerHTML = \"\";\n div.firstChild.setAttribute(\"value\", \"\");\n return div.firstChild.getAttribute(\"value\") === \"\";\n })) {\n addHandle(\"value\", function (elem, name, isXML) {\n if (!isXML && elem.nodeName.toLowerCase() === \"input\") {\n return elem.defaultValue;\n }\n });\n } // Support: IE<9\n // Use getAttributeNode to fetch booleans when getAttribute lies\n\n\n if (!assert(function (div) {\n return div.getAttribute(\"disabled\") == null;\n })) {\n addHandle(booleans, function (elem, name, isXML) {\n var val;\n\n if (!isXML) {\n return elem[name] === true ? name.toLowerCase() : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n }\n });\n }\n\n return Sizzle;\n }(window);\n\n jQuery.find = Sizzle;\n jQuery.expr = Sizzle.selectors;\n jQuery.expr[\":\"] = jQuery.expr.pseudos;\n jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\n jQuery.text = Sizzle.getText;\n jQuery.isXMLDoc = Sizzle.isXML;\n jQuery.contains = Sizzle.contains;\n\n var dir = function dir(elem, _dir, until) {\n var matched = [],\n truncate = until !== undefined;\n\n while ((elem = elem[_dir]) && elem.nodeType !== 9) {\n if (elem.nodeType === 1) {\n if (truncate && jQuery(elem).is(until)) {\n break;\n }\n\n matched.push(elem);\n }\n }\n\n return matched;\n };\n\n var _siblings = function siblings(n, elem) {\n var matched = [];\n\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== elem) {\n matched.push(n);\n }\n }\n\n return matched;\n };\n\n var rneedsContext = jQuery.expr.match.needsContext;\n var rsingleTag = /^<([\\w-]+)\\s*\\/?>(?:<\\/\\1>|)$/;\n var risSimple = /^.[^:#\\[\\.,]*$/; // Implement the identical functionality for filter and not\n\n function winnow(elements, qualifier, not) {\n if (jQuery.isFunction(qualifier)) {\n return jQuery.grep(elements, function (elem, i) {\n /* jshint -W018 */\n return !!qualifier.call(elem, i, elem) !== not;\n });\n }\n\n if (qualifier.nodeType) {\n return jQuery.grep(elements, function (elem) {\n return elem === qualifier !== not;\n });\n }\n\n if (typeof qualifier === \"string\") {\n if (risSimple.test(qualifier)) {\n return jQuery.filter(qualifier, elements, not);\n }\n\n qualifier = jQuery.filter(qualifier, elements);\n }\n\n return jQuery.grep(elements, function (elem) {\n return jQuery.inArray(elem, qualifier) > -1 !== not;\n });\n }\n\n jQuery.filter = function (expr, elems, not) {\n var elem = elems[0];\n\n if (not) {\n expr = \":not(\" + expr + \")\";\n }\n\n return elems.length === 1 && elem.nodeType === 1 ? jQuery.find.matchesSelector(elem, expr) ? [elem] : [] : jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\n return elem.nodeType === 1;\n }));\n };\n\n jQuery.fn.extend({\n find: function find(selector) {\n var i,\n ret = [],\n self = this,\n len = self.length;\n\n if (typeof selector !== \"string\") {\n return this.pushStack(jQuery(selector).filter(function () {\n for (i = 0; i < len; i++) {\n if (jQuery.contains(self[i], this)) {\n return true;\n }\n }\n }));\n }\n\n for (i = 0; i < len; i++) {\n jQuery.find(selector, self[i], ret);\n } // Needed because $( selector, context ) becomes $( context ).find( selector )\n\n\n ret = this.pushStack(len > 1 ? jQuery.unique(ret) : ret);\n ret.selector = this.selector ? this.selector + \" \" + selector : selector;\n return ret;\n },\n filter: function filter(selector) {\n return this.pushStack(winnow(this, selector || [], false));\n },\n not: function not(selector) {\n return this.pushStack(winnow(this, selector || [], true));\n },\n is: function is(selector) {\n return !!winnow(this, // If this is a positional/relative selector, check membership in the returned set\n // so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n typeof selector === \"string\" && rneedsContext.test(selector) ? jQuery(selector) : selector || [], false).length;\n }\n }); // Initialize a jQuery object\n // A central reference to the root jQuery(document)\n\n var rootjQuery,\n // A simple way to check for HTML strings\n // Prioritize #id over to avoid XSS via location.hash (#9521)\n // Strict HTML recognition (#11290: must start with <)\n rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,\n init = jQuery.fn.init = function (selector, context, root) {\n var match, elem; // HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\n if (!selector) {\n return this;\n } // init accepts an alternate rootjQuery\n // so migrate can support jQuery.sub (gh-2101)\n\n\n root = root || rootjQuery; // Handle HTML strings\n\n if (typeof selector === \"string\") {\n if (selector.charAt(0) === \"<\" && selector.charAt(selector.length - 1) === \">\" && selector.length >= 3) {\n // Assume that strings that start and end with <> are HTML and skip the regex check\n match = [null, selector, null];\n } else {\n match = rquickExpr.exec(selector);\n } // Match html or make sure no context is specified for #id\n\n\n if (match && (match[1] || !context)) {\n // HANDLE: $(html) -> $(array)\n if (match[1]) {\n context = context instanceof jQuery ? context[0] : context; // scripts is true for back-compat\n // Intentionally let the error be thrown if parseHTML is not present\n\n jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true)); // HANDLE: $(html, props)\n\n if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\n for (match in context) {\n // Properties of context are called as methods if possible\n if (jQuery.isFunction(this[match])) {\n this[match](context[match]); // ...and otherwise set as attributes\n } else {\n this.attr(match, context[match]);\n }\n }\n }\n\n return this; // HANDLE: $(#id)\n } else {\n elem = document.getElementById(match[2]); // Check parentNode to catch when Blackberry 4.6 returns\n // nodes that are no longer in the document #6963\n\n if (elem && elem.parentNode) {\n // Handle the case where IE and Opera return items\n // by name instead of ID\n if (elem.id !== match[2]) {\n return rootjQuery.find(selector);\n } // Otherwise, we inject the element directly into the jQuery object\n\n\n this.length = 1;\n this[0] = elem;\n }\n\n this.context = document;\n this.selector = selector;\n return this;\n } // HANDLE: $(expr, $(...))\n\n } else if (!context || context.jquery) {\n return (context || root).find(selector); // HANDLE: $(expr, context)\n // (which is just equivalent to: $(context).find(expr)\n } else {\n return this.constructor(context).find(selector);\n } // HANDLE: $(DOMElement)\n\n } else if (selector.nodeType) {\n this.context = this[0] = selector;\n this.length = 1;\n return this; // HANDLE: $(function)\n // Shortcut for document ready\n } else if (jQuery.isFunction(selector)) {\n return typeof root.ready !== \"undefined\" ? root.ready(selector) : // Execute immediately if ready is not present\n selector(jQuery);\n }\n\n if (selector.selector !== undefined) {\n this.selector = selector.selector;\n this.context = selector.context;\n }\n\n return jQuery.makeArray(selector, this);\n }; // Give the init function the jQuery prototype for later instantiation\n\n\n init.prototype = jQuery.fn; // Initialize central reference\n\n rootjQuery = jQuery(document);\n var rparentsprev = /^(?:parents|prev(?:Until|All))/,\n // methods guaranteed to produce a unique set when starting from a unique set\n guaranteedUnique = {\n children: true,\n contents: true,\n next: true,\n prev: true\n };\n jQuery.fn.extend({\n has: function has(target) {\n var i,\n targets = jQuery(target, this),\n len = targets.length;\n return this.filter(function () {\n for (i = 0; i < len; i++) {\n if (jQuery.contains(this, targets[i])) {\n return true;\n }\n }\n });\n },\n closest: function closest(selectors, context) {\n var cur,\n i = 0,\n l = this.length,\n matched = [],\n pos = rneedsContext.test(selectors) || typeof selectors !== \"string\" ? jQuery(selectors, context || this.context) : 0;\n\n for (; i < l; i++) {\n for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\n // Always skip document fragments\n if (cur.nodeType < 11 && (pos ? pos.index(cur) > -1 : // Don't pass non-elements to Sizzle\n cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors))) {\n matched.push(cur);\n break;\n }\n }\n }\n\n return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched);\n },\n // Determine the position of an element within\n // the matched set of elements\n index: function index(elem) {\n // No argument, return index in parent\n if (!elem) {\n return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n } // index in selector\n\n\n if (typeof elem === \"string\") {\n return jQuery.inArray(this[0], jQuery(elem));\n } // Locate the position of the desired element\n\n\n return jQuery.inArray( // If it receives a jQuery object, the first element is used\n elem.jquery ? elem[0] : elem, this);\n },\n add: function add(selector, context) {\n return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context))));\n },\n addBack: function addBack(selector) {\n return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));\n }\n });\n\n function sibling(cur, dir) {\n do {\n cur = cur[dir];\n } while (cur && cur.nodeType !== 1);\n\n return cur;\n }\n\n jQuery.each({\n parent: function parent(elem) {\n var parent = elem.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function parents(elem) {\n return dir(elem, \"parentNode\");\n },\n parentsUntil: function parentsUntil(elem, i, until) {\n return dir(elem, \"parentNode\", until);\n },\n next: function next(elem) {\n return sibling(elem, \"nextSibling\");\n },\n prev: function prev(elem) {\n return sibling(elem, \"previousSibling\");\n },\n nextAll: function nextAll(elem) {\n return dir(elem, \"nextSibling\");\n },\n prevAll: function prevAll(elem) {\n return dir(elem, \"previousSibling\");\n },\n nextUntil: function nextUntil(elem, i, until) {\n return dir(elem, \"nextSibling\", until);\n },\n prevUntil: function prevUntil(elem, i, until) {\n return dir(elem, \"previousSibling\", until);\n },\n siblings: function siblings(elem) {\n return _siblings((elem.parentNode || {}).firstChild, elem);\n },\n children: function children(elem) {\n return _siblings(elem.firstChild);\n },\n contents: function contents(elem) {\n return jQuery.nodeName(elem, \"iframe\") ? elem.contentDocument || elem.contentWindow.document : jQuery.merge([], elem.childNodes);\n }\n }, function (name, fn) {\n jQuery.fn[name] = function (until, selector) {\n var ret = jQuery.map(this, fn, until);\n\n if (name.slice(-5) !== \"Until\") {\n selector = until;\n }\n\n if (selector && typeof selector === \"string\") {\n ret = jQuery.filter(selector, ret);\n }\n\n if (this.length > 1) {\n // Remove duplicates\n if (!guaranteedUnique[name]) {\n ret = jQuery.uniqueSort(ret);\n } // Reverse order for parents* and prev-derivatives\n\n\n if (rparentsprev.test(name)) {\n ret = ret.reverse();\n }\n }\n\n return this.pushStack(ret);\n };\n });\n var rnotwhite = /\\S+/g; // Convert String-formatted options into Object-formatted ones\n\n function createOptions(options) {\n var object = {};\n jQuery.each(options.match(rnotwhite) || [], function (_, flag) {\n object[flag] = true;\n });\n return object;\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 */\n\n\n jQuery.Callbacks = function (options) {\n // Convert options from String-formatted to Object-formatted if needed\n // (we check in cache first)\n options = typeof options === \"string\" ? createOptions(options) : jQuery.extend({}, options);\n\n var // Flag to know if list is currently firing\n firing,\n // Last fire value for non-forgettable lists\n memory,\n // Flag to know if list was already fired\n _fired,\n // Flag to prevent firing\n _locked,\n // Actual callback list\n list = [],\n // Queue of execution data for repeatable lists\n queue = [],\n // Index of currently firing callback (modified by add/remove as needed)\n firingIndex = -1,\n // Fire callbacks\n fire = function fire() {\n // Enforce single-firing\n _locked = options.once; // Execute callbacks for all pending executions,\n // respecting firingIndex overrides and runtime changes\n\n _fired = firing = true;\n\n for (; queue.length; firingIndex = -1) {\n memory = queue.shift();\n\n while (++firingIndex < list.length) {\n // Run callback and check for early termination\n if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) {\n // Jump to end and forget the data so .add doesn't re-fire\n firingIndex = list.length;\n memory = false;\n }\n }\n } // Forget the data if we're done with it\n\n\n if (!options.memory) {\n memory = false;\n }\n\n firing = false; // Clean up if we're done firing for good\n\n if (_locked) {\n // Keep an empty list if we have data for future add calls\n if (memory) {\n list = []; // Otherwise, this object is spent\n } else {\n list = \"\";\n }\n }\n },\n // Actual Callbacks object\n self = {\n // Add a callback or a collection of callbacks to the list\n add: function add() {\n if (list) {\n // If we have memory from a past run, we should fire after adding\n if (memory && !firing) {\n firingIndex = list.length - 1;\n queue.push(memory);\n }\n\n (function add(args) {\n jQuery.each(args, function (_, arg) {\n if (jQuery.isFunction(arg)) {\n if (!options.unique || !self.has(arg)) {\n list.push(arg);\n }\n } else if (arg && arg.length && jQuery.type(arg) !== \"string\") {\n // Inspect recursively\n add(arg);\n }\n });\n })(arguments);\n\n if (memory && !firing) {\n fire();\n }\n }\n\n return this;\n },\n // Remove a callback from the list\n remove: function remove() {\n jQuery.each(arguments, function (_, arg) {\n var index;\n\n while ((index = jQuery.inArray(arg, list, index)) > -1) {\n list.splice(index, 1); // Handle firing indexes\n\n if (index <= firingIndex) {\n firingIndex--;\n }\n }\n });\n return this;\n },\n // Check if a given callback is in the list.\n // If no argument is given, return whether or not list has callbacks attached.\n has: function has(fn) {\n return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0;\n },\n // Remove all callbacks from the list\n empty: function empty() {\n if (list) {\n list = [];\n }\n\n return this;\n },\n // Disable .fire and .add\n // Abort any current/pending executions\n // Clear all callbacks and values\n disable: function disable() {\n _locked = queue = [];\n list = memory = \"\";\n return this;\n },\n disabled: function disabled() {\n return !list;\n },\n // Disable .fire\n // Also disable .add unless we have memory (since it would have no effect)\n // Abort any pending executions\n lock: function lock() {\n _locked = true;\n\n if (!memory) {\n self.disable();\n }\n\n return this;\n },\n locked: function locked() {\n return !!_locked;\n },\n // Call all callbacks with the given context and arguments\n fireWith: function fireWith(context, args) {\n if (!_locked) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n queue.push(args);\n\n if (!firing) {\n fire();\n }\n }\n\n return this;\n },\n // Call all the callbacks with the given arguments\n fire: function fire() {\n self.fireWith(this, arguments);\n return this;\n },\n // To know if the callbacks have already been called at least once\n fired: function fired() {\n return !!_fired;\n }\n };\n\n return self;\n };\n\n jQuery.extend({\n Deferred: function Deferred(func) {\n var tuples = [// action, add listener, listener list, final state\n [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), \"rejected\"], [\"notify\", \"progress\", jQuery.Callbacks(\"memory\")]],\n _state = \"pending\",\n _promise = {\n state: function state() {\n return _state;\n },\n always: function always() {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n then: function then() {\n var fns = arguments;\n return jQuery.Deferred(function (newDefer) {\n jQuery.each(tuples, function (i, tuple) {\n var fn = jQuery.isFunction(fns[i]) && fns[i]; // deferred[ done | fail | progress ] for forwarding actions to newDefer\n\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n\n if (returned && jQuery.isFunction(returned.promise)) {\n returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);\n } else {\n newDefer[tuple[0] + \"With\"](this === _promise ? newDefer.promise() : this, fn ? [returned] : arguments);\n }\n });\n });\n fns = null;\n }).promise();\n },\n // Get a promise for this deferred\n // If obj is provided, the promise aspect is added to the object\n promise: function promise(obj) {\n return obj != null ? jQuery.extend(obj, _promise) : _promise;\n }\n },\n deferred = {}; // Keep pipe for back-compat\n\n _promise.pipe = _promise.then; // Add list-specific methods\n\n jQuery.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[3]; // promise[ done | fail | progress ] = list.add\n\n _promise[tuple[1]] = list.add; // Handle state\n\n if (stateString) {\n list.add(function () {\n // state = [ resolved | rejected ]\n _state = stateString; // [ reject_list | resolve_list ].disable; progress_list.lock\n }, tuples[i ^ 1][2].disable, tuples[2][2].lock);\n } // deferred[ resolve | reject | notify ]\n\n\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? _promise : this, arguments);\n return this;\n };\n\n deferred[tuple[0] + \"With\"] = list.fireWith;\n }); // Make the deferred a promise\n\n _promise.promise(deferred); // Call given func if any\n\n\n if (func) {\n func.call(deferred, deferred);\n } // All done!\n\n\n return deferred;\n },\n // Deferred helper\n when: function when(subordinate\n /* , ..., subordinateN */\n ) {\n var i = 0,\n resolveValues = _slice.call(arguments),\n length = resolveValues.length,\n // the count of uncompleted subordinates\n remaining = length !== 1 || subordinate && jQuery.isFunction(subordinate.promise) ? length : 0,\n // the master Deferred.\n // If resolveValues consist of only a single Deferred, just use that.\n deferred = remaining === 1 ? subordinate : jQuery.Deferred(),\n // Update function for both resolve and progress values\n updateFunc = function updateFunc(i, contexts, values) {\n return function (value) {\n contexts[i] = this;\n values[i] = arguments.length > 1 ? _slice.call(arguments) : value;\n\n if (values === progressValues) {\n deferred.notifyWith(contexts, values);\n } else if (! --remaining) {\n deferred.resolveWith(contexts, values);\n }\n };\n },\n progressValues,\n progressContexts,\n resolveContexts; // add listeners to Deferred subordinates; treat others as resolved\n\n\n if (length > 1) {\n progressValues = new Array(length);\n progressContexts = new Array(length);\n resolveContexts = new Array(length);\n\n for (; i < length; i++) {\n if (resolveValues[i] && jQuery.isFunction(resolveValues[i].promise)) {\n resolveValues[i].promise().progress(updateFunc(i, progressContexts, progressValues)).done(updateFunc(i, resolveContexts, resolveValues)).fail(deferred.reject);\n } else {\n --remaining;\n }\n }\n } // if we're not waiting on anything, resolve the master\n\n\n if (!remaining) {\n deferred.resolveWith(resolveContexts, resolveValues);\n }\n\n return deferred.promise();\n }\n }); // The deferred used on DOM ready\n\n var readyList;\n\n jQuery.fn.ready = function (fn) {\n // Add the callback\n jQuery.ready.promise().done(fn);\n return this;\n };\n\n jQuery.extend({\n // Is the DOM ready to be used? Set to true once it occurs.\n isReady: false,\n // A counter to track how many items to wait for before\n // the ready event fires. See #6781\n readyWait: 1,\n // Hold (or release) the ready event\n holdReady: function holdReady(hold) {\n if (hold) {\n jQuery.readyWait++;\n } else {\n jQuery.ready(true);\n }\n },\n // Handle when the DOM is ready\n ready: function ready(wait) {\n // Abort if there are pending holds or we're already ready\n if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\n return;\n } // Remember that the DOM is ready\n\n\n jQuery.isReady = true; // If a normal DOM Ready event fired, decrement, and wait if need be\n\n if (wait !== true && --jQuery.readyWait > 0) {\n return;\n } // If there are functions bound, to execute\n\n\n readyList.resolveWith(document, [jQuery]); // Trigger any bound ready events\n\n if (jQuery.fn.triggerHandler) {\n jQuery(document).triggerHandler(\"ready\");\n jQuery(document).off(\"ready\");\n }\n }\n });\n /**\n * Clean-up method for dom ready events\n */\n\n function detach() {\n if (document.addEventListener) {\n document.removeEventListener(\"DOMContentLoaded\", completed);\n window.removeEventListener(\"load\", completed);\n } else {\n document.detachEvent(\"onreadystatechange\", completed);\n window.detachEvent(\"onload\", completed);\n }\n }\n /**\n * The ready event handler and self cleanup method\n */\n\n\n function completed() {\n // readyState === \"complete\" is good enough for us to call the dom ready in oldIE\n if (document.addEventListener || window.event.type === \"load\" || document.readyState === \"complete\") {\n detach();\n jQuery.ready();\n }\n }\n\n jQuery.ready.promise = function (obj) {\n if (!readyList) {\n readyList = jQuery.Deferred(); // Catch cases where $(document).ready() is called\n // after the browser event has already occurred.\n // Support: IE6-10\n // Older IE sometimes signals \"interactive\" too soon\n\n if (document.readyState === \"complete\" || document.readyState !== \"loading\" && !document.documentElement.doScroll) {\n // Handle it asynchronously to allow scripts the opportunity to delay ready\n window.setTimeout(jQuery.ready); // Standards-based browsers support DOMContentLoaded\n } else if (document.addEventListener) {\n // Use the handy event callback\n document.addEventListener(\"DOMContentLoaded\", completed); // A fallback to window.onload, that will always work\n\n window.addEventListener(\"load\", completed); // If IE event model is used\n } else {\n // Ensure firing before onload, maybe late but safe also for iframes\n document.attachEvent(\"onreadystatechange\", completed); // A fallback to window.onload, that will always work\n\n window.attachEvent(\"onload\", completed); // If IE and not a frame\n // continually check to see if the document is ready\n\n var top = false;\n\n try {\n top = window.frameElement == null && document.documentElement;\n } catch (e) {}\n\n if (top && top.doScroll) {\n (function doScrollCheck() {\n if (!jQuery.isReady) {\n try {\n // Use the trick by Diego Perini\n // http://javascript.nwbox.com/IEContentLoaded/\n top.doScroll(\"left\");\n } catch (e) {\n return window.setTimeout(doScrollCheck, 50);\n } // detach all dom ready events\n\n\n detach(); // and execute any waiting functions\n\n jQuery.ready();\n }\n })();\n }\n }\n }\n\n return readyList.promise(obj);\n }; // Kick off the DOM ready check even if the user does not\n\n\n jQuery.ready.promise(); // Support: IE<9\n // Iteration over object's inherited properties before its own\n\n var i;\n\n for (i in jQuery(support)) {\n break;\n }\n\n support.ownFirst = i === \"0\"; // Note: most support tests are defined in their respective modules.\n // false until the test is run\n\n support.inlineBlockNeedsLayout = false; // Execute ASAP in case we need to set body.style.zoom\n\n jQuery(function () {\n // Minified: var a,b,c,d\n var val, div, body, container;\n body = document.getElementsByTagName(\"body\")[0];\n\n if (!body || !body.style) {\n // Return for frameset docs that don't have a body\n return;\n } // Setup\n\n\n div = document.createElement(\"div\");\n container = document.createElement(\"div\");\n container.style.cssText = \"position:absolute;border:0;width:0;height:0;top:0;left:-9999px\";\n body.appendChild(container).appendChild(div);\n\n if (typeof div.style.zoom !== \"undefined\") {\n // Support: IE<8\n // Check if natively block-level elements act like inline-block\n // elements when setting their display to 'inline' and giving\n // them layout\n div.style.cssText = \"display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1\";\n support.inlineBlockNeedsLayout = val = div.offsetWidth === 3;\n\n if (val) {\n // Prevent IE 6 from affecting layout for positioned elements #11048\n // Prevent IE from shrinking the body in IE 7 mode #12869\n // Support: IE<8\n body.style.zoom = 1;\n }\n }\n\n body.removeChild(container);\n });\n\n (function () {\n var div = document.createElement(\"div\"); // Support: IE<9\n\n support.deleteExpando = true;\n\n try {\n delete div.test;\n } catch (e) {\n support.deleteExpando = false;\n } // Null elements to avoid leaks in IE.\n\n\n div = null;\n })();\n\n var acceptData = function acceptData(elem) {\n var noData = jQuery.noData[(elem.nodeName + \" \").toLowerCase()],\n nodeType = +elem.nodeType || 1; // Do not set data on non-element DOM nodes because it will not be cleared (#8335).\n\n return nodeType !== 1 && nodeType !== 9 ? false : // Nodes accept data unless otherwise specified; rejection can be conditional\n !noData || noData !== true && elem.getAttribute(\"classid\") === noData;\n };\n\n var rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n rmultiDash = /([A-Z])/g;\n\n function dataAttr(elem, key, data) {\n // If nothing was found internally, try to fetch any\n // data from the HTML5 data-* attribute\n if (data === undefined && elem.nodeType === 1) {\n var name = \"data-\" + key.replace(rmultiDash, \"-$1\").toLowerCase();\n data = elem.getAttribute(name);\n\n if (typeof data === \"string\") {\n try {\n data = data === \"true\" ? true : data === \"false\" ? false : data === \"null\" ? null : // Only convert to a number if it doesn't change the string\n +data + \"\" === data ? +data : rbrace.test(data) ? jQuery.parseJSON(data) : data;\n } catch (e) {} // Make sure we set the data so it isn't changed later\n\n\n jQuery.data(elem, key, data);\n } else {\n data = undefined;\n }\n }\n\n return data;\n } // checks a cache object for emptiness\n\n\n function isEmptyDataObject(obj) {\n var name;\n\n for (name in obj) {\n // if the public data object is empty, the private is still empty\n if (name === \"data\" && jQuery.isEmptyObject(obj[name])) {\n continue;\n }\n\n if (name !== \"toJSON\") {\n return false;\n }\n }\n\n return true;\n }\n\n function internalData(elem, name, data, pvt\n /* Internal Use Only */\n ) {\n if (!acceptData(elem)) {\n return;\n }\n\n var ret,\n thisCache,\n internalKey = jQuery.expando,\n // We have to handle DOM nodes and JS objects differently because IE6-7\n // can't GC object references properly across the DOM-JS boundary\n isNode = elem.nodeType,\n // Only DOM nodes need the global jQuery cache; JS object data is\n // attached directly to the object so GC can occur automatically\n cache = isNode ? jQuery.cache : elem,\n // Only defining an ID for JS objects if its cache already exists allows\n // the code to shortcut on the same path as a DOM node with no cache\n id = isNode ? elem[internalKey] : elem[internalKey] && internalKey; // Avoid doing any more work than we need to when trying to get data on an\n // object that has no data at all\n\n if ((!id || !cache[id] || !pvt && !cache[id].data) && data === undefined && typeof name === \"string\") {\n return;\n }\n\n if (!id) {\n // Only DOM nodes need a new unique ID for each element since their data\n // ends up in the global cache\n if (isNode) {\n id = elem[internalKey] = deletedIds.pop() || jQuery.guid++;\n } else {\n id = internalKey;\n }\n }\n\n if (!cache[id]) {\n // Avoid exposing jQuery metadata on plain JS objects when the object\n // is serialized using JSON.stringify\n cache[id] = isNode ? {} : {\n toJSON: jQuery.noop\n };\n } // An object can be passed to jQuery.data instead of a key/value pair; this gets\n // shallow copied over onto the existing cache\n\n\n if (_typeof(name) === \"object\" || typeof name === \"function\") {\n if (pvt) {\n cache[id] = jQuery.extend(cache[id], name);\n } else {\n cache[id].data = jQuery.extend(cache[id].data, name);\n }\n }\n\n thisCache = cache[id]; // jQuery data() is stored in a separate object inside the object's internal data\n // cache in order to avoid key collisions between internal data and user-defined\n // data.\n\n if (!pvt) {\n if (!thisCache.data) {\n thisCache.data = {};\n }\n\n thisCache = thisCache.data;\n }\n\n if (data !== undefined) {\n thisCache[jQuery.camelCase(name)] = data;\n } // Check for both converted-to-camel and non-converted data property names\n // If a data property was specified\n\n\n if (typeof name === \"string\") {\n // First Try to find as-is property data\n ret = thisCache[name]; // Test for null|undefined property data\n\n if (ret == null) {\n // Try to find the camelCased property\n ret = thisCache[jQuery.camelCase(name)];\n }\n } else {\n ret = thisCache;\n }\n\n return ret;\n }\n\n function internalRemoveData(elem, name, pvt) {\n if (!acceptData(elem)) {\n return;\n }\n\n var thisCache,\n i,\n isNode = elem.nodeType,\n // See jQuery.data for more information\n cache = isNode ? jQuery.cache : elem,\n id = isNode ? elem[jQuery.expando] : jQuery.expando; // If there is already no cache entry for this object, there is no\n // purpose in continuing\n\n if (!cache[id]) {\n return;\n }\n\n if (name) {\n thisCache = pvt ? cache[id] : cache[id].data;\n\n if (thisCache) {\n // Support array or space separated string names for data keys\n if (!jQuery.isArray(name)) {\n // try the string as a key before any manipulation\n if (name in thisCache) {\n name = [name];\n } else {\n // split the camel cased version by spaces unless a key with the spaces exists\n name = jQuery.camelCase(name);\n\n if (name in thisCache) {\n name = [name];\n } else {\n name = name.split(\" \");\n }\n }\n } else {\n // If \"name\" is an array of keys...\n // When data is initially created, via (\"key\", \"val\") signature,\n // keys will be converted to camelCase.\n // Since there is no way to tell _how_ a key was added, remove\n // both plain key and camelCase key. #12786\n // This will only penalize the array argument path.\n name = name.concat(jQuery.map(name, jQuery.camelCase));\n }\n\n i = name.length;\n\n while (i--) {\n delete thisCache[name[i]];\n } // If there is no data left in the cache, we want to continue\n // and let the cache object itself get destroyed\n\n\n if (pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache)) {\n return;\n }\n }\n } // See jQuery.data for more information\n\n\n if (!pvt) {\n delete cache[id].data; // Don't destroy the parent cache unless the internal data object\n // had been the only thing left in it\n\n if (!isEmptyDataObject(cache[id])) {\n return;\n }\n } // Destroy the cache\n\n\n if (isNode) {\n jQuery.cleanData([elem], true); // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)\n\n /* jshint eqeqeq: false */\n } else if (support.deleteExpando || cache != cache.window) {\n /* jshint eqeqeq: true */\n delete cache[id]; // When all else fails, undefined\n } else {\n cache[id] = undefined;\n }\n }\n\n jQuery.extend({\n cache: {},\n // The following elements (space-suffixed to avoid Object.prototype collisions)\n // throw uncatchable exceptions if you attempt to set expando properties\n noData: {\n \"applet \": true,\n \"embed \": true,\n // ...but Flash objects (which have this classid) *can* handle expandos\n \"object \": \"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"\n },\n hasData: function hasData(elem) {\n elem = elem.nodeType ? jQuery.cache[elem[jQuery.expando]] : elem[jQuery.expando];\n return !!elem && !isEmptyDataObject(elem);\n },\n data: function data(elem, name, _data) {\n return internalData(elem, name, _data);\n },\n removeData: function removeData(elem, name) {\n return internalRemoveData(elem, name);\n },\n // For internal use only.\n _data: function _data(elem, name, data) {\n return internalData(elem, name, data, true);\n },\n _removeData: function _removeData(elem, name) {\n return internalRemoveData(elem, name, true);\n }\n });\n jQuery.fn.extend({\n data: function data(key, value) {\n var i,\n name,\n data,\n elem = this[0],\n attrs = elem && elem.attributes; // Special expections of .data basically thwart jQuery.access,\n // so implement the relevant behavior ourselves\n // Gets all values\n\n if (key === undefined) {\n if (this.length) {\n data = jQuery.data(elem);\n\n if (elem.nodeType === 1 && !jQuery._data(elem, \"parsedAttrs\")) {\n i = attrs.length;\n\n while (i--) {\n // Support: IE11+\n // The attrs elements can be null (#14894)\n if (attrs[i]) {\n name = attrs[i].name;\n\n if (name.indexOf(\"data-\") === 0) {\n name = jQuery.camelCase(name.slice(5));\n dataAttr(elem, name, data[name]);\n }\n }\n }\n\n jQuery._data(elem, \"parsedAttrs\", true);\n }\n }\n\n return data;\n } // Sets multiple values\n\n\n if (_typeof(key) === \"object\") {\n return this.each(function () {\n jQuery.data(this, key);\n });\n }\n\n return arguments.length > 1 ? // Sets one value\n this.each(function () {\n jQuery.data(this, key, value);\n }) : // Gets one value\n // Try to fetch any internally stored data first\n elem ? dataAttr(elem, key, jQuery.data(elem, key)) : undefined;\n },\n removeData: function removeData(key) {\n return this.each(function () {\n jQuery.removeData(this, key);\n });\n }\n });\n jQuery.extend({\n queue: function queue(elem, type, data) {\n var queue;\n\n if (elem) {\n type = (type || \"fx\") + \"queue\";\n queue = jQuery._data(elem, type); // Speed up dequeue by getting out quickly if this is just a lookup\n\n if (data) {\n if (!queue || jQuery.isArray(data)) {\n queue = jQuery._data(elem, type, jQuery.makeArray(data));\n } else {\n queue.push(data);\n }\n }\n\n return queue || [];\n }\n },\n dequeue: function dequeue(elem, type) {\n type = type || \"fx\";\n\n var queue = jQuery.queue(elem, type),\n startLength = queue.length,\n fn = queue.shift(),\n hooks = jQuery._queueHooks(elem, type),\n next = function next() {\n jQuery.dequeue(elem, type);\n }; // If the fx queue is dequeued, always remove the progress sentinel\n\n\n if (fn === \"inprogress\") {\n fn = queue.shift();\n startLength--;\n }\n\n if (fn) {\n // Add a progress sentinel to prevent the fx queue from being\n // automatically dequeued\n if (type === \"fx\") {\n queue.unshift(\"inprogress\");\n } // clear up the last queue stop function\n\n\n delete hooks.stop;\n fn.call(elem, next, hooks);\n }\n\n if (!startLength && hooks) {\n hooks.empty.fire();\n }\n },\n // not intended for public consumption - generates a queueHooks object,\n // or returns the current one\n _queueHooks: function _queueHooks(elem, type) {\n var key = type + \"queueHooks\";\n return jQuery._data(elem, key) || jQuery._data(elem, key, {\n empty: jQuery.Callbacks(\"once memory\").add(function () {\n jQuery._removeData(elem, type + \"queue\");\n\n jQuery._removeData(elem, key);\n })\n });\n }\n });\n jQuery.fn.extend({\n queue: function queue(type, data) {\n var setter = 2;\n\n if (typeof type !== \"string\") {\n data = type;\n type = \"fx\";\n setter--;\n }\n\n if (arguments.length < setter) {\n return jQuery.queue(this[0], type);\n }\n\n return data === undefined ? this : this.each(function () {\n var queue = jQuery.queue(this, type, data); // ensure a hooks for this queue\n\n jQuery._queueHooks(this, type);\n\n if (type === \"fx\" && queue[0] !== \"inprogress\") {\n jQuery.dequeue(this, type);\n }\n });\n },\n dequeue: function dequeue(type) {\n return this.each(function () {\n jQuery.dequeue(this, type);\n });\n },\n clearQueue: function clearQueue(type) {\n return this.queue(type || \"fx\", []);\n },\n // Get a promise resolved when queues of a certain type\n // are emptied (fx is the type by default)\n promise: function promise(type, obj) {\n var tmp,\n count = 1,\n defer = jQuery.Deferred(),\n elements = this,\n i = this.length,\n resolve = function resolve() {\n if (! --count) {\n defer.resolveWith(elements, [elements]);\n }\n };\n\n if (typeof type !== \"string\") {\n obj = type;\n type = undefined;\n }\n\n type = type || \"fx\";\n\n while (i--) {\n tmp = jQuery._data(elements[i], type + \"queueHooks\");\n\n if (tmp && tmp.empty) {\n count++;\n tmp.empty.add(resolve);\n }\n }\n\n resolve();\n return defer.promise(obj);\n }\n });\n\n (function () {\n var shrinkWrapBlocksVal;\n\n support.shrinkWrapBlocks = function () {\n if (shrinkWrapBlocksVal != null) {\n return shrinkWrapBlocksVal;\n } // Will be changed later if needed.\n\n\n shrinkWrapBlocksVal = false; // Minified: var b,c,d\n\n var div, body, container;\n body = document.getElementsByTagName(\"body\")[0];\n\n if (!body || !body.style) {\n // Test fired too early or in an unsupported environment, exit.\n return;\n } // Setup\n\n\n div = document.createElement(\"div\");\n container = document.createElement(\"div\");\n container.style.cssText = \"position:absolute;border:0;width:0;height:0;top:0;left:-9999px\";\n body.appendChild(container).appendChild(div); // Support: IE6\n // Check if elements with layout shrink-wrap their children\n\n if (typeof div.style.zoom !== \"undefined\") {\n // Reset CSS: box-sizing; display; margin; border\n div.style.cssText = // Support: Firefox<29, Android 2.3\n // Vendor-prefix box-sizing\n \"-webkit-box-sizing:content-box;-moz-box-sizing:content-box;\" + \"box-sizing:content-box;display:block;margin:0;border:0;\" + \"padding:1px;width:1px;zoom:1\";\n div.appendChild(document.createElement(\"div\")).style.width = \"5px\";\n shrinkWrapBlocksVal = div.offsetWidth !== 3;\n }\n\n body.removeChild(container);\n return shrinkWrapBlocksVal;\n };\n })();\n\n var pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n var rcssNum = new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\n var cssExpand = [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n\n var isHidden = function isHidden(elem, el) {\n // isHidden might be called from jQuery#filter function;\n // in that case, element will be second argument\n elem = el || elem;\n return jQuery.css(elem, \"display\") === \"none\" || !jQuery.contains(elem.ownerDocument, elem);\n };\n\n function adjustCSS(elem, prop, valueParts, tween) {\n var adjusted,\n scale = 1,\n maxIterations = 20,\n currentValue = tween ? function () {\n return tween.cur();\n } : function () {\n return jQuery.css(elem, prop, \"\");\n },\n initial = currentValue(),\n unit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? \"\" : \"px\"),\n // Starting value computation is required for potential unit mismatches\n initialInUnit = (jQuery.cssNumber[prop] || unit !== \"px\" && +initial) && rcssNum.exec(jQuery.css(elem, prop));\n\n if (initialInUnit && initialInUnit[3] !== unit) {\n // Trust units reported by jQuery.css\n unit = unit || initialInUnit[3]; // Make sure we update the tween properties later on\n\n valueParts = valueParts || []; // Iteratively approximate from a nonzero starting point\n\n initialInUnit = +initial || 1;\n\n do {\n // If previous iteration zeroed out, double until we get *something*.\n // Use string for doubling so we don't accidentally see scale as unchanged below\n scale = scale || \".5\"; // Adjust and apply\n\n initialInUnit = initialInUnit / scale;\n jQuery.style(elem, prop, initialInUnit + unit); // Update scale, tolerating zero or NaN from tween.cur()\n // Break the loop if scale is unchanged or perfect, or if we've just had enough.\n } while (scale !== (scale = currentValue() / initial) && scale !== 1 && --maxIterations);\n }\n\n if (valueParts) {\n initialInUnit = +initialInUnit || +initial || 0; // Apply relative offset (+=/-=) if specified\n\n adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2];\n\n if (tween) {\n tween.unit = unit;\n tween.start = initialInUnit;\n tween.end = adjusted;\n }\n }\n\n return adjusted;\n } // Multifunctional method to get and set values of a collection\n // The value/s can optionally be executed if it's a function\n\n\n var access = function access(elems, fn, key, value, chainable, emptyGet, raw) {\n var i = 0,\n length = elems.length,\n bulk = key == null; // Sets many values\n\n if (jQuery.type(key) === \"object\") {\n chainable = true;\n\n for (i in key) {\n access(elems, fn, i, key[i], true, emptyGet, raw);\n } // Sets one value\n\n } else if (value !== undefined) {\n chainable = true;\n\n if (!jQuery.isFunction(value)) {\n raw = true;\n }\n\n if (bulk) {\n // Bulk operations run against the entire set\n if (raw) {\n fn.call(elems, value);\n fn = null; // ...except when executing function values\n } else {\n bulk = fn;\n\n fn = function fn(elem, key, value) {\n return bulk.call(jQuery(elem), value);\n };\n }\n }\n\n if (fn) {\n for (; i < length; i++) {\n fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));\n }\n }\n }\n\n return chainable ? elems : // Gets\n bulk ? fn.call(elems) : length ? fn(elems[0], key) : emptyGet;\n };\n\n var rcheckableType = /^(?:checkbox|radio)$/i;\n var rtagName = /<([\\w:-]+)/;\n var rscriptType = /^$|\\/(?:java|ecma)script/i;\n var rleadingWhitespace = /^\\s+/;\n var nodeNames = \"abbr|article|aside|audio|bdi|canvas|data|datalist|\" + \"details|dialog|figcaption|figure|footer|header|hgroup|main|\" + \"mark|meter|nav|output|picture|progress|section|summary|template|time|video\";\n\n function createSafeFragment(document) {\n var list = nodeNames.split(\"|\"),\n safeFrag = document.createDocumentFragment();\n\n if (safeFrag.createElement) {\n while (list.length) {\n safeFrag.createElement(list.pop());\n }\n }\n\n return safeFrag;\n }\n\n (function () {\n var div = document.createElement(\"div\"),\n fragment = document.createDocumentFragment(),\n input = document.createElement(\"input\"); // Setup\n\n div.innerHTML = \"
a\"; // IE strips leading whitespace when .innerHTML is used\n\n support.leadingWhitespace = div.firstChild.nodeType === 3; // Make sure that tbody elements aren't automatically inserted\n // IE will insert them into empty tables\n\n support.tbody = !div.getElementsByTagName(\"tbody\").length; // Make sure that link elements get serialized correctly by innerHTML\n // This requires a wrapper element in IE\n\n support.htmlSerialize = !!div.getElementsByTagName(\"link\").length; // Makes sure cloning an html5 element does not cause problems\n // Where outerHTML is undefined, this still works\n\n support.html5Clone = document.createElement(\"nav\").cloneNode(true).outerHTML !== \"<:nav>\"; // Check if a disconnected checkbox will retain its checked\n // value of true after appended to the DOM (IE6/7)\n\n input.type = \"checkbox\";\n input.checked = true;\n fragment.appendChild(input);\n support.appendChecked = input.checked; // Make sure textarea (and checkbox) defaultValue is properly cloned\n // Support: IE6-IE11+\n\n div.innerHTML = \"\";\n support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue; // #11217 - WebKit loses check when the name is after the checked attribute\n\n fragment.appendChild(div); // Support: Windows Web Apps (WWA)\n // `name` and `type` must use .setAttribute for WWA (#14901)\n\n input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"radio\");\n input.setAttribute(\"checked\", \"checked\");\n input.setAttribute(\"name\", \"t\");\n div.appendChild(input); // Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3\n // old WebKit doesn't clone checked state correctly in fragments\n\n support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked; // Support: IE<9\n // Cloned elements keep attachEvent handlers, we use addEventListener on IE9+\n\n support.noCloneEvent = !!div.addEventListener; // Support: IE<9\n // Since attributes and properties are the same in IE,\n // cleanData must set properties to undefined rather than use removeAttribute\n\n div[jQuery.expando] = 1;\n support.attributes = !div.getAttribute(jQuery.expando);\n })(); // We have to close these tags to support XHTML (#13200)\n\n\n var wrapMap = {\n option: [1, \"\"],\n legend: [1, \"\"],\n area: [1, \"\"],\n // Support: IE8\n param: [1, \"\"],\n thead: [1, \"
\", \"
\"],\n tr: [2, \"
\", \"
\"],\n col: [2, \"
\", \"
\"],\n td: [3, \"
\", \"
\"],\n // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags,\n // unless wrapped in a div with non-breaking characters in front of it.\n _default: support.htmlSerialize ? [0, \"\", \"\"] : [1, \"X
\", \"
\"]\n }; // Support: IE8-IE9\n\n wrapMap.optgroup = wrapMap.option;\n wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n wrapMap.th = wrapMap.td;\n\n function getAll(context, tag) {\n var elems,\n elem,\n i = 0,\n found = typeof context.getElementsByTagName !== \"undefined\" ? context.getElementsByTagName(tag || \"*\") : typeof context.querySelectorAll !== \"undefined\" ? context.querySelectorAll(tag || \"*\") : undefined;\n\n if (!found) {\n for (found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++) {\n if (!tag || jQuery.nodeName(elem, tag)) {\n found.push(elem);\n } else {\n jQuery.merge(found, getAll(elem, tag));\n }\n }\n }\n\n return tag === undefined || tag && jQuery.nodeName(context, tag) ? jQuery.merge([context], found) : found;\n } // Mark scripts as having already been evaluated\n\n\n function setGlobalEval(elems, refElements) {\n var elem,\n i = 0;\n\n for (; (elem = elems[i]) != null; i++) {\n jQuery._data(elem, \"globalEval\", !refElements || jQuery._data(refElements[i], \"globalEval\"));\n }\n }\n\n var rhtml = /<|?\\w+;/,\n rtbody = / from table fragments\n\n\n if (!support.tbody) {\n // String was a
, *may* have spurious \n elem = tag === \"table\" && !rtbody.test(elem) ? tmp.firstChild : // String was a bare or \n wrap[1] === \"
\" && !rtbody.test(elem) ? tmp : 0;\n j = elem && elem.childNodes.length;\n\n while (j--) {\n if (jQuery.nodeName(tbody = elem.childNodes[j], \"tbody\") && !tbody.childNodes.length) {\n elem.removeChild(tbody);\n }\n }\n }\n\n jQuery.merge(nodes, tmp.childNodes); // Fix #12392 for WebKit and IE > 9\n\n tmp.textContent = \"\"; // Fix #12392 for oldIE\n\n while (tmp.firstChild) {\n tmp.removeChild(tmp.firstChild);\n } // Remember the top-level container for proper cleanup\n\n\n tmp = safe.lastChild;\n }\n }\n } // Fix #11356: Clear elements from fragment\n\n\n if (tmp) {\n safe.removeChild(tmp);\n } // Reset defaultChecked for any radios and checkboxes\n // about to be appended to the DOM in IE 6/7 (#8060)\n\n\n if (!support.appendChecked) {\n jQuery.grep(getAll(nodes, \"input\"), fixDefaultChecked);\n }\n\n i = 0;\n\n while (elem = nodes[i++]) {\n // Skip elements already in the context collection (trac-4087)\n if (selection && jQuery.inArray(elem, selection) > -1) {\n if (ignored) {\n ignored.push(elem);\n }\n\n continue;\n }\n\n contains = jQuery.contains(elem.ownerDocument, elem); // Append to fragment\n\n tmp = getAll(safe.appendChild(elem), \"script\"); // Preserve script evaluation history\n\n if (contains) {\n setGlobalEval(tmp);\n } // Capture executables\n\n\n if (scripts) {\n j = 0;\n\n while (elem = tmp[j++]) {\n if (rscriptType.test(elem.type || \"\")) {\n scripts.push(elem);\n }\n }\n }\n }\n\n tmp = null;\n return safe;\n }\n\n (function () {\n var i,\n eventName,\n div = document.createElement(\"div\"); // Support: IE<9 (lack submit/change bubble), Firefox (lack focus(in | out) events)\n\n for (i in {\n submit: true,\n change: true,\n focusin: true\n }) {\n eventName = \"on\" + i;\n\n if (!(support[i] = eventName in window)) {\n // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP)\n div.setAttribute(eventName, \"t\");\n support[i] = div.attributes[eventName].expando === false;\n }\n } // Null elements to avoid leaks in IE.\n\n\n div = null;\n })();\n\n var rformElems = /^(?:input|select|textarea)$/i,\n rkeyEvent = /^key/,\n rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\n function returnTrue() {\n return true;\n }\n\n function returnFalse() {\n return false;\n } // Support: IE9\n // See #13393 for more info\n\n\n function safeActiveElement() {\n try {\n return document.activeElement;\n } catch (err) {}\n }\n\n function _on(elem, types, selector, data, fn, one) {\n var origFn, type; // Types can be a map of types/handlers\n\n if (_typeof(types) === \"object\") {\n // ( types-Object, selector, data )\n if (typeof selector !== \"string\") {\n // ( types-Object, data )\n data = data || selector;\n selector = undefined;\n }\n\n for (type in types) {\n _on(elem, type, selector, data, types[type], one);\n }\n\n return elem;\n }\n\n if (data == null && fn == null) {\n // ( types, fn )\n fn = selector;\n data = selector = undefined;\n } else if (fn == null) {\n if (typeof selector === \"string\") {\n // ( types, selector, fn )\n fn = data;\n data = undefined;\n } else {\n // ( types, data, fn )\n fn = data;\n data = selector;\n selector = undefined;\n }\n }\n\n if (fn === false) {\n fn = returnFalse;\n } else if (!fn) {\n return elem;\n }\n\n if (one === 1) {\n origFn = fn;\n\n fn = function fn(event) {\n // Can use an empty set, since event contains the info\n jQuery().off(event);\n return origFn.apply(this, arguments);\n }; // Use same guid so caller can remove using origFn\n\n\n fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n }\n\n return elem.each(function () {\n jQuery.event.add(this, types, fn, data, selector);\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 */\n\n\n jQuery.event = {\n global: {},\n add: function add(elem, types, handler, data, selector) {\n var tmp,\n events,\n t,\n handleObjIn,\n special,\n eventHandle,\n handleObj,\n handlers,\n type,\n namespaces,\n origType,\n elemData = jQuery._data(elem); // Don't attach events to noData or text/comment nodes (but allow plain objects)\n\n\n if (!elemData) {\n return;\n } // Caller can pass in an object of custom data in lieu of the handler\n\n\n if (handler.handler) {\n handleObjIn = handler;\n handler = handleObjIn.handler;\n selector = handleObjIn.selector;\n } // Make sure that the handler has a unique ID, used to find/remove it later\n\n\n if (!handler.guid) {\n handler.guid = jQuery.guid++;\n } // Init the element's event structure and main handler, if this is the first\n\n\n if (!(events = elemData.events)) {\n events = elemData.events = {};\n }\n\n if (!(eventHandle = elemData.handle)) {\n eventHandle = elemData.handle = function (e) {\n // Discard the second event of a jQuery.event.trigger() and\n // when an event is called after a page has unloaded\n return typeof jQuery !== \"undefined\" && (!e || jQuery.event.triggered !== e.type) ? jQuery.event.dispatch.apply(eventHandle.elem, arguments) : undefined;\n }; // Add elem as a property of the handle fn to prevent a memory leak\n // with IE non-native events\n\n\n eventHandle.elem = elem;\n } // Handle multiple events separated by a space\n\n\n types = (types || \"\").match(rnotwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // There *must* be a type, no attaching namespace-only handlers\n\n if (!type) {\n continue;\n } // If event changes its type, use the special event handlers for the changed type\n\n\n special = jQuery.event.special[type] || {}; // If selector defined, determine special event api type, otherwise given type\n\n type = (selector ? special.delegateType : special.bindType) || type; // Update special based on newly reset type\n\n special = jQuery.event.special[type] || {}; // handleObj is passed to all event handlers\n\n handleObj = jQuery.extend({\n type: type,\n origType: origType,\n data: data,\n handler: handler,\n guid: handler.guid,\n selector: selector,\n needsContext: selector && jQuery.expr.match.needsContext.test(selector),\n namespace: namespaces.join(\".\")\n }, handleObjIn); // Init the event handler queue if we're the first\n\n if (!(handlers = events[type])) {\n handlers = events[type] = [];\n handlers.delegateCount = 0; // Only use addEventListener/attachEvent if the special events handler returns false\n\n if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\n // Bind the global event handler to the element\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle, false);\n } else if (elem.attachEvent) {\n elem.attachEvent(\"on\" + type, eventHandle);\n }\n }\n }\n\n if (special.add) {\n special.add.call(elem, handleObj);\n\n if (!handleObj.handler.guid) {\n handleObj.handler.guid = handler.guid;\n }\n } // Add to the element's handler list, delegates in front\n\n\n if (selector) {\n handlers.splice(handlers.delegateCount++, 0, handleObj);\n } else {\n handlers.push(handleObj);\n } // Keep track of which events have ever been used, for event optimization\n\n\n jQuery.event.global[type] = true;\n } // Nullify elem to prevent memory leaks in IE\n\n\n elem = null;\n },\n // Detach an event or set of events from an element\n remove: function remove(elem, types, handler, selector, mappedTypes) {\n var j,\n handleObj,\n tmp,\n origCount,\n t,\n events,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = jQuery.hasData(elem) && jQuery._data(elem);\n\n if (!elemData || !(events = elemData.events)) {\n return;\n } // Once for each type.namespace in types; type may be omitted\n\n\n types = (types || \"\").match(rnotwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // Unbind all events (on this namespace, if provided) for the element\n\n if (!type) {\n for (type in events) {\n jQuery.event.remove(elem, type + types[t], handler, selector, true);\n }\n\n continue;\n }\n\n special = jQuery.event.special[type] || {};\n type = (selector ? special.delegateType : special.bindType) || type;\n handlers = events[type] || [];\n tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\"); // Remove matching events\n\n origCount = j = handlers.length;\n\n while (j--) {\n handleObj = handlers[j];\n\n if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector)) {\n handlers.splice(j, 1);\n\n if (handleObj.selector) {\n handlers.delegateCount--;\n }\n\n if (special.remove) {\n special.remove.call(elem, handleObj);\n }\n }\n } // Remove generic event handler if we removed something and no more handlers exist\n // (avoids potential for endless recursion during removal of special event handlers)\n\n\n if (origCount && !handlers.length) {\n if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\n jQuery.removeEvent(elem, type, elemData.handle);\n }\n\n delete events[type];\n }\n } // Remove the expando if it's no longer used\n\n\n if (jQuery.isEmptyObject(events)) {\n delete elemData.handle; // removeData also checks for emptiness and clears the expando if empty\n // so use it instead of delete\n\n jQuery._removeData(elem, \"events\");\n }\n },\n trigger: function trigger(event, data, elem, onlyHandlers) {\n var handle,\n ontype,\n cur,\n bubbleType,\n special,\n tmp,\n i,\n eventPath = [elem || document],\n type = hasOwn.call(event, \"type\") ? event.type : event,\n namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\n cur = tmp = elem = elem || document; // Don't do events on text and comment nodes\n\n if (elem.nodeType === 3 || elem.nodeType === 8) {\n return;\n } // focus/blur morphs to focusin/out; ensure we're not firing them right now\n\n\n if (rfocusMorph.test(type + jQuery.event.triggered)) {\n return;\n }\n\n if (type.indexOf(\".\") > -1) {\n // Namespaced trigger; create a regexp to match event type in handle()\n namespaces = type.split(\".\");\n type = namespaces.shift();\n namespaces.sort();\n }\n\n ontype = type.indexOf(\":\") < 0 && \"on\" + type; // Caller can pass in a jQuery.Event object, Object, or just an event type string\n\n event = event[jQuery.expando] ? event : new jQuery.Event(type, _typeof(event) === \"object\" && event); // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\n event.isTrigger = onlyHandlers ? 2 : 3;\n event.namespace = namespaces.join(\".\");\n event.rnamespace = event.namespace ? new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null; // Clean up the event in case it is being reused\n\n event.result = undefined;\n\n if (!event.target) {\n event.target = elem;\n } // Clone any incoming data and prepend the event, creating the handler arg list\n\n\n data = data == null ? [event] : jQuery.makeArray(data, [event]); // Allow special events to draw outside the lines\n\n special = jQuery.event.special[type] || {};\n\n if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n return;\n } // Determine event propagation path in advance, per W3C events spec (#9951)\n // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\n\n if (!onlyHandlers && !special.noBubble && !jQuery.isWindow(elem)) {\n bubbleType = special.delegateType || type;\n\n if (!rfocusMorph.test(bubbleType + type)) {\n cur = cur.parentNode;\n }\n\n for (; cur; cur = cur.parentNode) {\n eventPath.push(cur);\n tmp = cur;\n } // Only add window if we got to document (e.g., not plain obj or detached DOM)\n\n\n if (tmp === (elem.ownerDocument || document)) {\n eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n }\n } // Fire handlers on the event path\n\n\n i = 0;\n\n while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n event.type = i > 1 ? bubbleType : special.bindType || type; // jQuery handler\n\n handle = (jQuery._data(cur, \"events\") || {})[event.type] && jQuery._data(cur, \"handle\");\n\n if (handle) {\n handle.apply(cur, data);\n } // Native handler\n\n\n handle = ontype && cur[ontype];\n\n if (handle && handle.apply && acceptData(cur)) {\n event.result = handle.apply(cur, data);\n\n if (event.result === false) {\n event.preventDefault();\n }\n }\n }\n\n event.type = type; // If nobody prevented the default action, do it now\n\n if (!onlyHandlers && !event.isDefaultPrevented()) {\n if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) {\n // Call a native DOM method on the target with the same name name as the event.\n // Can't use an .isFunction() check here because IE6/7 fails that test.\n // Don't do default actions on window, that's where global variables be (#6170)\n if (ontype && elem[type] && !jQuery.isWindow(elem)) {\n // Don't re-trigger an onFOO event when we call its FOO() method\n tmp = elem[ontype];\n\n if (tmp) {\n elem[ontype] = null;\n } // Prevent re-triggering of the same event, since we already bubbled it above\n\n\n jQuery.event.triggered = type;\n\n try {\n elem[type]();\n } catch (e) {// IE<9 dies on focus/blur to hidden element (#1486,#12518)\n // only reproducible on winXP IE8 native, not IE9 in IE8 mode\n }\n\n jQuery.event.triggered = undefined;\n\n if (tmp) {\n elem[ontype] = tmp;\n }\n }\n }\n }\n\n return event.result;\n },\n dispatch: function dispatch(event) {\n // Make a writable jQuery.Event from the native event object\n event = jQuery.event.fix(event);\n\n var i,\n j,\n ret,\n matched,\n handleObj,\n handlerQueue = [],\n args = _slice.call(arguments),\n handlers = (jQuery._data(this, \"events\") || {})[event.type] || [],\n special = jQuery.event.special[event.type] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event\n\n\n args[0] = event;\n event.delegateTarget = this; // Call the preDispatch hook for the mapped type, and let it bail if desired\n\n if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n return;\n } // Determine handlers\n\n\n handlerQueue = jQuery.event.handlers.call(this, event, handlers); // Run delegates first; they may want to stop propagation beneath us\n\n i = 0;\n\n while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n event.currentTarget = matched.elem;\n j = 0;\n\n while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\n // Triggered event must either 1) have no namespace, or 2) have namespace(s)\n // a subset or equal to those in the bound event (both can have no namespace).\n if (!event.rnamespace || event.rnamespace.test(handleObj.namespace)) {\n event.handleObj = handleObj;\n event.data = handleObj.data;\n ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args);\n\n if (ret !== undefined) {\n if ((event.result = ret) === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n } // Call the postDispatch hook for the mapped type\n\n\n if (special.postDispatch) {\n special.postDispatch.call(this, event);\n }\n\n return event.result;\n },\n handlers: function handlers(event, _handlers) {\n var i,\n matches,\n sel,\n handleObj,\n handlerQueue = [],\n delegateCount = _handlers.delegateCount,\n cur = event.target; // Support (at least): Chrome, IE9\n // Find delegate handlers\n // Black-hole SVG