(function(){var a=Function.prototype.call,i=Object.prototype,l=Array.prototype.slice,j,m;if(!Function.prototype.bind)Function.prototype.bind=function(a){var f=this;if("function"!=typeof f)throw new TypeError;var e=l.call(arguments,1),c=function(){if(this instanceof c){var b=function(){};b.prototype=f.prototype;var b=new b,d=f.apply(b,e.concat(l.call(arguments)));return null!==d&&Object(d)===d?d:b}return f.apply(a,e.concat(l.call(arguments)))};return c};m=a.bind(i.toString);j=a.bind(i.hasOwnProperty); if(!Array.isArray)Array.isArray=function(a){return"[object Array]"==m(a)};if(!Array.prototype.forEach)Array.prototype.forEach=function(a,f){var e=s(this),c=0,b=e.length>>>0;if("[object Function]"!=m(a))throw new TypeError;for(;c>>0,b=Array(c);if("[object Function]"!=m(a))throw new TypeError;for(var d=0;d>>0,b=[];if("[object Function]"!=m(a))throw new TypeError;for(var d=0;d>>0;if("[object Function]"!=m(a))throw new TypeError;for(var b=0;b>>0;if("[object Function]"!=m(a))throw new TypeError; for(var b=0;b>>0;if("[object Function]"!=m(a))throw new TypeError;if(!e&&1==arguments.length)throw new TypeError;var c=0,b;if(2<=arguments.length)b=arguments[1];else{do{if(c in f){b=f[c++];break}if(++c>=e)throw new TypeError;}while(1)}for(;c>>0;if("[object Function]"!=m(a))throw new TypeError;if(!e&&1==arguments.length)throw new TypeError;var c,e=e-1;if(2<=arguments.length)c=arguments[1];else{do{if(e in f){c=f[e--];break}if(0>--e)throw new TypeError;}while(1)}do e in this&&(c=a.call(void 0,c,f[e],e,f));while(e--);return c};if(!Array.prototype.indexOf)Array.prototype.indexOf=function(a){var f=s(this),e=f.length>>>0;if(!e)return-1;var c=0;1>>0;if(!e)return-1;var c=e-1;1e&&(a[f]="0"+e);return a.slice(0,3).join("-")+"T"+a.slice(3).join(":")+"."+("000"+this.getUTCMilliseconds()).slice(-3)+"Z"};if(!Date.now)Date.now=function(){return(new Date).getTime()};if(!Date.prototype.toJSON)Date.prototype.toJSON=function(){if("function"!=typeof this.toISOString)throw new TypeError;return this.toISOString()};a="\t\n\u000b\u000c\r \u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff"; if(!String.prototype.trim||a.trim()){var a="["+a+"]",x=RegExp("^"+a+a+"*"),t=RegExp(a+a+"*$");String.prototype.trim=function(){return(""+this).replace(x,"").replace(t,"")}}if("0".split(void 0,0).length){var v=String.prototype.split;String.prototype.split=function(a,f){return void 0===a&&0===f?[]:v.apply(this,arguments)}}if("".substr&&"b"!=="0b".substr(-1)){var y=String.prototype.substr;String.prototype.substr=function(a,f){return y.call(this,0>a?0>(a=this.length+a)?0:a:a,f)}}var p=function(a){a=+a; a!==a?a=-1:0!==a&&a!==1/0&&a!==-(1/0)&&(a=(0l&&7