diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 4f149ec..83c78b9 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -1,3 +1,9 @@
+Version 0.8.7a3
+============================================================
+
+* Upgrade `UglifyPlugin` to use 2.3.5 version of uglify. (Issue #214)
+
+
Version 0.8.7a2
============================================================
diff --git a/README.rst b/README.rst
index b8fed45..6f4aa3a 100644
--- a/README.rst
+++ b/README.rst
@@ -1,4 +1,4 @@
-Version 0.8.7a1
+Version 0.8.7a3
A brand new **hyde**
====================
diff --git a/hyde/ext/plugins/js.py b/hyde/ext/plugins/js.py
index 69a57c9..dc5dbe6 100644
--- a/hyde/ext/plugins/js.py
+++ b/hyde/ext/plugins/js.py
@@ -53,21 +53,24 @@ class UglifyPlugin(CLTransformer):
return
supported = [
+ "source-map",
+ "source-map-root",
+ "source-map-url",
+ "in-source-map",
+ "screw-ie8",
+ "expr",
+ ("prefix", "p"),
("beautify", "b"),
- ("indent", "i"),
- ("quote-keys", "q"),
- ("mangle-toplevel", "mt"),
- ("no-mangle", "nm"),
- ("no-squeeze", "ns"),
- "no-seqs",
- "no-dead-code",
- ("no-copyright", "nc"),
- "overwrite",
- "verbose",
- "unsafe",
- "max-line-len",
- "reserved-names",
- "ascii"
+ ("mangle", "m"),
+ ("reserved", "r"),
+ ("compress", "c"),
+ ("define", "d"),
+ ("enclose", "e"),
+ "comments",
+ "stats",
+ "wrap",
+ "lint",
+ "verbose"
]
uglify = self.app
@@ -76,7 +79,6 @@ class UglifyPlugin(CLTransformer):
args = [unicode(uglify)]
args.extend(self.process_args(supported))
args.extend(["-o", unicode(target), unicode(source)])
-
self.call_app(args)
out = target.read_all()
return out
diff --git a/hyde/tests/ext/test_uglify.py b/hyde/tests/ext/test_uglify.py
index 11d307f..9ee06ba 100644
--- a/hyde/tests/ext/test_uglify.py
+++ b/hyde/tests/ext/test_uglify.py
@@ -9,6 +9,7 @@ from hyde.generator import Generator
from hyde.site import Site
from fswrap import File, Folder
+from hyde.tests.util import assert_no_diff
UGLIFY_SOURCE = File(__file__).parent.child_folder('uglify')
TEST_SITE = File(__file__).parent.parent.child_folder('_test')
@@ -38,25 +39,26 @@ class TestUglify(object):
gen.generate_resource_at_path(source)
assert target.exists
- expected = File(UGLIFY_SOURCE.child('expected-jquery.js'))
+ expected = UGLIFY_SOURCE.child_file('expected-jquery.js').read_all()
# TODO: Very fragile. Better comparison needed.
- assert target.read_all() == expected.read_all()
+ text = target.read_all()
+ assert_no_diff(expected, text)
def test_uglify_with_extra_options(self):
s = Site(TEST_SITE)
s.config.plugins = ['hyde.ext.plugins.js.UglifyPlugin']
s.config.mode = "production"
- s.config.uglify = Expando(dict(args={"nc":""}))
+ s.config.uglify = Expando(dict(args={"comments":"/http\:\/\/jquery.org\/license/"}))
source = TEST_SITE.child('content/media/js/jquery.js')
target = File(Folder(s.config.deploy_root_path).child('media/js/jquery.js'))
gen = Generator(s)
gen.generate_resource_at_path(source)
assert target.exists
- expected = File(UGLIFY_SOURCE.child('expected-jquery-nc.js'))
+ expected = UGLIFY_SOURCE.child_file('expected-jquery-nc.js').read_all()
# TODO: Very fragile. Better comparison needed.
text = target.read_all()
- assert text.startswith("(function(")
+ assert_no_diff(expected, text)
def test_no_uglify_in_dev_mode(self):
s = Site(TEST_SITE)
@@ -68,10 +70,9 @@ class TestUglify(object):
gen.generate_resource_at_path(source)
assert target.exists
- expected = File(UGLIFY_SOURCE.child('jquery.js'))
+ expected = UGLIFY_SOURCE.child_file('jquery.js').read_all()
# TODO: Very fragile. Better comparison needed.
text = target.read_all()
- expected = expected.read_all()
- assert text == expected
+ assert_no_diff(expected, text)
diff --git a/hyde/tests/ext/uglify/expected-jquery-nc.js b/hyde/tests/ext/uglify/expected-jquery-nc.js
index 2cbf7e0..e84f523 100644
--- a/hyde/tests/ext/uglify/expected-jquery-nc.js
+++ b/hyde/tests/ext/uglify/expected-jquery-nc.js
@@ -1,4 +1,19 @@
-(function(window,undefined){function dataAttr(elem,key,data){if(data===undefined&&1===elem.nodeType)if(data=elem.getAttribute("data-"+key),"string"==typeof data){try{data="true"===data?!0:"false"===data?!1:"null"===data?null:jQuery.isNaN(data)?rbrace.test(data)?jQuery.parseJSON(data):data:parseFloat(data)}catch(e){}jQuery.data(elem,key,data)}else data=undefined;return data}function isEmptyDataObject(obj){for(var name in obj)if("toJSON"!==name)return!1;return!0}function returnFalse(){return!1}function returnTrue(){return!0}function trigger(type,elem,args){var event=jQuery.extend({},args[0]);event.type=type,event.originalEvent={},event.liveFired=undefined,jQuery.event.handle.call(elem,event),event.isDefaultPrevented()&&args[0].preventDefault()}function liveHandler(event){var stop,maxLevel,related,match,handleObj,elem,j,i,l,close,namespace,ret,elems=[],selectors=[],events=jQuery._data(this,"events");if(event.liveFired!==this&&events&&events.live&&!event.target.disabled&&(!event.button||"click"!==event.type)){event.namespace&&(namespace=RegExp("(^|\\.)"+event.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),event.liveFired=this;var live=events.live.slice(0);for(j=0;live.length>j;j++)handleObj=live[j],handleObj.origType.replace(rnamespaces,"")===event.type?selectors.push(handleObj.selector):live.splice(j--,1);for(match=jQuery(event.target).closest(selectors,event.currentTarget),i=0,l=match.length;l>i;i++)for(close=match[i],j=0;live.length>j;j++)handleObj=live[j],close.selector!==handleObj.selector||namespace&&!namespace.test(handleObj.namespace)||close.elem.disabled||(elem=close.elem,related=null,("mouseenter"===handleObj.preType||"mouseleave"===handleObj.preType)&&(event.type=handleObj.preType,related=jQuery(event.relatedTarget).closest(handleObj.selector)[0]),related&&related===elem||elems.push({elem:elem,handleObj:handleObj,level:close.level}));for(i=0,l=elems.length;l>i&&(match=elems[i],!(maxLevel&&match.level>maxLevel))&&(event.currentTarget=match.elem,event.data=match.handleObj.data,event.handleObj=match.handleObj,ret=match.handleObj.origHandler.apply(match.elem,arguments),ret!==!1&&!event.isPropagationStopped()||(maxLevel=match.level,ret===!1&&(stop=!1),!event.isImmediatePropagationStopped()));i++);return stop}}function liveConvert(type,selector){return(type&&"*"!==type?type+".":"")+selector.replace(rperiod,"`").replace(rspace,"&")}function isDisconnected(node){return!node||!node.parentNode||11===node.parentNode.nodeType}function winnow(elements,qualifier,keep){if(jQuery.isFunction(qualifier))return jQuery.grep(elements,function(elem,i){var retVal=!!qualifier.call(elem,i,elem);return retVal===keep});if(qualifier.nodeType)return jQuery.grep(elements,function(elem){return elem===qualifier===keep});if("string"==typeof qualifier){var filtered=jQuery.grep(elements,function(elem){return 1===elem.nodeType});if(isSimple.test(qualifier))return jQuery.filter(qualifier,filtered,!keep);qualifier=jQuery.filter(qualifier,filtered)}return jQuery.grep(elements,function(elem){return jQuery.inArray(elem,qualifier)>=0===keep})}function root(elem){return jQuery.nodeName(elem,"table")?elem.getElementsByTagName("tbody")[0]||elem.appendChild(elem.ownerDocument.createElement("tbody")):elem}function cloneCopyEvent(src,dest){if(1===dest.nodeType&&jQuery.hasData(src)){var internalKey=jQuery.expando,oldData=jQuery.data(src),curData=jQuery.data(dest,oldData);if(oldData=oldData[internalKey]){var events=oldData.events;if(curData=curData[internalKey]=jQuery.extend({},oldData),events){delete curData.handle,curData.events={};for(var type in events)for(var i=0,l=events[type].length;l>i;i++)jQuery.event.add(dest,type+(events[type][i].namespace?".":"")+events[type][i].namespace,events[type][i],events[type][i].data)}}}}function cloneFixAttributes(src,dest){if(1===dest.nodeType){var nodeName=dest.nodeName.toLowerCase();dest.clearAttributes(),dest.mergeAttributes(src),"object"===nodeName?dest.outerHTML=src.outerHTML:"input"!==nodeName||"checkbox"!==src.type&&"radio"!==src.type?"option"===nodeName?dest.selected=src.defaultSelected:("input"===nodeName||"textarea"===nodeName)&&(dest.defaultValue=src.defaultValue):(src.checked&&(dest.defaultChecked=dest.checked=src.checked),dest.value!==src.value&&(dest.value=src.value)),dest.removeAttribute(jQuery.expando)}}function getAll(elem){return"getElementsByTagName"in elem?elem.getElementsByTagName("*"):"querySelectorAll"in elem?elem.querySelectorAll("*"):[]}function evalScript(i,elem){elem.src?jQuery.ajax({url:elem.src,async:!1,dataType:"script"}):jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||""),elem.parentNode&&elem.parentNode.removeChild(elem)}function getWH(elem,name,extra){var which="width"===name?cssWidth:cssHeight,val="width"===name?elem.offsetWidth:elem.offsetHeight;return"border"===extra?val:(jQuery.each(which,function(){extra||(val-=parseFloat(jQuery.css(elem,"padding"+this))||0),"margin"===extra?val+=parseFloat(jQuery.css(elem,"margin"+this))||0:val-=parseFloat(jQuery.css(elem,"border"+this+"Width"))||0}),val)}function addToPrefiltersOrTransports(structure){return function(dataTypeExpression,func){if("string"!=typeof dataTypeExpression&&(func=dataTypeExpression,dataTypeExpression="*"),jQuery.isFunction(func))for(var dataType,list,placeBefore,dataTypes=dataTypeExpression.toLowerCase().split(rspacesAjax),i=0,length=dataTypes.length;length>i;i++)dataType=dataTypes[i],placeBefore=/^\+/.test(dataType),placeBefore&&(dataType=dataType.substr(1)||"*"),list=structure[dataType]=structure[dataType]||[],list[placeBefore?"unshift":"push"](func)}}function inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR,dataType,inspected){dataType=dataType||options.dataTypes[0],inspected=inspected||{},inspected[dataType]=!0;for(var selection,list=structure[dataType],i=0,length=list?list.length:0,executeOnly=structure===prefilters;length>i&&(executeOnly||!selection);i++)selection=list[i](options,originalOptions,jqXHR),"string"==typeof selection&&(!executeOnly||inspected[selection]?selection=undefined:(options.dataTypes.unshift(selection),selection=inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR,selection,inspected)));return!executeOnly&&selection||inspected["*"]||(selection=inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR,"*",inspected)),selection}function buildParams(prefix,obj,traditional,add){if(jQuery.isArray(obj)&&obj.length)jQuery.each(obj,function(i,v){traditional||rbracket.test(prefix)?add(prefix,v):buildParams(prefix+"["+("object"==typeof v||jQuery.isArray(v)?i:"")+"]",v,traditional,add)});else if(traditional||null==obj||"object"!=typeof obj)add(prefix,obj);else if(jQuery.isArray(obj)||jQuery.isEmptyObject(obj))add(prefix,"");else for(var name in obj)buildParams(prefix+"["+name+"]",obj[name],traditional,add)}function ajaxHandleResponses(s,jqXHR,responses){var ct,type,finalDataType,firstDataType,contents=s.contents,dataTypes=s.dataTypes,responseFields=s.responseFields;for(type in responseFields)type in responses&&(jqXHR[responseFields[type]]=responses[type]);for(;"*"===dataTypes[0];)dataTypes.shift(),ct===undefined&&(ct=s.mimeType||jqXHR.getResponseHeader("content-type"));if(ct)for(type in contents)if(contents[type]&&contents[type].test(ct)){dataTypes.unshift(type);break}if(dataTypes[0]in responses)finalDataType=dataTypes[0];else{for(type in responses){if(!dataTypes[0]||s.converters[type+" "+dataTypes[0]]){finalDataType=type;break}firstDataType||(firstDataType=type)}finalDataType=finalDataType||firstDataType}return finalDataType?(finalDataType!==dataTypes[0]&&dataTypes.unshift(finalDataType),responses[finalDataType]):undefined}function ajaxConvert(s,response){s.dataFilter&&(response=s.dataFilter(response,s.dataType));var i,key,tmp,prev,conversion,conv,conv1,conv2,dataTypes=s.dataTypes,converters={},length=dataTypes.length,current=dataTypes[0];for(i=1;length>i;i++){if(1===i)for(key in s.converters)"string"==typeof key&&(converters[key.toLowerCase()]=s.converters[key]);if(prev=current,current=dataTypes[i],"*"===current)current=prev;else if("*"!==prev&&prev!==current){if(conversion=prev+" "+current,conv=converters[conversion]||converters["* "+current],!conv){conv2=undefined;for(conv1 in converters)if(tmp=conv1.split(" "),(tmp[0]===prev||"*"===tmp[0])&&(conv2=converters[tmp[1]+" "+current])){conv1=converters[conv1],conv1===!0?conv=conv2:conv2===!0&&(conv=conv1);break}}conv||conv2||jQuery.error("No conversion from "+conversion.replace(" "," to ")),conv!==!0&&(response=conv?conv(response):conv2(conv1(response)))}}return response}function xhrOnUnloadAbort(){jQuery(window).unload(function(){for(var key in xhrCallbacks)xhrCallbacks[key](0,1)})}function createStandardXHR(){try{return new window.XMLHttpRequest}catch(e){}}function createActiveXHR(){try{return new window.ActiveXObject("Microsoft.XMLHTTP")}catch(e){}}function genFx(type,num){var obj={};return jQuery.each(fxAttrs.concat.apply([],fxAttrs.slice(0,num)),function(){obj[this]=type}),obj}function defaultDisplay(nodeName){if(!elemdisplay[nodeName]){var elem=jQuery("<"+nodeName+">").appendTo("body"),display=elem.css("display");elem.remove(),("none"===display||""===display)&&(display="block"),elemdisplay[nodeName]=display}return elemdisplay[nodeName]}function getWindow(elem){return jQuery.isWindow(elem)?elem:9===elem.nodeType?elem.defaultView||elem.parentWindow:!1}var document=window.document,jQuery=function(){function doScrollCheck(){if(!jQuery.isReady){try{document.documentElement.doScroll("left")}catch(e){return setTimeout(doScrollCheck,1),undefined}jQuery.ready()}}var rootjQuery,browserMatch,readyList,DOMContentLoaded,jQuery=function(selector,context){return new jQuery.fn.init(selector,context,rootjQuery)},_jQuery=window.jQuery,_$=window.$,quickExpr=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,rnotwhite=/\S/,trimLeft=/^\s+/,trimRight=/\s+$/,rdigit=/\d/,rsingleTag=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,rvalidchars=/^[\],:{}\s]*$/,rvalidescape=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,rvalidtokens=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,rvalidbraces=/(?:^|:|,)(?:\s*\[)+/g,rwebkit=/(webkit)[ \/]([\w.]+)/,ropera=/(opera)(?:.*version)?[ \/]([\w.]+)/,rmsie=/(msie) ([\w.]+)/,rmozilla=/(mozilla)(?:.*? rv:([\w.]+))?/,userAgent=navigator.userAgent,readyBound=!1,promiseMethods="then done fail isResolved isRejected promise".split(" "),toString=Object.prototype.toString,hasOwn=Object.prototype.hasOwnProperty,push=Array.prototype.push,slice=Array.prototype.slice,trim=String.prototype.trim,indexOf=Array.prototype.indexOf,class2type={};return jQuery.fn=jQuery.prototype={constructor:jQuery,init:function(selector,context,rootjQuery){var match,elem,ret,doc;if(!selector)return this;if(selector.nodeType)return this.context=this[0]=selector,this.length=1,this;if("body"===selector&&!context&&document.body)return this.context=document,this[0]=document.body,this.selector="body",this.length=1,this;if("string"==typeof selector){if(match=quickExpr.exec(selector),!match||!match[1]&&context)return!context||context.jquery?(context||rootjQuery).find(selector):this.constructor(context).find(selector);if(match[1])return context=context instanceof jQuery?context[0]:context,doc=context?context.ownerDocument||context:document,ret=rsingleTag.exec(selector),ret?jQuery.isPlainObject(context)?(selector=[document.createElement(ret[1])],jQuery.fn.attr.call(selector,context,!0)):selector=[doc.createElement(ret[1])]:(ret=jQuery.buildFragment([match[1]],[doc]),selector=(ret.cacheable?jQuery.clone(ret.fragment):ret.fragment).childNodes),jQuery.merge(this,selector);if(elem=document.getElementById(match[2]),elem&&elem.parentNode){if(elem.id!==match[2])return rootjQuery.find(selector);this.length=1,this[0]=elem}return this.context=document,this.selector=selector,this}return jQuery.isFunction(selector)?rootjQuery.ready(selector):(selector.selector!==undefined&&(this.selector=selector.selector,this.context=selector.context),jQuery.makeArray(selector,this))},selector:"",jquery:"1.5.1",length:0,size:function(){return this.length},toArray:function(){return slice.call(this,0)},get:function(num){return null==num?this.toArray():0>num?this[this.length+num]:this[num]},pushStack:function(elems,name,selector){var ret=this.constructor();return jQuery.isArray(elems)?push.apply(ret,elems):jQuery.merge(ret,elems),ret.prevObject=this,ret.context=this.context,"find"===name?ret.selector=this.selector+(this.selector?" ":"")+selector:name&&(ret.selector=this.selector+"."+name+"("+selector+")"),ret},each:function(callback,args){return jQuery.each(this,callback,args)},ready:function(fn){return jQuery.bindReady(),readyList.done(fn),this},eq:function(i){return-1===i?this.slice(i):this.slice(i,+i+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(slice.apply(this,arguments),"slice",slice.call(arguments).join(","))},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem)}))},end:function(){return this.prevObject||this.constructor(null)},push:push,sort:[].sort,splice:[].splice},jQuery.fn.init.prototype=jQuery.fn,jQuery.extend=jQuery.fn.extend=function(){var options,name,src,copy,copyIsArray,clone,target=arguments[0]||{},i=1,length=arguments.length,deep=!1;for("boolean"==typeof target&&(deep=target,target=arguments[1]||{},i=2),"object"==typeof target||jQuery.isFunction(target)||(target={}),length===i&&(target=this,--i);length>i;i++)if(null!=(options=arguments[i]))for(name in options)src=target[name],copy=options[name],target!==copy&&(deep&©&&(jQuery.isPlainObject(copy)||(copyIsArray=jQuery.isArray(copy)))?(copyIsArray?(copyIsArray=!1,clone=src&&jQuery.isArray(src)?src:[]):clone=src&&jQuery.isPlainObject(src)?src:{},target[name]=jQuery.extend(deep,clone,copy)):copy!==undefined&&(target[name]=copy));return target},jQuery.extend({noConflict:function(deep){return window.$=_$,deep&&(window.jQuery=_jQuery),jQuery},isReady:!1,readyWait:1,ready:function(wait){if(wait===!0&&jQuery.readyWait--,!jQuery.readyWait||wait!==!0&&!jQuery.isReady){if(!document.body)return setTimeout(jQuery.ready,1);if(jQuery.isReady=!0,wait!==!0&&--jQuery.readyWait>0)return;readyList.resolveWith(document,[jQuery]),jQuery.fn.trigger&&jQuery(document).trigger("ready").unbind("ready")}},bindReady:function(){if(!readyBound){if(readyBound=!0,"complete"===document.readyState)return setTimeout(jQuery.ready,1);if(document.addEventListener)document.addEventListener("DOMContentLoaded",DOMContentLoaded,!1),window.addEventListener("load",jQuery.ready,!1);else if(document.attachEvent){document.attachEvent("onreadystatechange",DOMContentLoaded),window.attachEvent("onload",jQuery.ready);var toplevel=!1;try{toplevel=null==window.frameElement}catch(e){}document.documentElement.doScroll&&toplevel&&doScrollCheck()}}},isFunction:function(obj){return"function"===jQuery.type(obj)},isArray:Array.isArray||function(obj){return"array"===jQuery.type(obj)},isWindow:function(obj){return obj&&"object"==typeof obj&&"setInterval"in obj},isNaN:function(obj){return null==obj||!rdigit.test(obj)||isNaN(obj)},type:function(obj){return null==obj?obj+"":class2type[toString.call(obj)]||"object"},isPlainObject:function(obj){if(!obj||"object"!==jQuery.type(obj)||obj.nodeType||jQuery.isWindow(obj))return!1;if(obj.constructor&&!hasOwn.call(obj,"constructor")&&!hasOwn.call(obj.constructor.prototype,"isPrototypeOf"))return!1;var key;for(key in obj);return key===undefined||hasOwn.call(obj,key)},isEmptyObject:function(obj){for(var name in obj)return!1;return!0},error:function(msg){throw msg},parseJSON:function(data){return"string"==typeof data&&data?(data=jQuery.trim(data),rvalidchars.test(data.replace(rvalidescape,"@").replace(rvalidtokens,"]").replace(rvalidbraces,""))?window.JSON&&window.JSON.parse?window.JSON.parse(data):Function("return "+data)():(jQuery.error("Invalid JSON: "+data),undefined)):null},parseXML:function(data,xml,tmp){return window.DOMParser?(tmp=new DOMParser,xml=tmp.parseFromString(data,"text/xml")):(xml=new ActiveXObject("Microsoft.XMLDOM"),xml.async="false",xml.loadXML(data)),tmp=xml.documentElement,tmp&&tmp.nodeName&&"parsererror"!==tmp.nodeName||jQuery.error("Invalid XML: "+data),xml},noop:function(){},globalEval:function(data){if(data&&rnotwhite.test(data)){var head=document.head||document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");jQuery.support.scriptEval()?script.appendChild(document.createTextNode(data)):script.text=data,head.insertBefore(script,head.firstChild),head.removeChild(script)}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()===name.toUpperCase()},each:function(object,callback,args){var name,i=0,length=object.length,isObj=length===undefined||jQuery.isFunction(object);if(args)if(isObj){for(name in object)if(callback.apply(object[name],args)===!1)break}else for(;length>i&&callback.apply(object[i++],args)!==!1;);else if(isObj){for(name in object)if(callback.call(object[name],name,object[name])===!1)break}else for(var value=object[0];length>i&&callback.call(value,i,value)!==!1;value=object[++i]);return object},trim:trim?function(text){return null==text?"":trim.call(text)}:function(text){return null==text?"":(""+text).replace(trimLeft,"").replace(trimRight,"")},makeArray:function(array,results){var ret=results||[];if(null!=array){var type=jQuery.type(array);null==array.length||"string"===type||"function"===type||"regexp"===type||jQuery.isWindow(array)?push.call(ret,array):jQuery.merge(ret,array)}return ret},inArray:function(elem,array){if(array.indexOf)return array.indexOf(elem);for(var i=0,length=array.length;length>i;i++)if(array[i]===elem)return i;return-1},merge:function(first,second){var i=first.length,j=0;if("number"==typeof second.length)for(var l=second.length;l>j;j++)first[i++]=second[j];else for(;second[j]!==undefined;)first[i++]=second[j++];return first.length=i,first},grep:function(elems,callback,inv){var retVal,ret=[];inv=!!inv;for(var i=0,length=elems.length;length>i;i++)retVal=!!callback(elems[i],i),inv!==retVal&&ret.push(elems[i]);return ret},map:function(elems,callback,arg){for(var value,ret=[],i=0,length=elems.length;length>i;i++)value=callback(elems[i],i,arg),null!=value&&(ret[ret.length]=value);return ret.concat.apply([],ret)},guid:1,proxy:function(fn,proxy,thisObject){return 2===arguments.length&&("string"==typeof proxy?(thisObject=fn,fn=thisObject[proxy],proxy=undefined):proxy&&!jQuery.isFunction(proxy)&&(thisObject=proxy,proxy=undefined)),!proxy&&fn&&(proxy=function(){return fn.apply(thisObject||this,arguments)}),fn&&(proxy.guid=fn.guid=fn.guid||proxy.guid||jQuery.guid++),proxy},access:function(elems,key,value,exec,fn,pass){var length=elems.length;if("object"==typeof key){for(var k in key)jQuery.access(elems,k,key[k],exec,fn,value);return elems}if(value!==undefined){exec=!pass&&exec&&jQuery.isFunction(value);for(var i=0;length>i;i++)fn(elems[i],key,exec?value.call(elems[i],i,fn(elems[i],key)):value,pass);return elems}return length?fn(elems[0],key):undefined},now:function(){return(new Date).getTime()},_Deferred:function(){var fired,firing,cancelled,callbacks=[],deferred={done:function(){if(!cancelled){var i,length,elem,type,_fired,args=arguments;for(fired&&(_fired=fired,fired=0),i=0,length=args.length;length>i;i++)elem=args[i],type=jQuery.type(elem),"array"===type?deferred.done.apply(deferred,elem):"function"===type&&callbacks.push(elem);_fired&&deferred.resolveWith(_fired[0],_fired[1])}return this},resolveWith:function(context,args){if(!cancelled&&!fired&&!firing){firing=1;try{for(;callbacks[0];)callbacks.shift().apply(context,args)}catch(e){throw e}finally{fired=[context,args],firing=0}}return this},resolve:function(){return deferred.resolveWith(jQuery.isFunction(this.promise)?this.promise():this,arguments),this},isResolved:function(){return!(!firing&&!fired)},cancel:function(){return cancelled=1,callbacks=[],this}};return deferred},Deferred:function(func){var promise,deferred=jQuery._Deferred(),failDeferred=jQuery._Deferred();return jQuery.extend(deferred,{then:function(doneCallbacks,failCallbacks){return deferred.done(doneCallbacks).fail(failCallbacks),this},fail:failDeferred.done,rejectWith:failDeferred.resolveWith,reject:failDeferred.resolve,isRejected:failDeferred.isResolved,promise:function(obj){if(null==obj){if(promise)return promise;promise=obj={}}for(var i=promiseMethods.length;i--;)obj[promiseMethods[i]]=deferred[promiseMethods[i]];return obj}}),deferred.done(failDeferred.cancel).fail(deferred.cancel),delete deferred.cancel,func&&func.call(deferred,deferred),deferred},when:function(object){var lastIndex=arguments.length,deferred=1>=lastIndex&&object&&jQuery.isFunction(object.promise)?object:jQuery.Deferred(),promise=deferred.promise();if(lastIndex>1){for(var array=slice.call(arguments,0),count=lastIndex,iCallback=function(index){return function(value){array[index]=arguments.length>1?slice.call(arguments,0):value,--count||deferred.resolveWith(promise,array)}};lastIndex--;)object=array[lastIndex],object&&jQuery.isFunction(object.promise)?object.promise().then(iCallback(lastIndex),deferred.reject):--count;count||deferred.resolveWith(promise,array)}else deferred!==object&&deferred.resolve(object);return promise},uaMatch:function(ua){ua=ua.toLowerCase();var match=rwebkit.exec(ua)||ropera.exec(ua)||rmsie.exec(ua)||0>ua.indexOf("compatible")&&rmozilla.exec(ua)||[];return{browser:match[1]||"",version:match[2]||"0"}},sub:function(){function jQuerySubclass(selector,context){return new jQuerySubclass.fn.init(selector,context)}jQuery.extend(!0,jQuerySubclass,this),jQuerySubclass.superclass=this,jQuerySubclass.fn=jQuerySubclass.prototype=this(),jQuerySubclass.fn.constructor=jQuerySubclass,jQuerySubclass.subclass=this.subclass,jQuerySubclass.fn.init=function(selector,context){return context&&context instanceof jQuery&&!(context instanceof jQuerySubclass)&&(context=jQuerySubclass(context)),jQuery.fn.init.call(this,selector,context,rootjQuerySubclass)},jQuerySubclass.fn.init.prototype=jQuerySubclass.fn;var rootjQuerySubclass=jQuerySubclass(document);return jQuerySubclass},browser:{}}),readyList=jQuery._Deferred(),jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(i,name){class2type["[object "+name+"]"]=name.toLowerCase()}),browserMatch=jQuery.uaMatch(userAgent),browserMatch.browser&&(jQuery.browser[browserMatch.browser]=!0,jQuery.browser.version=browserMatch.version),jQuery.browser.webkit&&(jQuery.browser.safari=!0),indexOf&&(jQuery.inArray=function(elem,array){return indexOf.call(array,elem)}),rnotwhite.test(" ")&&(trimLeft=/^[\s\xA0]+/,trimRight=/[\s\xA0]+$/),rootjQuery=jQuery(document),document.addEventListener?DOMContentLoaded=function(){document.removeEventListener("DOMContentLoaded",DOMContentLoaded,!1),jQuery.ready()}:document.attachEvent&&(DOMContentLoaded=function(){"complete"===document.readyState&&(document.detachEvent("onreadystatechange",DOMContentLoaded),jQuery.ready())}),jQuery}();(function(){jQuery.support={};var div=document.createElement("div");div.style.display="none",div.innerHTML="
a";var all=div.getElementsByTagName("*"),a=div.getElementsByTagName("a")[0],select=document.createElement("select"),opt=select.appendChild(document.createElement("option")),input=div.getElementsByTagName("input")[0];if(all&&all.length&&a){jQuery.support={leadingWhitespace:3===div.firstChild.nodeType,tbody:!div.getElementsByTagName("tbody").length,htmlSerialize:!!div.getElementsByTagName("link").length,style:/red/.test(a.getAttribute("style")),hrefNormalized:"/a"===a.getAttribute("href"),opacity:/^0.55$/.test(a.style.opacity),cssFloat:!!a.style.cssFloat,checkOn:"on"===input.value,optSelected:opt.selected,deleteExpando:!0,optDisabled:!1,checkClone:!1,noCloneEvent:!0,noCloneChecked:!0,boxModel:null,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableHiddenOffsets:!0},input.checked=!0,jQuery.support.noCloneChecked=input.cloneNode(!0).checked,select.disabled=!0,jQuery.support.optDisabled=!opt.disabled;var _scriptEval=null;jQuery.support.scriptEval=function(){if(null===_scriptEval){var root=document.documentElement,script=document.createElement("script"),id="script"+jQuery.now();try{script.appendChild(document.createTextNode("window."+id+"=1;"))}catch(e){}root.insertBefore(script,root.firstChild),window[id]?(_scriptEval=!0,delete window[id]):_scriptEval=!1,root.removeChild(script),root=script=id=null}return _scriptEval};try{delete div.test}catch(e){jQuery.support.deleteExpando=!1}!div.addEventListener&&div.attachEvent&&div.fireEvent&&(div.attachEvent("onclick",function click(){jQuery.support.noCloneEvent=!1,div.detachEvent("onclick",click)}),div.cloneNode(!0).fireEvent("onclick")),div=document.createElement("div"),div.innerHTML="";var fragment=document.createDocumentFragment();fragment.appendChild(div.firstChild),jQuery.support.checkClone=fragment.cloneNode(!0).cloneNode(!0).lastChild.checked,jQuery(function(){var div=document.createElement("div"),body=document.getElementsByTagName("body")[0];if(body){div.style.width=div.style.paddingLeft="1px",body.appendChild(div),jQuery.boxModel=jQuery.support.boxModel=2===div.offsetWidth,"zoom"in div.style&&(div.style.display="inline",div.style.zoom=1,jQuery.support.inlineBlockNeedsLayout=2===div.offsetWidth,div.style.display="",div.innerHTML="",jQuery.support.shrinkWrapBlocks=2!==div.offsetWidth),div.innerHTML="";var tds=div.getElementsByTagName("td");jQuery.support.reliableHiddenOffsets=0===tds[0].offsetHeight,tds[0].style.display="",tds[1].style.display="none",jQuery.support.reliableHiddenOffsets=jQuery.support.reliableHiddenOffsets&&0===tds[0].offsetHeight,div.innerHTML="",body.removeChild(div).style.display="none",div=tds=null}});var eventSupported=function(eventName){var el=document.createElement("div");if(eventName="on"+eventName,!el.attachEvent)return!0;var isSupported=eventName in el;return isSupported||(el.setAttribute(eventName,"return;"),isSupported="function"==typeof el[eventName]),el=null,isSupported};jQuery.support.submitBubbles=eventSupported("submit"),jQuery.support.changeBubbles=eventSupported("change"),div=all=a=null}})();var rbrace=/^(?:\{.*\}|\[.*\])$/;jQuery.extend({cache:{},uuid:0,expando:"jQuery"+(jQuery.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(elem){return elem=elem.nodeType?jQuery.cache[elem[jQuery.expando]]:elem[jQuery.expando],!!elem&&!isEmptyDataObject(elem)},data:function(elem,name,data,pvt){if(jQuery.acceptData(elem)){var thisCache,internalKey=jQuery.expando,getByName="string"==typeof name,isNode=elem.nodeType,cache=isNode?jQuery.cache:elem,id=isNode?elem[jQuery.expando]:elem[jQuery.expando]&&jQuery.expando;if(id&&(!pvt||!id||cache[id][internalKey])||!getByName||data!==undefined)return id||(isNode?elem[jQuery.expando]=id=++jQuery.uuid:id=jQuery.expando),cache[id]||(cache[id]={},isNode||(cache[id].toJSON=jQuery.noop)),("object"==typeof name||"function"==typeof name)&&(pvt?cache[id][internalKey]=jQuery.extend(cache[id][internalKey],name):cache[id]=jQuery.extend(cache[id],name)),thisCache=cache[id],pvt&&(thisCache[internalKey]||(thisCache[internalKey]={}),thisCache=thisCache[internalKey]),data!==undefined&&(thisCache[name]=data),"events"!==name||thisCache[name]?getByName?thisCache[name]:thisCache:thisCache[internalKey]&&thisCache[internalKey].events}},removeData:function(elem,name,pvt){if(jQuery.acceptData(elem)){var internalKey=jQuery.expando,isNode=elem.nodeType,cache=isNode?jQuery.cache:elem,id=isNode?elem[jQuery.expando]:jQuery.expando;if(cache[id]){if(name){var thisCache=pvt?cache[id][internalKey]:cache[id];if(thisCache&&(delete thisCache[name],!isEmptyDataObject(thisCache)))return}if(!pvt||(delete cache[id][internalKey],isEmptyDataObject(cache[id]))){var internalCache=cache[id][internalKey];jQuery.support.deleteExpando||cache!=window?delete cache[id]:cache[id]=null,internalCache?(cache[id]={},isNode||(cache[id].toJSON=jQuery.noop),cache[id][internalKey]=internalCache):isNode&&(jQuery.support.deleteExpando?delete elem[jQuery.expando]:elem.removeAttribute?elem.removeAttribute(jQuery.expando):elem[jQuery.expando]=null)}}}},_data:function(elem,name,data){return jQuery.data(elem,name,data,!0)},acceptData:function(elem){if(elem.nodeName){var match=jQuery.noData[elem.nodeName.toLowerCase()];if(match)return!(match===!0||elem.getAttribute("classid")!==match)}return!0}}),jQuery.fn.extend({data:function(key,value){var data=null;if(key===undefined){if(this.length&&(data=jQuery.data(this[0]),1===this[0].nodeType))for(var name,attr=this[0].attributes,i=0,l=attr.length;l>i;i++)name=attr[i].name,0===name.indexOf("data-")&&(name=name.substr(5),dataAttr(this[0],name,data[name]));return data}if("object"==typeof key)return this.each(function(){jQuery.data(this,key)});var parts=key.split(".");return parts[1]=parts[1]?"."+parts[1]:"",value===undefined?(data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]),data===undefined&&this.length&&(data=jQuery.data(this[0],key),data=dataAttr(this[0],key,data)),data===undefined&&parts[1]?this.data(parts[0]):data):this.each(function(){var $this=jQuery(this),args=[parts[0],value];$this.triggerHandler("setData"+parts[1]+"!",args),jQuery.data(this,key,value),$this.triggerHandler("changeData"+parts[1]+"!",args)})},removeData:function(key){return this.each(function(){jQuery.removeData(this,key)})}}),jQuery.extend({queue:function(elem,type,data){if(elem){type=(type||"fx")+"queue";var q=jQuery._data(elem,type);return data?(!q||jQuery.isArray(data)?q=jQuery._data(elem,type,jQuery.makeArray(data)):q.push(data),q):q||[]}},dequeue:function(elem,type){type=type||"fx";var queue=jQuery.queue(elem,type),fn=queue.shift();"inprogress"===fn&&(fn=queue.shift()),fn&&("fx"===type&&queue.unshift("inprogress"),fn.call(elem,function(){jQuery.dequeue(elem,type)})),queue.length||jQuery.removeData(elem,type+"queue",!0)}}),jQuery.fn.extend({queue:function(type,data){return"string"!=typeof type&&(data=type,type="fx"),data===undefined?jQuery.queue(this[0],type):this.each(function(){var queue=jQuery.queue(this,type,data);"fx"===type&&"inprogress"!==queue[0]&&jQuery.dequeue(this,type)})},dequeue:function(type){return this.each(function(){jQuery.dequeue(this,type)})},delay:function(time,type){return time=jQuery.fx?jQuery.fx.speeds[time]||time:time,type=type||"fx",this.queue(type,function(){var elem=this;setTimeout(function(){jQuery.dequeue(elem,type)},time)})},clearQueue:function(type){return this.queue(type||"fx",[])}});var rclass=/[\n\t\r]/g,rspaces=/\s+/,rreturn=/\r/g,rspecialurl=/^(?:href|src|style)$/,rtype=/^(?:button|input)$/i,rfocusable=/^(?:button|input|object|select|textarea)$/i,rclickable=/^a(?:rea)?$/i,rradiocheck=/^(?:radio|checkbox)$/i;jQuery.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"},jQuery.fn.extend({attr:function(name,value){return jQuery.access(this,name,value,!0,jQuery.attr)},removeAttr:function(name){return this.each(function(){jQuery.attr(this,name,""),1===this.nodeType&&this.removeAttribute(name)})},addClass:function(value){if(jQuery.isFunction(value))return this.each(function(i){var self=jQuery(this);self.addClass(value.call(this,i,self.attr("class")))});if(value&&"string"==typeof value)for(var classNames=(value||"").split(rspaces),i=0,l=this.length;l>i;i++){var elem=this[i];if(1===elem.nodeType)if(elem.className){for(var className=" "+elem.className+" ",setClass=elem.className,c=0,cl=classNames.length;cl>c;c++)0>className.indexOf(" "+classNames[c]+" ")&&(setClass+=" "+classNames[c]);elem.className=jQuery.trim(setClass)
-}else elem.className=value}return this},removeClass:function(value){if(jQuery.isFunction(value))return this.each(function(i){var self=jQuery(this);self.removeClass(value.call(this,i,self.attr("class")))});if(value&&"string"==typeof value||value===undefined)for(var classNames=(value||"").split(rspaces),i=0,l=this.length;l>i;i++){var elem=this[i];if(1===elem.nodeType&&elem.className)if(value){for(var className=(" "+elem.className+" ").replace(rclass," "),c=0,cl=classNames.length;cl>c;c++)className=className.replace(" "+classNames[c]+" "," ");elem.className=jQuery.trim(className)}else elem.className=""}return this},toggleClass:function(value,stateVal){var type=typeof value,isBool="boolean"==typeof stateVal;return jQuery.isFunction(value)?this.each(function(i){var self=jQuery(this);self.toggleClass(value.call(this,i,self.attr("class"),stateVal),stateVal)}):this.each(function(){if("string"===type)for(var className,i=0,self=jQuery(this),state=stateVal,classNames=value.split(rspaces);className=classNames[i++];)state=isBool?state:!self.hasClass(className),self[state?"addClass":"removeClass"](className);else("undefined"===type||"boolean"===type)&&(this.className&&jQuery._data(this,"__className__",this.className),this.className=this.className||value===!1?"":jQuery._data(this,"__className__")||"")})},hasClass:function(selector){for(var className=" "+selector+" ",i=0,l=this.length;l>i;i++)if((" "+this[i].className+" ").replace(rclass," ").indexOf(className)>-1)return!0;return!1},val:function(value){if(!arguments.length){var elem=this[0];if(elem){if(jQuery.nodeName(elem,"option")){var val=elem.attributes.value;return!val||val.specified?elem.value:elem.text}if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one="select-one"===elem.type;if(0>index)return null;for(var i=one?index:0,max=one?index+1:options.length;max>i;i++){var option=options[i];if(!(!option.selected||(jQuery.support.optDisabled?option.disabled:null!==option.getAttribute("disabled"))||option.parentNode.disabled&&jQuery.nodeName(option.parentNode,"optgroup"))){if(value=jQuery(option).val(),one)return value;values.push(value)}}return one&&!values.length&&options.length?jQuery(options[index]).val():values}return rradiocheck.test(elem.type)&&!jQuery.support.checkOn?null===elem.getAttribute("value")?"on":elem.value:(elem.value||"").replace(rreturn,"")}return undefined}var isFunction=jQuery.isFunction(value);return this.each(function(i){var self=jQuery(this),val=value;if(1===this.nodeType)if(isFunction&&(val=value.call(this,i,self.val())),null==val?val="":"number"==typeof val?val+="":jQuery.isArray(val)&&(val=jQuery.map(val,function(value){return null==value?"":value+""})),jQuery.isArray(val)&&rradiocheck.test(this.type))this.checked=jQuery.inArray(self.val(),val)>=0;else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(val);jQuery("option",this).each(function(){this.selected=jQuery.inArray(jQuery(this).val(),values)>=0}),values.length||(this.selectedIndex=-1)}else this.value=val})}}),jQuery.extend({attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(elem,name,value,pass){if(!elem||3===elem.nodeType||8===elem.nodeType||2===elem.nodeType)return undefined;if(pass&&name in jQuery.attrFn)return jQuery(elem)[name](value);var notxml=1!==elem.nodeType||!jQuery.isXMLDoc(elem),set=value!==undefined;if(name=notxml&&jQuery.props[name]||name,1===elem.nodeType){var special=rspecialurl.test(name);if("selected"===name&&!jQuery.support.optSelected){var parent=elem.parentNode;parent&&(parent.selectedIndex,parent.parentNode&&parent.parentNode.selectedIndex)}if((name in elem||elem[name]!==undefined)&¬xml&&!special){if(set&&("type"===name&&rtype.test(elem.nodeName)&&elem.parentNode&&jQuery.error("type property can't be changed"),null===value?1===elem.nodeType&&elem.removeAttribute(name):elem[name]=value),jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return elem.getAttributeNode(name).nodeValue;if("tabIndex"===name){var attributeNode=elem.getAttributeNode("tabIndex");return attributeNode&&attributeNode.specified?attributeNode.value:rfocusable.test(elem.nodeName)||rclickable.test(elem.nodeName)&&elem.href?0:undefined}return elem[name]}if(!jQuery.support.style&¬xml&&"style"===name)return set&&(elem.style.cssText=""+value),elem.style.cssText;if(set&&elem.setAttribute(name,""+value),!elem.attributes[name]&&elem.hasAttribute&&!elem.hasAttribute(name))return undefined;var attr=!jQuery.support.hrefNormalized&¬xml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return null===attr?undefined:attr}return set&&(elem[name]=value),elem[name]}});var rnamespaces=/\.(.*)$/,rformElems=/^(?:textarea|input|select)$/i,rperiod=/\./g,rspace=/ /g,rescape=/[^\w\s.|`]/g,fcleanup=function(nm){return nm.replace(rescape,"\\$&")};jQuery.event={add:function(elem,types,handler,data){if(3!==elem.nodeType&&8!==elem.nodeType){try{jQuery.isWindow(elem)&&elem!==window&&!elem.frameElement&&(elem=window)}catch(e){}if(handler===!1)handler=returnFalse;else if(!handler)return;var handleObjIn,handleObj;handler.handler&&(handleObjIn=handler,handler=handleObjIn.handler),handler.guid||(handler.guid=jQuery.guid++);var elemData=jQuery._data(elem);if(elemData){var events=elemData.events,eventHandle=elemData.handle;events||(elemData.events=events={}),eventHandle||(elemData.handle=eventHandle=function(){return jQuery===undefined||jQuery.event.triggered?undefined:jQuery.event.handle.apply(eventHandle.elem,arguments)}),eventHandle.elem=elem,types=types.split(" ");for(var type,namespaces,i=0;type=types[i++];){handleObj=handleObjIn?jQuery.extend({},handleObjIn):{handler:handler,data:data},type.indexOf(".")>-1?(namespaces=type.split("."),type=namespaces.shift(),handleObj.namespace=namespaces.slice(0).sort().join(".")):(namespaces=[],handleObj.namespace=""),handleObj.type=type,handleObj.guid||(handleObj.guid=handler.guid);var handlers=events[type],special=jQuery.event.special[type]||{};handlers||(handlers=events[type]=[],special.setup&&special.setup.call(elem,data,namespaces,eventHandle)!==!1||(elem.addEventListener?elem.addEventListener(type,eventHandle,!1):elem.attachEvent&&elem.attachEvent("on"+type,eventHandle))),special.add&&(special.add.call(elem,handleObj),handleObj.handler.guid||(handleObj.handler.guid=handler.guid)),handlers.push(handleObj),jQuery.event.global[type]=!0}elem=null}}},global:{},remove:function(elem,types,handler,pos){if(3!==elem.nodeType&&8!==elem.nodeType){handler===!1&&(handler=returnFalse);var ret,type,j,all,namespaces,namespace,special,eventType,handleObj,origType,i=0,elemData=jQuery.hasData(elem)&&jQuery._data(elem),events=elemData&&elemData.events;if(elemData&&events)if(types&&types.type&&(handler=types.handler,types=types.type),!types||"string"==typeof types&&"."===types.charAt(0)){types=types||"";for(type in events)jQuery.event.remove(elem,type+types)}else{for(types=types.split(" ");type=types[i++];)if(origType=type,handleObj=null,all=0>type.indexOf("."),namespaces=[],all||(namespaces=type.split("."),type=namespaces.shift(),namespace=RegExp("(^|\\.)"+jQuery.map(namespaces.slice(0).sort(),fcleanup).join("\\.(?:.*\\.)?")+"(\\.|$)")),eventType=events[type])if(handler){for(special=jQuery.event.special[type]||{},j=pos||0;eventType.length>j&&(handleObj=eventType[j],handler.guid!==handleObj.guid||((all||namespace.test(handleObj.namespace))&&(null==pos&&eventType.splice(j--,1),special.remove&&special.remove.call(elem,handleObj)),null==pos));j++);(0===eventType.length||null!=pos&&1===eventType.length)&&(special.teardown&&special.teardown.call(elem,namespaces)!==!1||jQuery.removeEvent(elem,type,elemData.handle),ret=null,delete events[type])}else for(j=0;eventType.length>j;j++)handleObj=eventType[j],(all||namespace.test(handleObj.namespace))&&(jQuery.event.remove(elem,origType,handleObj.handler,j),eventType.splice(j--,1));if(jQuery.isEmptyObject(events)){var handle=elemData.handle;handle&&(handle.elem=null),delete elemData.events,delete elemData.handle,jQuery.isEmptyObject(elemData)&&jQuery.removeData(elem,undefined,!0)}}}},trigger:function(event,data,elem){var type=event.type||event,bubbling=arguments[3];if(!bubbling){if(event="object"==typeof event?event[jQuery.expando]?event:jQuery.extend(jQuery.Event(type),event):jQuery.Event(type),type.indexOf("!")>=0&&(event.type=type=type.slice(0,-1),event.exclusive=!0),elem||(event.stopPropagation(),jQuery.event.global[type]&&jQuery.each(jQuery.cache,function(){var internalKey=jQuery.expando,internalCache=this[internalKey];internalCache&&internalCache.events&&internalCache.events[type]&&jQuery.event.trigger(event,data,internalCache.handle.elem)})),!elem||3===elem.nodeType||8===elem.nodeType)return undefined;event.result=undefined,event.target=elem,data=jQuery.makeArray(data),data.unshift(event)}event.currentTarget=elem;var handle=jQuery._data(elem,"handle");handle&&handle.apply(elem,data);var parent=elem.parentNode||elem.ownerDocument;try{elem&&elem.nodeName&&jQuery.noData[elem.nodeName.toLowerCase()]||elem["on"+type]&&elem["on"+type].apply(elem,data)===!1&&(event.result=!1,event.preventDefault())}catch(inlineError){}if(!event.isPropagationStopped()&&parent)jQuery.event.trigger(event,data,parent,!0);else if(!event.isDefaultPrevented()){var old,target=event.target,targetType=type.replace(rnamespaces,""),isClick=jQuery.nodeName(target,"a")&&"click"===targetType,special=jQuery.event.special[targetType]||{};if(!(special._default&&special._default.call(elem,event)!==!1||isClick||target&&target.nodeName&&jQuery.noData[target.nodeName.toLowerCase()])){try{target[targetType]&&(old=target["on"+targetType],old&&(target["on"+targetType]=null),jQuery.event.triggered=!0,target[targetType]())}catch(triggerError){}old&&(target["on"+targetType]=old),jQuery.event.triggered=!1}}},handle:function(event){var all,handlers,namespaces,namespace_re,events,namespace_sort=[],args=jQuery.makeArray(arguments);if(event=args[0]=jQuery.event.fix(event||window.event),event.currentTarget=this,all=0>event.type.indexOf(".")&&!event.exclusive,all||(namespaces=event.type.split("."),event.type=namespaces.shift(),namespace_sort=namespaces.slice(0).sort(),namespace_re=RegExp("(^|\\.)"+namespace_sort.join("\\.(?:.*\\.)?")+"(\\.|$)")),event.namespace=event.namespace||namespace_sort.join("."),events=jQuery._data(this,"events"),handlers=(events||{})[event.type],events&&handlers){handlers=handlers.slice(0);for(var j=0,l=handlers.length;l>j;j++){var handleObj=handlers[j];if(all||namespace_re.test(handleObj.namespace)){event.handler=handleObj.handler,event.data=handleObj.data,event.handleObj=handleObj;var ret=handleObj.handler.apply(this,args);if(ret!==undefined&&(event.result=ret,ret===!1&&(event.preventDefault(),event.stopPropagation())),event.isImmediatePropagationStopped())break}}}return event.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(event){if(event[jQuery.expando])return event;var originalEvent=event;event=jQuery.Event(originalEvent);for(var prop,i=this.props.length;i;)prop=this.props[--i],event[prop]=originalEvent[prop];if(event.target||(event.target=event.srcElement||document),3===event.target.nodeType&&(event.target=event.target.parentNode),!event.relatedTarget&&event.fromElement&&(event.relatedTarget=event.fromElement===event.target?event.toElement:event.fromElement),null==event.pageX&&null!=event.clientX){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc&&doc.clientLeft||body&&body.clientLeft||0),event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc&&doc.clientTop||body&&body.clientTop||0)}return null!=event.which||null==event.charCode&&null==event.keyCode||(event.which=null!=event.charCode?event.charCode:event.keyCode),!event.metaKey&&event.ctrlKey&&(event.metaKey=event.ctrlKey),event.which||event.button===undefined||(event.which=1&event.button?1:2&event.button?3:4&event.button?2:0),event},guid:1e8,proxy:jQuery.proxy,special:{ready:{setup:jQuery.bindReady,teardown:jQuery.noop},live:{add:function(handleObj){jQuery.event.add(this,liveConvert(handleObj.origType,handleObj.selector),jQuery.extend({},handleObj,{handler:liveHandler,guid:handleObj.handler.guid}))},remove:function(handleObj){jQuery.event.remove(this,liveConvert(handleObj.origType,handleObj.selector),handleObj)}},beforeunload:{setup:function(data,namespaces,eventHandle){jQuery.isWindow(this)&&(this.onbeforeunload=eventHandle)},teardown:function(namespaces,eventHandle){this.onbeforeunload===eventHandle&&(this.onbeforeunload=null)}}}},jQuery.removeEvent=document.removeEventListener?function(elem,type,handle){elem.removeEventListener&&elem.removeEventListener(type,handle,!1)}:function(elem,type,handle){elem.detachEvent&&elem.detachEvent("on"+type,handle)},jQuery.Event=function(src){return this.preventDefault?(src&&src.type?(this.originalEvent=src,this.type=src.type,this.isDefaultPrevented=src.defaultPrevented||src.returnValue===!1||src.getPreventDefault&&src.getPreventDefault()?returnTrue:returnFalse):this.type=src,this.timeStamp=jQuery.now(),this[jQuery.expando]=!0,undefined):new jQuery.Event(src)},jQuery.Event.prototype={preventDefault:function(){this.isDefaultPrevented=returnTrue;var e=this.originalEvent;e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=returnTrue;var e=this.originalEvent;e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=returnTrue,this.stopPropagation()},isDefaultPrevented:returnFalse,isPropagationStopped:returnFalse,isImmediatePropagationStopped:returnFalse};var withinElement=function(event){var parent=event.relatedTarget;try{if(parent!==document&&!parent.parentNode)return;for(;parent&&parent!==this;)parent=parent.parentNode;parent!==this&&(event.type=event.data,jQuery.event.handle.apply(this,arguments))}catch(e){}},delegate=function(event){event.type=event.data,jQuery.event.handle.apply(this,arguments)};if(jQuery.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(orig,fix){jQuery.event.special[orig]={setup:function(data){jQuery.event.add(this,fix,data&&data.selector?delegate:withinElement,orig)},teardown:function(data){jQuery.event.remove(this,fix,data&&data.selector?delegate:withinElement)}}}),jQuery.support.submitBubbles||(jQuery.event.special.submit={setup:function(){return this.nodeName&&"form"!==this.nodeName.toLowerCase()?(jQuery.event.add(this,"click.specialSubmit",function(e){var elem=e.target,type=elem.type;"submit"!==type&&"image"!==type||!jQuery(elem).closest("form").length||trigger("submit",this,arguments)}),jQuery.event.add(this,"keypress.specialSubmit",function(e){var elem=e.target,type=elem.type;"text"!==type&&"password"!==type||!jQuery(elem).closest("form").length||13!==e.keyCode||trigger("submit",this,arguments)}),undefined):!1},teardown:function(){jQuery.event.remove(this,".specialSubmit")}}),!jQuery.support.changeBubbles){var changeFilters,getVal=function(elem){var type=elem.type,val=elem.value;return"radio"===type||"checkbox"===type?val=elem.checked:"select-multiple"===type?val=elem.selectedIndex>-1?jQuery.map(elem.options,function(elem){return elem.selected}).join("-"):"":"select"===elem.nodeName.toLowerCase()&&(val=elem.selectedIndex),val},testChange=function testChange(e){var data,val,elem=e.target;rformElems.test(elem.nodeName)&&!elem.readOnly&&(data=jQuery._data(elem,"_change_data"),val=getVal(elem),("focusout"!==e.type||"radio"!==elem.type)&&jQuery._data(elem,"_change_data",val),data!==undefined&&val!==data&&(null!=data||val)&&(e.type="change",e.liveFired=undefined,jQuery.event.trigger(e,arguments[1],elem)))};jQuery.event.special.change={filters:{focusout:testChange,beforedeactivate:testChange,click:function(e){var elem=e.target,type=elem.type;("radio"===type||"checkbox"===type||"select"===elem.nodeName.toLowerCase())&&testChange.call(this,e)},keydown:function(e){var elem=e.target,type=elem.type;(13===e.keyCode&&"textarea"!==elem.nodeName.toLowerCase()||32===e.keyCode&&("checkbox"===type||"radio"===type)||"select-multiple"===type)&&testChange.call(this,e)},beforeactivate:function(e){var elem=e.target;jQuery._data(elem,"_change_data",getVal(elem))}},setup:function(){if("file"===this.type)return!1;for(var type in changeFilters)jQuery.event.add(this,type+".specialChange",changeFilters[type]);return rformElems.test(this.nodeName)},teardown:function(){return jQuery.event.remove(this,".specialChange"),rformElems.test(this.nodeName)}},changeFilters=jQuery.event.special.change.filters,changeFilters.focus=changeFilters.beforeactivate}document.addEventListener&&jQuery.each({focus:"focusin",blur:"focusout"},function(orig,fix){function handler(e){return e=jQuery.event.fix(e),e.type=fix,jQuery.event.handle.call(this,e)}jQuery.event.special[fix]={setup:function(){this.addEventListener(orig,handler,!0)},teardown:function(){this.removeEventListener(orig,handler,!0)}}}),jQuery.each(["bind","one"],function(i,name){jQuery.fn[name]=function(type,data,fn){if("object"==typeof type){for(var key in type)this[name](key,data,type[key],fn);return this}(jQuery.isFunction(data)||data===!1)&&(fn=data,data=undefined);var handler="one"===name?jQuery.proxy(fn,function(event){return jQuery(this).unbind(event,handler),fn.apply(this,arguments)}):fn;if("unload"===type&&"one"!==name)this.one(type,data,fn);else for(var i=0,l=this.length;l>i;i++)jQuery.event.add(this[i],type,handler,data);return this}}),jQuery.fn.extend({unbind:function(type,fn){if("object"!=typeof type||type.preventDefault)for(var i=0,l=this.length;l>i;i++)jQuery.event.remove(this[i],type,fn);else for(var key in type)this.unbind(key,type[key]);return this},delegate:function(selector,types,data,fn){return this.live(types,data,fn,selector)},undelegate:function(selector,types,fn){return 0===arguments.length?this.unbind("live"):this.die(types,null,fn,selector)},trigger:function(type,data){return this.each(function(){jQuery.event.trigger(type,data,this)})},triggerHandler:function(type,data){if(this[0]){var event=jQuery.Event(type);return event.preventDefault(),event.stopPropagation(),jQuery.event.trigger(event,data,this[0]),event.result}},toggle:function(fn){for(var args=arguments,i=1;args.length>i;)jQuery.proxy(fn,args[i++]);return this.click(jQuery.proxy(fn,function(event){var lastToggle=(jQuery._data(this,"lastToggle"+fn.guid)||0)%i;return jQuery._data(this,"lastToggle"+fn.guid,lastToggle+1),event.preventDefault(),args[lastToggle].apply(this,arguments)||!1}))},hover:function(fnOver,fnOut){return this.mouseenter(fnOver).mouseleave(fnOut||fnOver)}});var liveMap={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};jQuery.each(["live","die"],function(i,name){jQuery.fn[name]=function(types,data,fn,origSelector){var type,match,namespaces,preType,i=0,selector=origSelector||this.selector,context=origSelector?this:jQuery(this.context);if("object"==typeof types&&!types.preventDefault){for(var key in types)context[name](key,data,types[key],selector);return this}for(jQuery.isFunction(data)&&(fn=data,data=undefined),types=(types||"").split(" ");null!=(type=types[i++]);)if(match=rnamespaces.exec(type),namespaces="",match&&(namespaces=match[0],type=type.replace(rnamespaces,"")),"hover"!==type)if(preType=type,"focus"===type||"blur"===type?(types.push(liveMap[type]+namespaces),type+=namespaces):type=(liveMap[type]||type)+namespaces,"live"===name)for(var j=0,l=context.length;l>j;j++)jQuery.event.add(context[j],"live."+liveConvert(type,selector),{data:data,selector:selector,handler:fn,origType:type,origHandler:fn,preType:preType});else context.unbind("live."+liveConvert(type,selector),fn);else types.push("mouseenter"+namespaces,"mouseleave"+namespaces);return this}}),jQuery.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(i,name){jQuery.fn[name]=function(data,fn){return null==fn&&(fn=data,data=null),arguments.length>0?this.bind(name,data,fn):this.trigger(name)},jQuery.attrFn&&(jQuery.attrFn[name]=!0)}),function(){function dirNodeCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){for(var i=0,l=checkSet.length;l>i;i++){var elem=checkSet[i];if(elem){var match=!1;for(elem=elem[dir];elem;){if(elem.sizcache===doneName){match=checkSet[elem.sizset];break}if(1!==elem.nodeType||isXML||(elem.sizcache=doneName,elem.sizset=i),elem.nodeName.toLowerCase()===cur){match=elem;break}elem=elem[dir]}checkSet[i]=match}}}function dirCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){for(var i=0,l=checkSet.length;l>i;i++){var elem=checkSet[i];if(elem){var match=!1;for(elem=elem[dir];elem;){if(elem.sizcache===doneName){match=checkSet[elem.sizset];break}if(1===elem.nodeType)if(isXML||(elem.sizcache=doneName,elem.sizset=i),"string"!=typeof cur){if(elem===cur){match=!0;break}}else if(Sizzle.filter(cur,[elem]).length>0){match=elem;break}elem=elem[dir]}checkSet[i]=match}}}var chunker=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,done=0,toString=Object.prototype.toString,hasDuplicate=!1,baseHasDuplicate=!0,rBackslash=/\\/g,rNonWord=/\W/;[0,0].sort(function(){return baseHasDuplicate=!1,0});var Sizzle=function(selector,context,results,seed){results=results||[],context=context||document;var origContext=context;if(1!==context.nodeType&&9!==context.nodeType)return[];if(!selector||"string"!=typeof selector)return results;var m,set,checkSet,extra,ret,cur,pop,i,prune=!0,contextXML=Sizzle.isXML(context),parts=[],soFar=selector;do if(chunker.exec(""),m=chunker.exec(soFar),m&&(soFar=m[3],parts.push(m[1]),m[2])){extra=m[3];break}while(m);if(parts.length>1&&origPOS.exec(selector))if(2===parts.length&&Expr.relative[parts[0]])set=posProcess(parts[0]+parts[1],context);else for(set=Expr.relative[parts[0]]?[context]:Sizzle(parts.shift(),context);parts.length;)selector=parts.shift(),Expr.relative[selector]&&(selector+=parts.shift()),set=posProcess(selector,set);else if(!seed&&parts.length>1&&9===context.nodeType&&!contextXML&&Expr.match.ID.test(parts[0])&&!Expr.match.ID.test(parts[parts.length-1])&&(ret=Sizzle.find(parts.shift(),context,contextXML),context=ret.expr?Sizzle.filter(ret.expr,ret.set)[0]:ret.set[0]),context)for(ret=seed?{expr:parts.pop(),set:makeArray(seed)}:Sizzle.find(parts.pop(),1!==parts.length||"~"!==parts[0]&&"+"!==parts[0]||!context.parentNode?context:context.parentNode,contextXML),set=ret.expr?Sizzle.filter(ret.expr,ret.set):ret.set,parts.length>0?checkSet=makeArray(set):prune=!1;parts.length;)cur=parts.pop(),pop=cur,Expr.relative[cur]?pop=parts.pop():cur="",null==pop&&(pop=context),Expr.relative[cur](checkSet,pop,contextXML);else checkSet=parts=[];if(checkSet||(checkSet=set),checkSet||Sizzle.error(cur||selector),"[object Array]"===toString.call(checkSet))if(prune)if(context&&1===context.nodeType)for(i=0;null!=checkSet[i];i++)checkSet[i]&&(checkSet[i]===!0||1===checkSet[i].nodeType&&Sizzle.contains(context,checkSet[i]))&&results.push(set[i]);else for(i=0;null!=checkSet[i];i++)checkSet[i]&&1===checkSet[i].nodeType&&results.push(set[i]);else results.push.apply(results,checkSet);else makeArray(checkSet,results);return extra&&(Sizzle(extra,origContext,results,seed),Sizzle.uniqueSort(results)),results};Sizzle.uniqueSort=function(results){if(sortOrder&&(hasDuplicate=baseHasDuplicate,results.sort(sortOrder),hasDuplicate))for(var i=1;results.length>i;i++)results[i]===results[i-1]&&results.splice(i--,1);return results},Sizzle.matches=function(expr,set){return Sizzle(expr,null,null,set)},Sizzle.matchesSelector=function(node,expr){return Sizzle(expr,null,null,[node]).length>0},Sizzle.find=function(expr,context,isXML){var set;if(!expr)return[];for(var i=0,l=Expr.order.length;l>i;i++){var match,type=Expr.order[i];if(match=Expr.leftMatch[type].exec(expr)){var left=match[1];if(match.splice(1,1),"\\"!==left.substr(left.length-1)&&(match[1]=(match[1]||"").replace(rBackslash,""),set=Expr.find[type](match,context,isXML),null!=set)){expr=expr.replace(Expr.match[type],"");break}}}return set||(set=context.getElementsByTagName!==undefined?context.getElementsByTagName("*"):[]),{set:set,expr:expr}},Sizzle.filter=function(expr,set,inplace,not){for(var match,anyFound,old=expr,result=[],curLoop=set,isXMLFilter=set&&set[0]&&Sizzle.isXML(set[0]);expr&&set.length;){for(var type in Expr.filter)if(null!=(match=Expr.leftMatch[type].exec(expr))&&match[2]){var found,item,filter=Expr.filter[type],left=match[1];if(anyFound=!1,match.splice(1,1),"\\"===left.substr(left.length-1))continue;if(curLoop===result&&(result=[]),Expr.preFilter[type])if(match=Expr.preFilter[type](match,curLoop,inplace,result,not,isXMLFilter)){if(match===!0)continue}else anyFound=found=!0;if(match)for(var i=0;null!=(item=curLoop[i]);i++)if(item){found=filter(item,match,i,curLoop);var pass=not^!!found;inplace&&null!=found?pass?anyFound=!0:curLoop[i]=!1:pass&&(result.push(item),anyFound=!0)}if(found!==undefined){if(inplace||(curLoop=result),expr=expr.replace(Expr.match[type],""),!anyFound)return[];break}}if(expr===old){if(null!=anyFound)break;Sizzle.error(expr)}old=expr}return curLoop},Sizzle.error=function(msg){throw"Syntax error, unrecognized expression: "+msg};var Expr=Sizzle.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(elem){return elem.getAttribute("href")},type:function(elem){return elem.getAttribute("type")}},relative:{"+":function(checkSet,part){var isPartStr="string"==typeof part,isTag=isPartStr&&!rNonWord.test(part),isPartStrNotTag=isPartStr&&!isTag;isTag&&(part=part.toLowerCase());for(var elem,i=0,l=checkSet.length;l>i;i++)if(elem=checkSet[i]){for(;(elem=elem.previousSibling)&&1!==elem.nodeType;);checkSet[i]=isPartStrNotTag||elem&&elem.nodeName.toLowerCase()===part?elem||!1:elem===part}isPartStrNotTag&&Sizzle.filter(part,checkSet,!0)},">":function(checkSet,part){var elem,isPartStr="string"==typeof part,i=0,l=checkSet.length;if(isPartStr&&!rNonWord.test(part)){for(part=part.toLowerCase();l>i;i++)if(elem=checkSet[i]){var parent=elem.parentNode;checkSet[i]=parent.nodeName.toLowerCase()===part?parent:!1}}else{for(;l>i;i++)elem=checkSet[i],elem&&(checkSet[i]=isPartStr?elem.parentNode:elem.parentNode===part);isPartStr&&Sizzle.filter(part,checkSet,!0)}},"":function(checkSet,part,isXML){var nodeCheck,doneName=done++,checkFn=dirCheck;"string"!=typeof part||rNonWord.test(part)||(part=part.toLowerCase(),nodeCheck=part,checkFn=dirNodeCheck),checkFn("parentNode",part,doneName,checkSet,nodeCheck,isXML)},"~":function(checkSet,part,isXML){var nodeCheck,doneName=done++,checkFn=dirCheck;"string"!=typeof part||rNonWord.test(part)||(part=part.toLowerCase(),nodeCheck=part,checkFn=dirNodeCheck),checkFn("previousSibling",part,doneName,checkSet,nodeCheck,isXML)}},find:{ID:function(match,context,isXML){if(context.getElementById!==undefined&&!isXML){var m=context.getElementById(match[1]);return m&&m.parentNode?[m]:[]}},NAME:function(match,context){if(context.getElementsByName!==undefined){for(var ret=[],results=context.getElementsByName(match[1]),i=0,l=results.length;l>i;i++)results[i].getAttribute("name")===match[1]&&ret.push(results[i]);return 0===ret.length?null:ret}},TAG:function(match,context){return context.getElementsByTagName!==undefined?context.getElementsByTagName(match[1]):undefined}},preFilter:{CLASS:function(match,curLoop,inplace,result,not,isXML){if(match=" "+match[1].replace(rBackslash,"")+" ",isXML)return match;for(var elem,i=0;null!=(elem=curLoop[i]);i++)elem&&(not^(elem.className&&(" "+elem.className+" ").replace(/[\t\n\r]/g," ").indexOf(match)>=0)?inplace||result.push(elem):inplace&&(curLoop[i]=!1));return!1},ID:function(match){return match[1].replace(rBackslash,"")},TAG:function(match){return match[1].replace(rBackslash,"").toLowerCase()},CHILD:function(match){if("nth"===match[1]){match[2]||Sizzle.error(match[0]),match[2]=match[2].replace(/^\+|\s*/g,"");var test=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec("even"===match[2]&&"2n"||"odd"===match[2]&&"2n+1"||!/\D/.test(match[2])&&"0n+"+match[2]||match[2]);match[2]=test[1]+(test[2]||1)-0,match[3]=test[3]-0}else match[2]&&Sizzle.error(match[0]);return match[0]=done++,match},ATTR:function(match,curLoop,inplace,result,not,isXML){var name=match[1]=match[1].replace(rBackslash,"");return!isXML&&Expr.attrMap[name]&&(match[1]=Expr.attrMap[name]),match[4]=(match[4]||match[5]||"").replace(rBackslash,""),"~="===match[2]&&(match[4]=" "+match[4]+" "),match},PSEUDO:function(match,curLoop,inplace,result,not){if("not"===match[1]){if(!((chunker.exec(match[3])||"").length>1||/^\w/.test(match[3]))){var ret=Sizzle.filter(match[3],curLoop,inplace,!0^not);return inplace||result.push.apply(result,ret),!1}match[3]=Sizzle(match[3],null,null,curLoop)}else if(Expr.match.POS.test(match[0])||Expr.match.CHILD.test(match[0]))return!0;return match},POS:function(match){return match.unshift(!0),match}},filters:{enabled:function(elem){return elem.disabled===!1&&"hidden"!==elem.type},disabled:function(elem){return elem.disabled===!0},checked:function(elem){return elem.checked===!0},selected:function(elem){return elem.parentNode&&elem.parentNode.selectedIndex,elem.selected===!0},parent:function(elem){return!!elem.firstChild},empty:function(elem){return!elem.firstChild},has:function(elem,i,match){return!!Sizzle(match[3],elem).length},header:function(elem){return/h\d/i.test(elem.nodeName)},text:function(elem){return"text"===elem.getAttribute("type")},radio:function(elem){return"radio"===elem.type},checkbox:function(elem){return"checkbox"===elem.type},file:function(elem){return"file"===elem.type},password:function(elem){return"password"===elem.type},submit:function(elem){return"submit"===elem.type},image:function(elem){return"image"===elem.type},reset:function(elem){return"reset"===elem.type},button:function(elem){return"button"===elem.type||"button"===elem.nodeName.toLowerCase()},input:function(elem){return/input|select|textarea|button/i.test(elem.nodeName)}},setFilters:{first:function(elem,i){return 0===i},last:function(elem,i,match,array){return i===array.length-1},even:function(elem,i){return 0===i%2},odd:function(elem,i){return 1===i%2},lt:function(elem,i,match){return match[3]-0>i},gt:function(elem,i,match){return i>match[3]-0},nth:function(elem,i,match){return match[3]-0===i},eq:function(elem,i,match){return match[3]-0===i}},filter:{PSEUDO:function(elem,match,i,array){var name=match[1],filter=Expr.filters[name];if(filter)return filter(elem,i,match,array);if("contains"===name)return(elem.textContent||elem.innerText||Sizzle.getText([elem])||"").indexOf(match[3])>=0;if("not"===name){for(var not=match[3],j=0,l=not.length;l>j;j++)if(not[j]===elem)return!1;return!0}Sizzle.error(name)},CHILD:function(elem,match){var type=match[1],node=elem;switch(type){case"only":case"first":for(;node=node.previousSibling;)if(1===node.nodeType)return!1;if("first"===type)return!0;node=elem;case"last":for(;node=node.nextSibling;)if(1===node.nodeType)return!1;return!0;case"nth":var first=match[2],last=match[3];
-if(1===first&&0===last)return!0;var doneName=match[0],parent=elem.parentNode;if(parent&&(parent.sizcache!==doneName||!elem.nodeIndex)){var count=0;for(node=parent.firstChild;node;node=node.nextSibling)1===node.nodeType&&(node.nodeIndex=++count);parent.sizcache=doneName}var diff=elem.nodeIndex-last;return 0===first?0===diff:0===diff%first&&diff/first>=0}},ID:function(elem,match){return 1===elem.nodeType&&elem.getAttribute("id")===match},TAG:function(elem,match){return"*"===match&&1===elem.nodeType||elem.nodeName.toLowerCase()===match},CLASS:function(elem,match){return(" "+(elem.className||elem.getAttribute("class"))+" ").indexOf(match)>-1},ATTR:function(elem,match){var name=match[1],result=Expr.attrHandle[name]?Expr.attrHandle[name](elem):null!=elem[name]?elem[name]:elem.getAttribute(name),value=result+"",type=match[2],check=match[4];return null==result?"!="===type:"="===type?value===check:"*="===type?value.indexOf(check)>=0:"~="===type?(" "+value+" ").indexOf(check)>=0:check?"!="===type?value!==check:"^="===type?0===value.indexOf(check):"$="===type?value.substr(value.length-check.length)===check:"|="===type?value===check||value.substr(0,check.length+1)===check+"-":!1:value&&result!==!1},POS:function(elem,match,i,array){var name=match[2],filter=Expr.setFilters[name];return filter?filter(elem,i,match,array):undefined}}},origPOS=Expr.match.POS,fescape=function(all,num){return"\\"+(num-0+1)};for(var type in Expr.match)Expr.match[type]=RegExp(Expr.match[type].source+/(?![^\[]*\])(?![^\(]*\))/.source),Expr.leftMatch[type]=RegExp(/(^(?:.|\r|\n)*?)/.source+Expr.match[type].source.replace(/\\(\d+)/g,fescape));var makeArray=function(array,results){return array=Array.prototype.slice.call(array,0),results?(results.push.apply(results,array),results):array};try{Array.prototype.slice.call(document.documentElement.childNodes,0)[0].nodeType}catch(e){makeArray=function(array,results){var i=0,ret=results||[];if("[object Array]"===toString.call(array))Array.prototype.push.apply(ret,array);else if("number"==typeof array.length)for(var l=array.length;l>i;i++)ret.push(array[i]);else for(;array[i];i++)ret.push(array[i]);return ret}}var sortOrder,siblingCheck;document.documentElement.compareDocumentPosition?sortOrder=function(a,b){return a===b?(hasDuplicate=!0,0):a.compareDocumentPosition&&b.compareDocumentPosition?4&a.compareDocumentPosition(b)?-1:1:a.compareDocumentPosition?-1:1}:(sortOrder=function(a,b){var al,bl,ap=[],bp=[],aup=a.parentNode,bup=b.parentNode,cur=aup;if(a===b)return hasDuplicate=!0,0;if(aup===bup)return siblingCheck(a,b);if(!aup)return-1;if(!bup)return 1;for(;cur;)ap.unshift(cur),cur=cur.parentNode;for(cur=bup;cur;)bp.unshift(cur),cur=cur.parentNode;al=ap.length,bl=bp.length;for(var i=0;al>i&&bl>i;i++)if(ap[i]!==bp[i])return siblingCheck(ap[i],bp[i]);return i===al?siblingCheck(a,bp[i],-1):siblingCheck(ap[i],b,1)},siblingCheck=function(a,b,ret){if(a===b)return ret;for(var cur=a.nextSibling;cur;){if(cur===b)return-1;cur=cur.nextSibling}return 1}),Sizzle.getText=function(elems){for(var elem,ret="",i=0;elems[i];i++)elem=elems[i],3===elem.nodeType||4===elem.nodeType?ret+=elem.nodeValue:8!==elem.nodeType&&(ret+=Sizzle.getText(elem.childNodes));return ret},function(){var form=document.createElement("div"),id="script"+(new Date).getTime(),root=document.documentElement;form.innerHTML="",root.insertBefore(form,root.firstChild),document.getElementById(id)&&(Expr.find.ID=function(match,context,isXML){if(context.getElementById!==undefined&&!isXML){var m=context.getElementById(match[1]);return m?m.id===match[1]||m.getAttributeNode!==undefined&&m.getAttributeNode("id").nodeValue===match[1]?[m]:undefined:[]}},Expr.filter.ID=function(elem,match){var node=elem.getAttributeNode!==undefined&&elem.getAttributeNode("id");return 1===elem.nodeType&&node&&node.nodeValue===match}),root.removeChild(form),root=form=null}(),function(){var div=document.createElement("div");div.appendChild(document.createComment("")),div.getElementsByTagName("*").length>0&&(Expr.find.TAG=function(match,context){var results=context.getElementsByTagName(match[1]);if("*"===match[1]){for(var tmp=[],i=0;results[i];i++)1===results[i].nodeType&&tmp.push(results[i]);results=tmp}return results}),div.innerHTML="",div.firstChild&&div.firstChild.getAttribute!==undefined&&"#"!==div.firstChild.getAttribute("href")&&(Expr.attrHandle.href=function(elem){return elem.getAttribute("href",2)}),div=null}(),document.querySelectorAll&&function(){var oldSizzle=Sizzle,div=document.createElement("div"),id="__sizzle__";if(div.innerHTML="",!div.querySelectorAll||0!==div.querySelectorAll(".TEST").length){Sizzle=function(query,context,extra,seed){if(context=context||document,!seed&&!Sizzle.isXML(context)){var match=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(query);if(match&&(1===context.nodeType||9===context.nodeType)){if(match[1])return makeArray(context.getElementsByTagName(query),extra);if(match[2]&&Expr.find.CLASS&&context.getElementsByClassName)return makeArray(context.getElementsByClassName(match[2]),extra)}if(9===context.nodeType){if("body"===query&&context.body)return makeArray([context.body],extra);if(match&&match[3]){var elem=context.getElementById(match[3]);if(!elem||!elem.parentNode)return makeArray([],extra);if(elem.id===match[3])return makeArray([elem],extra)}try{return makeArray(context.querySelectorAll(query),extra)}catch(qsaError){}}else if(1===context.nodeType&&"object"!==context.nodeName.toLowerCase()){var oldContext=context,old=context.getAttribute("id"),nid=old||id,hasParent=context.parentNode,relativeHierarchySelector=/^\s*[+~]/.test(query);old?nid=nid.replace(/'/g,"\\$&"):context.setAttribute("id",nid),relativeHierarchySelector&&hasParent&&(context=context.parentNode);try{if(!relativeHierarchySelector||hasParent)return makeArray(context.querySelectorAll("[id='"+nid+"'] "+query),extra)}catch(pseudoError){}finally{old||oldContext.removeAttribute("id")}}}return oldSizzle(query,context,extra,seed)};for(var prop in oldSizzle)Sizzle[prop]=oldSizzle[prop];div=null}}(),function(){var html=document.documentElement,matches=html.matchesSelector||html.mozMatchesSelector||html.webkitMatchesSelector||html.msMatchesSelector,pseudoWorks=!1;try{matches.call(document.documentElement,"[test!='']:sizzle")}catch(pseudoError){pseudoWorks=!0}matches&&(Sizzle.matchesSelector=function(node,expr){if(expr=expr.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']"),!Sizzle.isXML(node))try{if(pseudoWorks||!Expr.match.PSEUDO.test(expr)&&!/!=/.test(expr))return matches.call(node,expr)}catch(e){}return Sizzle(expr,null,null,[node]).length>0})}(),function(){var div=document.createElement("div");div.innerHTML="",div.getElementsByClassName&&0!==div.getElementsByClassName("e").length&&(div.lastChild.className="e",1!==div.getElementsByClassName("e").length&&(Expr.order.splice(1,0,"CLASS"),Expr.find.CLASS=function(match,context,isXML){return context.getElementsByClassName===undefined||isXML?undefined:context.getElementsByClassName(match[1])},div=null))}(),Sizzle.contains=document.documentElement.contains?function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:document.documentElement.compareDocumentPosition?function(a,b){return!!(16&a.compareDocumentPosition(b))}:function(){return!1},Sizzle.isXML=function(elem){var documentElement=(elem?elem.ownerDocument||elem:0).documentElement;return documentElement?"HTML"!==documentElement.nodeName:!1};var posProcess=function(selector,context){for(var match,tmpSet=[],later="",root=context.nodeType?[context]:context;match=Expr.match.PSEUDO.exec(selector);)later+=match[0],selector=selector.replace(Expr.match.PSEUDO,"");selector=Expr.relative[selector]?selector+"*":selector;for(var i=0,l=root.length;l>i;i++)Sizzle(selector,root[i],tmpSet);return Sizzle.filter(later,tmpSet)};jQuery.find=Sizzle,jQuery.expr=Sizzle.selectors,jQuery.expr[":"]=jQuery.expr.filters,jQuery.unique=Sizzle.uniqueSort,jQuery.text=Sizzle.getText,jQuery.isXMLDoc=Sizzle.isXML,jQuery.contains=Sizzle.contains}();var runtil=/Until$/,rparentsprev=/^(?:parents|prevUntil|prevAll)/,rmultiselector=/,/,isSimple=/^.[^:#\[\.,]*$/,slice=Array.prototype.slice,POS=jQuery.expr.match.POS,guaranteedUnique={children:!0,contents:!0,next:!0,prev:!0};jQuery.fn.extend({find:function(selector){for(var ret=this.pushStack("","find",selector),length=0,i=0,l=this.length;l>i;i++)if(length=ret.length,jQuery.find(selector,this[i],ret),i>0)for(var n=length;ret.length>n;n++)for(var r=0;length>r;r++)if(ret[r]===ret[n]){ret.splice(n--,1);break}return ret},has:function(target){var targets=jQuery(target);return this.filter(function(){for(var i=0,l=targets.length;l>i;i++)if(jQuery.contains(this,targets[i]))return!0})},not:function(selector){return this.pushStack(winnow(this,selector,!1),"not",selector)},filter:function(selector){return this.pushStack(winnow(this,selector,!0),"filter",selector)},is:function(selector){return!!selector&&jQuery.filter(selector,this).length>0},closest:function(selectors,context){var i,l,ret=[],cur=this[0];if(jQuery.isArray(selectors)){var match,selector,matches={},level=1;if(cur&&selectors.length){for(i=0,l=selectors.length;l>i;i++)selector=selectors[i],matches[selector]||(matches[selector]=jQuery.expr.match.POS.test(selector)?jQuery(selector,context||this.context):selector);for(;cur&&cur.ownerDocument&&cur!==context;){for(selector in matches)match=matches[selector],(match.jquery?match.index(cur)>-1:jQuery(cur).is(match))&&ret.push({selector:selector,elem:cur,level:level});cur=cur.parentNode,level++}}return ret}var pos=POS.test(selectors)?jQuery(selectors,context||this.context):null;for(i=0,l=this.length;l>i;i++)for(cur=this[i];cur;){if(pos?pos.index(cur)>-1:jQuery.find.matchesSelector(cur,selectors)){ret.push(cur);break}if(cur=cur.parentNode,!cur||!cur.ownerDocument||cur===context)break}return ret=ret.length>1?jQuery.unique(ret):ret,this.pushStack(ret,"closest",selectors)},index:function(elem){return elem&&"string"!=typeof elem?jQuery.inArray(elem.jquery?elem[0]:elem,this):jQuery.inArray(this[0],elem?jQuery(elem):this.parent().children())},add:function(selector,context){var set="string"==typeof selector?jQuery(selector,context):jQuery.makeArray(selector),all=jQuery.merge(this.get(),set);return this.pushStack(isDisconnected(set[0])||isDisconnected(all[0])?all:jQuery.unique(all))},andSelf:function(){return this.add(this.prevObject)}}),jQuery.each({parent:function(elem){var parent=elem.parentNode;return parent&&11!==parent.nodeType?parent:null},parents:function(elem){return jQuery.dir(elem,"parentNode")},parentsUntil:function(elem,i,until){return jQuery.dir(elem,"parentNode",until)},next:function(elem){return jQuery.nth(elem,2,"nextSibling")},prev:function(elem){return jQuery.nth(elem,2,"previousSibling")},nextAll:function(elem){return jQuery.dir(elem,"nextSibling")},prevAll:function(elem){return jQuery.dir(elem,"previousSibling")},nextUntil:function(elem,i,until){return jQuery.dir(elem,"nextSibling",until)},prevUntil:function(elem,i,until){return jQuery.dir(elem,"previousSibling",until)},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem)},children:function(elem){return jQuery.sibling(elem.firstChild)},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes)}},function(name,fn){jQuery.fn[name]=function(until,selector){var ret=jQuery.map(this,fn,until),args=slice.call(arguments);return runtil.test(name)||(selector=until),selector&&"string"==typeof selector&&(ret=jQuery.filter(selector,ret)),ret=this.length>1&&!guaranteedUnique[name]?jQuery.unique(ret):ret,(this.length>1||rmultiselector.test(selector))&&rparentsprev.test(name)&&(ret=ret.reverse()),this.pushStack(ret,name,args.join(","))}}),jQuery.extend({filter:function(expr,elems,not){return not&&(expr=":not("+expr+")"),1===elems.length?jQuery.find.matchesSelector(elems[0],expr)?[elems[0]]:[]:jQuery.find.matches(expr,elems)},dir:function(elem,dir,until){for(var matched=[],cur=elem[dir];cur&&9!==cur.nodeType&&(until===undefined||1!==cur.nodeType||!jQuery(cur).is(until));)1===cur.nodeType&&matched.push(cur),cur=cur[dir];return matched},nth:function(cur,result,dir){result=result||1;for(var num=0;cur&&(1!==cur.nodeType||++num!==result);cur=cur[dir]);return cur},sibling:function(n,elem){for(var r=[];n;n=n.nextSibling)1===n.nodeType&&n!==elem&&r.push(n);return r}});var rinlinejQuery=/ jQuery\d+="(?:\d+|null)"/g,rleadingWhitespace=/^\s+/,rxhtmlTag=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,rtagName=/<([\w:]+)/,rtbody=/",""],legend:[1,""],thead:[1,""],tr:[2,""],td:[3,""],col:[2,""],area:[1,""],_default:[0,"",""]};wrapMap.optgroup=wrapMap.option,wrapMap.tbody=wrapMap.tfoot=wrapMap.colgroup=wrapMap.caption=wrapMap.thead,wrapMap.th=wrapMap.td,jQuery.support.htmlSerialize||(wrapMap._default=[1,"div","
"]),jQuery.fn.extend({text:function(text){return jQuery.isFunction(text)?this.each(function(i){var self=jQuery(this);self.text(text.call(this,i,self.text()))}):"object"!=typeof text&&text!==undefined?this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text)):jQuery.text(this)},wrapAll:function(html){if(jQuery.isFunction(html))return this.each(function(i){jQuery(this).wrapAll(html.call(this,i))});if(this[0]){var wrap=jQuery(html,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&wrap.insertBefore(this[0]),wrap.map(function(){for(var elem=this;elem.firstChild&&1===elem.firstChild.nodeType;)elem=elem.firstChild;return elem}).append(this)}return this},wrapInner:function(html){return jQuery.isFunction(html)?this.each(function(i){jQuery(this).wrapInner(html.call(this,i))}):this.each(function(){var self=jQuery(this),contents=self.contents();contents.length?contents.wrapAll(html):self.append(html)})},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html)})},unwrap:function(){return this.parent().each(function(){jQuery.nodeName(this,"body")||jQuery(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(elem){1===this.nodeType&&this.appendChild(elem)})},prepend:function(){return this.domManip(arguments,!0,function(elem){1===this.nodeType&&this.insertBefore(elem,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(elem){this.parentNode.insertBefore(elem,this)});if(arguments.length){var set=jQuery(arguments[0]);return set.push.apply(set,this.toArray()),this.pushStack(set,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(elem){this.parentNode.insertBefore(elem,this.nextSibling)});if(arguments.length){var set=this.pushStack(this,"after",arguments);return set.push.apply(set,jQuery(arguments[0]).toArray()),set}},remove:function(selector,keepData){for(var elem,i=0;null!=(elem=this[i]);i++)(!selector||jQuery.filter(selector,[elem]).length)&&(keepData||1!==elem.nodeType||(jQuery.cleanData(elem.getElementsByTagName("*")),jQuery.cleanData([elem])),elem.parentNode&&elem.parentNode.removeChild(elem));return this},empty:function(){for(var elem,i=0;null!=(elem=this[i]);i++)for(1===elem.nodeType&&jQuery.cleanData(elem.getElementsByTagName("*"));elem.firstChild;)elem.removeChild(elem.firstChild);return this},clone:function(dataAndEvents,deepDataAndEvents){return dataAndEvents=null==dataAndEvents?!1:dataAndEvents,deepDataAndEvents=null==deepDataAndEvents?dataAndEvents:deepDataAndEvents,this.map(function(){return jQuery.clone(this,dataAndEvents,deepDataAndEvents)})},html:function(value){if(value===undefined)return this[0]&&1===this[0].nodeType?this[0].innerHTML.replace(rinlinejQuery,""):null;if("string"!=typeof value||rnocache.test(value)||!jQuery.support.leadingWhitespace&&rleadingWhitespace.test(value)||wrapMap[(rtagName.exec(value)||["",""])[1].toLowerCase()])jQuery.isFunction(value)?this.each(function(i){var self=jQuery(this);self.html(value.call(this,i,self.html()))}):this.empty().append(value);else{value=value.replace(rxhtmlTag,"<$1>$2>");try{for(var i=0,l=this.length;l>i;i++)1===this[i].nodeType&&(jQuery.cleanData(this[i].getElementsByTagName("*")),this[i].innerHTML=value)}catch(e){this.empty().append(value)}}return this},replaceWith:function(value){return this[0]&&this[0].parentNode?jQuery.isFunction(value)?this.each(function(i){var self=jQuery(this),old=self.html();self.replaceWith(value.call(this,i,old))}):("string"!=typeof value&&(value=jQuery(value).detach()),this.each(function(){var next=this.nextSibling,parent=this.parentNode;jQuery(this).remove(),next?jQuery(next).before(value):jQuery(parent).append(value)})):this.pushStack(jQuery(jQuery.isFunction(value)?value():value),"replaceWith",value)},detach:function(selector){return this.remove(selector,!0)},domManip:function(args,table,callback){var results,first,fragment,parent,value=args[0],scripts=[];if(!jQuery.support.checkClone&&3===arguments.length&&"string"==typeof value&&rchecked.test(value))return this.each(function(){jQuery(this).domManip(args,table,callback,!0)});if(jQuery.isFunction(value))return this.each(function(i){var self=jQuery(this);args[0]=value.call(this,i,table?self.html():undefined),self.domManip(args,table,callback)});if(this[0]){if(parent=value&&value.parentNode,results=jQuery.support.parentNode&&parent&&11===parent.nodeType&&parent.childNodes.length===this.length?{fragment:parent}:jQuery.buildFragment(args,this,scripts),fragment=results.fragment,first=1===fragment.childNodes.length?fragment=fragment.firstChild:fragment.firstChild){table=table&&jQuery.nodeName(first,"tr");for(var i=0,l=this.length,lastIndex=l-1;l>i;i++)callback.call(table?root(this[i],first):this[i],results.cacheable||l>1&&lastIndex>i?jQuery.clone(fragment,!0,!0):fragment)}scripts.length&&jQuery.each(scripts,evalScript)}return this}}),jQuery.buildFragment=function(args,nodes,scripts){var fragment,cacheable,cacheresults,doc=nodes&&nodes[0]?nodes[0].ownerDocument||nodes[0]:document;return 1===args.length&&"string"==typeof args[0]&&512>args[0].length&&doc===document&&"<"===args[0].charAt(0)&&!rnocache.test(args[0])&&(jQuery.support.checkClone||!rchecked.test(args[0]))&&(cacheable=!0,cacheresults=jQuery.fragments[args[0]],cacheresults&&1!==cacheresults&&(fragment=cacheresults)),fragment||(fragment=doc.createDocumentFragment(),jQuery.clean(args,doc,fragment,scripts)),cacheable&&(jQuery.fragments[args[0]]=cacheresults?fragment:1),{fragment:fragment,cacheable:cacheable}},jQuery.fragments={},jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(selector){var ret=[],insert=jQuery(selector),parent=1===this.length&&this[0].parentNode;if(parent&&11===parent.nodeType&&1===parent.childNodes.length&&1===insert.length)return insert[original](this[0]),this;for(var i=0,l=insert.length;l>i;i++){var elems=(i>0?this.clone(!0):this).get();jQuery(insert[i])[original](elems),ret=ret.concat(elems)}return this.pushStack(ret,name,insert.selector)}}),jQuery.extend({clone:function(elem,dataAndEvents,deepDataAndEvents){var srcElements,destElements,i,clone=elem.cloneNode(!0);if(!(jQuery.support.noCloneEvent&&jQuery.support.noCloneChecked||1!==elem.nodeType&&11!==elem.nodeType||jQuery.isXMLDoc(elem)))for(cloneFixAttributes(elem,clone),srcElements=getAll(elem),destElements=getAll(clone),i=0;srcElements[i];++i)cloneFixAttributes(srcElements[i],destElements[i]);if(dataAndEvents&&(cloneCopyEvent(elem,clone),deepDataAndEvents))for(srcElements=getAll(elem),destElements=getAll(clone),i=0;srcElements[i];++i)cloneCopyEvent(srcElements[i],destElements[i]);return clone},clean:function(elems,context,fragment,scripts){context=context||document,context.createElement===undefined&&(context=context.ownerDocument||context[0]&&context[0].ownerDocument||document);for(var elem,ret=[],i=0;null!=(elem=elems[i]);i++)if("number"==typeof elem&&(elem+=""),elem){if("string"!=typeof elem||rhtml.test(elem)){if("string"==typeof elem){elem=elem.replace(rxhtmlTag,"<$1>$2>");var tag=(rtagName.exec(elem)||["",""])[1].toLowerCase(),wrap=wrapMap[tag]||wrapMap._default,depth=wrap[0],div=context.createElement("div");for(div.innerHTML=wrap[1]+elem+wrap[2];depth--;)div=div.lastChild;if(!jQuery.support.tbody)for(var hasBody=rtbody.test(elem),tbody="table"!==tag||hasBody?""!==wrap[1]||hasBody?[]:div.childNodes:div.firstChild&&div.firstChild.childNodes,j=tbody.length-1;j>=0;--j)jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length&&tbody[j].parentNode.removeChild(tbody[j]);!jQuery.support.leadingWhitespace&&rleadingWhitespace.test(elem)&&div.insertBefore(context.createTextNode(rleadingWhitespace.exec(elem)[0]),div.firstChild),elem=div.childNodes}}else elem=context.createTextNode(elem);elem.nodeType?ret.push(elem):ret=jQuery.merge(ret,elem)}if(fragment)for(i=0;ret[i];i++)!scripts||!jQuery.nodeName(ret[i],"script")||ret[i].type&&"text/javascript"!==ret[i].type.toLowerCase()?(1===ret[i].nodeType&&ret.splice.apply(ret,[i+1,0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script")))),fragment.appendChild(ret[i])):scripts.push(ret[i].parentNode?ret[i].parentNode.removeChild(ret[i]):ret[i]);return ret},cleanData:function(elems){for(var data,id,elem,cache=jQuery.cache,internalKey=jQuery.expando,special=jQuery.event.special,deleteExpando=jQuery.support.deleteExpando,i=0;null!=(elem=elems[i]);i++)if((!elem.nodeName||!jQuery.noData[elem.nodeName.toLowerCase()])&&(id=elem[jQuery.expando])){if(data=cache[id]&&cache[id][internalKey],data&&data.events){for(var type in data.events)special[type]?jQuery.event.remove(elem,type):jQuery.removeEvent(elem,type,data.handle);data.handle&&(data.handle.elem=null)}deleteExpando?delete elem[jQuery.expando]:elem.removeAttribute&&elem.removeAttribute(jQuery.expando),delete cache[id]}}});var curCSS,getComputedStyle,currentStyle,ralpha=/alpha\([^)]*\)/i,ropacity=/opacity=([^)]*)/,rdashAlpha=/-([a-z])/gi,rupper=/([A-Z])/g,rnumpx=/^-?\d+(?:px)?$/i,rnum=/^-?\d/,cssShow={position:"absolute",visibility:"hidden",display:"block"},cssWidth=["Left","Right"],cssHeight=["Top","Bottom"],fcamelCase=function(all,letter){return letter.toUpperCase()};jQuery.fn.css=function(name,value){return 2===arguments.length&&value===undefined?this:jQuery.access(this,name,value,!0,function(elem,name,value){return value!==undefined?jQuery.style(elem,name,value):jQuery.css(elem,name)})},jQuery.extend({cssHooks:{opacity:{get:function(elem,computed){if(computed){var ret=curCSS(elem,"opacity","opacity");return""===ret?"1":ret}return elem.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0},cssProps:{"float":jQuery.support.cssFloat?"cssFloat":"styleFloat"},style:function(elem,name,value,extra){if(elem&&3!==elem.nodeType&&8!==elem.nodeType&&elem.style){var ret,origName=jQuery.camelCase(name),style=elem.style,hooks=jQuery.cssHooks[origName];if(name=jQuery.cssProps[origName]||origName,value===undefined)return hooks&&"get"in hooks&&(ret=hooks.get(elem,!1,extra))!==undefined?ret:style[name];if(!("number"==typeof value&&isNaN(value)||null==value||("number"!=typeof value||jQuery.cssNumber[origName]||(value+="px"),hooks&&"set"in hooks&&(value=hooks.set(elem,value))===undefined)))try{style[name]=value}catch(e){}}},css:function(elem,name,extra){var ret,origName=jQuery.camelCase(name),hooks=jQuery.cssHooks[origName];return name=jQuery.cssProps[origName]||origName,hooks&&"get"in hooks&&(ret=hooks.get(elem,!0,extra))!==undefined?ret:curCSS?curCSS(elem,name,origName):undefined},swap:function(elem,options,callback){var old={};for(var name in options)old[name]=elem.style[name],elem.style[name]=options[name];callback.call(elem);for(name in options)elem.style[name]=old[name]},camelCase:function(string){return string.replace(rdashAlpha,fcamelCase)}}),jQuery.curCSS=jQuery.css,jQuery.each(["height","width"],function(i,name){jQuery.cssHooks[name]={get:function(elem,computed,extra){var val;return computed?(0!==elem.offsetWidth?val=getWH(elem,name,extra):jQuery.swap(elem,cssShow,function(){val=getWH(elem,name,extra)}),0>=val&&(val=curCSS(elem,name,name),"0px"===val&¤tStyle&&(val=currentStyle(elem,name,name)),null!=val)?""===val||"auto"===val?"0px":val:0>val||null==val?(val=elem.style[name],""===val||"auto"===val?"0px":val):"string"==typeof val?val:val+"px"):undefined},set:function(elem,value){return rnumpx.test(value)?(value=parseFloat(value),value>=0?value+"px":undefined):value}}}),jQuery.support.opacity||(jQuery.cssHooks.opacity={get:function(elem,computed){return ropacity.test((computed&&elem.currentStyle?elem.currentStyle.filter:elem.style.filter)||"")?parseFloat(RegExp.$1)/100+"":computed?"1":""},set:function(elem,value){var style=elem.style;style.zoom=1;var opacity=jQuery.isNaN(value)?"":"alpha(opacity="+100*value+")",filter=style.filter||"";style.filter=ralpha.test(filter)?filter.replace(ralpha,opacity):style.filter+" "+opacity}}),document.defaultView&&document.defaultView.getComputedStyle&&(getComputedStyle=function(elem,newName,name){var ret,defaultView,computedStyle;return name=name.replace(rupper,"-$1").toLowerCase(),(defaultView=elem.ownerDocument.defaultView)?((computedStyle=defaultView.getComputedStyle(elem,null))&&(ret=computedStyle.getPropertyValue(name),""!==ret||jQuery.contains(elem.ownerDocument.documentElement,elem)||(ret=jQuery.style(elem,name))),ret):undefined}),document.documentElement.currentStyle&&(currentStyle=function(elem,name){var left,ret=elem.currentStyle&&elem.currentStyle[name],rsLeft=elem.runtimeStyle&&elem.runtimeStyle[name],style=elem.style;return!rnumpx.test(ret)&&rnum.test(ret)&&(left=style.left,rsLeft&&(elem.runtimeStyle.left=elem.currentStyle.left),style.left="fontSize"===name?"1em":ret||0,ret=style.pixelLeft+"px",style.left=left,rsLeft&&(elem.runtimeStyle.left=rsLeft)),""===ret?"auto":ret}),curCSS=getComputedStyle||currentStyle,jQuery.expr&&jQuery.expr.filters&&(jQuery.expr.filters.hidden=function(elem){var width=elem.offsetWidth,height=elem.offsetHeight;return 0===width&&0===height||!jQuery.support.reliableHiddenOffsets&&"none"===(elem.style.display||jQuery.css(elem,"display"))},jQuery.expr.filters.visible=function(elem){return!jQuery.expr.filters.hidden(elem)});var ajaxLocation,ajaxLocParts,r20=/%20/g,rbracket=/\[\]$/,rCRLF=/\r?\n/g,rhash=/#.*$/,rheaders=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,rinput=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,rlocalProtocol=/(?:^file|^widget|\-extension):$/,rnoContent=/^(?:GET|HEAD)$/,rprotocol=/^\/\//,rquery=/\?/,rscript=/