(function(){function N(b,n,m){if(b===n){return b!==0||1/b==1/n}if(b==null||n==null){return b===n}if(b._chain){b=b._wrapped}if(n._chain){n=n._wrapped}if(af.isFunction(b.isEqual)){return b.isEqual(n)}if(af.isFunction(n.isEqual)){return n.isEqual(b)}var l=typeof b;if(l!=typeof n){return false}if(!b!=!n){return false}if(af.isNaN(b)){return af.isNaN(n)}var j=af.isString(b),k=af.isString(n);if(j||k){return j&&k&&String(b)==String(n)}j=af.isNumber(b);k=af.isNumber(n);if(j||k){return j&&k&&+b==+n}j=af.isBoolean(b);k=af.isBoolean(n);if(j||k){return j&&k&&+b==+n}j=af.isDate(b);k=af.isDate(n);if(j||k){return j&&k&&b.getTime()==n.getTime()}j=af.isRegExp(b);k=af.isRegExp(n);if(j||k){return j&&k&&b.source==n.source&&b.global==n.global&&b.multiline==n.multiline&&b.ignoreCase==n.ignoreCase}if(l!="object"){return false}if(b.length!==n.length){return false}if(b.constructor!==n.constructor){return false}for(l=m.length;l--;){if(m[l]==b){return true}}m.push(b);var l=0,j=true,i;for(i in b){if(aa.call(b,i)&&(l++,!(j=aa.call(n,i)&&N(b[i],n[i],m)))){break}}if(j){for(i in n){if(aa.call(n,i)&&!l--){break}}j=!l}m.pop();return j}var T=this,M=T._,Y={},ac=Array.prototype,X=Object.prototype,ae=ac.slice,K=ac.unshift,ab=X.toString,aa=X.hasOwnProperty,L=ac.forEach,h=ac.map,f=ac.reduce,d=ac.reduceRight,a=ac.filter,W=ac.every,V=ac.some,U=ac.indexOf,S=ac.lastIndexOf,X=Array.isArray,g=Object.keys,R=Function.prototype.bind,af=function(b){return new Z(b)};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports){exports=module.exports=af}exports._=af}else{typeof define==="function"&&define.amd?define("underscore",function(){return af}):T._=af}af.VERSION="1.2.1";var ad=af.each=af.forEach=function(j,m,i){if(j!=null){if(L&&j.forEach===L){j.forEach(m,i)}else{if(j.length===+j.length){for(var l=0,k=j.length;l<k;l++){if(l in j&&m.call(i,j[l],l,j)===Y){break}}}else{for(l in j){if(aa.call(j,l)&&m.call(i,j[l],l,j)===Y){break}}}}}};af.map=function(j,l,i){var k=[];if(j==null){return k}if(h&&j.map===h){return j.map(l,i)}ad(j,function(b,n,m){k[k.length]=l.call(i,b,n,m)});return k};af.reduce=af.foldl=af.inject=function(b,l,k,j){var i=k!==void 0;b==null&&(b=[]);if(f&&b.reduce===f){return j&&(l=af.bind(l,j)),i?b.reduce(l,k):b.reduce(l)}ad(b,function(n,m,o){i?k=l.call(j,k,n,m,o):(k=n,i=true)});if(!i){throw new TypeError("Reduce of empty array with no initial value")}return k};af.reduceRight=af.foldr=function(b,k,j,i){b==null&&(b=[]);if(d&&b.reduceRight===d){return i&&(k=af.bind(k,i)),j!==void 0?b.reduceRight(k,j):b.reduceRight(k)}b=(af.isArray(b)?b.slice():af.toArray(b)).reverse();return af.reduce(b,k,j,i)};af.find=af.detect=function(j,l,i){var k;Q(j,function(b,n,m){if(l.call(i,b,n,m)){return k=b,true}});return k};af.filter=af.select=function(j,l,i){var k=[];if(j==null){return k}if(a&&j.filter===a){return j.filter(l,i)}ad(j,function(b,n,m){l.call(i,b,n,m)&&(k[k.length]=b)});return k};af.reject=function(j,l,i){var k=[];if(j==null){return k}ad(j,function(b,n,m){l.call(i,b,n,m)||(k[k.length]=b)});return k};af.every=af.all=function(j,l,i){var k=true;if(j==null){return k}if(W&&j.every===W){return j.every(l,i)}ad(j,function(b,n,m){if(!(k=k&&l.call(i,b,n,m))){return Y}});return k};var Q=af.some=af.any=function(b,k,j){var k=k||af.identity,i=false;if(b==null){return i}if(V&&b.some===V){return b.some(k,j)}ad(b,function(m,l,n){if(i|=k.call(j,m,l,n)){return Y}});return !!i};af.include=af.contains=function(j,k){var i=false;if(j==null){return i}return U&&j.indexOf===U?j.indexOf(k)!=-1:i=Q(j,function(b){if(b===k){return true}})};af.invoke=function(b,j){var i=ae.call(arguments,2);return af.map(b,function(k){return(j.call?j||k:k[j]).apply(k,i)})};af.pluck=function(b,i){return af.map(b,function(j){return j[i]})};af.max=function(b,k,j){if(!k&&af.isArray(b)){return Math.max.apply(Math,b)}if(!k&&af.isEmpty(b)){return -Infinity}var i={computed:-Infinity};ad(b,function(m,l,n){l=k?k.call(j,m,l,n):m;l>=i.computed&&(i={value:m,computed:l})});return i.value};af.min=function(b,k,j){if(!k&&af.isArray(b)){return Math.min.apply(Math,b)}if(!k&&af.isEmpty(b)){return Infinity}var i={computed:Infinity};ad(b,function(m,l,n){l=k?k.call(j,m,l,n):m;l<i.computed&&(i={value:m,computed:l})});return i.value};af.shuffle=function(j){var i=[],k;ad(j,function(b,l){l==0?i[0]=b:(k=Math.floor(Math.random()*(l+1)),i[l]=i[k],i[k]=b)});return i};af.sortBy=function(b,j,i){return af.pluck(af.map(b,function(l,k,m){return{value:l,criteria:j.call(i,l,k,m)}}).sort(function(l,k){var n=l.criteria,m=k.criteria;return n<m?-1:n>m?1:0}),"value")};af.groupBy=function(b,k){var j={},i=af.isFunction(k)?k:function(l){return l[k]};ad(b,function(m,l){var n=i(m,l);(j[n]||(j[n]=[])).push(m)});return j};af.sortedIndex=function(b,m,l){l||(l=af.identity);for(var k=0,i=b.length;k<i;){var j=k+i>>1;l(b[j])<l(m)?k=j+1:i=j}return k};af.toArray=function(b){return !b?[]:b.toArray?b.toArray():af.isArray(b)?ae.call(b):af.isArguments(b)?ae.call(b):af.values(b)};af.size=function(b){return af.toArray(b).length};af.first=af.head=function(j,i,k){return i!=null&&!k?ae.call(j,0,i):j[0]};af.initial=function(j,i,k){return ae.call(j,0,j.length-(i==null||k?1:i))};af.last=function(j,i,k){return i!=null&&!k?ae.call(j,j.length-i):j[j.length-1]};af.rest=af.tail=function(j,i,k){return ae.call(j,i==null||k?1:i)};af.compact=function(b){return af.filter(b,function(i){return !!i})};af.flatten=function(b,i){return af.reduce(b,function(j,k){if(af.isArray(k)){return j.concat(i?k:af.flatten(k))}j[j.length]=k;return j},[])};af.without=function(b){return af.difference(b,ae.call(arguments,1))};af.uniq=af.unique=function(b,k,j){var j=j?af.map(b,j):b,i=[];af.reduce(j,function(n,m,l){if(0==l||(k===true?af.last(n)!=m:!af.include(n,m))){n[n.length]=m,i[i.length]=b[l]}return n},[]);return i};af.union=function(){return af.uniq(af.flatten(arguments,true))};af.intersection=af.intersect=function(b){var i=ae.call(arguments,1);return af.filter(af.uniq(b),function(j){return af.every(i,function(k){return af.indexOf(k,j)>=0})})};af.difference=function(b,i){return af.filter(b,function(j){return !af.include(i,j)})};af.zip=function(){for(var b=ae.call(arguments),k=af.max(af.pluck(b,"length")),j=Array(k),i=0;i<k;i++){j[i]=af.pluck(b,""+i)}return j};af.indexOf=function(b,k,j){if(b==null){return -1}var i;if(j){return j=af.sortedIndex(b,k),b[j]===k?j:-1}if(U&&b.indexOf===U){return b.indexOf(k)}for(j=0,i=b.length;j<i;j++){if(b[j]===k){return j}}return -1};af.lastIndexOf=function(j,i){if(j==null){return -1}if(S&&j.lastIndexOf===S){return j.lastIndexOf(i)}for(var k=j.length;k--;){if(j[k]===i){return k}}return -1};af.range=function(j,i,n){arguments.length<=1&&(i=j||0,j=0);for(var n=arguments[2]||1,m=Math.max(Math.ceil((i-j)/n),0),k=0,l=Array(m);k<m;){l[k++]=j,j+=n}return l};var P=function(){};af.bind=function(b,k){var j,i;if(b.bind===R&&R){return R.apply(b,ae.call(arguments,1))}if(!af.isFunction(b)){throw new TypeError}i=ae.call(arguments,2);return j=function(){if(!(this instanceof j)){return b.apply(k,i.concat(ae.call(arguments)))}P.prototype=b.prototype;var l=new P,m=b.apply(l,i.concat(ae.call(arguments)));return Object(m)===m?m:l}};af.bindAll=function(b){var i=ae.call(arguments,1);i.length==0&&(i=af.functions(b));ad(i,function(j){b[j]=af.bind(b[j],b)});return b};af.memoize=function(b,j){var i={};j||(j=af.identity);return function(){var k=j.apply(this,arguments);return aa.call(i,k)?i[k]:i[k]=b.apply(this,arguments)}};af.delay=function(j,i){var k=ae.call(arguments,2);return setTimeout(function(){return j.apply(j,k)},i)};af.defer=function(b){return af.delay.apply(af,[b,1].concat(ae.call(arguments,1)))};af.throttle=function(b,n){var m,l,j,k,i;i=af.debounce(function(){k=false},n);return function(){l=this;j=arguments;var o;m||(m=setTimeout(function(){m=null;b.apply(l,j);i()},n));k||b.apply(l,j);i&&i();k=true}};af.debounce=function(j,i){var k;return function(){var l=this,b=arguments;clearTimeout(k);k=setTimeout(function(){k=null;j.apply(l,b)},i)}};af.once=function(j){var i=false,k;return function(){if(i){return k}i=true;return k=j.apply(this,arguments)}};af.wrap=function(j,i){return function(){var b=[j].concat(ae.call(arguments));return i.apply(this,b)}};af.compose=function(){var b=ae.call(arguments);return function(){for(var i=ae.call(arguments),j=b.length-1;j>=0;j--){i=[b[j].apply(this,i)]}return i[0]}};af.after=function(j,i){return function(){if(--j<1){return i.apply(this,arguments)}}};af.keys=g||function(j){if(j!==Object(j)){throw new TypeError("Invalid object")}var i=[],k;for(k in j){aa.call(j,k)&&(i[i.length]=k)}return i};af.values=function(b){return af.map(b,af.identity)};af.functions=af.methods=function(b){var j=[],i;for(i in b){af.isFunction(b[i])&&j.push(i)}return j.sort()};af.extend=function(b){ad(ae.call(arguments,1),function(i){for(var j in i){i[j]!==void 0&&(b[j]=i[j])}});return b};af.defaults=function(b){ad(ae.call(arguments,1),function(i){for(var j in i){b[j]==null&&(b[j]=i[j])}});return b};af.clone=function(b){return !af.isObject(b)?b:af.isArray(b)?b.slice():af.extend({},b)};af.tap=function(j,i){i(j);return j};af.isEqual=function(j,i){return N(j,i,[])};af.isEmpty=function(b){if(af.isArray(b)||af.isString(b)){return b.length===0}for(var i in b){if(aa.call(b,i)){return false}}return true};af.isElement=function(b){return !!(b&&b.nodeType==1)};af.isArray=X||function(b){return ab.call(b)=="[object Array]"};af.isObject=function(b){return b===Object(b)};af.isArguments=ab.call(arguments)=="[object Arguments]"?function(b){return ab.call(b)=="[object Arguments]"}:function(b){return !(!b||!aa.call(b,"callee"))};af.isFunction=function(b){return ab.call(b)=="[object Function]"};af.isString=function(b){return ab.call(b)=="[object String]"};af.isNumber=function(b){return ab.call(b)=="[object Number]"};af.isNaN=function(b){return b!==b};af.isBoolean=function(b){return b===true||b===false||ab.call(b)=="[object Boolean]"};af.isDate=function(b){return ab.call(b)=="[object Date]"};af.isRegExp=function(b){return ab.call(b)=="[object RegExp]"};af.isNull=function(b){return b===null};af.isUndefined=function(b){return b===void 0};af.noConflict=function(){T._=M;return this};af.identity=function(b){return b};af.times=function(j,i,l){for(var k=0;k<j;k++){i.call(l,k)}};af.escape=function(b){return(""+b).replace(/&(?!\w+;|#\d+;|#x[\da-f]+;)/gi,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/\//g,"&#x2F;")};af.mixin=function(b){ad(af.functions(b),function(i){e(i,af[i]=b[i])})};var c=0;af.uniqueId=function(j){var i=c++;return j?j+i:i};af.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};af.template=function(b,j){var i=af.templateSettings,i="var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('"+b.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(i.escape,function(l,k){return"',_.escape("+k.replace(/\\'/g,"'")+"),'"}).replace(i.interpolate,function(l,k){return"',"+k.replace(/\\'/g,"'")+",'"}).replace(i.evaluate||null,function(l,k){return"');"+k.replace(/\\'/g,"'").replace(/[\r\n\t]/g," ")+"__p.push('"}).replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/\t/g,"\\t")+"');}return __p.join('');",i=new Function("obj",i);return j?i(j):i};var Z=function(b){this._wrapped=b};af.prototype=Z.prototype;var O=function(b,i){return i?af(b).chain():b},e=function(b,i){Z.prototype[b]=function(){var j=ae.call(arguments);K.call(j,this._wrapped);return O(i.apply(af,j),this._chain)}};af.mixin(af);ad("pop,push,reverse,shift,sort,splice,unshift".split(","),function(j){var i=ac[j];Z.prototype[j]=function(){i.apply(this._wrapped,arguments);return O(this._wrapped,this._chain)}});ad(["concat","join","slice"],function(j){var i=ac[j];Z.prototype[j]=function(){return O(i.apply(this._wrapped,arguments),this._chain)}});Z.prototype.chain=function(){this._chain=true;return this};Z.prototype.value=function(){return this._wrapped}})();
