formtastic-jquery_inputmask 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (155) hide show
  1. checksums.yaml +4 -4
  2. data/.bowerrc +3 -0
  3. data/bower.json +19 -0
  4. data/lib/formtastic/jquery_inputmask/engine.rb +1 -1
  5. data/lib/formtastic/jquery_inputmask/version.rb +1 -1
  6. data/vendor/inputmask/.bower.json +59 -0
  7. data/vendor/inputmask/bower.json +40 -0
  8. data/vendor/inputmask/dist/inputmask/bindings/inputmask.binding.js +21 -0
  9. data/vendor/inputmask/dist/inputmask/dependencyLibs/inputmask.dependencyLib.jqlite.js +62 -0
  10. data/vendor/inputmask/dist/inputmask/dependencyLibs/inputmask.dependencyLib.jquery.js +13 -0
  11. data/vendor/inputmask/dist/inputmask/dependencyLibs/inputmask.dependencyLib.js +133 -0
  12. data/vendor/inputmask/dist/inputmask/global/document.js +11 -0
  13. data/vendor/inputmask/dist/inputmask/global/window.js +11 -0
  14. data/vendor/inputmask/dist/inputmask/inputmask.date.extensions.js +490 -0
  15. data/vendor/inputmask/dist/inputmask/inputmask.extensions.js +97 -0
  16. data/vendor/inputmask/dist/inputmask/inputmask.js +1643 -0
  17. data/vendor/inputmask/dist/inputmask/inputmask.numeric.extensions.js +347 -0
  18. data/vendor/inputmask/dist/inputmask/inputmask.phone.extensions.js +61 -0
  19. data/vendor/inputmask/dist/inputmask/inputmask.regex.extensions.js +115 -0
  20. data/vendor/inputmask/dist/inputmask/jquery.inputmask.js +62 -0
  21. data/vendor/inputmask/dist/inputmask/phone-codes/phone-be.js +244 -0
  22. data/vendor/inputmask/dist/inputmask/phone-codes/phone-nl.js +924 -0
  23. data/vendor/inputmask/dist/inputmask/phone-codes/phone-ru.js +19240 -0
  24. data/vendor/inputmask/dist/inputmask/phone-codes/phone-uk.js +1009 -0
  25. data/vendor/inputmask/dist/inputmask/phone-codes/phone.js +2111 -0
  26. data/vendor/inputmask/dist/jquery.inputmask.bundle.js +3085 -0
  27. data/vendor/inputmask/dist/min/inputmask/inputmask.date.extensions.min.js +9 -0
  28. data/vendor/inputmask/dist/min/inputmask/inputmask.extensions.min.js +9 -0
  29. data/vendor/inputmask/dist/min/inputmask/inputmask.min.js +10 -0
  30. data/vendor/inputmask/dist/min/inputmask/inputmask.numeric.extensions.min.js +9 -0
  31. data/vendor/inputmask/dist/min/inputmask/inputmask.phone.extensions.min.js +9 -0
  32. data/vendor/inputmask/dist/min/inputmask/inputmask.regex.extensions.min.js +9 -0
  33. data/vendor/inputmask/dist/min/inputmask/jquery.inputmask.min.js +9 -0
  34. data/vendor/inputmask/dist/min/jquery.inputmask.bundle.min.js +11 -0
  35. data/vendor/jquery/.bower.json +25 -0
  36. data/vendor/jquery/AUTHORS.txt +301 -0
  37. data/vendor/jquery/LICENSE.txt +36 -0
  38. data/vendor/jquery/README.md +67 -0
  39. data/vendor/jquery/bower.json +14 -0
  40. data/vendor/jquery/dist/core.js +476 -0
  41. data/vendor/jquery/dist/jquery.js +10253 -0
  42. data/vendor/jquery/dist/jquery.min.js +4 -0
  43. data/vendor/jquery/dist/jquery.min.map +1 -0
  44. data/vendor/jquery/dist/jquery.slim.js +8160 -0
  45. data/vendor/jquery/dist/jquery.slim.min.js +4 -0
  46. data/vendor/jquery/dist/jquery.slim.min.map +1 -0
  47. data/vendor/jquery/external/sizzle/LICENSE.txt +36 -0
  48. data/vendor/jquery/external/sizzle/dist/sizzle.js +2272 -0
  49. data/vendor/jquery/external/sizzle/dist/sizzle.min.js +3 -0
  50. data/vendor/jquery/external/sizzle/dist/sizzle.min.map +1 -0
  51. data/vendor/jquery/src/.eslintrc.json +5 -0
  52. data/vendor/jquery/src/ajax.js +855 -0
  53. data/vendor/jquery/src/ajax/jsonp.js +102 -0
  54. data/vendor/jquery/src/ajax/load.js +76 -0
  55. data/vendor/jquery/src/ajax/parseXML.js +30 -0
  56. data/vendor/jquery/src/ajax/script.js +77 -0
  57. data/vendor/jquery/src/ajax/var/location.js +5 -0
  58. data/vendor/jquery/src/ajax/var/nonce.js +7 -0
  59. data/vendor/jquery/src/ajax/var/rquery.js +5 -0
  60. data/vendor/jquery/src/ajax/xhr.js +169 -0
  61. data/vendor/jquery/src/attributes.js +13 -0
  62. data/vendor/jquery/src/attributes/attr.js +141 -0
  63. data/vendor/jquery/src/attributes/classes.js +174 -0
  64. data/vendor/jquery/src/attributes/prop.js +143 -0
  65. data/vendor/jquery/src/attributes/support.js +33 -0
  66. data/vendor/jquery/src/attributes/val.js +190 -0
  67. data/vendor/jquery/src/callbacks.js +234 -0
  68. data/vendor/jquery/src/core.js +476 -0
  69. data/vendor/jquery/src/core/DOMEval.js +16 -0
  70. data/vendor/jquery/src/core/access.js +70 -0
  71. data/vendor/jquery/src/core/init.js +128 -0
  72. data/vendor/jquery/src/core/nodeName.js +13 -0
  73. data/vendor/jquery/src/core/parseHTML.js +65 -0
  74. data/vendor/jquery/src/core/ready-no-deferred.js +96 -0
  75. data/vendor/jquery/src/core/ready.js +86 -0
  76. data/vendor/jquery/src/core/readyException.js +13 -0
  77. data/vendor/jquery/src/core/stripAndCollapse.js +14 -0
  78. data/vendor/jquery/src/core/support.js +20 -0
  79. data/vendor/jquery/src/core/var/rsingleTag.js +6 -0
  80. data/vendor/jquery/src/css.js +438 -0
  81. data/vendor/jquery/src/css/addGetHookIf.js +26 -0
  82. data/vendor/jquery/src/css/adjustCSS.js +71 -0
  83. data/vendor/jquery/src/css/curCSS.js +65 -0
  84. data/vendor/jquery/src/css/hiddenVisibleSelectors.js +15 -0
  85. data/vendor/jquery/src/css/showHide.js +105 -0
  86. data/vendor/jquery/src/css/support.js +89 -0
  87. data/vendor/jquery/src/css/var/cssExpand.js +5 -0
  88. data/vendor/jquery/src/css/var/getStyles.js +17 -0
  89. data/vendor/jquery/src/css/var/isHiddenWithinTree.js +34 -0
  90. data/vendor/jquery/src/css/var/rmargin.js +5 -0
  91. data/vendor/jquery/src/css/var/rnumnonpx.js +7 -0
  92. data/vendor/jquery/src/css/var/swap.js +26 -0
  93. data/vendor/jquery/src/data.js +179 -0
  94. data/vendor/jquery/src/data/Data.js +161 -0
  95. data/vendor/jquery/src/data/var/acceptData.js +19 -0
  96. data/vendor/jquery/src/data/var/dataPriv.js +7 -0
  97. data/vendor/jquery/src/data/var/dataUser.js +7 -0
  98. data/vendor/jquery/src/deferred.js +391 -0
  99. data/vendor/jquery/src/deferred/exceptionHook.js +21 -0
  100. data/vendor/jquery/src/deprecated.js +40 -0
  101. data/vendor/jquery/src/dimensions.js +56 -0
  102. data/vendor/jquery/src/effects.js +699 -0
  103. data/vendor/jquery/src/effects/Tween.js +123 -0
  104. data/vendor/jquery/src/effects/animatedSelector.js +15 -0
  105. data/vendor/jquery/src/event.js +746 -0
  106. data/vendor/jquery/src/event/ajax.js +22 -0
  107. data/vendor/jquery/src/event/alias.js +29 -0
  108. data/vendor/jquery/src/event/focusin.js +55 -0
  109. data/vendor/jquery/src/event/support.js +11 -0
  110. data/vendor/jquery/src/event/trigger.js +185 -0
  111. data/vendor/jquery/src/exports/amd.js +26 -0
  112. data/vendor/jquery/src/exports/global.js +34 -0
  113. data/vendor/jquery/src/jquery.js +41 -0
  114. data/vendor/jquery/src/manipulation.js +488 -0
  115. data/vendor/jquery/src/manipulation/_evalUrl.js +23 -0
  116. data/vendor/jquery/src/manipulation/buildFragment.js +104 -0
  117. data/vendor/jquery/src/manipulation/getAll.js +32 -0
  118. data/vendor/jquery/src/manipulation/setGlobalEval.js +22 -0
  119. data/vendor/jquery/src/manipulation/support.js +35 -0
  120. data/vendor/jquery/src/manipulation/var/rcheckableType.js +5 -0
  121. data/vendor/jquery/src/manipulation/var/rscriptType.js +5 -0
  122. data/vendor/jquery/src/manipulation/var/rtagName.js +5 -0
  123. data/vendor/jquery/src/manipulation/wrapMap.js +29 -0
  124. data/vendor/jquery/src/offset.js +229 -0
  125. data/vendor/jquery/src/queue.js +145 -0
  126. data/vendor/jquery/src/queue/delay.js +24 -0
  127. data/vendor/jquery/src/selector-native.js +237 -0
  128. data/vendor/jquery/src/selector-sizzle.js +19 -0
  129. data/vendor/jquery/src/selector.js +3 -0
  130. data/vendor/jquery/src/serialize.js +130 -0
  131. data/vendor/jquery/src/traversing.js +191 -0
  132. data/vendor/jquery/src/traversing/findFilter.js +106 -0
  133. data/vendor/jquery/src/traversing/var/dir.js +22 -0
  134. data/vendor/jquery/src/traversing/var/rneedsContext.js +8 -0
  135. data/vendor/jquery/src/traversing/var/siblings.js +17 -0
  136. data/vendor/jquery/src/var/ObjectFunctionString.js +7 -0
  137. data/vendor/jquery/src/var/arr.js +5 -0
  138. data/vendor/jquery/src/var/class2type.js +6 -0
  139. data/vendor/jquery/src/var/concat.js +7 -0
  140. data/vendor/jquery/src/var/document.js +5 -0
  141. data/vendor/jquery/src/var/documentElement.js +7 -0
  142. data/vendor/jquery/src/var/fnToString.js +7 -0
  143. data/vendor/jquery/src/var/getProto.js +5 -0
  144. data/vendor/jquery/src/var/hasOwn.js +7 -0
  145. data/vendor/jquery/src/var/indexOf.js +7 -0
  146. data/vendor/jquery/src/var/pnum.js +5 -0
  147. data/vendor/jquery/src/var/push.js +7 -0
  148. data/vendor/jquery/src/var/rcssNum.js +9 -0
  149. data/vendor/jquery/src/var/rnothtmlwhite.js +8 -0
  150. data/vendor/jquery/src/var/slice.js +7 -0
  151. data/vendor/jquery/src/var/support.js +6 -0
  152. data/vendor/jquery/src/var/toString.js +7 -0
  153. data/vendor/jquery/src/wrap.js +77 -0
  154. metadata +152 -3
  155. data/.gitmodules +0 -3
@@ -0,0 +1,4 @@
1
+ /*! jQuery v3.2.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector | (c) JS Foundation and other contributors | jquery.org/license */
2
+ !function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=Array.isArray(d)))?(e?(e=!1,f=c&&Array.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==k.call(a))&&(!(b=e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n))},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v)},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a))return d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e);return!1}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}return!1}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b<d;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;b<d;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,N,e),g(f,c,O,e)):(f++,j.call(a,g(f,c,N,e),g(f,c,O,e),g(f,c,N,c.notifyWith))):(d!==N&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a);
3
+ }),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S),a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},U=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function V(){this.expando=r.expando+V.uid++}V.uid=1,V.prototype={cache:function(a){var b=a[this.expando];return b||(b={},U(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){Array.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(L)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var W=new V,X=new V,Y=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function $(a){return"true"===a||"false"!==a&&("null"===a?null:a===+a+""?+a:Y.test(a)?JSON.parse(a):a)}function _(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Z,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c=$(c)}catch(e){}X.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return X.hasData(a)||W.hasData(a)},data:function(a,b,c){return X.access(a,b,c)},removeData:function(a,b){X.remove(a,b)},_data:function(a,b,c){return W.access(a,b,c)},_removeData:function(a,b){W.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=X.get(f),1===f.nodeType&&!W.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),_(f,d,e[d])));W.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){X.set(this,a)}):T(this,function(b){var c;if(f&&void 0===b){if(c=X.get(f,a),void 0!==c)return c;if(c=_(f,a),void 0!==c)return c}else this.each(function(){X.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=W.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var aa=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ba=new RegExp("^(?:([+-])=|)("+aa+")([a-z%]*)$","i"),ca=["Top","Right","Bottom","Left"],da=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&r.contains(a.ownerDocument,a)&&"none"===r.css(a,"display")},ea=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function fa(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,"")},i=h(),j=c&&c[3]||(r.cssNumber[b]?"":"px"),k=(r.cssNumber[b]||"px"!==j&&+i)&&ba.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var ga={};function ha(a){var b,c=a.ownerDocument,d=a.nodeName,e=ga[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),ga[d]=e,e)}function ia(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=W.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&da(d)&&(e[f]=ha(d))):"none"!==c&&(e[f]="none",W.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ia(this,!0)},hide:function(){return ia(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){da(this)?r(this).show():r(this).hide()})}});var ja=/^(?:checkbox|radio)$/i,ka=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c<d;c++)W.set(a[c],"globalEval",!b||W.get(b[c],"globalEval"))}var pa=/<|&#?\w+;/;function qa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(pa.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ka.exec(f)||["",""])[1].toLowerCase(),i=ma[h]||ma._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g,h=[],i=b.delegateCount,j=a.target;if(i&&j.nodeType&&!("click"===a.type&&a.button>=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c<i;c++)d=b[c],e=d.selector+" ",void 0===g[e]&&(g[e]=d.needsContext?r(e,this).index(j)>-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i<b.length&&h.push({elem:j,handlers:b.slice(i)}),h},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==xa()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===xa()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&B(this,"input"))return this.click(),!1},_default:function(a){return B(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?va:wa,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:wa,isPropagationStopped:wa,isImmediatePropagationStopped:wa,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=va,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=va,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=va,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&sa.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&ta.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return ya(this,a,b,c,d)},one:function(a,b,c,d){return ya(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=wa),this.each(function(){r.event.remove(this,a,c,b)})}});var za=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/<script|<style|<link/i,Ba=/checked\s*(?:[^=]|=\s*.checked.)/i,Ca=/^true\/(.*)/,Da=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)r.event.add(b,e,j[e][c])}X.hasData(a)&&(h=X.access(a),i=r.extend({},h),X.set(b,i))}}function Ia(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ja.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Ja(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l<m;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,na(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Ga),l=0;l<i;l++)j=h[l],la.test(j.type||"")&&!W.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Da,""),k))}return a}function Ka(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(na(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&oa(na(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(za,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d<e;d++)Ia(f[d],g[d]);if(b)if(c)for(f=f||na(a),g=g||na(h),d=0,e=f.length;d<e;d++)Ha(f[d],g[d]);else Ha(a,h);return g=na(h,"script"),g.length>0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(na(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ja(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(na(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var La=/^margin/,Ma=new RegExp("^("+aa+")(?!px)[a-z%]+$","i"),Na=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i.innerHTML="",ra.appendChild(h);var b=a.getComputedStyle(i);c="1%"!==b.top,g="2px"===b.marginLeft,e="4px"===b.width,i.style.marginRight="50%",f="4px"===b.marginRight,ra.removeChild(h),i=null}}var c,e,f,g,h=d.createElement("div"),i=d.createElement("div");i.style&&(i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",o.clearCloneStyle="content-box"===i.style.backgroundClip,h.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Oa(a,b,c){var d,e,f,g,h=a.style;return c=c||Na(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&Ma.test(g)&&La.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function Pa(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Qa=/^(none|table(?!-c[ea]).+)/,Ra=/^--/,Sa={position:"absolute",visibility:"hidden",display:"block"},Ta={letterSpacing:"0",fontWeight:"400"},Ua=["Webkit","Moz","ms"],Va=d.createElement("div").style;function Wa(a){if(a in Va)return a;var b=a[0].toUpperCase()+a.slice(1),c=Ua.length;while(c--)if(a=Ua[c]+b,a in Va)return a}function Xa(a){var b=r.cssProps[a];return b||(b=r.cssProps[a]=Wa(a)||a),b}function Ya(a,b,c){var d=ba.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Za(a,b,c,d,e){var f,g=0;for(f=c===(d?"border":"content")?4:"width"===b?1:0;f<4;f+=2)"margin"===c&&(g+=r.css(a,c+ca[f],!0,e)),d?("content"===c&&(g-=r.css(a,"padding"+ca[f],!0,e)),"margin"!==c&&(g-=r.css(a,"border"+ca[f]+"Width",!0,e))):(g+=r.css(a,"padding"+ca[f],!0,e),"padding"!==c&&(g+=r.css(a,"border"+ca[f]+"Width",!0,e)));return g}function $a(a,b,c){var d,e=Na(a),f=Oa(a,b,e),g="border-box"===r.css(a,"boxSizing",!1,e);return Ma.test(f)?f:(d=g&&(o.boxSizingReliable()||f===a.style[b]),"auto"===f&&(f=a["offset"+b[0].toUpperCase()+b.slice(1)]),f=parseFloat(f)||0,f+Za(a,b,c||(g?"border":"content"),d,e)+"px")}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Oa(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=Ra.test(b),j=a.style;return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:j[b]:(f=typeof c,"string"===f&&(e=ba.exec(c))&&e[1]&&(c=fa(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(r.cssNumber[h]?"":"px")),o.clearCloneStyle||""!==c||0!==b.indexOf("background")||(j[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i?j.setProperty(b,c):j[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b),i=Ra.test(b);return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Oa(a,b,d)),"normal"===e&&b in Ta&&(e=Ta[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each(["height","width"],function(a,b){r.cssHooks[b]={get:function(a,c,d){if(c)return!Qa.test(r.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?$a(a,b,d):ea(a,Sa,function(){return $a(a,b,d)})},set:function(a,c,d){var e,f=d&&Na(a),g=d&&Za(a,b,d,"border-box"===r.css(a,"boxSizing",!1,f),f);return g&&(e=ba.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=r.css(a,b)),Ya(a,c,g)}}}),r.cssHooks.marginLeft=Pa(o.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Oa(a,"marginLeft"))||a.getBoundingClientRect().left-ea(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),r.each({margin:"",padding:"",border:"Width"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+ca[d]+b]=f[d]||f[d-2]||f[0];return e}},La.test(a)||(r.cssHooks[a+b].set=Ya)}),r.fn.extend({css:function(a,b){return T(this,function(a,b,c){var d,e,f={},g=0;if(Array.isArray(b)){for(d=Na(a),e=b.length;g<e;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}}),r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var _a,ab=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return T(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?_a:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),_a={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=ab[b]||r.find.attr;ab[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=ab[g],ab[g]=e,e=null!=c(a,b,d)?g:null,ab[g]=f),e}});var bb=/^(?:input|select|textarea|button)$/i,cb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function db(a){var b=a.match(L)||[];return b.join(" ")}function eb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,eb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=eb(c),d=1===c.nodeType&&" "+db(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=db(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,eb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=eb(c),d=1===c.nodeType&&" "+db(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=db(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,eb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=eb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+db(eb(c))+" ").indexOf(b)>-1)return!0;return!1}});var fb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(fb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:db(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d<i;d++)if(c=e[d],(c.selected||d===f)&&!c.disabled&&(!c.parentNode.disabled||!B(c.parentNode,"optgroup"))){if(b=r(c).val(),g)return b;h.push(b)}return h},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var gb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!gb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,gb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var hb=/\[\]$/,ib=/\r?\n/g,jb=/^(?:submit|button|image|reset|file)$/i,kb=/^(?:input|select|textarea|keygen)/i;function lb(a,b,c,d){var e;if(Array.isArray(b))r.each(b,function(b,e){c||hb.test(a)?d(a,e):lb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d);
4
+ });else if(c||"object"!==r.type(b))d(a,b);else for(e in b)lb(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)lb(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&kb.test(this.nodeName)&&!jb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ib,"\r\n")}}):{name:b.name,value:c.replace(ib,"\r\n")}}).get()}}),r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=C.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=qa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),b=f.ownerDocument,c=b.documentElement,e=b.defaultView,{top:d.top+e.pageYOffset-c.clientTop,left:d.left+e.pageXOffset-c.clientLeft}):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),B(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||ra})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return T(this,function(a,d,e){var f;return r.isWindow(a)?f=a:9===a.nodeType&&(f=a.defaultView),void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Pa(o.pixelPosition,function(a,c){if(c)return c=Oa(a,b),Ma.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return T(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),r.holdReady=function(a){a?r.readyWait++:r.ready(!0)},r.isArray=Array.isArray,r.parseJSON=JSON.parse,r.nodeName=B,"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var mb=a.jQuery,nb=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=nb),b&&a.jQuery===r&&(a.jQuery=mb),r},b||(a.jQuery=a.$=r),r});
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["jquery.slim.js"],"names":["global","factory","module","exports","document","w","Error","window","this","noGlobal","arr","getProto","Object","getPrototypeOf","slice","concat","push","indexOf","class2type","toString","hasOwn","hasOwnProperty","fnToString","ObjectFunctionString","call","support","DOMEval","code","doc","script","createElement","text","head","appendChild","parentNode","removeChild","version","jQuery","selector","context","fn","init","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","prototype","jquery","constructor","length","toArray","get","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","i","apply","arguments","first","eq","last","len","j","end","sort","splice","extend","options","name","src","copy","copyIsArray","clone","target","deep","isFunction","isPlainObject","Array","isArray","undefined","expando","Math","random","replace","isReady","error","msg","noop","obj","type","isWindow","isNumeric","isNaN","parseFloat","proto","Ctor","isEmptyObject","globalEval","camelCase","string","isArrayLike","trim","makeArray","results","inArray","second","grep","invert","callbackInverse","matches","callbackExpect","arg","value","guid","proxy","tmp","args","now","Date","Symbol","iterator","split","toLowerCase","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","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","disabledAncestor","addCombinator","disabled","dir","next","childNodes","nodeType","e","els","seed","m","nid","match","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","nodeName","getAttribute","setAttribute","toSelector","join","testContext","querySelectorAll","qsaError","removeAttribute","keys","cache","key","cacheLength","shift","markFunction","assert","el","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","documentElement","node","hasCompare","subWindow","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","filter","attrId","find","getAttributeNode","tag","innerHTML","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","val","specified","escape","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative",">"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","setFilters","idx","matched","not","matcher","unmatched","has","innerText","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","checked","selected","selectedIndex","empty","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","tokens","soFar","preFilters","cached","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","token","compiled","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","n","rneedsContext","rsingleTag","risSimple","winnow","qualifier","self","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","targets","l","closest","index","prevAll","add","addBack","sibling","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","reverse","rnothtmlwhite","createOptions","object","flag","Callbacks","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","remove","disable","lock","fireWith","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","method","promise","fail","then","Deferred","func","tuples","state","always","deferred","catch","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","TypeError","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","setTimeout","stateString","when","singleValue","remaining","resolveContexts","resolveValues","master","updateFunc","rerrorNames","stack","console","warn","message","readyException","readyList","readyWait","wait","completed","removeEventListener","readyState","doScroll","access","chainable","emptyGet","raw","bulk","acceptData","owner","Data","uid","defineProperty","configurable","set","data","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","getData","JSON","parse","dataAttr","removeData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","rcssNum","cssExpand","isHiddenWithinTree","style","display","css","swap","old","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","body","showHide","show","values","hide","toggle","rcheckableType","rtagName","rscriptType","wrapMap","option","thead","col","tr","td","_default","optgroup","tbody","tfoot","colgroup","caption","th","getAll","setGlobalEval","refElements","rhtml","buildFragment","scripts","selection","ignored","wrap","fragment","createDocumentFragment","nodes","htmlPrefilter","createTextNode","div","checkClone","cloneNode","noCloneChecked","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","safeActiveElement","err","on","types","one","origFn","event","off","handleObjIn","eventHandle","events","t","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","fix","handlerQueue","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","preventDefault","stopPropagation","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","Event","enumerable","originalEvent","writable","load","noBubble","trigger","blur","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","isSimulated","stopImmediatePropagation","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","char","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rxhtmlTag","rnoInnerhtml","rchecked","rscriptTypeMasked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","pdataOld","pdataCur","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rmargin","rnumnonpx","getStyles","opener","getComputedStyle","computeStyleTests","cssText","container","divStyle","pixelPositionVal","reliableMarginLeftVal","marginLeft","boxSizingReliableVal","width","marginRight","pixelMarginRightVal","backgroundClip","clearCloneStyle","pixelPosition","boxSizingReliable","pixelMarginRight","reliableMarginLeft","curCSS","computed","minWidth","maxWidth","getPropertyValue","addGetHookIf","conditionFn","hookFn","rdisplayswap","rcustomProp","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssPrefixes","emptyStyle","vendorPropName","capName","finalPropName","cssProps","setPositiveNumber","subtract","max","augmentWidthOrHeight","extra","isBorderBox","styles","getWidthOrHeight","valueIsBorderBox","cssHooks","opacity","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","zoom","float","origName","isCustomProp","setProperty","isFinite","getClientRects","getBoundingClientRect","left","margin","padding","border","prefix","suffix","expand","expanded","parts","delay","time","fx","speeds","timeout","clearTimeout","opt","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","attrNames","getter","lowercaseName","rfocusable","rclickable","removeProp","propFix","propHooks","tabindex","parseInt","for","class","stripAndCollapse","getClass","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","classNames","hasClass","rreturn","valHooks","optionSet","rfocusMorph","onlyHandlers","bubbleType","ontype","eventPath","isTrigger","parentWindow","simulate","triggerHandler","hover","fnOver","fnOut","focusin","attaches","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","s","valueOrFunction","encodeURIComponent","serialize","serializeArray","wrapAll","firstElementChild","wrapInner","unwrap","hidden","visible","offsetWidth","offsetHeight","createHTMLDocument","implementation","keepScripts","parsed","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","rect","win","pageYOffset","clientTop","pageXOffset","clientLeft","offsetParent","parentOffset","scrollLeft","scrollTop","scrollTo","Height","Width","","defaultExtra","funcName","bind","unbind","delegate","undelegate","holdReady","hold","parseJSON","define","amd","_jQuery","_$","$","noConflict"],"mappings":"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","file":"jquery.slim.min.js"}
@@ -0,0 +1,36 @@
1
+ Copyright jQuery Foundation and other contributors, https://jquery.org/
2
+
3
+ This software consists of voluntary contributions made by many
4
+ individuals. For exact contribution history, see the revision history
5
+ available at https://github.com/jquery/sizzle
6
+
7
+ The following license applies to all parts of this software except as
8
+ documented below:
9
+
10
+ ====
11
+
12
+ Permission is hereby granted, free of charge, to any person obtaining
13
+ a copy of this software and associated documentation files (the
14
+ "Software"), to deal in the Software without restriction, including
15
+ without limitation the rights to use, copy, modify, merge, publish,
16
+ distribute, sublicense, and/or sell copies of the Software, and to
17
+ permit persons to whom the Software is furnished to do so, subject to
18
+ the following conditions:
19
+
20
+ The above copyright notice and this permission notice shall be
21
+ included in all copies or substantial portions of the Software.
22
+
23
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
27
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
28
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
29
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30
+
31
+ ====
32
+
33
+ All files located in the node_modules and external directories are
34
+ externally maintained libraries used by this software which have their
35
+ own licenses; we recommend you read them, as their terms may differ from
36
+ the terms above.
@@ -0,0 +1,2272 @@
1
+ /*!
2
+ * Sizzle CSS Selector Engine v2.3.3
3
+ * https://sizzlejs.com/
4
+ *
5
+ * Copyright jQuery Foundation and other contributors
6
+ * Released under the MIT license
7
+ * http://jquery.org/license
8
+ *
9
+ * Date: 2016-08-08
10
+ */
11
+ (function( window ) {
12
+
13
+ var i,
14
+ support,
15
+ Expr,
16
+ getText,
17
+ isXML,
18
+ tokenize,
19
+ compile,
20
+ select,
21
+ outermostContext,
22
+ sortInput,
23
+ hasDuplicate,
24
+
25
+ // Local document vars
26
+ setDocument,
27
+ document,
28
+ docElem,
29
+ documentIsHTML,
30
+ rbuggyQSA,
31
+ rbuggyMatches,
32
+ matches,
33
+ contains,
34
+
35
+ // Instance-specific data
36
+ expando = "sizzle" + 1 * new Date(),
37
+ preferredDoc = window.document,
38
+ dirruns = 0,
39
+ done = 0,
40
+ classCache = createCache(),
41
+ tokenCache = createCache(),
42
+ compilerCache = createCache(),
43
+ sortOrder = function( a, b ) {
44
+ if ( a === b ) {
45
+ hasDuplicate = true;
46
+ }
47
+ return 0;
48
+ },
49
+
50
+ // Instance methods
51
+ hasOwn = ({}).hasOwnProperty,
52
+ arr = [],
53
+ pop = arr.pop,
54
+ push_native = arr.push,
55
+ push = arr.push,
56
+ slice = arr.slice,
57
+ // Use a stripped-down indexOf as it's faster than native
58
+ // https://jsperf.com/thor-indexof-vs-for/5
59
+ indexOf = function( list, elem ) {
60
+ var i = 0,
61
+ len = list.length;
62
+ for ( ; i < len; i++ ) {
63
+ if ( list[i] === elem ) {
64
+ return i;
65
+ }
66
+ }
67
+ return -1;
68
+ },
69
+
70
+ booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
71
+
72
+ // Regular expressions
73
+
74
+ // http://www.w3.org/TR/css3-selectors/#whitespace
75
+ whitespace = "[\\x20\\t\\r\\n\\f]",
76
+
77
+ // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
78
+ identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+",
79
+
80
+ // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
81
+ attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
82
+ // Operator (capture 2)
83
+ "*([*^$|!~]?=)" + whitespace +
84
+ // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
85
+ "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
86
+ "*\\]",
87
+
88
+ pseudos = ":(" + identifier + ")(?:\\((" +
89
+ // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
90
+ // 1. quoted (capture 3; capture 4 or capture 5)
91
+ "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
92
+ // 2. simple (capture 6)
93
+ "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
94
+ // 3. anything else (capture 2)
95
+ ".*" +
96
+ ")\\)|)",
97
+
98
+ // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
99
+ rwhitespace = new RegExp( whitespace + "+", "g" ),
100
+ rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
101
+
102
+ rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
103
+ rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
104
+
105
+ rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
106
+
107
+ rpseudo = new RegExp( pseudos ),
108
+ ridentifier = new RegExp( "^" + identifier + "$" ),
109
+
110
+ matchExpr = {
111
+ "ID": new RegExp( "^#(" + identifier + ")" ),
112
+ "CLASS": new RegExp( "^\\.(" + identifier + ")" ),
113
+ "TAG": new RegExp( "^(" + identifier + "|[*])" ),
114
+ "ATTR": new RegExp( "^" + attributes ),
115
+ "PSEUDO": new RegExp( "^" + pseudos ),
116
+ "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
117
+ "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
118
+ "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
119
+ "bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
120
+ // For use in libraries implementing .is()
121
+ // We use this for POS matching in `select`
122
+ "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
123
+ whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
124
+ },
125
+
126
+ rinputs = /^(?:input|select|textarea|button)$/i,
127
+ rheader = /^h\d$/i,
128
+
129
+ rnative = /^[^{]+\{\s*\[native \w/,
130
+
131
+ // Easily-parseable/retrievable ID or TAG or CLASS selectors
132
+ rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
133
+
134
+ rsibling = /[+~]/,
135
+
136
+ // CSS escapes
137
+ // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
138
+ runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
139
+ funescape = function( _, escaped, escapedWhitespace ) {
140
+ var high = "0x" + escaped - 0x10000;
141
+ // NaN means non-codepoint
142
+ // Support: Firefox<24
143
+ // Workaround erroneous numeric interpretation of +"0x"
144
+ return high !== high || escapedWhitespace ?
145
+ escaped :
146
+ high < 0 ?
147
+ // BMP codepoint
148
+ String.fromCharCode( high + 0x10000 ) :
149
+ // Supplemental Plane codepoint (surrogate pair)
150
+ String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
151
+ },
152
+
153
+ // CSS string/identifier serialization
154
+ // https://drafts.csswg.org/cssom/#common-serializing-idioms
155
+ rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
156
+ fcssescape = function( ch, asCodePoint ) {
157
+ if ( asCodePoint ) {
158
+
159
+ // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
160
+ if ( ch === "\0" ) {
161
+ return "\uFFFD";
162
+ }
163
+
164
+ // Control characters and (dependent upon position) numbers get escaped as code points
165
+ return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
166
+ }
167
+
168
+ // Other potentially-special ASCII characters get backslash-escaped
169
+ return "\\" + ch;
170
+ },
171
+
172
+ // Used for iframes
173
+ // See setDocument()
174
+ // Removing the function wrapper causes a "Permission Denied"
175
+ // error in IE
176
+ unloadHandler = function() {
177
+ setDocument();
178
+ },
179
+
180
+ disabledAncestor = addCombinator(
181
+ function( elem ) {
182
+ return elem.disabled === true && ("form" in elem || "label" in elem);
183
+ },
184
+ { dir: "parentNode", next: "legend" }
185
+ );
186
+
187
+ // Optimize for push.apply( _, NodeList )
188
+ try {
189
+ push.apply(
190
+ (arr = slice.call( preferredDoc.childNodes )),
191
+ preferredDoc.childNodes
192
+ );
193
+ // Support: Android<4.0
194
+ // Detect silently failing push.apply
195
+ arr[ preferredDoc.childNodes.length ].nodeType;
196
+ } catch ( e ) {
197
+ push = { apply: arr.length ?
198
+
199
+ // Leverage slice if possible
200
+ function( target, els ) {
201
+ push_native.apply( target, slice.call(els) );
202
+ } :
203
+
204
+ // Support: IE<9
205
+ // Otherwise append directly
206
+ function( target, els ) {
207
+ var j = target.length,
208
+ i = 0;
209
+ // Can't trust NodeList.length
210
+ while ( (target[j++] = els[i++]) ) {}
211
+ target.length = j - 1;
212
+ }
213
+ };
214
+ }
215
+
216
+ function Sizzle( selector, context, results, seed ) {
217
+ var m, i, elem, nid, match, groups, newSelector,
218
+ newContext = context && context.ownerDocument,
219
+
220
+ // nodeType defaults to 9, since context defaults to document
221
+ nodeType = context ? context.nodeType : 9;
222
+
223
+ results = results || [];
224
+
225
+ // Return early from calls with invalid selector or context
226
+ if ( typeof selector !== "string" || !selector ||
227
+ nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
228
+
229
+ return results;
230
+ }
231
+
232
+ // Try to shortcut find operations (as opposed to filters) in HTML documents
233
+ if ( !seed ) {
234
+
235
+ if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
236
+ setDocument( context );
237
+ }
238
+ context = context || document;
239
+
240
+ if ( documentIsHTML ) {
241
+
242
+ // If the selector is sufficiently simple, try using a "get*By*" DOM method
243
+ // (excepting DocumentFragment context, where the methods don't exist)
244
+ if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
245
+
246
+ // ID selector
247
+ if ( (m = match[1]) ) {
248
+
249
+ // Document context
250
+ if ( nodeType === 9 ) {
251
+ if ( (elem = context.getElementById( m )) ) {
252
+
253
+ // Support: IE, Opera, Webkit
254
+ // TODO: identify versions
255
+ // getElementById can match elements by name instead of ID
256
+ if ( elem.id === m ) {
257
+ results.push( elem );
258
+ return results;
259
+ }
260
+ } else {
261
+ return results;
262
+ }
263
+
264
+ // Element context
265
+ } else {
266
+
267
+ // Support: IE, Opera, Webkit
268
+ // TODO: identify versions
269
+ // getElementById can match elements by name instead of ID
270
+ if ( newContext && (elem = newContext.getElementById( m )) &&
271
+ contains( context, elem ) &&
272
+ elem.id === m ) {
273
+
274
+ results.push( elem );
275
+ return results;
276
+ }
277
+ }
278
+
279
+ // Type selector
280
+ } else if ( match[2] ) {
281
+ push.apply( results, context.getElementsByTagName( selector ) );
282
+ return results;
283
+
284
+ // Class selector
285
+ } else if ( (m = match[3]) && support.getElementsByClassName &&
286
+ context.getElementsByClassName ) {
287
+
288
+ push.apply( results, context.getElementsByClassName( m ) );
289
+ return results;
290
+ }
291
+ }
292
+
293
+ // Take advantage of querySelectorAll
294
+ if ( support.qsa &&
295
+ !compilerCache[ selector + " " ] &&
296
+ (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
297
+
298
+ if ( nodeType !== 1 ) {
299
+ newContext = context;
300
+ newSelector = selector;
301
+
302
+ // qSA looks outside Element context, which is not what we want
303
+ // Thanks to Andrew Dupont for this workaround technique
304
+ // Support: IE <=8
305
+ // Exclude object elements
306
+ } else if ( context.nodeName.toLowerCase() !== "object" ) {
307
+
308
+ // Capture the context ID, setting it first if necessary
309
+ if ( (nid = context.getAttribute( "id" )) ) {
310
+ nid = nid.replace( rcssescape, fcssescape );
311
+ } else {
312
+ context.setAttribute( "id", (nid = expando) );
313
+ }
314
+
315
+ // Prefix every selector in the list
316
+ groups = tokenize( selector );
317
+ i = groups.length;
318
+ while ( i-- ) {
319
+ groups[i] = "#" + nid + " " + toSelector( groups[i] );
320
+ }
321
+ newSelector = groups.join( "," );
322
+
323
+ // Expand context for sibling selectors
324
+ newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
325
+ context;
326
+ }
327
+
328
+ if ( newSelector ) {
329
+ try {
330
+ push.apply( results,
331
+ newContext.querySelectorAll( newSelector )
332
+ );
333
+ return results;
334
+ } catch ( qsaError ) {
335
+ } finally {
336
+ if ( nid === expando ) {
337
+ context.removeAttribute( "id" );
338
+ }
339
+ }
340
+ }
341
+ }
342
+ }
343
+ }
344
+
345
+ // All others
346
+ return select( selector.replace( rtrim, "$1" ), context, results, seed );
347
+ }
348
+
349
+ /**
350
+ * Create key-value caches of limited size
351
+ * @returns {function(string, object)} Returns the Object data after storing it on itself with
352
+ * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
353
+ * deleting the oldest entry
354
+ */
355
+ function createCache() {
356
+ var keys = [];
357
+
358
+ function cache( key, value ) {
359
+ // Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
360
+ if ( keys.push( key + " " ) > Expr.cacheLength ) {
361
+ // Only keep the most recent entries
362
+ delete cache[ keys.shift() ];
363
+ }
364
+ return (cache[ key + " " ] = value);
365
+ }
366
+ return cache;
367
+ }
368
+
369
+ /**
370
+ * Mark a function for special use by Sizzle
371
+ * @param {Function} fn The function to mark
372
+ */
373
+ function markFunction( fn ) {
374
+ fn[ expando ] = true;
375
+ return fn;
376
+ }
377
+
378
+ /**
379
+ * Support testing using an element
380
+ * @param {Function} fn Passed the created element and returns a boolean result
381
+ */
382
+ function assert( fn ) {
383
+ var el = document.createElement("fieldset");
384
+
385
+ try {
386
+ return !!fn( el );
387
+ } catch (e) {
388
+ return false;
389
+ } finally {
390
+ // Remove from its parent by default
391
+ if ( el.parentNode ) {
392
+ el.parentNode.removeChild( el );
393
+ }
394
+ // release memory in IE
395
+ el = null;
396
+ }
397
+ }
398
+
399
+ /**
400
+ * Adds the same handler for all of the specified attrs
401
+ * @param {String} attrs Pipe-separated list of attributes
402
+ * @param {Function} handler The method that will be applied
403
+ */
404
+ function addHandle( attrs, handler ) {
405
+ var arr = attrs.split("|"),
406
+ i = arr.length;
407
+
408
+ while ( i-- ) {
409
+ Expr.attrHandle[ arr[i] ] = handler;
410
+ }
411
+ }
412
+
413
+ /**
414
+ * Checks document order of two siblings
415
+ * @param {Element} a
416
+ * @param {Element} b
417
+ * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
418
+ */
419
+ function siblingCheck( a, b ) {
420
+ var cur = b && a,
421
+ diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
422
+ a.sourceIndex - b.sourceIndex;
423
+
424
+ // Use IE sourceIndex if available on both nodes
425
+ if ( diff ) {
426
+ return diff;
427
+ }
428
+
429
+ // Check if b follows a
430
+ if ( cur ) {
431
+ while ( (cur = cur.nextSibling) ) {
432
+ if ( cur === b ) {
433
+ return -1;
434
+ }
435
+ }
436
+ }
437
+
438
+ return a ? 1 : -1;
439
+ }
440
+
441
+ /**
442
+ * Returns a function to use in pseudos for input types
443
+ * @param {String} type
444
+ */
445
+ function createInputPseudo( type ) {
446
+ return function( elem ) {
447
+ var name = elem.nodeName.toLowerCase();
448
+ return name === "input" && elem.type === type;
449
+ };
450
+ }
451
+
452
+ /**
453
+ * Returns a function to use in pseudos for buttons
454
+ * @param {String} type
455
+ */
456
+ function createButtonPseudo( type ) {
457
+ return function( elem ) {
458
+ var name = elem.nodeName.toLowerCase();
459
+ return (name === "input" || name === "button") && elem.type === type;
460
+ };
461
+ }
462
+
463
+ /**
464
+ * Returns a function to use in pseudos for :enabled/:disabled
465
+ * @param {Boolean} disabled true for :disabled; false for :enabled
466
+ */
467
+ function createDisabledPseudo( disabled ) {
468
+
469
+ // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable
470
+ return function( elem ) {
471
+
472
+ // Only certain elements can match :enabled or :disabled
473
+ // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled
474
+ // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled
475
+ if ( "form" in elem ) {
476
+
477
+ // Check for inherited disabledness on relevant non-disabled elements:
478
+ // * listed form-associated elements in a disabled fieldset
479
+ // https://html.spec.whatwg.org/multipage/forms.html#category-listed
480
+ // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled
481
+ // * option elements in a disabled optgroup
482
+ // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled
483
+ // All such elements have a "form" property.
484
+ if ( elem.parentNode && elem.disabled === false ) {
485
+
486
+ // Option elements defer to a parent optgroup if present
487
+ if ( "label" in elem ) {
488
+ if ( "label" in elem.parentNode ) {
489
+ return elem.parentNode.disabled === disabled;
490
+ } else {
491
+ return elem.disabled === disabled;
492
+ }
493
+ }
494
+
495
+ // Support: IE 6 - 11
496
+ // Use the isDisabled shortcut property to check for disabled fieldset ancestors
497
+ return elem.isDisabled === disabled ||
498
+
499
+ // Where there is no isDisabled, check manually
500
+ /* jshint -W018 */
501
+ elem.isDisabled !== !disabled &&
502
+ disabledAncestor( elem ) === disabled;
503
+ }
504
+
505
+ return elem.disabled === disabled;
506
+
507
+ // Try to winnow out elements that can't be disabled before trusting the disabled property.
508
+ // Some victims get caught in our net (label, legend, menu, track), but it shouldn't
509
+ // even exist on them, let alone have a boolean value.
510
+ } else if ( "label" in elem ) {
511
+ return elem.disabled === disabled;
512
+ }
513
+
514
+ // Remaining elements are neither :enabled nor :disabled
515
+ return false;
516
+ };
517
+ }
518
+
519
+ /**
520
+ * Returns a function to use in pseudos for positionals
521
+ * @param {Function} fn
522
+ */
523
+ function createPositionalPseudo( fn ) {
524
+ return markFunction(function( argument ) {
525
+ argument = +argument;
526
+ return markFunction(function( seed, matches ) {
527
+ var j,
528
+ matchIndexes = fn( [], seed.length, argument ),
529
+ i = matchIndexes.length;
530
+
531
+ // Match elements found at the specified indexes
532
+ while ( i-- ) {
533
+ if ( seed[ (j = matchIndexes[i]) ] ) {
534
+ seed[j] = !(matches[j] = seed[j]);
535
+ }
536
+ }
537
+ });
538
+ });
539
+ }
540
+
541
+ /**
542
+ * Checks a node for validity as a Sizzle context
543
+ * @param {Element|Object=} context
544
+ * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
545
+ */
546
+ function testContext( context ) {
547
+ return context && typeof context.getElementsByTagName !== "undefined" && context;
548
+ }
549
+
550
+ // Expose support vars for convenience
551
+ support = Sizzle.support = {};
552
+
553
+ /**
554
+ * Detects XML nodes
555
+ * @param {Element|Object} elem An element or a document
556
+ * @returns {Boolean} True iff elem is a non-HTML XML node
557
+ */
558
+ isXML = Sizzle.isXML = function( elem ) {
559
+ // documentElement is verified for cases where it doesn't yet exist
560
+ // (such as loading iframes in IE - #4833)
561
+ var documentElement = elem && (elem.ownerDocument || elem).documentElement;
562
+ return documentElement ? documentElement.nodeName !== "HTML" : false;
563
+ };
564
+
565
+ /**
566
+ * Sets document-related variables once based on the current document
567
+ * @param {Element|Object} [doc] An element or document object to use to set the document
568
+ * @returns {Object} Returns the current document
569
+ */
570
+ setDocument = Sizzle.setDocument = function( node ) {
571
+ var hasCompare, subWindow,
572
+ doc = node ? node.ownerDocument || node : preferredDoc;
573
+
574
+ // Return early if doc is invalid or already selected
575
+ if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
576
+ return document;
577
+ }
578
+
579
+ // Update global variables
580
+ document = doc;
581
+ docElem = document.documentElement;
582
+ documentIsHTML = !isXML( document );
583
+
584
+ // Support: IE 9-11, Edge
585
+ // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
586
+ if ( preferredDoc !== document &&
587
+ (subWindow = document.defaultView) && subWindow.top !== subWindow ) {
588
+
589
+ // Support: IE 11, Edge
590
+ if ( subWindow.addEventListener ) {
591
+ subWindow.addEventListener( "unload", unloadHandler, false );
592
+
593
+ // Support: IE 9 - 10 only
594
+ } else if ( subWindow.attachEvent ) {
595
+ subWindow.attachEvent( "onunload", unloadHandler );
596
+ }
597
+ }
598
+
599
+ /* Attributes
600
+ ---------------------------------------------------------------------- */
601
+
602
+ // Support: IE<8
603
+ // Verify that getAttribute really returns attributes and not properties
604
+ // (excepting IE8 booleans)
605
+ support.attributes = assert(function( el ) {
606
+ el.className = "i";
607
+ return !el.getAttribute("className");
608
+ });
609
+
610
+ /* getElement(s)By*
611
+ ---------------------------------------------------------------------- */
612
+
613
+ // Check if getElementsByTagName("*") returns only elements
614
+ support.getElementsByTagName = assert(function( el ) {
615
+ el.appendChild( document.createComment("") );
616
+ return !el.getElementsByTagName("*").length;
617
+ });
618
+
619
+ // Support: IE<9
620
+ support.getElementsByClassName = rnative.test( document.getElementsByClassName );
621
+
622
+ // Support: IE<10
623
+ // Check if getElementById returns elements by name
624
+ // The broken getElementById methods don't pick up programmatically-set names,
625
+ // so use a roundabout getElementsByName test
626
+ support.getById = assert(function( el ) {
627
+ docElem.appendChild( el ).id = expando;
628
+ return !document.getElementsByName || !document.getElementsByName( expando ).length;
629
+ });
630
+
631
+ // ID filter and find
632
+ if ( support.getById ) {
633
+ Expr.filter["ID"] = function( id ) {
634
+ var attrId = id.replace( runescape, funescape );
635
+ return function( elem ) {
636
+ return elem.getAttribute("id") === attrId;
637
+ };
638
+ };
639
+ Expr.find["ID"] = function( id, context ) {
640
+ if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
641
+ var elem = context.getElementById( id );
642
+ return elem ? [ elem ] : [];
643
+ }
644
+ };
645
+ } else {
646
+ Expr.filter["ID"] = function( id ) {
647
+ var attrId = id.replace( runescape, funescape );
648
+ return function( elem ) {
649
+ var node = typeof elem.getAttributeNode !== "undefined" &&
650
+ elem.getAttributeNode("id");
651
+ return node && node.value === attrId;
652
+ };
653
+ };
654
+
655
+ // Support: IE 6 - 7 only
656
+ // getElementById is not reliable as a find shortcut
657
+ Expr.find["ID"] = function( id, context ) {
658
+ if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
659
+ var node, i, elems,
660
+ elem = context.getElementById( id );
661
+
662
+ if ( elem ) {
663
+
664
+ // Verify the id attribute
665
+ node = elem.getAttributeNode("id");
666
+ if ( node && node.value === id ) {
667
+ return [ elem ];
668
+ }
669
+
670
+ // Fall back on getElementsByName
671
+ elems = context.getElementsByName( id );
672
+ i = 0;
673
+ while ( (elem = elems[i++]) ) {
674
+ node = elem.getAttributeNode("id");
675
+ if ( node && node.value === id ) {
676
+ return [ elem ];
677
+ }
678
+ }
679
+ }
680
+
681
+ return [];
682
+ }
683
+ };
684
+ }
685
+
686
+ // Tag
687
+ Expr.find["TAG"] = support.getElementsByTagName ?
688
+ function( tag, context ) {
689
+ if ( typeof context.getElementsByTagName !== "undefined" ) {
690
+ return context.getElementsByTagName( tag );
691
+
692
+ // DocumentFragment nodes don't have gEBTN
693
+ } else if ( support.qsa ) {
694
+ return context.querySelectorAll( tag );
695
+ }
696
+ } :
697
+
698
+ function( tag, context ) {
699
+ var elem,
700
+ tmp = [],
701
+ i = 0,
702
+ // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
703
+ results = context.getElementsByTagName( tag );
704
+
705
+ // Filter out possible comments
706
+ if ( tag === "*" ) {
707
+ while ( (elem = results[i++]) ) {
708
+ if ( elem.nodeType === 1 ) {
709
+ tmp.push( elem );
710
+ }
711
+ }
712
+
713
+ return tmp;
714
+ }
715
+ return results;
716
+ };
717
+
718
+ // Class
719
+ Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
720
+ if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
721
+ return context.getElementsByClassName( className );
722
+ }
723
+ };
724
+
725
+ /* QSA/matchesSelector
726
+ ---------------------------------------------------------------------- */
727
+
728
+ // QSA and matchesSelector support
729
+
730
+ // matchesSelector(:active) reports false when true (IE9/Opera 11.5)
731
+ rbuggyMatches = [];
732
+
733
+ // qSa(:focus) reports false when true (Chrome 21)
734
+ // We allow this because of a bug in IE8/9 that throws an error
735
+ // whenever `document.activeElement` is accessed on an iframe
736
+ // So, we allow :focus to pass through QSA all the time to avoid the IE error
737
+ // See https://bugs.jquery.com/ticket/13378
738
+ rbuggyQSA = [];
739
+
740
+ if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
741
+ // Build QSA regex
742
+ // Regex strategy adopted from Diego Perini
743
+ assert(function( el ) {
744
+ // Select is set to empty string on purpose
745
+ // This is to test IE's treatment of not explicitly
746
+ // setting a boolean content attribute,
747
+ // since its presence should be enough
748
+ // https://bugs.jquery.com/ticket/12359
749
+ docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" +
750
+ "<select id='" + expando + "-\r\\' msallowcapture=''>" +
751
+ "<option selected=''></option></select>";
752
+
753
+ // Support: IE8, Opera 11-12.16
754
+ // Nothing should be selected when empty strings follow ^= or $= or *=
755
+ // The test attribute must be unknown in Opera but "safe" for WinRT
756
+ // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
757
+ if ( el.querySelectorAll("[msallowcapture^='']").length ) {
758
+ rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
759
+ }
760
+
761
+ // Support: IE8
762
+ // Boolean attributes and "value" are not treated correctly
763
+ if ( !el.querySelectorAll("[selected]").length ) {
764
+ rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
765
+ }
766
+
767
+ // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
768
+ if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
769
+ rbuggyQSA.push("~=");
770
+ }
771
+
772
+ // Webkit/Opera - :checked should return selected option elements
773
+ // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
774
+ // IE8 throws error here and will not see later tests
775
+ if ( !el.querySelectorAll(":checked").length ) {
776
+ rbuggyQSA.push(":checked");
777
+ }
778
+
779
+ // Support: Safari 8+, iOS 8+
780
+ // https://bugs.webkit.org/show_bug.cgi?id=136851
781
+ // In-page `selector#id sibling-combinator selector` fails
782
+ if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
783
+ rbuggyQSA.push(".#.+[+~]");
784
+ }
785
+ });
786
+
787
+ assert(function( el ) {
788
+ el.innerHTML = "<a href='' disabled='disabled'></a>" +
789
+ "<select disabled='disabled'><option/></select>";
790
+
791
+ // Support: Windows 8 Native Apps
792
+ // The type and name attributes are restricted during .innerHTML assignment
793
+ var input = document.createElement("input");
794
+ input.setAttribute( "type", "hidden" );
795
+ el.appendChild( input ).setAttribute( "name", "D" );
796
+
797
+ // Support: IE8
798
+ // Enforce case-sensitivity of name attribute
799
+ if ( el.querySelectorAll("[name=d]").length ) {
800
+ rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
801
+ }
802
+
803
+ // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
804
+ // IE8 throws error here and will not see later tests
805
+ if ( el.querySelectorAll(":enabled").length !== 2 ) {
806
+ rbuggyQSA.push( ":enabled", ":disabled" );
807
+ }
808
+
809
+ // Support: IE9-11+
810
+ // IE's :disabled selector does not pick up the children of disabled fieldsets
811
+ docElem.appendChild( el ).disabled = true;
812
+ if ( el.querySelectorAll(":disabled").length !== 2 ) {
813
+ rbuggyQSA.push( ":enabled", ":disabled" );
814
+ }
815
+
816
+ // Opera 10-11 does not throw on post-comma invalid pseudos
817
+ el.querySelectorAll("*,:x");
818
+ rbuggyQSA.push(",.*:");
819
+ });
820
+ }
821
+
822
+ if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
823
+ docElem.webkitMatchesSelector ||
824
+ docElem.mozMatchesSelector ||
825
+ docElem.oMatchesSelector ||
826
+ docElem.msMatchesSelector) )) ) {
827
+
828
+ assert(function( el ) {
829
+ // Check to see if it's possible to do matchesSelector
830
+ // on a disconnected node (IE 9)
831
+ support.disconnectedMatch = matches.call( el, "*" );
832
+
833
+ // This should fail with an exception
834
+ // Gecko does not error, returns false instead
835
+ matches.call( el, "[s!='']:x" );
836
+ rbuggyMatches.push( "!=", pseudos );
837
+ });
838
+ }
839
+
840
+ rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
841
+ rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
842
+
843
+ /* Contains
844
+ ---------------------------------------------------------------------- */
845
+ hasCompare = rnative.test( docElem.compareDocumentPosition );
846
+
847
+ // Element contains another
848
+ // Purposefully self-exclusive
849
+ // As in, an element does not contain itself
850
+ contains = hasCompare || rnative.test( docElem.contains ) ?
851
+ function( a, b ) {
852
+ var adown = a.nodeType === 9 ? a.documentElement : a,
853
+ bup = b && b.parentNode;
854
+ return a === bup || !!( bup && bup.nodeType === 1 && (
855
+ adown.contains ?
856
+ adown.contains( bup ) :
857
+ a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
858
+ ));
859
+ } :
860
+ function( a, b ) {
861
+ if ( b ) {
862
+ while ( (b = b.parentNode) ) {
863
+ if ( b === a ) {
864
+ return true;
865
+ }
866
+ }
867
+ }
868
+ return false;
869
+ };
870
+
871
+ /* Sorting
872
+ ---------------------------------------------------------------------- */
873
+
874
+ // Document order sorting
875
+ sortOrder = hasCompare ?
876
+ function( a, b ) {
877
+
878
+ // Flag for duplicate removal
879
+ if ( a === b ) {
880
+ hasDuplicate = true;
881
+ return 0;
882
+ }
883
+
884
+ // Sort on method existence if only one input has compareDocumentPosition
885
+ var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
886
+ if ( compare ) {
887
+ return compare;
888
+ }
889
+
890
+ // Calculate position if both inputs belong to the same document
891
+ compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
892
+ a.compareDocumentPosition( b ) :
893
+
894
+ // Otherwise we know they are disconnected
895
+ 1;
896
+
897
+ // Disconnected nodes
898
+ if ( compare & 1 ||
899
+ (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
900
+
901
+ // Choose the first element that is related to our preferred document
902
+ if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
903
+ return -1;
904
+ }
905
+ if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
906
+ return 1;
907
+ }
908
+
909
+ // Maintain original order
910
+ return sortInput ?
911
+ ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
912
+ 0;
913
+ }
914
+
915
+ return compare & 4 ? -1 : 1;
916
+ } :
917
+ function( a, b ) {
918
+ // Exit early if the nodes are identical
919
+ if ( a === b ) {
920
+ hasDuplicate = true;
921
+ return 0;
922
+ }
923
+
924
+ var cur,
925
+ i = 0,
926
+ aup = a.parentNode,
927
+ bup = b.parentNode,
928
+ ap = [ a ],
929
+ bp = [ b ];
930
+
931
+ // Parentless nodes are either documents or disconnected
932
+ if ( !aup || !bup ) {
933
+ return a === document ? -1 :
934
+ b === document ? 1 :
935
+ aup ? -1 :
936
+ bup ? 1 :
937
+ sortInput ?
938
+ ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
939
+ 0;
940
+
941
+ // If the nodes are siblings, we can do a quick check
942
+ } else if ( aup === bup ) {
943
+ return siblingCheck( a, b );
944
+ }
945
+
946
+ // Otherwise we need full lists of their ancestors for comparison
947
+ cur = a;
948
+ while ( (cur = cur.parentNode) ) {
949
+ ap.unshift( cur );
950
+ }
951
+ cur = b;
952
+ while ( (cur = cur.parentNode) ) {
953
+ bp.unshift( cur );
954
+ }
955
+
956
+ // Walk down the tree looking for a discrepancy
957
+ while ( ap[i] === bp[i] ) {
958
+ i++;
959
+ }
960
+
961
+ return i ?
962
+ // Do a sibling check if the nodes have a common ancestor
963
+ siblingCheck( ap[i], bp[i] ) :
964
+
965
+ // Otherwise nodes in our document sort first
966
+ ap[i] === preferredDoc ? -1 :
967
+ bp[i] === preferredDoc ? 1 :
968
+ 0;
969
+ };
970
+
971
+ return document;
972
+ };
973
+
974
+ Sizzle.matches = function( expr, elements ) {
975
+ return Sizzle( expr, null, null, elements );
976
+ };
977
+
978
+ Sizzle.matchesSelector = function( elem, expr ) {
979
+ // Set document vars if needed
980
+ if ( ( elem.ownerDocument || elem ) !== document ) {
981
+ setDocument( elem );
982
+ }
983
+
984
+ // Make sure that attribute selectors are quoted
985
+ expr = expr.replace( rattributeQuotes, "='$1']" );
986
+
987
+ if ( support.matchesSelector && documentIsHTML &&
988
+ !compilerCache[ expr + " " ] &&
989
+ ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
990
+ ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
991
+
992
+ try {
993
+ var ret = matches.call( elem, expr );
994
+
995
+ // IE 9's matchesSelector returns false on disconnected nodes
996
+ if ( ret || support.disconnectedMatch ||
997
+ // As well, disconnected nodes are said to be in a document
998
+ // fragment in IE 9
999
+ elem.document && elem.document.nodeType !== 11 ) {
1000
+ return ret;
1001
+ }
1002
+ } catch (e) {}
1003
+ }
1004
+
1005
+ return Sizzle( expr, document, null, [ elem ] ).length > 0;
1006
+ };
1007
+
1008
+ Sizzle.contains = function( context, elem ) {
1009
+ // Set document vars if needed
1010
+ if ( ( context.ownerDocument || context ) !== document ) {
1011
+ setDocument( context );
1012
+ }
1013
+ return contains( context, elem );
1014
+ };
1015
+
1016
+ Sizzle.attr = function( elem, name ) {
1017
+ // Set document vars if needed
1018
+ if ( ( elem.ownerDocument || elem ) !== document ) {
1019
+ setDocument( elem );
1020
+ }
1021
+
1022
+ var fn = Expr.attrHandle[ name.toLowerCase() ],
1023
+ // Don't get fooled by Object.prototype properties (jQuery #13807)
1024
+ val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
1025
+ fn( elem, name, !documentIsHTML ) :
1026
+ undefined;
1027
+
1028
+ return val !== undefined ?
1029
+ val :
1030
+ support.attributes || !documentIsHTML ?
1031
+ elem.getAttribute( name ) :
1032
+ (val = elem.getAttributeNode(name)) && val.specified ?
1033
+ val.value :
1034
+ null;
1035
+ };
1036
+
1037
+ Sizzle.escape = function( sel ) {
1038
+ return (sel + "").replace( rcssescape, fcssescape );
1039
+ };
1040
+
1041
+ Sizzle.error = function( msg ) {
1042
+ throw new Error( "Syntax error, unrecognized expression: " + msg );
1043
+ };
1044
+
1045
+ /**
1046
+ * Document sorting and removing duplicates
1047
+ * @param {ArrayLike} results
1048
+ */
1049
+ Sizzle.uniqueSort = function( results ) {
1050
+ var elem,
1051
+ duplicates = [],
1052
+ j = 0,
1053
+ i = 0;
1054
+
1055
+ // Unless we *know* we can detect duplicates, assume their presence
1056
+ hasDuplicate = !support.detectDuplicates;
1057
+ sortInput = !support.sortStable && results.slice( 0 );
1058
+ results.sort( sortOrder );
1059
+
1060
+ if ( hasDuplicate ) {
1061
+ while ( (elem = results[i++]) ) {
1062
+ if ( elem === results[ i ] ) {
1063
+ j = duplicates.push( i );
1064
+ }
1065
+ }
1066
+ while ( j-- ) {
1067
+ results.splice( duplicates[ j ], 1 );
1068
+ }
1069
+ }
1070
+
1071
+ // Clear input after sorting to release objects
1072
+ // See https://github.com/jquery/sizzle/pull/225
1073
+ sortInput = null;
1074
+
1075
+ return results;
1076
+ };
1077
+
1078
+ /**
1079
+ * Utility function for retrieving the text value of an array of DOM nodes
1080
+ * @param {Array|Element} elem
1081
+ */
1082
+ getText = Sizzle.getText = function( elem ) {
1083
+ var node,
1084
+ ret = "",
1085
+ i = 0,
1086
+ nodeType = elem.nodeType;
1087
+
1088
+ if ( !nodeType ) {
1089
+ // If no nodeType, this is expected to be an array
1090
+ while ( (node = elem[i++]) ) {
1091
+ // Do not traverse comment nodes
1092
+ ret += getText( node );
1093
+ }
1094
+ } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
1095
+ // Use textContent for elements
1096
+ // innerText usage removed for consistency of new lines (jQuery #11153)
1097
+ if ( typeof elem.textContent === "string" ) {
1098
+ return elem.textContent;
1099
+ } else {
1100
+ // Traverse its children
1101
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
1102
+ ret += getText( elem );
1103
+ }
1104
+ }
1105
+ } else if ( nodeType === 3 || nodeType === 4 ) {
1106
+ return elem.nodeValue;
1107
+ }
1108
+ // Do not include comment or processing instruction nodes
1109
+
1110
+ return ret;
1111
+ };
1112
+
1113
+ Expr = Sizzle.selectors = {
1114
+
1115
+ // Can be adjusted by the user
1116
+ cacheLength: 50,
1117
+
1118
+ createPseudo: markFunction,
1119
+
1120
+ match: matchExpr,
1121
+
1122
+ attrHandle: {},
1123
+
1124
+ find: {},
1125
+
1126
+ relative: {
1127
+ ">": { dir: "parentNode", first: true },
1128
+ " ": { dir: "parentNode" },
1129
+ "+": { dir: "previousSibling", first: true },
1130
+ "~": { dir: "previousSibling" }
1131
+ },
1132
+
1133
+ preFilter: {
1134
+ "ATTR": function( match ) {
1135
+ match[1] = match[1].replace( runescape, funescape );
1136
+
1137
+ // Move the given value to match[3] whether quoted or unquoted
1138
+ match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
1139
+
1140
+ if ( match[2] === "~=" ) {
1141
+ match[3] = " " + match[3] + " ";
1142
+ }
1143
+
1144
+ return match.slice( 0, 4 );
1145
+ },
1146
+
1147
+ "CHILD": function( match ) {
1148
+ /* matches from matchExpr["CHILD"]
1149
+ 1 type (only|nth|...)
1150
+ 2 what (child|of-type)
1151
+ 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
1152
+ 4 xn-component of xn+y argument ([+-]?\d*n|)
1153
+ 5 sign of xn-component
1154
+ 6 x of xn-component
1155
+ 7 sign of y-component
1156
+ 8 y of y-component
1157
+ */
1158
+ match[1] = match[1].toLowerCase();
1159
+
1160
+ if ( match[1].slice( 0, 3 ) === "nth" ) {
1161
+ // nth-* requires argument
1162
+ if ( !match[3] ) {
1163
+ Sizzle.error( match[0] );
1164
+ }
1165
+
1166
+ // numeric x and y parameters for Expr.filter.CHILD
1167
+ // remember that false/true cast respectively to 0/1
1168
+ match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
1169
+ match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
1170
+
1171
+ // other types prohibit arguments
1172
+ } else if ( match[3] ) {
1173
+ Sizzle.error( match[0] );
1174
+ }
1175
+
1176
+ return match;
1177
+ },
1178
+
1179
+ "PSEUDO": function( match ) {
1180
+ var excess,
1181
+ unquoted = !match[6] && match[2];
1182
+
1183
+ if ( matchExpr["CHILD"].test( match[0] ) ) {
1184
+ return null;
1185
+ }
1186
+
1187
+ // Accept quoted arguments as-is
1188
+ if ( match[3] ) {
1189
+ match[2] = match[4] || match[5] || "";
1190
+
1191
+ // Strip excess characters from unquoted arguments
1192
+ } else if ( unquoted && rpseudo.test( unquoted ) &&
1193
+ // Get excess from tokenize (recursively)
1194
+ (excess = tokenize( unquoted, true )) &&
1195
+ // advance to the next closing parenthesis
1196
+ (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
1197
+
1198
+ // excess is a negative index
1199
+ match[0] = match[0].slice( 0, excess );
1200
+ match[2] = unquoted.slice( 0, excess );
1201
+ }
1202
+
1203
+ // Return only captures needed by the pseudo filter method (type and argument)
1204
+ return match.slice( 0, 3 );
1205
+ }
1206
+ },
1207
+
1208
+ filter: {
1209
+
1210
+ "TAG": function( nodeNameSelector ) {
1211
+ var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
1212
+ return nodeNameSelector === "*" ?
1213
+ function() { return true; } :
1214
+ function( elem ) {
1215
+ return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
1216
+ };
1217
+ },
1218
+
1219
+ "CLASS": function( className ) {
1220
+ var pattern = classCache[ className + " " ];
1221
+
1222
+ return pattern ||
1223
+ (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
1224
+ classCache( className, function( elem ) {
1225
+ return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
1226
+ });
1227
+ },
1228
+
1229
+ "ATTR": function( name, operator, check ) {
1230
+ return function( elem ) {
1231
+ var result = Sizzle.attr( elem, name );
1232
+
1233
+ if ( result == null ) {
1234
+ return operator === "!=";
1235
+ }
1236
+ if ( !operator ) {
1237
+ return true;
1238
+ }
1239
+
1240
+ result += "";
1241
+
1242
+ return operator === "=" ? result === check :
1243
+ operator === "!=" ? result !== check :
1244
+ operator === "^=" ? check && result.indexOf( check ) === 0 :
1245
+ operator === "*=" ? check && result.indexOf( check ) > -1 :
1246
+ operator === "$=" ? check && result.slice( -check.length ) === check :
1247
+ operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
1248
+ operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
1249
+ false;
1250
+ };
1251
+ },
1252
+
1253
+ "CHILD": function( type, what, argument, first, last ) {
1254
+ var simple = type.slice( 0, 3 ) !== "nth",
1255
+ forward = type.slice( -4 ) !== "last",
1256
+ ofType = what === "of-type";
1257
+
1258
+ return first === 1 && last === 0 ?
1259
+
1260
+ // Shortcut for :nth-*(n)
1261
+ function( elem ) {
1262
+ return !!elem.parentNode;
1263
+ } :
1264
+
1265
+ function( elem, context, xml ) {
1266
+ var cache, uniqueCache, outerCache, node, nodeIndex, start,
1267
+ dir = simple !== forward ? "nextSibling" : "previousSibling",
1268
+ parent = elem.parentNode,
1269
+ name = ofType && elem.nodeName.toLowerCase(),
1270
+ useCache = !xml && !ofType,
1271
+ diff = false;
1272
+
1273
+ if ( parent ) {
1274
+
1275
+ // :(first|last|only)-(child|of-type)
1276
+ if ( simple ) {
1277
+ while ( dir ) {
1278
+ node = elem;
1279
+ while ( (node = node[ dir ]) ) {
1280
+ if ( ofType ?
1281
+ node.nodeName.toLowerCase() === name :
1282
+ node.nodeType === 1 ) {
1283
+
1284
+ return false;
1285
+ }
1286
+ }
1287
+ // Reverse direction for :only-* (if we haven't yet done so)
1288
+ start = dir = type === "only" && !start && "nextSibling";
1289
+ }
1290
+ return true;
1291
+ }
1292
+
1293
+ start = [ forward ? parent.firstChild : parent.lastChild ];
1294
+
1295
+ // non-xml :nth-child(...) stores cache data on `parent`
1296
+ if ( forward && useCache ) {
1297
+
1298
+ // Seek `elem` from a previously-cached index
1299
+
1300
+ // ...in a gzip-friendly way
1301
+ node = parent;
1302
+ outerCache = node[ expando ] || (node[ expando ] = {});
1303
+
1304
+ // Support: IE <9 only
1305
+ // Defend against cloned attroperties (jQuery gh-1709)
1306
+ uniqueCache = outerCache[ node.uniqueID ] ||
1307
+ (outerCache[ node.uniqueID ] = {});
1308
+
1309
+ cache = uniqueCache[ type ] || [];
1310
+ nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
1311
+ diff = nodeIndex && cache[ 2 ];
1312
+ node = nodeIndex && parent.childNodes[ nodeIndex ];
1313
+
1314
+ while ( (node = ++nodeIndex && node && node[ dir ] ||
1315
+
1316
+ // Fallback to seeking `elem` from the start
1317
+ (diff = nodeIndex = 0) || start.pop()) ) {
1318
+
1319
+ // When found, cache indexes on `parent` and break
1320
+ if ( node.nodeType === 1 && ++diff && node === elem ) {
1321
+ uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
1322
+ break;
1323
+ }
1324
+ }
1325
+
1326
+ } else {
1327
+ // Use previously-cached element index if available
1328
+ if ( useCache ) {
1329
+ // ...in a gzip-friendly way
1330
+ node = elem;
1331
+ outerCache = node[ expando ] || (node[ expando ] = {});
1332
+
1333
+ // Support: IE <9 only
1334
+ // Defend against cloned attroperties (jQuery gh-1709)
1335
+ uniqueCache = outerCache[ node.uniqueID ] ||
1336
+ (outerCache[ node.uniqueID ] = {});
1337
+
1338
+ cache = uniqueCache[ type ] || [];
1339
+ nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
1340
+ diff = nodeIndex;
1341
+ }
1342
+
1343
+ // xml :nth-child(...)
1344
+ // or :nth-last-child(...) or :nth(-last)?-of-type(...)
1345
+ if ( diff === false ) {
1346
+ // Use the same loop as above to seek `elem` from the start
1347
+ while ( (node = ++nodeIndex && node && node[ dir ] ||
1348
+ (diff = nodeIndex = 0) || start.pop()) ) {
1349
+
1350
+ if ( ( ofType ?
1351
+ node.nodeName.toLowerCase() === name :
1352
+ node.nodeType === 1 ) &&
1353
+ ++diff ) {
1354
+
1355
+ // Cache the index of each encountered element
1356
+ if ( useCache ) {
1357
+ outerCache = node[ expando ] || (node[ expando ] = {});
1358
+
1359
+ // Support: IE <9 only
1360
+ // Defend against cloned attroperties (jQuery gh-1709)
1361
+ uniqueCache = outerCache[ node.uniqueID ] ||
1362
+ (outerCache[ node.uniqueID ] = {});
1363
+
1364
+ uniqueCache[ type ] = [ dirruns, diff ];
1365
+ }
1366
+
1367
+ if ( node === elem ) {
1368
+ break;
1369
+ }
1370
+ }
1371
+ }
1372
+ }
1373
+ }
1374
+
1375
+ // Incorporate the offset, then check against cycle size
1376
+ diff -= last;
1377
+ return diff === first || ( diff % first === 0 && diff / first >= 0 );
1378
+ }
1379
+ };
1380
+ },
1381
+
1382
+ "PSEUDO": function( pseudo, argument ) {
1383
+ // pseudo-class names are case-insensitive
1384
+ // http://www.w3.org/TR/selectors/#pseudo-classes
1385
+ // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
1386
+ // Remember that setFilters inherits from pseudos
1387
+ var args,
1388
+ fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
1389
+ Sizzle.error( "unsupported pseudo: " + pseudo );
1390
+
1391
+ // The user may use createPseudo to indicate that
1392
+ // arguments are needed to create the filter function
1393
+ // just as Sizzle does
1394
+ if ( fn[ expando ] ) {
1395
+ return fn( argument );
1396
+ }
1397
+
1398
+ // But maintain support for old signatures
1399
+ if ( fn.length > 1 ) {
1400
+ args = [ pseudo, pseudo, "", argument ];
1401
+ return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
1402
+ markFunction(function( seed, matches ) {
1403
+ var idx,
1404
+ matched = fn( seed, argument ),
1405
+ i = matched.length;
1406
+ while ( i-- ) {
1407
+ idx = indexOf( seed, matched[i] );
1408
+ seed[ idx ] = !( matches[ idx ] = matched[i] );
1409
+ }
1410
+ }) :
1411
+ function( elem ) {
1412
+ return fn( elem, 0, args );
1413
+ };
1414
+ }
1415
+
1416
+ return fn;
1417
+ }
1418
+ },
1419
+
1420
+ pseudos: {
1421
+ // Potentially complex pseudos
1422
+ "not": markFunction(function( selector ) {
1423
+ // Trim the selector passed to compile
1424
+ // to avoid treating leading and trailing
1425
+ // spaces as combinators
1426
+ var input = [],
1427
+ results = [],
1428
+ matcher = compile( selector.replace( rtrim, "$1" ) );
1429
+
1430
+ return matcher[ expando ] ?
1431
+ markFunction(function( seed, matches, context, xml ) {
1432
+ var elem,
1433
+ unmatched = matcher( seed, null, xml, [] ),
1434
+ i = seed.length;
1435
+
1436
+ // Match elements unmatched by `matcher`
1437
+ while ( i-- ) {
1438
+ if ( (elem = unmatched[i]) ) {
1439
+ seed[i] = !(matches[i] = elem);
1440
+ }
1441
+ }
1442
+ }) :
1443
+ function( elem, context, xml ) {
1444
+ input[0] = elem;
1445
+ matcher( input, null, xml, results );
1446
+ // Don't keep the element (issue #299)
1447
+ input[0] = null;
1448
+ return !results.pop();
1449
+ };
1450
+ }),
1451
+
1452
+ "has": markFunction(function( selector ) {
1453
+ return function( elem ) {
1454
+ return Sizzle( selector, elem ).length > 0;
1455
+ };
1456
+ }),
1457
+
1458
+ "contains": markFunction(function( text ) {
1459
+ text = text.replace( runescape, funescape );
1460
+ return function( elem ) {
1461
+ return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
1462
+ };
1463
+ }),
1464
+
1465
+ // "Whether an element is represented by a :lang() selector
1466
+ // is based solely on the element's language value
1467
+ // being equal to the identifier C,
1468
+ // or beginning with the identifier C immediately followed by "-".
1469
+ // The matching of C against the element's language value is performed case-insensitively.
1470
+ // The identifier C does not have to be a valid language name."
1471
+ // http://www.w3.org/TR/selectors/#lang-pseudo
1472
+ "lang": markFunction( function( lang ) {
1473
+ // lang value must be a valid identifier
1474
+ if ( !ridentifier.test(lang || "") ) {
1475
+ Sizzle.error( "unsupported lang: " + lang );
1476
+ }
1477
+ lang = lang.replace( runescape, funescape ).toLowerCase();
1478
+ return function( elem ) {
1479
+ var elemLang;
1480
+ do {
1481
+ if ( (elemLang = documentIsHTML ?
1482
+ elem.lang :
1483
+ elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
1484
+
1485
+ elemLang = elemLang.toLowerCase();
1486
+ return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
1487
+ }
1488
+ } while ( (elem = elem.parentNode) && elem.nodeType === 1 );
1489
+ return false;
1490
+ };
1491
+ }),
1492
+
1493
+ // Miscellaneous
1494
+ "target": function( elem ) {
1495
+ var hash = window.location && window.location.hash;
1496
+ return hash && hash.slice( 1 ) === elem.id;
1497
+ },
1498
+
1499
+ "root": function( elem ) {
1500
+ return elem === docElem;
1501
+ },
1502
+
1503
+ "focus": function( elem ) {
1504
+ return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
1505
+ },
1506
+
1507
+ // Boolean properties
1508
+ "enabled": createDisabledPseudo( false ),
1509
+ "disabled": createDisabledPseudo( true ),
1510
+
1511
+ "checked": function( elem ) {
1512
+ // In CSS3, :checked should return both checked and selected elements
1513
+ // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
1514
+ var nodeName = elem.nodeName.toLowerCase();
1515
+ return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
1516
+ },
1517
+
1518
+ "selected": function( elem ) {
1519
+ // Accessing this property makes selected-by-default
1520
+ // options in Safari work properly
1521
+ if ( elem.parentNode ) {
1522
+ elem.parentNode.selectedIndex;
1523
+ }
1524
+
1525
+ return elem.selected === true;
1526
+ },
1527
+
1528
+ // Contents
1529
+ "empty": function( elem ) {
1530
+ // http://www.w3.org/TR/selectors/#empty-pseudo
1531
+ // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
1532
+ // but not by others (comment: 8; processing instruction: 7; etc.)
1533
+ // nodeType < 6 works because attributes (2) do not appear as children
1534
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
1535
+ if ( elem.nodeType < 6 ) {
1536
+ return false;
1537
+ }
1538
+ }
1539
+ return true;
1540
+ },
1541
+
1542
+ "parent": function( elem ) {
1543
+ return !Expr.pseudos["empty"]( elem );
1544
+ },
1545
+
1546
+ // Element/input types
1547
+ "header": function( elem ) {
1548
+ return rheader.test( elem.nodeName );
1549
+ },
1550
+
1551
+ "input": function( elem ) {
1552
+ return rinputs.test( elem.nodeName );
1553
+ },
1554
+
1555
+ "button": function( elem ) {
1556
+ var name = elem.nodeName.toLowerCase();
1557
+ return name === "input" && elem.type === "button" || name === "button";
1558
+ },
1559
+
1560
+ "text": function( elem ) {
1561
+ var attr;
1562
+ return elem.nodeName.toLowerCase() === "input" &&
1563
+ elem.type === "text" &&
1564
+
1565
+ // Support: IE<8
1566
+ // New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
1567
+ ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
1568
+ },
1569
+
1570
+ // Position-in-collection
1571
+ "first": createPositionalPseudo(function() {
1572
+ return [ 0 ];
1573
+ }),
1574
+
1575
+ "last": createPositionalPseudo(function( matchIndexes, length ) {
1576
+ return [ length - 1 ];
1577
+ }),
1578
+
1579
+ "eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
1580
+ return [ argument < 0 ? argument + length : argument ];
1581
+ }),
1582
+
1583
+ "even": createPositionalPseudo(function( matchIndexes, length ) {
1584
+ var i = 0;
1585
+ for ( ; i < length; i += 2 ) {
1586
+ matchIndexes.push( i );
1587
+ }
1588
+ return matchIndexes;
1589
+ }),
1590
+
1591
+ "odd": createPositionalPseudo(function( matchIndexes, length ) {
1592
+ var i = 1;
1593
+ for ( ; i < length; i += 2 ) {
1594
+ matchIndexes.push( i );
1595
+ }
1596
+ return matchIndexes;
1597
+ }),
1598
+
1599
+ "lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
1600
+ var i = argument < 0 ? argument + length : argument;
1601
+ for ( ; --i >= 0; ) {
1602
+ matchIndexes.push( i );
1603
+ }
1604
+ return matchIndexes;
1605
+ }),
1606
+
1607
+ "gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
1608
+ var i = argument < 0 ? argument + length : argument;
1609
+ for ( ; ++i < length; ) {
1610
+ matchIndexes.push( i );
1611
+ }
1612
+ return matchIndexes;
1613
+ })
1614
+ }
1615
+ };
1616
+
1617
+ Expr.pseudos["nth"] = Expr.pseudos["eq"];
1618
+
1619
+ // Add button/input type pseudos
1620
+ for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
1621
+ Expr.pseudos[ i ] = createInputPseudo( i );
1622
+ }
1623
+ for ( i in { submit: true, reset: true } ) {
1624
+ Expr.pseudos[ i ] = createButtonPseudo( i );
1625
+ }
1626
+
1627
+ // Easy API for creating new setFilters
1628
+ function setFilters() {}
1629
+ setFilters.prototype = Expr.filters = Expr.pseudos;
1630
+ Expr.setFilters = new setFilters();
1631
+
1632
+ tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
1633
+ var matched, match, tokens, type,
1634
+ soFar, groups, preFilters,
1635
+ cached = tokenCache[ selector + " " ];
1636
+
1637
+ if ( cached ) {
1638
+ return parseOnly ? 0 : cached.slice( 0 );
1639
+ }
1640
+
1641
+ soFar = selector;
1642
+ groups = [];
1643
+ preFilters = Expr.preFilter;
1644
+
1645
+ while ( soFar ) {
1646
+
1647
+ // Comma and first run
1648
+ if ( !matched || (match = rcomma.exec( soFar )) ) {
1649
+ if ( match ) {
1650
+ // Don't consume trailing commas as valid
1651
+ soFar = soFar.slice( match[0].length ) || soFar;
1652
+ }
1653
+ groups.push( (tokens = []) );
1654
+ }
1655
+
1656
+ matched = false;
1657
+
1658
+ // Combinators
1659
+ if ( (match = rcombinators.exec( soFar )) ) {
1660
+ matched = match.shift();
1661
+ tokens.push({
1662
+ value: matched,
1663
+ // Cast descendant combinators to space
1664
+ type: match[0].replace( rtrim, " " )
1665
+ });
1666
+ soFar = soFar.slice( matched.length );
1667
+ }
1668
+
1669
+ // Filters
1670
+ for ( type in Expr.filter ) {
1671
+ if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
1672
+ (match = preFilters[ type ]( match ))) ) {
1673
+ matched = match.shift();
1674
+ tokens.push({
1675
+ value: matched,
1676
+ type: type,
1677
+ matches: match
1678
+ });
1679
+ soFar = soFar.slice( matched.length );
1680
+ }
1681
+ }
1682
+
1683
+ if ( !matched ) {
1684
+ break;
1685
+ }
1686
+ }
1687
+
1688
+ // Return the length of the invalid excess
1689
+ // if we're just parsing
1690
+ // Otherwise, throw an error or return tokens
1691
+ return parseOnly ?
1692
+ soFar.length :
1693
+ soFar ?
1694
+ Sizzle.error( selector ) :
1695
+ // Cache the tokens
1696
+ tokenCache( selector, groups ).slice( 0 );
1697
+ };
1698
+
1699
+ function toSelector( tokens ) {
1700
+ var i = 0,
1701
+ len = tokens.length,
1702
+ selector = "";
1703
+ for ( ; i < len; i++ ) {
1704
+ selector += tokens[i].value;
1705
+ }
1706
+ return selector;
1707
+ }
1708
+
1709
+ function addCombinator( matcher, combinator, base ) {
1710
+ var dir = combinator.dir,
1711
+ skip = combinator.next,
1712
+ key = skip || dir,
1713
+ checkNonElements = base && key === "parentNode",
1714
+ doneName = done++;
1715
+
1716
+ return combinator.first ?
1717
+ // Check against closest ancestor/preceding element
1718
+ function( elem, context, xml ) {
1719
+ while ( (elem = elem[ dir ]) ) {
1720
+ if ( elem.nodeType === 1 || checkNonElements ) {
1721
+ return matcher( elem, context, xml );
1722
+ }
1723
+ }
1724
+ return false;
1725
+ } :
1726
+
1727
+ // Check against all ancestor/preceding elements
1728
+ function( elem, context, xml ) {
1729
+ var oldCache, uniqueCache, outerCache,
1730
+ newCache = [ dirruns, doneName ];
1731
+
1732
+ // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
1733
+ if ( xml ) {
1734
+ while ( (elem = elem[ dir ]) ) {
1735
+ if ( elem.nodeType === 1 || checkNonElements ) {
1736
+ if ( matcher( elem, context, xml ) ) {
1737
+ return true;
1738
+ }
1739
+ }
1740
+ }
1741
+ } else {
1742
+ while ( (elem = elem[ dir ]) ) {
1743
+ if ( elem.nodeType === 1 || checkNonElements ) {
1744
+ outerCache = elem[ expando ] || (elem[ expando ] = {});
1745
+
1746
+ // Support: IE <9 only
1747
+ // Defend against cloned attroperties (jQuery gh-1709)
1748
+ uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
1749
+
1750
+ if ( skip && skip === elem.nodeName.toLowerCase() ) {
1751
+ elem = elem[ dir ] || elem;
1752
+ } else if ( (oldCache = uniqueCache[ key ]) &&
1753
+ oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
1754
+
1755
+ // Assign to newCache so results back-propagate to previous elements
1756
+ return (newCache[ 2 ] = oldCache[ 2 ]);
1757
+ } else {
1758
+ // Reuse newcache so results back-propagate to previous elements
1759
+ uniqueCache[ key ] = newCache;
1760
+
1761
+ // A match means we're done; a fail means we have to keep checking
1762
+ if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
1763
+ return true;
1764
+ }
1765
+ }
1766
+ }
1767
+ }
1768
+ }
1769
+ return false;
1770
+ };
1771
+ }
1772
+
1773
+ function elementMatcher( matchers ) {
1774
+ return matchers.length > 1 ?
1775
+ function( elem, context, xml ) {
1776
+ var i = matchers.length;
1777
+ while ( i-- ) {
1778
+ if ( !matchers[i]( elem, context, xml ) ) {
1779
+ return false;
1780
+ }
1781
+ }
1782
+ return true;
1783
+ } :
1784
+ matchers[0];
1785
+ }
1786
+
1787
+ function multipleContexts( selector, contexts, results ) {
1788
+ var i = 0,
1789
+ len = contexts.length;
1790
+ for ( ; i < len; i++ ) {
1791
+ Sizzle( selector, contexts[i], results );
1792
+ }
1793
+ return results;
1794
+ }
1795
+
1796
+ function condense( unmatched, map, filter, context, xml ) {
1797
+ var elem,
1798
+ newUnmatched = [],
1799
+ i = 0,
1800
+ len = unmatched.length,
1801
+ mapped = map != null;
1802
+
1803
+ for ( ; i < len; i++ ) {
1804
+ if ( (elem = unmatched[i]) ) {
1805
+ if ( !filter || filter( elem, context, xml ) ) {
1806
+ newUnmatched.push( elem );
1807
+ if ( mapped ) {
1808
+ map.push( i );
1809
+ }
1810
+ }
1811
+ }
1812
+ }
1813
+
1814
+ return newUnmatched;
1815
+ }
1816
+
1817
+ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
1818
+ if ( postFilter && !postFilter[ expando ] ) {
1819
+ postFilter = setMatcher( postFilter );
1820
+ }
1821
+ if ( postFinder && !postFinder[ expando ] ) {
1822
+ postFinder = setMatcher( postFinder, postSelector );
1823
+ }
1824
+ return markFunction(function( seed, results, context, xml ) {
1825
+ var temp, i, elem,
1826
+ preMap = [],
1827
+ postMap = [],
1828
+ preexisting = results.length,
1829
+
1830
+ // Get initial elements from seed or context
1831
+ elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
1832
+
1833
+ // Prefilter to get matcher input, preserving a map for seed-results synchronization
1834
+ matcherIn = preFilter && ( seed || !selector ) ?
1835
+ condense( elems, preMap, preFilter, context, xml ) :
1836
+ elems,
1837
+
1838
+ matcherOut = matcher ?
1839
+ // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
1840
+ postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
1841
+
1842
+ // ...intermediate processing is necessary
1843
+ [] :
1844
+
1845
+ // ...otherwise use results directly
1846
+ results :
1847
+ matcherIn;
1848
+
1849
+ // Find primary matches
1850
+ if ( matcher ) {
1851
+ matcher( matcherIn, matcherOut, context, xml );
1852
+ }
1853
+
1854
+ // Apply postFilter
1855
+ if ( postFilter ) {
1856
+ temp = condense( matcherOut, postMap );
1857
+ postFilter( temp, [], context, xml );
1858
+
1859
+ // Un-match failing elements by moving them back to matcherIn
1860
+ i = temp.length;
1861
+ while ( i-- ) {
1862
+ if ( (elem = temp[i]) ) {
1863
+ matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
1864
+ }
1865
+ }
1866
+ }
1867
+
1868
+ if ( seed ) {
1869
+ if ( postFinder || preFilter ) {
1870
+ if ( postFinder ) {
1871
+ // Get the final matcherOut by condensing this intermediate into postFinder contexts
1872
+ temp = [];
1873
+ i = matcherOut.length;
1874
+ while ( i-- ) {
1875
+ if ( (elem = matcherOut[i]) ) {
1876
+ // Restore matcherIn since elem is not yet a final match
1877
+ temp.push( (matcherIn[i] = elem) );
1878
+ }
1879
+ }
1880
+ postFinder( null, (matcherOut = []), temp, xml );
1881
+ }
1882
+
1883
+ // Move matched elements from seed to results to keep them synchronized
1884
+ i = matcherOut.length;
1885
+ while ( i-- ) {
1886
+ if ( (elem = matcherOut[i]) &&
1887
+ (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
1888
+
1889
+ seed[temp] = !(results[temp] = elem);
1890
+ }
1891
+ }
1892
+ }
1893
+
1894
+ // Add elements to results, through postFinder if defined
1895
+ } else {
1896
+ matcherOut = condense(
1897
+ matcherOut === results ?
1898
+ matcherOut.splice( preexisting, matcherOut.length ) :
1899
+ matcherOut
1900
+ );
1901
+ if ( postFinder ) {
1902
+ postFinder( null, results, matcherOut, xml );
1903
+ } else {
1904
+ push.apply( results, matcherOut );
1905
+ }
1906
+ }
1907
+ });
1908
+ }
1909
+
1910
+ function matcherFromTokens( tokens ) {
1911
+ var checkContext, matcher, j,
1912
+ len = tokens.length,
1913
+ leadingRelative = Expr.relative[ tokens[0].type ],
1914
+ implicitRelative = leadingRelative || Expr.relative[" "],
1915
+ i = leadingRelative ? 1 : 0,
1916
+
1917
+ // The foundational matcher ensures that elements are reachable from top-level context(s)
1918
+ matchContext = addCombinator( function( elem ) {
1919
+ return elem === checkContext;
1920
+ }, implicitRelative, true ),
1921
+ matchAnyContext = addCombinator( function( elem ) {
1922
+ return indexOf( checkContext, elem ) > -1;
1923
+ }, implicitRelative, true ),
1924
+ matchers = [ function( elem, context, xml ) {
1925
+ var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
1926
+ (checkContext = context).nodeType ?
1927
+ matchContext( elem, context, xml ) :
1928
+ matchAnyContext( elem, context, xml ) );
1929
+ // Avoid hanging onto element (issue #299)
1930
+ checkContext = null;
1931
+ return ret;
1932
+ } ];
1933
+
1934
+ for ( ; i < len; i++ ) {
1935
+ if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
1936
+ matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
1937
+ } else {
1938
+ matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
1939
+
1940
+ // Return special upon seeing a positional matcher
1941
+ if ( matcher[ expando ] ) {
1942
+ // Find the next relative operator (if any) for proper handling
1943
+ j = ++i;
1944
+ for ( ; j < len; j++ ) {
1945
+ if ( Expr.relative[ tokens[j].type ] ) {
1946
+ break;
1947
+ }
1948
+ }
1949
+ return setMatcher(
1950
+ i > 1 && elementMatcher( matchers ),
1951
+ i > 1 && toSelector(
1952
+ // If the preceding token was a descendant combinator, insert an implicit any-element `*`
1953
+ tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
1954
+ ).replace( rtrim, "$1" ),
1955
+ matcher,
1956
+ i < j && matcherFromTokens( tokens.slice( i, j ) ),
1957
+ j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
1958
+ j < len && toSelector( tokens )
1959
+ );
1960
+ }
1961
+ matchers.push( matcher );
1962
+ }
1963
+ }
1964
+
1965
+ return elementMatcher( matchers );
1966
+ }
1967
+
1968
+ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
1969
+ var bySet = setMatchers.length > 0,
1970
+ byElement = elementMatchers.length > 0,
1971
+ superMatcher = function( seed, context, xml, results, outermost ) {
1972
+ var elem, j, matcher,
1973
+ matchedCount = 0,
1974
+ i = "0",
1975
+ unmatched = seed && [],
1976
+ setMatched = [],
1977
+ contextBackup = outermostContext,
1978
+ // We must always have either seed elements or outermost context
1979
+ elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
1980
+ // Use integer dirruns iff this is the outermost matcher
1981
+ dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
1982
+ len = elems.length;
1983
+
1984
+ if ( outermost ) {
1985
+ outermostContext = context === document || context || outermost;
1986
+ }
1987
+
1988
+ // Add elements passing elementMatchers directly to results
1989
+ // Support: IE<9, Safari
1990
+ // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
1991
+ for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
1992
+ if ( byElement && elem ) {
1993
+ j = 0;
1994
+ if ( !context && elem.ownerDocument !== document ) {
1995
+ setDocument( elem );
1996
+ xml = !documentIsHTML;
1997
+ }
1998
+ while ( (matcher = elementMatchers[j++]) ) {
1999
+ if ( matcher( elem, context || document, xml) ) {
2000
+ results.push( elem );
2001
+ break;
2002
+ }
2003
+ }
2004
+ if ( outermost ) {
2005
+ dirruns = dirrunsUnique;
2006
+ }
2007
+ }
2008
+
2009
+ // Track unmatched elements for set filters
2010
+ if ( bySet ) {
2011
+ // They will have gone through all possible matchers
2012
+ if ( (elem = !matcher && elem) ) {
2013
+ matchedCount--;
2014
+ }
2015
+
2016
+ // Lengthen the array for every element, matched or not
2017
+ if ( seed ) {
2018
+ unmatched.push( elem );
2019
+ }
2020
+ }
2021
+ }
2022
+
2023
+ // `i` is now the count of elements visited above, and adding it to `matchedCount`
2024
+ // makes the latter nonnegative.
2025
+ matchedCount += i;
2026
+
2027
+ // Apply set filters to unmatched elements
2028
+ // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
2029
+ // equals `i`), unless we didn't visit _any_ elements in the above loop because we have
2030
+ // no element matchers and no seed.
2031
+ // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
2032
+ // case, which will result in a "00" `matchedCount` that differs from `i` but is also
2033
+ // numerically zero.
2034
+ if ( bySet && i !== matchedCount ) {
2035
+ j = 0;
2036
+ while ( (matcher = setMatchers[j++]) ) {
2037
+ matcher( unmatched, setMatched, context, xml );
2038
+ }
2039
+
2040
+ if ( seed ) {
2041
+ // Reintegrate element matches to eliminate the need for sorting
2042
+ if ( matchedCount > 0 ) {
2043
+ while ( i-- ) {
2044
+ if ( !(unmatched[i] || setMatched[i]) ) {
2045
+ setMatched[i] = pop.call( results );
2046
+ }
2047
+ }
2048
+ }
2049
+
2050
+ // Discard index placeholder values to get only actual matches
2051
+ setMatched = condense( setMatched );
2052
+ }
2053
+
2054
+ // Add matches to results
2055
+ push.apply( results, setMatched );
2056
+
2057
+ // Seedless set matches succeeding multiple successful matchers stipulate sorting
2058
+ if ( outermost && !seed && setMatched.length > 0 &&
2059
+ ( matchedCount + setMatchers.length ) > 1 ) {
2060
+
2061
+ Sizzle.uniqueSort( results );
2062
+ }
2063
+ }
2064
+
2065
+ // Override manipulation of globals by nested matchers
2066
+ if ( outermost ) {
2067
+ dirruns = dirrunsUnique;
2068
+ outermostContext = contextBackup;
2069
+ }
2070
+
2071
+ return unmatched;
2072
+ };
2073
+
2074
+ return bySet ?
2075
+ markFunction( superMatcher ) :
2076
+ superMatcher;
2077
+ }
2078
+
2079
+ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
2080
+ var i,
2081
+ setMatchers = [],
2082
+ elementMatchers = [],
2083
+ cached = compilerCache[ selector + " " ];
2084
+
2085
+ if ( !cached ) {
2086
+ // Generate a function of recursive functions that can be used to check each element
2087
+ if ( !match ) {
2088
+ match = tokenize( selector );
2089
+ }
2090
+ i = match.length;
2091
+ while ( i-- ) {
2092
+ cached = matcherFromTokens( match[i] );
2093
+ if ( cached[ expando ] ) {
2094
+ setMatchers.push( cached );
2095
+ } else {
2096
+ elementMatchers.push( cached );
2097
+ }
2098
+ }
2099
+
2100
+ // Cache the compiled function
2101
+ cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
2102
+
2103
+ // Save selector and tokenization
2104
+ cached.selector = selector;
2105
+ }
2106
+ return cached;
2107
+ };
2108
+
2109
+ /**
2110
+ * A low-level selection function that works with Sizzle's compiled
2111
+ * selector functions
2112
+ * @param {String|Function} selector A selector or a pre-compiled
2113
+ * selector function built with Sizzle.compile
2114
+ * @param {Element} context
2115
+ * @param {Array} [results]
2116
+ * @param {Array} [seed] A set of elements to match against
2117
+ */
2118
+ select = Sizzle.select = function( selector, context, results, seed ) {
2119
+ var i, tokens, token, type, find,
2120
+ compiled = typeof selector === "function" && selector,
2121
+ match = !seed && tokenize( (selector = compiled.selector || selector) );
2122
+
2123
+ results = results || [];
2124
+
2125
+ // Try to minimize operations if there is only one selector in the list and no seed
2126
+ // (the latter of which guarantees us context)
2127
+ if ( match.length === 1 ) {
2128
+
2129
+ // Reduce context if the leading compound selector is an ID
2130
+ tokens = match[0] = match[0].slice( 0 );
2131
+ if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
2132
+ context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {
2133
+
2134
+ context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
2135
+ if ( !context ) {
2136
+ return results;
2137
+
2138
+ // Precompiled matchers will still verify ancestry, so step up a level
2139
+ } else if ( compiled ) {
2140
+ context = context.parentNode;
2141
+ }
2142
+
2143
+ selector = selector.slice( tokens.shift().value.length );
2144
+ }
2145
+
2146
+ // Fetch a seed set for right-to-left matching
2147
+ i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
2148
+ while ( i-- ) {
2149
+ token = tokens[i];
2150
+
2151
+ // Abort if we hit a combinator
2152
+ if ( Expr.relative[ (type = token.type) ] ) {
2153
+ break;
2154
+ }
2155
+ if ( (find = Expr.find[ type ]) ) {
2156
+ // Search, expanding context for leading sibling combinators
2157
+ if ( (seed = find(
2158
+ token.matches[0].replace( runescape, funescape ),
2159
+ rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
2160
+ )) ) {
2161
+
2162
+ // If seed is empty or no tokens remain, we can return early
2163
+ tokens.splice( i, 1 );
2164
+ selector = seed.length && toSelector( tokens );
2165
+ if ( !selector ) {
2166
+ push.apply( results, seed );
2167
+ return results;
2168
+ }
2169
+
2170
+ break;
2171
+ }
2172
+ }
2173
+ }
2174
+ }
2175
+
2176
+ // Compile and execute a filtering function if one is not provided
2177
+ // Provide `match` to avoid retokenization if we modified the selector above
2178
+ ( compiled || compile( selector, match ) )(
2179
+ seed,
2180
+ context,
2181
+ !documentIsHTML,
2182
+ results,
2183
+ !context || rsibling.test( selector ) && testContext( context.parentNode ) || context
2184
+ );
2185
+ return results;
2186
+ };
2187
+
2188
+ // One-time assignments
2189
+
2190
+ // Sort stability
2191
+ support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
2192
+
2193
+ // Support: Chrome 14-35+
2194
+ // Always assume duplicates if they aren't passed to the comparison function
2195
+ support.detectDuplicates = !!hasDuplicate;
2196
+
2197
+ // Initialize against the default document
2198
+ setDocument();
2199
+
2200
+ // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
2201
+ // Detached nodes confoundingly follow *each other*
2202
+ support.sortDetached = assert(function( el ) {
2203
+ // Should return 1, but returns 4 (following)
2204
+ return el.compareDocumentPosition( document.createElement("fieldset") ) & 1;
2205
+ });
2206
+
2207
+ // Support: IE<8
2208
+ // Prevent attribute/property "interpolation"
2209
+ // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
2210
+ if ( !assert(function( el ) {
2211
+ el.innerHTML = "<a href='#'></a>";
2212
+ return el.firstChild.getAttribute("href") === "#" ;
2213
+ }) ) {
2214
+ addHandle( "type|href|height|width", function( elem, name, isXML ) {
2215
+ if ( !isXML ) {
2216
+ return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
2217
+ }
2218
+ });
2219
+ }
2220
+
2221
+ // Support: IE<9
2222
+ // Use defaultValue in place of getAttribute("value")
2223
+ if ( !support.attributes || !assert(function( el ) {
2224
+ el.innerHTML = "<input/>";
2225
+ el.firstChild.setAttribute( "value", "" );
2226
+ return el.firstChild.getAttribute( "value" ) === "";
2227
+ }) ) {
2228
+ addHandle( "value", function( elem, name, isXML ) {
2229
+ if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
2230
+ return elem.defaultValue;
2231
+ }
2232
+ });
2233
+ }
2234
+
2235
+ // Support: IE<9
2236
+ // Use getAttributeNode to fetch booleans when getAttribute lies
2237
+ if ( !assert(function( el ) {
2238
+ return el.getAttribute("disabled") == null;
2239
+ }) ) {
2240
+ addHandle( booleans, function( elem, name, isXML ) {
2241
+ var val;
2242
+ if ( !isXML ) {
2243
+ return elem[ name ] === true ? name.toLowerCase() :
2244
+ (val = elem.getAttributeNode( name )) && val.specified ?
2245
+ val.value :
2246
+ null;
2247
+ }
2248
+ });
2249
+ }
2250
+
2251
+ // EXPOSE
2252
+ var _sizzle = window.Sizzle;
2253
+
2254
+ Sizzle.noConflict = function() {
2255
+ if ( window.Sizzle === Sizzle ) {
2256
+ window.Sizzle = _sizzle;
2257
+ }
2258
+
2259
+ return Sizzle;
2260
+ };
2261
+
2262
+ if ( typeof define === "function" && define.amd ) {
2263
+ define(function() { return Sizzle; });
2264
+ // Sizzle requires that there be a global window in Common-JS like environments
2265
+ } else if ( typeof module !== "undefined" && module.exports ) {
2266
+ module.exports = Sizzle;
2267
+ } else {
2268
+ window.Sizzle = Sizzle;
2269
+ }
2270
+ // EXPOSE
2271
+
2272
+ })( window );