diff --git a/doc/README.md b/doc/README.md
index c5c448089..291dc5bce 100644
--- a/doc/README.md
+++ b/doc/README.md
@@ -147,7 +147,7 @@ The `lodash` function.
### `_.VERSION`
-# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L3344 "View in source") [Ⓣ][1]
+# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L3352 "View in source") [Ⓣ][1]
*(String)*: The semantic version number.
@@ -270,7 +270,7 @@ jQuery('#lodash_button').on('click', buttonView.onClick);
### `_.chain(value)`
-# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L3296 "View in source") [Ⓣ][1]
+# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L3304 "View in source") [Ⓣ][1]
Wraps the value in a `lodash` chainable object.
@@ -533,7 +533,7 @@ _.difference([1, 2, 3, 4, 5], [5, 2, 10]);
### `_.escape(string)`
-# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2987 "View in source") [Ⓣ][1]
+# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2992 "View in source") [Ⓣ][1]
Escapes a string for inclusion in HTML, replacing `&`, `<`, `"`, and `'` characters.
@@ -888,7 +888,7 @@ _.has({ 'a': 1, 'b': 2, 'c': 3 }, 'b');
### `_.identity(value)`
-# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L3006 "View in source") [Ⓣ][1]
+# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L3011 "View in source") [Ⓣ][1]
This function returns the first argument passed to it. Note: It is used throughout Lo-Dash as a default callback.
@@ -1209,7 +1209,7 @@ _.isEqual(moe, clone);
### `_.isFinite(value)`
-# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2684 "View in source") [Ⓣ][1]
+# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2689 "View in source") [Ⓣ][1]
Checks if a `value` is a finite number.
@@ -1239,7 +1239,7 @@ _.isFinite(Infinity);
### `_.isFunction(value)`
-# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2701 "View in source") [Ⓣ][1]
+# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2706 "View in source") [Ⓣ][1]
Checks if a `value` is a function.
@@ -1263,7 +1263,7 @@ _.isFunction(''.concat);
### `_.isNaN(value)`
-# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2752 "View in source") [Ⓣ][1]
+# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2757 "View in source") [Ⓣ][1]
Checks if a `value` is `NaN`. Note: This is not the same as native `isNaN`, which will return true for `undefined` and other values. See http://es5.github.com/#x15.1.2.4.
@@ -1296,7 +1296,7 @@ _.isNaN(undefined);
### `_.isNull(value)`
-# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2774 "View in source") [Ⓣ][1]
+# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2779 "View in source") [Ⓣ][1]
Checks if a `value` is `null`.
@@ -1323,7 +1323,7 @@ _.isNull(undefined);
### `_.isNumber(value)`
-# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2791 "View in source") [Ⓣ][1]
+# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2796 "View in source") [Ⓣ][1]
Checks if a `value` is a number.
@@ -1347,7 +1347,7 @@ _.isNumber(8.4 * 5;
### `_.isObject(value)`
-# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2722 "View in source") [Ⓣ][1]
+# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2727 "View in source") [Ⓣ][1]
Checks if a `value` is the language type of Object. *(e.g. arrays, functions, objects, regexps, `new Number(0)*`, and `new String('')`)
@@ -1374,7 +1374,7 @@ _.isObject(1);
### `_.isRegExp(value)`
-# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2808 "View in source") [Ⓣ][1]
+# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2813 "View in source") [Ⓣ][1]
Checks if a `value` is a regular expression.
@@ -1398,7 +1398,7 @@ _.isRegExp(/moe/);
### `_.isString(value)`
-# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2825 "View in source") [Ⓣ][1]
+# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2830 "View in source") [Ⓣ][1]
Checks if a `value` is a string.
@@ -1422,7 +1422,7 @@ _.isString('moe');
### `_.isUndefined(value)`
-# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2842 "View in source") [Ⓣ][1]
+# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2847 "View in source") [Ⓣ][1]
Checks if a `value` is `undefined`.
@@ -1446,7 +1446,7 @@ _.isUndefined(void 0);
### `_.keys(object)`
-# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2859 "View in source") [Ⓣ][1]
+# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2864 "View in source") [Ⓣ][1]
Produces an array of object`'s own enumerable property names.
@@ -1638,7 +1638,7 @@ _.min([10, 5, 100, 2, 1000]);
### `_.mixin(object)`
-# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L3032 "View in source") [Ⓣ][1]
+# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L3037 "View in source") [Ⓣ][1]
Adds functions properties of `object` to the `lodash` function and chainable wrapper.
@@ -1668,7 +1668,7 @@ _('larry').capitalize();
### `_.noConflict()`
-# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L3063 "View in source") [Ⓣ][1]
+# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L3068 "View in source") [Ⓣ][1]
Reverts the '_' variable to its previous value and returns a reference to the `lodash` function.
@@ -1741,7 +1741,7 @@ hi('moe');
### `_.pick(object [, prop1, prop2, ...])`
-# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2881 "View in source") [Ⓣ][1]
+# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2886 "View in source") [Ⓣ][1]
Creates an object composed of the specified properties. Property names may be specified as individual arguments or as arrays of property names.
@@ -1942,9 +1942,9 @@ _.rest([3, 2, 1]);
### `_.result(object, property)`
-# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L3093 "View in source") [Ⓣ][1]
+# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L3099 "View in source") [Ⓣ][1]
-Resolves the value of `property` on `object`. If `property` is a function it will be invoked and its result returned, else the property value is returned.
+Resolves the value of `property` on `object`. If `property` is a function it will be invoked and its result returned, else the property value is returned. If `object` is falsey, then `null` is returned.
#### Arguments
1. `object` *(Object)*: The object to inspect.
@@ -2001,7 +2001,7 @@ _.shuffle([1, 2, 3, 4, 5, 6]);
### `_.size(value)`
-# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2919 "View in source") [Ⓣ][1]
+# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2924 "View in source") [Ⓣ][1]
Gets the size of `value` by returning `value.length` if `value` is a string or array, or the number of own enumerable properties if `value` is an object.
@@ -2130,7 +2130,7 @@ _.sortedIndex(['twenty', 'thirty', 'fourty'], 'thirty-five', function(word) {
### `_.tap(value, interceptor)`
-# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2947 "View in source") [Ⓣ][1]
+# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2952 "View in source") [Ⓣ][1]
Invokes `interceptor` with the `value` as the first argument, and then returns `value`. The primary purpose of this method is to "tap into" a method chain, in order to performoperations on intermediate results within the chain.
@@ -2160,7 +2160,7 @@ _.chain([1,2,3,200])
### `_.template(text, data, options)`
-# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L3152 "View in source") [Ⓣ][1]
+# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L3160 "View in source") [Ⓣ][1]
A micro-templating method, similar to John Resig's implementation. Lo-Dash templating handles arbitrary delimiters, preserves whitespace, and correctly escapes quotes within interpolated code.
@@ -2244,7 +2244,7 @@ jQuery(window).on('scroll', throttled);
### `_.times(n, callback [, thisArg])`
-# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L3239 "View in source") [Ⓣ][1]
+# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L3247 "View in source") [Ⓣ][1]
Executes the `callback` function `n` times. The `callback` is bound to `thisArg` and invoked with `1` argument; *(index)*.
@@ -2354,7 +2354,7 @@ _.uniq([1, 2, 1.5, 3, 2.5], function(num) { return this.floor(num); }, Math);
### `_.uniqueId([prefix])`
-# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L3266 "View in source") [Ⓣ][1]
+# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L3274 "View in source") [Ⓣ][1]
Generates a unique id. If `prefix` is passed, the id will be appended to it.
@@ -2378,7 +2378,7 @@ _.uniqueId('contact_');
### `_.values(object)`
-# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2965 "View in source") [Ⓣ][1]
+# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L2970 "View in source") [Ⓣ][1]
Produces an array of `object`'s own enumerable property values.
@@ -2488,7 +2488,7 @@ _.zip(['moe', 'larry', 'curly'], [30, 40, 50], [true, false, false]);
### `_.prototype.chain()`
-# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L3314 "View in source") [Ⓣ][1]
+# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L3322 "View in source") [Ⓣ][1]
Extracts the value from a wrapped chainable object.
@@ -2509,7 +2509,7 @@ _([1, 2, 3]).value();
### `_.prototype.value()`
-# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L3331 "View in source") [Ⓣ][1]
+# [Ⓢ](https://github.com/bestiejs/lodash/blob/v0.3.1/lodash.js#L3339 "View in source") [Ⓣ][1]
Extracts the value from a wrapped chainable object.
diff --git a/lodash.js b/lodash.js
index 081e8b0f4..663539899 100644
--- a/lodash.js
+++ b/lodash.js
@@ -2641,7 +2641,12 @@
// ensure both objects have the same number of properties
if (result) {
for (prop in b) {
- if (hasOwnProperty.call(b, prop) && !(size--)) break;
+ // Adobe JS engines have an operator precedence bug that causes `!size--`
+ // to produce the wrong result so it must be wrapped in parentheses.
+ // https://github.com/documentcloud/underscore/issues/355
+ if (hasOwnProperty.call(b, prop) && !(size--)) {
+ break;
+ }
}
result = !size;
}
@@ -3067,7 +3072,8 @@
/**
* Resolves the value of `property` on `object`. If `property` is a function
- * it will be invoked and its result returned, else the property value is returned.
+ * it will be invoked and its result returned, else the property value is
+ * returned. If `object` is falsey, then `null` is returned.
*
* @static
* @memberOf _
@@ -3091,6 +3097,8 @@
* // => 'nonsense'
*/
function result(object, property) {
+ // based on Backbone's private `getValue` function
+ // https://github.com/documentcloud/backbone/blob/0.9.2/backbone.js#L1419-1424
if (!object) {
return null;
}
diff --git a/lodash.min.js b/lodash.min.js
index 3f7362284..9661393de 100644
--- a/lodash.min.js
+++ b/lodash.min.js
@@ -3,30 +3,30 @@
Underscore.js 1.3.3 github.com/documentcloud/underscore/blob/master/LICENSE
*/
;(function(e,t){"use strict";function s(e){return"[object Arguments]"==rt.call(e)}function o(e){return new u(e)}function u(e){if(e&&e._wrapped)return e;this._wrapped=e}function a(){for(var e,t,s,o=-1,u=arguments.length,a={e:"",f:"",k:"",q:"",c:{d:"",m:"++karguments.length;r&&(t=h(t,r));if(i===i>>>0){for(i&&s&&(n=e[--i]);i--;)n=t(n,e[i],i,e);return n}var o=kt(e);for((i=o.length)&&s&&(n=e[o[--i]]);i--;)s=o[i],n=t(n,e[s],s,e);return n}function y(e,n,r){if(e)return n==t||r?e[0]:nt.call(e,0,n)}function b(e,t){var n=[];if(!e)return n;for(var r,i=-1,s=e.length;++in?Math.max(0,i+n):n)-1}for(;++ri&&(i=e[s]);return i}for(n&&(t=h(t,n));++sr&&(r=n,i=e[s]);return i}function S(e,t){if(!e)return[];for(var n=-1,r=e.length,i=Array(r);++n>>1,n.call(r,e[i])>>1,e[i]w(a,r))a.push(r),s.push(e[o]);return s}function C(e,t){function n(){var u=arguments,a=t;return s||(e=t[i]),
-o.length&&(u=u.length?Z.apply(o,u):o),this instanceof n?(p.prototype=e.prototype,a=new p,u=e.apply(a,u),U[typeof u]&&u!==r?u:a):e.apply(a,u)}var i,s=rt.call(e)==$;if(s){if(it)return it.call.apply(it,arguments)}else i=t,t=e;var o=nt.call(arguments,2);return n}function k(e,r,s){s||(s=[]);if(e===r)return 0!==e||1/e==1/r;if(e==t||r==t)return e===r;e._chain&&(e=e._wrapped),r._chain&&(r=r._wrapped);if(e.isEqual&&rt.call(e.isEqual)==$)return e.isEqual(r);if(r.isEqual&&rt.call(r.isEqual)==$)return r.isEqual
-(e);var o=rt.call(e);if(o!=rt.call(r))return i;switch(o){case Q:return e==""+r;case J:return e!=+e?r!=+r:0==e?1/e==1/r:e==+r;case X:case V:return+e==+r;case K:return e.source==r.source&&e.global==r.global&&e.multiline==r.multiline&&e.ignoreCase==r.ignoreCase}if("object"!=typeof e||"object"!=typeof r)return i;for(var u=s.length;u--;)if(s[u]==e)return n;var u=-1,a=n,f=0;s.push(e);if(o==W){if(f=e.length,a=f==r.length)for(;f--&&(a=k(e[f],r[f],s)););}else{if("constructor"in e!="constructor"in r||e.constructor!=
-r.constructor)return i;for(var l in e)if(et.call(e,l)&&(f++,!(a=et.call(r,l)&&k(e[l],r[l],s))))break;if(a){for(l in r)if(et.call(r,l)&&!(f--))break;a=!f}if(a&&M)for(;7>++u&&(l=F[u],!et.call(e,l)||!!(a=et.call(r,l)&&k(e[l],r[l],s))););}return s.pop(),a}function L(e){return e}function A(e){wt(Nt(e),function(t){var r=o[t]=e[t];u.prototype[t]=function(){var e=[this._wrapped];return arguments.length&&tt.apply(e,arguments),e=r.apply(o,e),this._chain&&(e=new u(e),e._chain=n),e}})}var n=!0,r=null,i=!1,O="object"==typeof
-exports&&exports&&("object"==typeof global&&global&&global==global.global&&(e=global),exports),M=!{valueOf:0}.propertyIsEnumerable("valueOf"),_=0,D=e._,P=RegExp("^"+({}.valueOf+"").replace(/[.*+?^=!:${}()|[\]\/\\]/g,"\\$&").replace(/valueOf|for [^\]]+/g,".+?")+"$"),H=/__token__(\d+)/g,B=/[&<"']/g,j=/['\n\r\t\u2028\u2029\\]/g,F="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),I="__token__",q=[],R={"&":"&","<":"<",'"':""","'":"'"
-},U={"boolean":i,"function":n,object:n,number:i,string:i,"undefined":i},z={"\\":"\\","'":"'","\n":"n","\r":"r"," ":"t","\u2028":"u2028","\u2029":"u2029"},W="[object Array]",X="[object Boolean]",V="[object Date]",$="[object Function]",J="[object Number]",K="[object RegExp]",Q="[object String]",G=Array.prototype,Y=Object.prototype,Z=G.concat,et=Y.hasOwnProperty,tt=G.push,nt=G.slice,rt=Y.toString,it=P.test(it=nt.bind)&&/\n|Opera/.test(it+rt.call(e.opera))&&it,st=P.test(st=Array.isArray)&&st,ot=e.isFinite
+f+",k)",a.l=f,a.p=F,a.r=a.r!==i,a.f||(a.f="if(!"+o+")return r");if("n"==o||!t.j)a.c=r;return u||(s.m="k in "+f),Function("b,h,i,j,l,o,v,y,z,g,A",'"use strict";return function('+e+"){"+lt(a)+"}")(W,$,et,L,h,U,Q,rt,n,i)}function f(e,t){return q[t]}function l(e){return"\\"+z[e]}function c(e){return R[e]}function h(e,t){return function(n,r,i){return e.call(t,n,r,i)}}function p(){}function d(e,t){var n=q.length;return q[n]="'+_.escape("+t+")+'",I+n}function v(e,t){var n=q.length;return q[n]="'+((__t=("+
+t+"))==null?'':__t)+'",I+n}function m(e,t){var n=q.length;return q[n]="';"+t+";__p+='",I+n}function g(e,t,n,r){if(!e)return n;var i=e.length,s=3>arguments.length;r&&(t=h(t,r));if(i===i>>>0){for(i&&s&&(n=e[--i]);i--;)n=t(n,e[i],i,e);return n}var o=kt(e);for((i=o.length)&&s&&(n=e[o[--i]]);i--;)s=o[i],n=t(n,e[s],s,e);return n}function y(e,n,r){if(e)return n==t||r?e[0]:nt.call(e,0,n)}function b(e,t){var n=[];if(!e)return n;for(var r,i=-1,s=e.length;++in?Math.max(0,i+n):n)-1}for(;++ri&&(i=e[s]);return i}for(n&&(t=h(t,n));++sr&&(r=n,i=e[s]);return i}function S(e,t){if(!e)return[];for(var n=-1,r=e.length,i=Array(r);++n>>1,n.call(r,e[i])>>1,e[i]w(a,r))a.push(r),s.push(e[o]);return s}function C(e,t){function n(){var u=arguments,a=t;return s||(e=t[i]),o.length&&(u=u.length?Z.apply(
+o,u):o),this instanceof n?(p.prototype=e.prototype,a=new p,u=e.apply(a,u),U[typeof u]&&u!==r?u:a):e.apply(a,u)}var i,s=rt.call(e)==$;if(s){if(it)return it.call.apply(it,arguments)}else i=t,t=e;var o=nt.call(arguments,2);return n}function k(e,r,s){s||(s=[]);if(e===r)return 0!==e||1/e==1/r;if(e==t||r==t)return e===r;e._chain&&(e=e._wrapped),r._chain&&(r=r._wrapped);if(e.isEqual&&rt.call(e.isEqual)==$)return e.isEqual(r);if(r.isEqual&&rt.call(r.isEqual)==$)return r.isEqual(e);var o=rt.call(e);if(o!=
+rt.call(r))return i;switch(o){case Q:return e==""+r;case J:return e!=+e?r!=+r:0==e?1/e==1/r:e==+r;case X:case V:return+e==+r;case K:return e.source==r.source&&e.global==r.global&&e.multiline==r.multiline&&e.ignoreCase==r.ignoreCase}if("object"!=typeof e||"object"!=typeof r)return i;for(var u=s.length;u--;)if(s[u]==e)return n;var u=-1,a=n,f=0;s.push(e);if(o==W){if(f=e.length,a=f==r.length)for(;f--&&(a=k(e[f],r[f],s)););}else{if("constructor"in e!="constructor"in r||e.constructor!=r.constructor)return i
+;for(var l in e)if(et.call(e,l)&&(f++,!(a=et.call(r,l)&&k(e[l],r[l],s))))break;if(a){for(l in r)if(et.call(r,l)&&!(f--))break;a=!f}if(a&&M)for(;7>++u&&(l=F[u],!et.call(e,l)||!!(a=et.call(r,l)&&k(e[l],r[l],s))););}return s.pop(),a}function L(e){return e}function A(e){wt(Nt(e),function(t){var r=o[t]=e[t];u.prototype[t]=function(){var e=[this._wrapped];return arguments.length&&tt.apply(e,arguments),e=r.apply(o,e),this._chain&&(e=new u(e),e._chain=n),e}})}var n=!0,r=null,i=!1,O="object"==typeof exports&&
+exports&&("object"==typeof global&&global&&global==global.global&&(e=global),exports),M=!{valueOf:0}.propertyIsEnumerable("valueOf"),_=0,D=e._,P=RegExp("^"+({}.valueOf+"").replace(/[.*+?^=!:${}()|[\]\/\\]/g,"\\$&").replace(/valueOf|for [^\]]+/g,".+?")+"$"),H=/__token__(\d+)/g,B=/[&<"']/g,j=/['\n\r\t\u2028\u2029\\]/g,F="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),I="__token__",q=[],R={"&":"&","<":"<",'"':""","'":"'"},U=
+{"boolean":i,"function":n,object:n,number:i,string:i,"undefined":i},z={"\\":"\\","'":"'","\n":"n","\r":"r"," ":"t","\u2028":"u2028","\u2029":"u2029"},W="[object Array]",X="[object Boolean]",V="[object Date]",$="[object Function]",J="[object Number]",K="[object RegExp]",Q="[object String]",G=Array.prototype,Y=Object.prototype,Z=G.concat,et=Y.hasOwnProperty,tt=G.push,nt=G.slice,rt=Y.toString,it=P.test(it=nt.bind)&&/\n|Opera/.test(it+rt.call(e.opera))&&it,st=P.test(st=Array.isArray)&&st,ot=e.isFinite
,ut=P.test(ut=Object.keys)&&ut,at=e.clearTimeout,ft=e.setTimeout;o.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,variable:"obj"};var lt=Function("obj","var __p;with(obj){__p='var k,r';if(k){__p+='='+k};__p+=';'+f+';'+q+';';if(c){__p+='var m='+g+'.length;k=-1;';if(o){__p+='if(m===m>>>0){'};__p+=''+c['d']+';while('+c['m']+'){'+c['j']+'}';if(o){__p+='}'}}if(o){if(c){__p+='else{'}if(!i){__p+='var s=typeof '+l+'==\\'function\\';'};__p+=''+o['d']+';for('+o['m']+'){';if(i){if(r){__p+='if('+h+'){'};__p+=''+o['j']+';';if(r){__p+='}'}}else{__p+='if(!(s&&k==\\'prototype\\')';if(r){__p+='&&'+h};__p+='){'+o['j']+'}'};__p+='}';if(i){__p+='var f='+l+'.constructor;';for(var k=0;k<7;k++){__p+='k=\\''+p[k]+'\\';if(';if(p[k]=='constructor'){__p+='!(f&&f.prototype==='+l+')&&'};__p+=''+h+'){'+o['j']+'}'}}if(c){__p+='}'}};__p+=''+e+';return r'}return __p"
),ct={a:"e,c,x",k:"e",q:"if(!c){c=j}else if(x){c=l(c,x)}",j:"c(e[k],k,e)"},ht={k:"z",j:"if(!c(e[k],k,e))return!r"},pt={a:"n",k:"n",q:"for(var t,u=1,m=arguments.length;ue?t():function(){if(1>--e)return t.apply(this,arguments)}},o.bind=C,o.bindAll=function(e){var t=arguments,n=1;1==t.length&&(n=0,t=Nt(e));for(
var r=t.length;nw(i,e[n])&&t.push(e[n]);return t},o.escape=function(e){return(e+"").replace(B,c)},o.every=yt,o.extend=Tt
-,o.filter=Y,o.find=bt,o.first=y,o.flatten=b,o.forEach=wt,o.forIn=pt,o.forOwn=ct,o.functions=Nt,o.groupBy=function(e,t,n){var r={};if(!e)return r;var i,s=-1,o="function"==typeof t,u=e.length;for(o&&n&&(t=h(t,n));++sw(t,n)&&yt(s,function(e){return-1n?Math.max(0,r+n):Math.min(n,r-1))+1);r--;)if(e[r]===t)return r;return-1},o.map=Et,o.max=E,o.memoize=function(e,t){var n={};return function(){var r=t?t.apply(this,arguments):arguments[0];return et.call(n,r)?n[r]:n[r]=e.apply(this,arguments)}},o.min=function(e,t,n){var r=Infinity,i=r;if(!e)return i;var s=-1,o=e.length;if(!t){for(;++s
-arguments.length&&(t=e||0,e=0);for(var r=-1,i=Math.max(Math.ceil((t-e)/n),0),s=Array(i);++ri?1:0});s--;)o[s]=o[s].b;return o},o.sortedIndex=T,o.tap=function(e,t){return t(e),e},o.template=function(e,t,n){n||(n={});var i;i=o.templateSettings;var s=n.escape,u=n.evaluate,a=n.interpolate,n=n.variable;return s==r&&(s=i.escape),u==r&&(u=i.evaluate),a==r&&(a=i
-.interpolate),s&&(e=e.replace(s,d)),a&&(e=e.replace(a,v)),u&&(e=e.replace(u,m)),e="__p='"+e.replace(j,l).replace(H,f)+"';",q.length=0,n||(n=i.variable,e="with("+n+"||{}){"+e+"}"),e="function("+n+"){var __p,__t,__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}"+e+"return __p}",i=Function("_","return "+e)(o),t?i(t):(i.source=e,i)},o.throttle=function(e,n){function r(){a=new Date,u=t,e.apply(o,i)}var i,s,o,u,a=0;return function(){var t=new Date,f=n-(t-a);return i=arguments,o=this
-,0>=f?(a=t,s=e.apply(o,i)):u||(u=ft(r,f)),s}},o.times=function(e,t,n){var r=-1;if(n)for(;++r>>0?nt.call(e):Lt(e)},o.union=function(){for(var e=-1,t=[],n=Z.apply(t,arguments),r=n.length;++ew(t,n[e])&&t.push(n[e]);return t},o.uniq=N,o.uniqueId=function(e){var t=_++;return e?e+t:t},o.values=Lt,o.without=function(e){var t=[];if(!e)return t;for(var n=
+){var t=r&&!a;return s=arguments,u=this,at(a),a=ft(i,n),t&&(o=e.apply(u,s)),o}},o.defaults=xt,o.defer=function(e){var n=nt.call(arguments,1);return ft(function(){return e.apply(t,n)},1)},o.delay=function(e,n){var r=nt.call(arguments,2);return ft(function(){return e.apply(t,r)},n)},o.difference=function(e){var t=[];if(!e)return t;for(var n=-1,r=e.length,i=Z.apply(t,nt.call(arguments,1));++nw(i,e[n])&&t.push(e[n]);return t},o.escape=function(e){return e==r?"":(e+"").replace(B,c)},o.every=yt,o
+.extend=Tt,o.filter=Y,o.find=bt,o.first=y,o.flatten=b,o.forEach=wt,o.forIn=pt,o.forOwn=ct,o.functions=Nt,o.groupBy=function(e,t,n){var r={};if(!e)return r;var i,s=-1,o="function"==typeof t,u=e.length;for(o&&n&&(t=h(t,n));++sw(t,n)&&yt(s,function(e){return-1n?Math.max(0,r+n):Math.min(n,r-1))+1);r--;)if(e[r]===t)return r;return-1},o.map=Et,o.max=E,o.memoize=function(e,t){var n={};return function(){var r=t?t.apply(this,arguments):arguments[0];return et.call(n,r)?n[r]:n[r]=e.apply(this,arguments)}},o.min=function(e,t,n){var r=Infinity,i=r;if(!e)return i;var s=-1,o=e.length;if(!t){for(;++sarguments.length&&(t=e||0,e=0);for(var r=-1,i=Math.max(Math.ceil((t-e)/n),0),s=Array(i);++ri?1:0});s--;)o[s]=o[s].b;return o},o.sortedIndex=T,o.tap=function(e,t){return t(e),e},o.template=function(e,t,n){n||(n={});var i;i=o.templateSettings;var s=n.escape,u=n.evaluate,a=n.interpolate,n=n.variable;return s==r&&(s=i.escape),u==r&&(u=i.evaluate),a==r&&
+(a=i.interpolate),s&&(e=e.replace(s,d)),a&&(e=e.replace(a,v)),u&&(e=e.replace(u,m)),e="__p='"+e.replace(j,l).replace(H,f)+"';",q.length=0,n||(n=i.variable,e="with("+n+"||{}){"+e+"}"),e="function("+n+"){var __p,__t,__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}"+e+"return __p}",i=Function("_","return "+e)(o),t?i(t):(i.source=e,i)},o.throttle=function(e,n){function r(){a=new Date,u=t,e.apply(o,i)}var i,s,o,u,a=0;return function(){var t=new Date,f=n-(t-a);return i=arguments,o=
+this,0>=f?(a=t,s=e.apply(o,i)):u||(u=ft(r,f)),s}},o.times=function(e,t,n){var r=-1;if(n)for(;++r>>0?nt.call(e):Lt(e)},o.union=function(){for(var e=-1,t=[],n=Z.apply(t,arguments),r=n.length;++ew(t,n[e])&&t.push(n[e]);return t},o.uniq=N,o.uniqueId=function(e){var t=_++;return e?e+t:t},o.values=Lt,o.without=function(e){var t=[];if(!e)return t;for(var n=
nt.call(arguments,1),r=-1,i=e.length;++rw(n,e[r])&&t.push(e[r]);return t},o.wrap=function(e,t){return function(){var n=[e];return arguments.length&&tt.apply(n,arguments),t.apply(this,n)}},o.zip=function(e){if(!e)return[];for(var t=-1,n=E(S(arguments,"length")),r=Array(n);++t