diff --git a/build.js b/build.js index 9939219ce..ae96892d4 100755 --- a/build.js +++ b/build.js @@ -135,7 +135,7 @@ 'range': [], 'reduce': ['forEach'], 'reduceRight': ['forEach', 'keys'], - 'reject': ['identity'], + 'reject': ['filter'], 'rest': [], 'result': ['isFunction'], 'shuffle': ['forEach'], @@ -1191,8 +1191,8 @@ // simplify DOM node check from `_.isEqual` source = source.replace(/(if *\(className *!= *objectClass).+?noNodeClass[\s\S]+?{/, '$1) {'); - // remove "exit early" feature from `_.each` - source = source.replace(/( +)var baseIteratorOptions *=[\s\S]+?\n\1.+?;/, function(match) { + // remove "exit early" feature from `_.forEach`, `_.forIn`, and `_.forOwn` + source = source.replace(/( +)var forEachIteratorOptions *=[\s\S]+?\n\1.+?;/, function(match) { return match.replace(/if *\(callback[^']+/, 'callback(value, index, collection)'); }); diff --git a/lodash.js b/lodash.js index 370187d3a..28f571c15 100644 --- a/lodash.js +++ b/lodash.js @@ -422,7 +422,7 @@ * Reusable iterator options shared by `every`, `filter`, forEach`, `forIn`, * `forOwn`, `map`, `reject`, and `some`. */ - var baseIteratorOptions = { + var forEachIteratorOptions = { 'args': 'collection, callback, thisArg', 'top': 'callback = createCallback(callback, thisArg)', 'inLoop': 'if (callback(value, index, collection) === false) return result' @@ -446,21 +446,10 @@ 'bottom': ' }\n}' }; - /** Reusable iterator options for `filter` and `reject` */ - var filterIteratorOptions = { - 'init': '[]', - 'inLoop': 'callback(value, index, collection) && result.push(value)' - }; - - /** Reusable iterator options for `forEach`, `forIn`, and `forOwn` */ - var forEachIteratorOptions = { - 'top': 'callback = createCallback(callback, thisArg)' - }; - /** Reusable iterator options for `forIn` and `forOwn` */ var forOwnIteratorOptions = { 'inLoop': { - 'object': baseIteratorOptions.inLoop + 'object': forEachIteratorOptions.inLoop } }; @@ -766,7 +755,7 @@ * }); * // => alerts 'name' and 'bark' (order is not guaranteed) */ - var forIn = createIterator(baseIteratorOptions, forEachIteratorOptions, forOwnIteratorOptions, { + var forIn = createIterator(forEachIteratorOptions, forOwnIteratorOptions, { 'useHas': false }); @@ -790,7 +779,7 @@ * }); * // => alerts '0', '1', and 'length' (order is not guaranteed) */ - var forOwn = createIterator(baseIteratorOptions, forEachIteratorOptions, forOwnIteratorOptions); + var forOwn = createIterator(forEachIteratorOptions, forOwnIteratorOptions); /** * Checks if `value` is an `arguments` object. @@ -1937,7 +1926,7 @@ * _.every([true, 1, null, 'yes'], Boolean); * // => false */ - var every = createIterator(baseIteratorOptions, everyIteratorOptions); + var every = createIterator(forEachIteratorOptions, everyIteratorOptions); /** * Examines each element in a `collection`, returning an array of all elements @@ -1957,7 +1946,10 @@ * var evens = _.filter([1, 2, 3, 4, 5, 6], function(num) { return num % 2 == 0; }); * // => [2, 4, 6] */ - var filter = createIterator(baseIteratorOptions, filterIteratorOptions); + var filter = createIterator(forEachIteratorOptions, { + 'init': '[]', + 'inLoop': 'callback(value, index, collection) && result.push(value)' + }); /** * Examines each element in a `collection`, returning the first one the `callback` @@ -2010,7 +2002,7 @@ * _.forEach({ 'one': 1, 'two': 2, 'three': 3 }, alert); * // => alerts each number (order is not guaranteed) */ - var forEach = createIterator(baseIteratorOptions, forEachIteratorOptions); + var forEach = createIterator(forEachIteratorOptions); /** * Creates an object composed of keys returned from running each element of @@ -2102,7 +2094,7 @@ * _.map({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { return num * 3; }); * // => [3, 6, 9] (order is not guaranteed) */ - var map = createIterator(baseIteratorOptions, { + var map = createIterator(forEachIteratorOptions, { 'init': 'collection || []', 'beforeLoop': { 'array': 'result = Array(length)', @@ -2321,9 +2313,12 @@ * var odds = _.reject([1, 2, 3, 4, 5, 6], function(num) { return num % 2 == 0; }); * // => [1, 3, 5] */ - var reject = createIterator(baseIteratorOptions, filterIteratorOptions, { - 'inLoop': '!' + filterIteratorOptions.inLoop - }); + function reject(collection, callback, thisArg) { + callback = createCallback(callback, thisArg); + return filter(collection, function(value, index, collection) { + return !callback(value, index, collection); + }); + } /** * Creates an array of shuffled `array` values, using a version of the @@ -2396,7 +2391,7 @@ * _.some([null, 0, 'yes', false]); * // => true */ - var some = createIterator(baseIteratorOptions, everyIteratorOptions, { + var some = createIterator(forEachIteratorOptions, everyIteratorOptions, { 'init': 'false', 'inLoop': everyIteratorOptions.inLoop.replace('!', '') }); diff --git a/lodash.min.js b/lodash.min.js index c23cbb967..b0f490cd3 100644 --- a/lodash.min.js +++ b/lodash.min.js @@ -6,35 +6,35 @@ ,a=s?this:t;return i||(e=t[o]),n.length&&(u=u.length?n.concat(ct.call(u)):n),this instanceof r?(p.prototype=e.prototype,a=new p,(u=e.apply(a,u))&&zt[typeof u]?u:a):e.apply(a,u)}var i=m(e),s=!n,o=e;return s&&(n=t),r}function f(e,n){return e?"function"!=typeof e?function(t){return t[e]}:n!==t?function(t,r,i){return e.call(n,t,r,i)}:e:F}function l(){for(var e={e:"",g:Ot,i:"",j:qt,m:Dt,n:Bt,o:rt,p:"",q:n,r:Rt,c:{d:""},l:{d:""}},t,i=-1;t=arguments[++i];)for(var s in t){var o=t[s];/d|h/.test(s)?("string"==typeof o&&(o={b:o,k:o}),e.c[s]=o.b,e.l[s]=o.k):e[s]=o}t=e.a;if("d"!=(e.f=/^[^,]+/.exec(t)[0])||!e.c.h)e.c=r;i="",e.r&&(i+="'use strict';"),i+="var h,u,i="+e.f+",p="+(e.i||e.f)+";if(!"+e.f+")return p;"+e.p+";",e.c&&(i+="var j=i.length;h=-1;",e.l&&(i+="if(j===+j){"),e.n&&(i+="if(t.call(i)==r){i=i.split('')}"),i+=e.c.d+";while(++hs;s++)i+="h='"+e.o[s]+"';if(","constructor"==e.o[s]&&(i+="!(f&&f.prototype===i)&&"),i+="g.call(i,h)){u=i[h];"+ -e.l.h+"}"}if(e.c||e.m)i+="}"}return i+=e.e+";return p",Function("v,e,forIn,g,x,y,z,k,o,r,t","return function("+t+"){"+i+"}")(j,f,Gt,at,v,m,zt,mt,lt,kt,ht)}function c(e){return"\\"+Wt[e]}function h(e){return tn[e]}function p(){}function d(e){return nn[e]}function v(e){return ht.call(e)==wt}function m(e){return"function"==typeof e}function g(e){var t=i;if(!e||"object"!=typeof e||v(e))return t;var n=e.constructor;return(!jt||"function"==typeof e.toString||"string"!=typeof (e+""))&&(!m(n)||n instanceof -n)?_t?(Gt(e,function(e,n,r){return t=!at.call(r,n),i}),t===i):(Gt(e,function(e,n){t=n}),t===i||at.call(e,t)):t}function y(e){var t=[];return Yt(e,function(e,n){t.push(n)}),t}function b(e,t,n,s,o){if(e==r)return e;n&&(t=i);if(n=zt[typeof e]){var u=ht.call(e);if(!Ut[u]||Pt&&v(e))return e;var a=u==Et,n=a||(u==Nt?en(e):n)}if(!n||!t)return n?a?ct.call(e):sn({},e):e;n=e.constructor;switch(u){case St:case xt:return new n(+e);case Tt:case kt:return new n(e);case Ct:return n(e.source,G.exec(e))}s||(s=[]), -o||(o=[]);for(u=s.length;u--;)if(s[u]==e)return o[u];var f=a?n(e.length):{};return s.push(e),o.push(f),(a?fn:Yt)(e,function(e,n){f[n]=b(e,t,r,s,o)}),f}function w(e){var t=[];return Gt(e,function(e,n){m(e)&&t.push(n)}),t.sort()}function E(e){var t={};return Yt(e,function(e,n){t[e]=n}),t}function S(e,t,s,o){if(e===t)return 0!==e||1/e==1/t;if(e==r||t==r)return e===t;var u=ht.call(e);if(u!=ht.call(t))return i;switch(u){case St:case xt:return+e==+t;case Tt:return e!=+e?t!=+t:0==e?1/e==1/t:e==+t;case Ct +e.l.h+"}"}if(e.c||e.m)i+="}"}return i+=e.e+";return p",Function("v,e,forIn,g,x,y,z,k,o,r,t","return function("+t+"){"+i+"}")(j,f,Kt,at,v,m,zt,mt,lt,kt,ht)}function c(e){return"\\"+Wt[e]}function h(e){return Zt[e]}function p(){}function d(e){return en[e]}function v(e){return ht.call(e)==wt}function m(e){return"function"==typeof e}function g(e){var t=i;if(!e||"object"!=typeof e||v(e))return t;var n=e.constructor;return(!jt||"function"==typeof e.toString||"string"!=typeof (e+""))&&(!m(n)||n instanceof +n)?_t?(Kt(e,function(e,n,r){return t=!at.call(r,n),i}),t===i):(Kt(e,function(e,n){t=n}),t===i||at.call(e,t)):t}function y(e){var t=[];return Qt(e,function(e,n){t.push(n)}),t}function b(e,t,n,s,o){if(e==r)return e;n&&(t=i);if(n=zt[typeof e]){var u=ht.call(e);if(!Ut[u]||Pt&&v(e))return e;var a=u==Et,n=a||(u==Nt?Yt(e):n)}if(!n||!t)return n?a?ct.call(e):nn({},e):e;n=e.constructor;switch(u){case St:case xt:return new n(+e);case Tt:case kt:return new n(e);case Ct:return n(e.source,G.exec(e))}s||(s=[]), +o||(o=[]);for(u=s.length;u--;)if(s[u]==e)return o[u];var f=a?n(e.length):{};return s.push(e),o.push(f),(a?un:Qt)(e,function(e,n){f[n]=b(e,t,r,s,o)}),f}function w(e){var t=[];return Kt(e,function(e,n){m(e)&&t.push(n)}),t.sort()}function E(e){var t={};return Qt(e,function(e,n){t[e]=n}),t}function S(e,t,s,o){if(e===t)return 0!==e||1/e==1/t;if(e==r||t==r)return e===t;var u=ht.call(e);if(u!=ht.call(t))return i;switch(u){case St:case xt:return+e==+t;case Tt:return e!=+e?t!=+t:0==e?1/e==1/t:e==+t;case Ct :case kt:return e==t+""}var a=u==Et||u==wt;if(Pt&&!a&&(a=v(e))&&!v(t))return i;if(!a){if(e.__wrapped__||t.__wrapped__)return S(e.__wrapped__||e,t.__wrapped__||t);if(u!=Nt||jt&&("function"!=typeof e.toString&&"string"==typeof (e+"")||"function"!=typeof t.toString&&"string"==typeof (t+"")))return i;var u=e.constructor,f=t.constructor;if(u!=f&&(!m(u)||!(u instanceof u&&m(f)&&f instanceof f)))return i}s||(s=[]),o||(o=[]);for(u=s.length;u--;)if(s[u]==e)return o[u]==t;var u=-1,f=n,l=0;s.push(e),o.push( -t);if(a){l=e.length;if(f=l==t.length)for(;l--&&(f=S(e[l],t[l],s,o)););return f}for(var c in e)if(at.call(e,c)&&(l++,!at.call(t,c)||!S(e[c],t[c],s,o)))return i;for(c in t)if(at.call(t,c)&&!(l--))return i;if(Ot)for(;7>++u;)if(c=rt[u],at.call(e,c)&&(!at.call(t,c)||!S(e[c],t[c],s,o)))return i;return n}function x(e,t,n){var s=arguments,o=0,a=2,f=s[3],l=s[4];n!=u&&(f=[],l=[],a=s.length);for(;++or&& -(r=n,o=e)});else for(;++io&&(o=e[i]);return o}function L(e,t){var n=[];return fn(e,function(e){n.push(e[t])}),n}function A(e,t,n,r){var s=3>arguments.length,t=f(t,r);return fn(e,function(e,r,o){n=s?(s=i,e):t(n,e,r,o)}),n}function O(e,t,n,r){var s=e,o=e?e.length:0,u=3>arguments.length;if(o!==+o)var a=on(e),o=a.length;else Bt&&ht.call(e)==kt&&(s=e.split(""));return fn(e,function(e,f,l){f=a?a[--o]:--o,n=u?(u=i,s[f]):t.call(r,n,s[f],f,l)}),n}function M(e,t,n){if(e)return t==r||n?e[0]:ct.call -(e,0,t)}function _(e,t){for(var n=-1,r=e?e.length:0,i=[];++nn?gt(0,i+n):n||0)-1;else if(n)return r=H(e,t),e[r]===t?r:-1;for(;++r>>1,n(e[r])>>1,e[r]D(a,r))a.push(r),u.push(e[s]);return u}function j(e,t){return It||pt&&2++u;)if(c=rt[u],at.call(e,c)&&(!at.call(t,c)||!S(e[c],t[c],s,o)))return i;return n}function x(e,t,n){var s=arguments,o=0,a=2,f=s[3],l=s[4];n!=u&&(f=[],l=[],a=s.length);for(;++or&& +(r=n,o=e)});else for(;++io&&(o=e[i]);return o}function L(e,t){var n=[];return un(e,function(e){n.push(e[t])}),n}function A(e,t,n,r){var s=3>arguments.length,t=f(t,r);return un(e,function(e,r,o){n=s?(s=i,e):t(n,e,r,o)}),n}function O(e,t,n,r){var s=e,o=e?e.length:0,u=3>arguments.length;if(o!==+o)var a=rn(e),o=a.length;else Bt&&ht.call(e)==kt&&(s=e.split(""));return un(e,function(e,f,l){f=a?a[--o]:--o,n=u?(u=i,s[f]):t.call(r,n,s[f],f,l)}),n}function M(e,t,n){if(e)return t==r||n?e[0]:ct.call +(e,0,t)}function _(e,t){for(var n=-1,r=e?e.length:0,i=[];++nn?gt(0,i+n):n||0)-1;else if(n)return r=H(e,t),e[r]===t?r:-1;for(;++r>>1,n(e[r])>>1,e[r]D(a,r))a.push(r),u.push(e[s]);return u}function j(e,t){return It||pt&&2|{(\/]|\[\D|\b(?:delete|in|instanceof|new|typeof|void)\b/,$=/&(?:amp|lt|gt|quot|#x27);/g,J=/\b__p\+='';/g,K=/\b(__p\+=)''\+/g,Q=/(__e\(.*?\)|\b__t\))\+'';/g,G=/\w*$/,Y=/(?:__e|__t=)\(\s*(?![\d\s"']|this\.)/g,Z=RegExp("^"+(U.valueOf+"").replace(/[.*+?^=!:${}()|[\]\/\\]/g ,"\\$&").replace(/valueOf|for [^\]]+/g,".+?")+"$"),et=/($^)/,tt=/[&<>"']/g,nt=/['\n\r\t\u2028\u2029\\]/g,rt="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),it=Math.ceil,st=R.concat,ot=Math.floor,ut=Z.test(ut=Object.getPrototypeOf)&&ut,at=U.hasOwnProperty,ft=R.push,lt=U.propertyIsEnumerable,ct=R.slice,ht=U.toString,pt=Z.test(pt=ct.bind)&&pt,dt=Z.test(dt=Array.isArray)&&dt,vt=e.isFinite,mt=Z.test(mt=Object.keys)&&mt,gt=Math.max,yt=Math.min, bt=Math.random,wt="[object Arguments]",Et="[object Array]",St="[object Boolean]",xt="[object Date]",Tt="[object Number]",Nt="[object Object]",Ct="[object RegExp]",kt="[object String]",Lt=e.clearTimeout,At=e.setTimeout,Ot,Mt,_t,Dt=n;(function(){function e(){this.x=1}var t={0:1,length:1},n=[];e.prototype={valueOf:1,y:1};for(var r in new e)n.push(r);for(r in arguments)Dt=!r;Ot=4>(n+"").length,_t="x"!=n[0],Mt=(n.splice.call(t,0,1),t[0])})(1);var Pt=!v(arguments),Ht="x"!=ct.call("x")[0],Bt="xx"!="x"[0]+Object ("x")[0];try{var jt=("[object Object]",ht.call(e.document||0)==Nt)}catch(Ft){}var It=pt&&/\n|Opera/.test(pt+ht.call(e.opera)),qt=mt&&/^.+$|true/.test(mt+!!e.attachEvent),Rt=!It,Ut={};Ut[wt]=Ut["[object Function]"]=i,Ut[Et]=Ut[St]=Ut[xt]=Ut[Tt]=Ut[Nt]=Ut[Ct]=Ut[kt]=n;var zt={"boolean":i,"function":n,object:n,number:i,string:i,"undefined":i,unknown:n},Wt={"\\":"\\","'":"'","\n":"n","\r":"r"," ":"t","\u2028":"u2028","\u2029":"u2029"};s.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g -,interpolate:/<%=([\s\S]+?)%>/g,variable:""};var Xt={a:"d,c,s",p:"c=e(c,s)",h:"if(c(u,h,d)===false)return p"},Vt={i:"true",h:"if(!c(u,h,d))return!p"},$t={q:i,r:i,a:"l",p:"for(var a=1,b=arguments.length;a":">",'"':""","'":"'"},nn=E(tn),rn=l($t,{h:"if(p[h]==null)"+$t.h}),sn=l($t),on=mt?function(e){var t=typeof e;return"function"==t&<.call(e,"prototype")?y(e):e&&zt[t]?mt(e):[]}:y,un=l(Xt,Vt),an=l(Xt,Jt),fn=l(Xt,Kt),ln=l(Xt,{i:"d||[]",d:{b:"p=Array(j)",k:"p="+(qt?"Array(j)":"[]")},h:{b:"p[h]=c(u,h,d)" -,k:"p"+(qt?"[m]=":".push")+"(c(u,h,d))"}}),cn=l(Xt,Jt,{h:"!"+Jt.h}),hn=l(Xt,Vt,{i:"false",h:Vt.h.replace("!","")}),pn=l({q:i,r:i,a:"l",p:"var w=arguments,h=0,j=w.length;if(j>1){while(++he?t():function(){if(1>--e)return t.apply(this,arguments)}},s.bind=j,s.bindAll=pn,s.chain=function(e){return e=new s(e),e.__chain__=n,e},s.clone=b,s.compact=function(e){for(var t=-1,n=e?e.length:0,r=[];++t< -n;){var i=e[t];i&&r.push(i)}return r},s.compose=function(){var e=arguments;return function(){for(var t=arguments,n=e.length;n--;)t=[e[n].apply(this,t)];return t[0]}},s.contains=N,s.countBy=function(e,t,n){var r={},t=f(t,n);return fn(e,function(e,n,i){n=t(e,n,i),at.call(r,n)?r[n]++:r[n]=1}),r},s.debounce=function(e,t,n){function i(){a=r,n||(o=e.apply(u,s))}var s,o,u,a;return function(){var r=n&&!a;return s=arguments,u=this,Lt(a),a=At(i,t),r&&(o=e.apply(u,s)),o}},s.defaults=rn,s.defer=function(e){var n= -ct.call(arguments,1);return At(function(){return e.apply(t,n)},1)},s.delay=function(e,n){var r=ct.call(arguments,2);return At(function(){return e.apply(t,r)},n)},s.difference=function(e){var t=[];if(!e)return t;for(var n=-1,r=e.length,i=st.apply(R,arguments),i=o(i,r);++nD(s,u)){for(var a=1;an?gt(0,r+n):yt(n,r-1))+1);r--;)if(e[r]===t)return r;return-1},s.lateBind=function(e,t){return a(t,e,ct.call(arguments,2))},s.map=ln,s.max=k,s.memoize=function(e,t){var n={};return function(){var r=t?t.apply(this,arguments):arguments[0];return at.call(n,r)?n[r]:n[r]=e.apply(this,arguments)}},s.merge=x,s.min=function(e,t,n){var r=Infinity,i=-1,s=e?e.length:0,o=r;if(t||s!==+s)t=f(t,n),fn(e,function(e,n,i){n=t(e,n,i),nD(s,n,1))i[n]=e}),i},s.once=function(e){var t,s=i;return function(){return s?t:(s=n,t=e.apply(this,arguments),e=r,t)}},s.pairs=function(e){var t=[];return Yt(e,function(e,n){t.push([n,e])}) -,t},s.partial=function(e){return a(e,ct.call(arguments,1))},s.pick=function(e,t,n){var r={};if("function"!=typeof t)for(var i=0,s=st.apply(R,arguments),o=s.length;++i=f?(Lt(u),a=r,s=e.apply(o,i)):u||(u=At(n,f)),s}},s.times=function(e,t,n){for(var e=+e||0,r=-1,i=Array(e);++r -D(r,i)&&r.push(i)}return r},s.uniq=B,s.uniqueId=function(e){var t=z++;return e?e+t:t},s.values=T,s.where=function(e,t){var r=[];Gt(t,function(e,t){r.push(t)});var i=r.length,s=[];return fn(e,function(e){for(var o=n,u=0;u/g,variable:""};var Xt={a:"d,c,s",p:"c=e(c,s)",h:"if(c(u,h,d)===false)return p"},Vt={i:"true",h:"if(!c(u,h,d))return!p"},$t={q:i,r:i,a:"l",p:"for(var a=1,b=arguments.length;a":">",'"':""","'":"'"},en=E(Zt),tn=l($t,{h:"if(p[h]==null)"+$t.h}),nn=l($t),rn=mt?function(e){var t=typeof e;return"function"==t&<.call(e,"prototype")?y(e):e&&zt[t]?mt(e):[]}:y,sn=l(Xt,Vt),on=l(Xt,{i:"[]",h:"c(u,h,d)&&p.push(u)"}),un=l(Xt),an=l(Xt,{i:"d||[]",d:{b:"p=Array(j)",k:"p="+(qt?"Array(j)":"[]")},h:{b:"p[h]=c(u,h,d)",k:"p"+(qt?"[m]=":".push" +)+"(c(u,h,d))"}}),fn=l(Xt,Vt,{i:"false",h:Vt.h.replace("!","")}),ln=l({q:i,r:i,a:"l",p:"var w=arguments,h=0,j=w.length;if(j>1){while(++he?t():function(){if(1>--e)return t.apply(this,arguments)}},s.bind=j,s.bindAll=ln,s.chain=function(e){return e=new s(e),e.__chain__=n,e},s.clone=b,s.compact=function(e){for(var t=-1,n=e?e.length:0,r=[];++tD(s,u)){for(var a=1;an?gt(0,r+n):yt +(n,r-1))+1);r--;)if(e[r]===t)return r;return-1},s.lateBind=function(e,t){return a(t,e,ct.call(arguments,2))},s.map=an,s.max=k,s.memoize=function(e,t){var n={};return function(){var r=t?t.apply(this,arguments):arguments[0];return at.call(n,r)?n[r]:n[r]=e.apply(this,arguments)}},s.merge=x,s.min=function(e,t,n){var r=Infinity,i=-1,s=e?e.length:0,o=r;if(t||s!==+s)t=f(t,n),un(e,function(e,n,i){n=t(e,n,i),nD(s,n,1))i[n]=e}),i},s.once=function(e){var t,s=i;return function(){return s?t:(s=n,t=e.apply(this,arguments),e=r,t)}},s.pairs=function(e){var t=[];return Qt(e,function(e,n){t.push([n,e])}),t},s.partial=function(e){return a(e,ct.call +(arguments,1))},s.pick=function(e,t,n){var r={};if("function"!=typeof t)for(var i=0,s=st.apply(R,arguments),o=s.length;++i=f?(Lt(u),a=r,s=e.apply(o,i)):u||(u=At(n,f)),s}},s.times=function(e,t,n){for(var e=+e||0,r=-1,i=Array(e);++rD(r,i)&&r.push(i)}return r},s.uniq=B,s.uniqueId=function(e){var t=z++;return e?e+t:t},s.values=T,s.where=function(e,t){var r=[];Kt(t,function(e,t){r.push(t)});var i=r.length,s=[];return un(e,function(e){for(var o=n,u=0;un||e===t)return 1;if(er&&(r=n,o=e)});else for(;++io&&(o=e[i]);return o}function M(e,t){var n=[];return u(e,function(e){n.push(e[t])}),n}function _(e,t,n,r){var s=3>arguments.length,t=m(t,r);return u(e,function(e,r,o){n=s?(s=i,e):t(n,e,r,o)}),n}function D(e,t,n,r){var s= -e?e.length:0,o=3>arguments.length;if(s!==+s)var a=Mt(e),s=a.length;return u(e,function(u,f,l){f=a?a[--s]:--s,n=o?(o=i,e[f]):t.call(r,n,e[f],f,l)}),n}function P(e,t,n){if(e)return t==r||n?e[0]:ot.call(e,0,t)}function H(e,t){for(var n=-1,r=e?e.length:0,i=[];++nn?ht(0,i+n):n||0)-1;else if(n)return r=F(e,t),e[r]===t?r:-1;for(;++r>>1,n(e[r])>>1,e[r]B(a,r))a.push(r),u.push(e[s]);return u}function q(e,t){return Nt||at&&2|{(\/]|\[\D|\b(?:delete|in|instanceof|new|typeof|void)\b/,K=/&(?:amp|lt|gt|quot|#x27);/g -,Q=/(?:__e|__t=)\(\s*(?![\d\s"']|this\.)/g,G=RegExp("^"+(X.valueOf+"").replace(/[.*+?^=!:${}()|[\]\/\\]/g,"\\$&").replace(/valueOf|for [^\]]+/g,".+?")+"$"),Y=/($^)/,Z=/[&<>"']/g,et=/['\n\r\t\u2028\u2029\\]/g,tt=Math.ceil,nt=W.concat,rt=Math.floor,it=X.hasOwnProperty,st=W.push,ot=W.slice,ut=X.toString,at=G.test(at=ot.bind)&&at,ft=G.test(ft=Array.isArray)&&ft,lt=e.isFinite,ct=G.test(ct=Object.keys)&&ct,ht=Math.max,pt=Math.min,dt=Math.random,vt="[object Array]",mt="[object Boolean]",gt="[object Date]" -,yt="[object Number]",bt="[object Object]",wt="[object RegExp]",Et="[object String]",St=e.clearTimeout,xt=e.setTimeout,Tt;(function(){function e(){this.x=1}var t={0:1,length:1},n=[];e.prototype={valueOf:1,y:1};for(var r in new e)n.push(r);Tt=(n.splice.call(t,0,1),t[0])})(1);var Nt=at&&/\n|Opera/.test(at+ut.call(e.opera)),Ct={"boolean":i,"function":n,object:n,number:i,string:i,"undefined":i,unknown:n},kt={"\\":"\\","'":"'","\n":"n","\r":"r"," ":"t","\u2028":"u2028","\u2029":"u2029"};p.templateSettings= -{escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,variable:""},p.isArguments=function(e){return"[object Arguments]"==ut.call(e)},p.isArguments(arguments)||(p.isArguments=function(e){return e?it.call(e,"callee"):i});var Lt=ft||function(e){return ut.call(e)==vt};E(/x/)&&(E=function(e){return"[object Function]"==ut.call(e)});var At={"&":"&","<":"<",">":">",'"':""","'":"'"},Ot=T(At),Mt=ct?function(e){return e&&Ct[typeof e]?ct(e):[]}:S;p.VERSION="0.8.2" -,p.after=function(e,t){return 1>e?t():function(){if(1>--e)return t.apply(this,arguments)}},p.bind=q,p.bindAll=function(e){var t,n,r=e,i=e;if(!e)return i;n=arguments,t=0;var s=n.length;if(1B(r,s,n)&&i.push(s)}return i},p.escape=function(e){return e==r?"":(e+"").replace(Z,y)},p.every=f,p.extend=l,p.filter=a,p.find=A,p.first= -P,p.flatten=H,p.forEach=u,p.functions=x,p.groupBy=function(e,t,n){var r={},t=m(t,n);return u(e,function(e,n,i){n=t(e,n,i),(it.call(r,n)?r[n]:r[n]=[]).push(e)}),r},p.has=function(e,t){return e?it.call(e,t):i},p.identity=R,p.indexOf=B,p.initial=function(e,t,n){return e?ot.call(e,0,-(t==r||n?1:t)):[]},p.intersection=function(e){var t=arguments.length,n=-1,r=e.length,i=[];e:for(;++nB(i,s)){for(var o=1;oB(arguments[o],s))continue e;i.push(s)}}return i},p.invert=T,p.invoke= -function(e,t){var n=ot.call(arguments,2),r="function"==typeof t,i=[];return u(e,function(e){i.push((r?t:e[t]).apply(e,n))}),i},p.isArray=Lt,p.isBoolean=function(e){return e===n||e===i||ut.call(e)==mt},p.isDate=function(e){return ut.call(e)==gt},p.isElement=function(e){return e?1===e.nodeType:i},p.isEmpty=function(e){if(!e)return n;if(Lt(e)||C(e))return!e.length;for(var t in e)if(it.call(e,t))return i;return n},p.isEqual=N,p.isFinite=function(e){return lt(e)&&ut.call(e)==yt},p.isFunction=E,p.isNaN= -function(e){return ut.call(e)==yt&&e!=+e},p.isNull=function(e){return e===r},p.isNumber=function(e){return ut.call(e)==yt},p.isObject=function(e){return e?Ct[typeof e]:i},p.isRegExp=function(e){return ut.call(e)==wt},p.isString=C,p.isUndefined=function(e){return e===t},p.keys=Mt,p.last=function(e,t,n){if(e){var i=e.length;return t==r||n?e[i-1]:ot.call(e,-t||i)}},p.lastIndexOf=function(e,t,n){var r=e?e.length:0;for("number"==typeof n&&(r=(0>n?ht(0,r+n):pt(n,r-1))+1);r--;)if(e[r]===t)return r;return-1 -},p.map=o,p.max=O,p.memoize=function(e,t){var n={};return function(){var r=t?t.apply(this,arguments):arguments[0];return it.call(n,r)?n[r]:n[r]=e.apply(this,arguments)}},p.min=function(e,t,n){var r=Infinity,i=-1,s=e?e.length:0,o=r;if(t||s!==+s)t=m(t,n),u(e,function(e,n,i){n=t(e,n,i),nB(t,r,1)&&(n[r]=e)}),n},p.once=function(e){var t,s=i;return function(){return s?t:(s=n,t=e.apply(this,arguments),e=r,t)}},p.pairs=function(e){var t=[];return c(e,function(e,n){t.push([n,e])}),t},p.pick=function(e){for(var t=0,n=nt.apply(W,arguments),r=n.length,i={};++t=f?(St(u),a=r,s=e.apply(o,i)):u||(u=xt(n,f)),s}},p.times=function(e,t,n){for(var e=+e||0,r=-1,i=Array(e);++rB(r,i)&&r.push(i)}return r},p.uniq=I,p.uniqueId=function(e){var t=V++;return e?e+t:t},p.values=k,p.where=function(e,t){var r=[];h(t,function(e,t){r.push(t)});var i=r.length,s=[];return u(e,function(e){for(var o=n,u=0;uB(arguments,i,1)&&r.push(i)}return r},p.wrap=function(e,t){return function(){var n=[e];return arguments.length&&st.apply(n,arguments),t.apply(this,n)}},p.zip=function(e){for(var t=-1,n=e?O(M(arguments,"length")):0,r=Array(n);++tn||e===t)return 1;if(er&&(r=n,o=e)});else for(;++io&&(o=e[i]);return o}function M(e,t){var n=[];return u(e,function(e){n.push(e[t])}),n}function _(e,t,n,r){var s=3>arguments.length,t=m(t,r);return u(e,function(e,r,o){n=s? +(s=i,e):t(n,e,r,o)}),n}function D(e,t,n,r){var s=e?e.length:0,o=3>arguments.length;if(s!==+s)var a=Mt(e),s=a.length;return u(e,function(u,f,l){f=a?a[--s]:--s,n=o?(o=i,e[f]):t.call(r,n,e[f],f,l)}),n}function P(e,t,n){if(e)return t==r||n?e[0]:ot.call(e,0,t)}function H(e,t){for(var n=-1,r=e?e.length:0,i=[];++nn?ht(0,i+n):n||0)-1;else if(n)return r=F(e,t),e[r]===t?r:-1;for( +;++r>>1,n(e[r])>>1,e[r]B(a,r))a.push(r),u.push(e[s]);return u}function q(e,t){return Nt||at&&2|{(\/]|\[\D|\b(?:delete|in|instanceof|new|typeof|void)\b/ +,K=/&(?:amp|lt|gt|quot|#x27);/g,Q=/(?:__e|__t=)\(\s*(?![\d\s"']|this\.)/g,G=RegExp("^"+(X.valueOf+"").replace(/[.*+?^=!:${}()|[\]\/\\]/g,"\\$&").replace(/valueOf|for [^\]]+/g,".+?")+"$"),Y=/($^)/,Z=/[&<>"']/g,et=/['\n\r\t\u2028\u2029\\]/g,tt=Math.ceil,nt=W.concat,rt=Math.floor,it=X.hasOwnProperty,st=W.push,ot=W.slice,ut=X.toString,at=G.test(at=ot.bind)&&at,ft=G.test(ft=Array.isArray)&&ft,lt=e.isFinite,ct=G.test(ct=Object.keys)&&ct,ht=Math.max,pt=Math.min,dt=Math.random,vt="[object Array]",mt="[object Boolean]" +,gt="[object Date]",yt="[object Number]",bt="[object Object]",wt="[object RegExp]",Et="[object String]",St=e.clearTimeout,xt=e.setTimeout,Tt;(function(){function e(){this.x=1}var t={0:1,length:1},n=[];e.prototype={valueOf:1,y:1};for(var r in new e)n.push(r);Tt=(n.splice.call(t,0,1),t[0])})(1);var Nt=at&&/\n|Opera/.test(at+ut.call(e.opera)),Ct={"boolean":i,"function":n,object:n,number:i,string:i,"undefined":i,unknown:n},kt={"\\":"\\","'":"'","\n":"n","\r":"r"," ":"t","\u2028":"u2028","\u2029":"u2029"} +;p.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,variable:""},p.isArguments=function(e){return"[object Arguments]"==ut.call(e)},p.isArguments(arguments)||(p.isArguments=function(e){return e?it.call(e,"callee"):i});var Lt=ft||function(e){return ut.call(e)==vt};E(/x/)&&(E=function(e){return"[object Function]"==ut.call(e)});var At={"&":"&","<":"<",">":">",'"':""","'":"'"},Ot=T(At),Mt=ct?function(e){return e&&Ct[typeof e]?ct( +e):[]}:S;p.VERSION="0.8.2",p.after=function(e,t){return 1>e?t():function(){if(1>--e)return t.apply(this,arguments)}},p.bind=q,p.bindAll=function(e){var t,n,r=e,i=e;if(!e)return i;n=arguments,t=0;var s=n.length;if(1B(r,s,n)&&i.push(s)}return i},p.escape=function(e){return e==r?"":(e+"").replace(Z,y)},p.every=f,p.extend=l,p. +filter=a,p.find=A,p.first=P,p.flatten=H,p.forEach=u,p.functions=x,p.groupBy=function(e,t,n){var r={},t=m(t,n);return u(e,function(e,n,i){n=t(e,n,i),(it.call(r,n)?r[n]:r[n]=[]).push(e)}),r},p.has=function(e,t){return e?it.call(e,t):i},p.identity=R,p.indexOf=B,p.initial=function(e,t,n){return e?ot.call(e,0,-(t==r||n?1:t)):[]},p.intersection=function(e){var t=arguments.length,n=-1,r=e.length,i=[];e:for(;++nB(i,s)){for(var o=1;oB(arguments[o],s))continue e;i.push(s)}} +return i},p.invert=T,p.invoke=function(e,t){var n=ot.call(arguments,2),r="function"==typeof t,i=[];return u(e,function(e){i.push((r?t:e[t]).apply(e,n))}),i},p.isArray=Lt,p.isBoolean=function(e){return e===n||e===i||ut.call(e)==mt},p.isDate=function(e){return ut.call(e)==gt},p.isElement=function(e){return e?1===e.nodeType:i},p.isEmpty=function(e){if(!e)return n;if(Lt(e)||C(e))return!e.length;for(var t in e)if(it.call(e,t))return i;return n},p.isEqual=N,p.isFinite=function(e){return lt(e)&&ut.call( +e)==yt},p.isFunction=E,p.isNaN=function(e){return ut.call(e)==yt&&e!=+e},p.isNull=function(e){return e===r},p.isNumber=function(e){return ut.call(e)==yt},p.isObject=function(e){return e?Ct[typeof e]:i},p.isRegExp=function(e){return ut.call(e)==wt},p.isString=C,p.isUndefined=function(e){return e===t},p.keys=Mt,p.last=function(e,t,n){if(e){var i=e.length;return t==r||n?e[i-1]:ot.call(e,-t||i)}},p.lastIndexOf=function(e,t,n){var r=e?e.length:0;for("number"==typeof n&&(r=(0>n?ht(0,r+n):pt(n,r-1))+1); +r--;)if(e[r]===t)return r;return-1},p.map=o,p.max=O,p.memoize=function(e,t){var n={};return function(){var r=t?t.apply(this,arguments):arguments[0];return it.call(n,r)?n[r]:n[r]=e.apply(this,arguments)}},p.min=function(e,t,n){var r=Infinity,i=-1,s=e?e.length:0,o=r;if(t||s!==+s)t=m(t,n),u(e,function(e,n,i){n=t(e,n,i),nB(t,r,1)&&(n[r]=e)}),n},p.once=function(e){var t,s=i;return function(){return s?t:(s=n,t=e.apply(this,arguments),e=r,t)}},p.pairs=function(e){var t=[];return c(e,function(e,n){t.push([n,e])}),t},p.pick=function(e){for(var t=0,n=nt.apply(W,arguments),r=n.length,i={};++t=f?(St(u),a=r,s=e.apply(o,i)):u||(u=xt(n,f)),s}},p.times=function(e,t,n){for(var e=+e||0,r=-1,i=Array(e);++rB(r,i)&&r.push(i)}return r},p.uniq=I,p.uniqueId=function(e){var t=V++;return e?e+t:t},p.values=k,p.where=function(e,t){var r=[];h(t,function(e,t){r.push(t)});var i=r.length,s=[];return u(e,function(e){for(var o=n,u=0;uB(arguments +,i,1)&&r.push(i)}return r},p.wrap=function(e,t){return function(){var n=[e];return arguments.length&&st.apply(n,arguments),t.apply(this,n)}},p.zip=function(e){for(var t=-1,n=e?O(M(arguments,"length")):0,r=Array(n);++t