Fix perf regressions in _.bind, _.groupBy, _.countBy, _.indexBy, and _.reduceRight.

Former-commit-id: 0972dd65af64b7cd1d7f2800a8a59c28183b8aba
This commit is contained in:
John-David Dalton
2013-08-24 23:32:04 -07:00
parent 21db7d438b
commit 277557cd99
8 changed files with 409 additions and 279 deletions

View File

@@ -11,27 +11,27 @@
}function tt(n,t,e,r,u,o){if(e){var a=e(n,t);if(typeof a!="undefined")return!!a}if(n===t)return 0!==n||1/n==1/t;if(n===n&&(!n||!Q[typeof n])&&(!t||!Q[typeof t]))return d;if(n==m||t==m)return n===t;var f=ke.call(n),c=ke.call(t);if(f==L&&(f=M),c==L&&(c=M),f!=c)return d;switch(f){case q:case K:return+n==+t;case J:return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case H:case U:return n==ue(t)}if(c=f==T,!c){if(me.call(n,"__wrapped__")||me.call(t,"__wrapped__"))return tt(n.__wrapped__||n,t.__wrapped__||t,e,r,u,o);
if(f!=M||!Te.nodeClass&&(l(n)||l(t)))return d;var f=!Te.argsObject&&gt(n)?ee:n.constructor,s=!Te.argsObject&&gt(t)?ee:t.constructor;if(f!=s&&(!mt(f)||!(f instanceof f&&mt(s)&&s instanceof s)))return d}for(s=!u,u||(u=i()),o||(o=i()),f=u.length;f--;)if(u[f]==n)return o[f]==t;var g=0,a=y;if(u.push(n),o.push(t),c){if(f=n.length,g=t.length,a=g==n.length,!a&&!r)return a;for(;g--;)if(c=f,s=t[g],r)for(;c--&&!(a=tt(n[c],s,e,r,u,o)););else if(!(a=tt(n[g],s,e,r,u,o)))break;return a}return nr(t,function(t,i,f){return me.call(f,i)?(g++,a=me.call(n,i)&&tt(n[i],t,e,r,u,o)):void 0
}),a&&!r&&nr(n,function(n,t,e){return me.call(e,t)?a=-1<--g:void 0}),s&&(p(u),p(o)),a}function rt(n,t,e,r,u){(qe(t)?Et:tr)(t,function(t,o){var a,i,f=t,l=n[o];if(t&&((i=qe(t))||er(t))){for(f=r.length;f--;)if(a=r[f]==t){l=u[f];break}if(!a){var c;e&&(f=e(l,t),c=typeof f!="undefined")&&(l=f),c||(l=i?qe(l)?l:[]:er(l)?l:{}),r.push(t),u.push(l),c||rt(l,t,e,r,u)}}else e&&(f=e(l,t),typeof f=="undefined"&&(f=t)),typeof f!="undefined"&&(l=f);n[o]=l})}function ut(e,r,u){var a=-1,f=ct(),l=e?e.length:0,c=[],g=!r&&l>=C&&f===n,h=u||g?i():c;
if(g){var v=o(h);v?(f=t,h=v):(g=d,h=u?h:(p(h),c))}for(;++a<l;){var v=e[a],y=u?u(v,a,e):v;(r?!a||h[h.length-1]!==y:0>f(h,y))&&((u||g)&&h.push(y),c.push(v))}return g?(p(h.b),s(h)):u&&p(h),c}function ot(n){return function(t,e,r){var u={};return e=b.createCallback(e,r,3),Et(t,function(t,r,o){r=ue(e(t,r,o)),n(u,t,r,o)}),u}}function at(n,t,e,r,u,o){var a=1&t,i=2&t,f=4&t,l=8&t,c=32&t;if(!i&&!mt(n))throw new oe;if(!a||i||f||c||!(Te.fastBind||Ce&&e.length))p=function(){var c=arguments,g=a?u:this;return e&&xe.apply(c,e),r&&de.apply(c,r),f&&c.length<o?(t|=16,at(n,l?t:-4&t,c,m,u,o)):(i&&(n=g[s]),this instanceof p?(g=ft(n.prototype),c=n.apply(g,c),dt(c)?c:g):n.apply(g,c))
};else{c=[n,u],de.apply(c,e);var p=Ce.call.apply(Ce,c)}if(i){var s=u;u=n}return p}function it(){var n=f();n.h=z,n.b=n.c=n.g=n.i="",n.e="t",n.j=y;for(var t,e=0;t=arguments[e];e++)for(var r in t)n[r]=t[r];e=n.a,n.d=/^[^,]+/.exec(e)[0],t=Zt,e="return function("+e+"){",r="var n,t="+n.d+",E="+n.e+";if(!t)return E;"+n.i+";",n.b?(r+="var u=t.length;n=-1;if("+n.b+"){",Te.unindexedChars&&(r+="if(s(t)){t=t.split('')}"),r+="while(++n<u){"+n.g+";}}else{"):Te.nonEnumArgs&&(r+="var u=t.length;n=-1;if(u&&p(t)){while(++n<u){n+='';"+n.g+";}}else{"),Te.enumPrototypes&&(r+="var G=typeof t=='function';"),Te.enumErrorProps&&(r+="var F=t===k||t instanceof Error;");
if(g){var v=o(h);v?(f=t,h=v):(g=d,h=u?h:(p(h),c))}for(;++a<l;){var v=e[a],y=u?u(v,a,e):v;(r?!a||h[h.length-1]!==y:0>f(h,y))&&((u||g)&&h.push(y),c.push(v))}return g?(p(h.b),s(h)):u&&p(h),c}function ot(n){return function(t,e,r){var u={};if(e=b.createCallback(e,r,3),qe(t)){r=-1;for(var o=t.length;++r<o;){var a=t[r];n(u,a,e(a,r,t),t)}}else Xe(t,function(t,r,o){n(u,t,e(t,r,o),o)});return u}}function at(n,t,e,r,u,o){var a=1&t,i=2&t,f=4&t,l=8&t,c=16&t,p=32&t,s=n;if(!i&&!mt(n))throw new oe;if(c&&!e.length&&(t&=-17,c=e=d),p&&!r.length&&(t&=-33,p=r=d),!a||i||f||p||!(Te.fastBind||Ce&&c))h=function(){var g=arguments,v=a?u:this;
return c&&xe.apply(g,e),p&&de.apply(g,r),f&&g.length<o?(t|=16,at(n,l?t:-4&t,g,m,u,o)):(i&&(n=v[s]),this instanceof h?(v=ft(n.prototype),g=n.apply(v,g),dt(g)?g:v):n.apply(v,g))};else{if(c){var g=[u];de.apply(g,e)}var h=c?Ce.apply(n,g):Ce.call(n,u)}return h}function it(){var n=f();n.h=z,n.b=n.c=n.g=n.i="",n.e="t",n.j=y;for(var t,e=0;t=arguments[e];e++)for(var r in t)n[r]=t[r];e=n.a,n.d=/^[^,]+/.exec(e)[0],t=Zt,e="return function("+e+"){",r="var n,t="+n.d+",E="+n.e+";if(!t)return E;"+n.i+";",n.b?(r+="var u=t.length;n=-1;if("+n.b+"){",Te.unindexedChars&&(r+="if(s(t)){t=t.split('')}"),r+="while(++n<u){"+n.g+";}}else{"):Te.nonEnumArgs&&(r+="var u=t.length;n=-1;if(u&&p(t)){while(++n<u){n+='';"+n.g+";}}else{"),Te.enumPrototypes&&(r+="var G=typeof t=='function';"),Te.enumErrorProps&&(r+="var F=t===k||t instanceof Error;");
var u=[];if(Te.enumPrototypes&&u.push('!(G&&n=="prototype")'),Te.enumErrorProps&&u.push('!(F&&(n=="message"||n=="name"))'),n.j&&n.f)r+="var C=-1,D=B[typeof t]&&v(t),u=D?D.length:0;while(++C<u){n=D[C];",u.length&&(r+="if("+u.join("&&")+"){"),r+=n.g+";",u.length&&(r+="}"),r+="}";else if(r+="for(n in t){",n.j&&u.push("m.call(t, n)"),u.length&&(r+="if("+u.join("&&")+"){"),r+=n.g+";",u.length&&(r+="}"),r+="}",Te.nonEnumShadows){for(r+="if(t!==A){var i=t.constructor,r=t===(i&&i.prototype),f=t===J?I:t===k?j:L.call(t),x=y[f];",k=0;7>k;k++)r+="n='"+n.h[k]+"';if((!(r&&x[n])&&m.call(t,n))",n.j||(r+="||(!x[n]&&t[n]!==A[n])"),r+="){"+n.g+"}";
r+="}"}return(n.b||Te.nonEnumArgs)&&(r+="}"),r+=n.c+";return E",t=t("d,j,k,m,o,p,q,s,v,A,B,y,I,J,L",e+r+"}"),s(n),t(X,W,ie,me,j,gt,qe,_t,n.f,fe,Q,Le,U,le,ke)}function ft(n){return dt(n)?Ee(n):{}}function lt(n){return He[n]}function ct(){var t=(t=b.indexOf)===$t?n:t;return t}function pt(n){var t,e;return!n||ke.call(n)!=M||(t=n.constructor,mt(t)&&!(t instanceof t))||!Te.argsClass&&gt(n)||!Te.nodeClass&&l(n)?d:Te.ownLast?(nr(n,function(n,t,r){return e=me.call(r,t),d}),e!==false):(nr(n,function(n,t){e=t
}),e===v||me.call(n,e))}function st(n){return Ue[n]}function gt(n){return n&&typeof n=="object"?ke.call(n)==L:d}function ht(n,t,e){var r=We(n),u=r.length;for(t=X(t,e,3);u--&&(e=r[u],!(t(n[e],e,n)===false)););return n}function vt(n){var t=[];return nr(n,function(n,e){mt(n)&&t.push(e)}),t.sort()}function yt(n){for(var t=-1,e=We(n),r=e.length,u={};++t<r;){var o=e[t];u[n[o]]=o}return u}function mt(n){return typeof n=="function"}function dt(n){return!(!n||!Q[typeof n])}function bt(n){return typeof n=="number"||ke.call(n)==J
}function _t(n){return typeof n=="string"||ke.call(n)==U}function wt(n){for(var t=-1,e=We(n),r=e.length,u=Qt(r);++t<r;)u[t]=n[e[t]];return u}function jt(n,t,e){var r=-1,u=ct(),o=n?n.length:0,a=d;return e=(0>e?Be(0,o+e):e)||0,o&&typeof o=="number"?a=-1<(_t(n)?n.indexOf(t,e):u(n,t,e)):Xe(n,function(n){return++r<e?void 0:!(a=n===t)}),a}function kt(n,t,e){var r=y;if(t=b.createCallback(t,e,3),qe(n)){e=-1;for(var u=n.length;++e<u&&(r=!!t(n[e],e,n)););}else Xe(n,function(n,e,u){return r=!!t(n,e,u)});return r
}function xt(n,t,e){var r=[];if(t=b.createCallback(t,e,3),qe(n)){e=-1;for(var u=n.length;++e<u;){var o=n[e];t(o,e,n)&&r.push(o)}}else Xe(n,function(n,e,u){t(n,e,u)&&r.push(n)});return r}function Ct(n,t,e){if(t=b.createCallback(t,e,3),!qe(n)){var r;return Xe(n,function(n,e,u){return t(n,e,u)?(r=n,d):void 0}),r}e=-1;for(var u=n.length;++e<u;){var o=n[e];if(t(o,e,n))return o}}function Et(n,t,e){if(t&&typeof e=="undefined"&&qe(n)){e=-1;for(var r=n.length;++e<r&&t(n[e],e,n)!==false;);}else Xe(n,t,e);return n
}function Ot(n,t,e){var r=n,u=n?n.length:0;if(typeof u!="number")var o=We(n),u=o.length;else Te.unindexedChars&&_t(n)&&(r=n.split(""));return t=X(t,e,3),Et(n,function(n,e,a){return e=o?o[--u]:--u,t(r[e],e,a)}),n}function St(n,t,e){var r=-1,u=n?n.length:0,o=Qt(typeof u=="number"?u:0);if(t=b.createCallback(t,e,3),qe(n))for(;++r<u;)o[r]=t(n[r],r,n);else Xe(n,function(n,e,u){o[++r]=t(n,e,u)});return o}function At(n,t,e){var u=-1/0,o=u;if(!t&&qe(n)){e=-1;for(var a=n.length;++e<a;){var i=n[e];i>o&&(o=i)
}}else t=!t&&_t(n)?r:b.createCallback(t,e,3),Xe(n,function(n,e,r){e=t(n,e,r),e>u&&(u=e,o=n)});return o}function It(n,t,e,r){var u=3>arguments.length;if(t=X(t,r,4),qe(n)){var o=-1,a=n.length;for(u&&(e=n[++o]);++o<a;)e=t(e,n[o],o,n)}else Xe(n,function(n,r,o){e=u?(u=d,n):t(e,n,r,o)});return e}function Bt(n,t,e,r){var u=3>arguments.length;return t=X(t,r,4),Ot(n,function(n,r,o){e=u?(u=d,n):t(e,n,r,o)}),e}function Pt(n){var t=-1,e=n?n.length:0,r=Qt(typeof e=="number"?e:0);return Et(n,function(n){var e=Ut(++t);
r[t]=r[e],r[e]=n}),r}function Nt(n,t,e){var r;if(t=b.createCallback(t,e,3),qe(n)){e=-1;for(var u=n.length;++e<u&&!(r=t(n[e],e,n)););}else Xe(n,function(n,e,u){return!(r=t(n,e,u))});return!!r}function Rt(n){return n&&typeof n.length=="number"?Te.unindexedChars&&_t(n)?n.split(""):g(n):wt(n)}function Ft(e){var r=-1,u=ct(),a=e?e.length:0,i=Z(arguments,y,y,1),f=[],l=a>=C&&u===n;if(l){var c=o(i);c?(u=t,i=c):l=d}for(;++r<a;)c=e[r],0>u(i,c)&&f.push(c);return l&&s(i),f}function Dt(n,t,e){if(n){var r=0,u=n.length;
if(typeof t!="number"&&t!=m){var o=-1;for(t=b.createCallback(t,e,3);++o<u&&t(n[o],o,n);)r++}else if(r=t,r==m||e)return n[0];return g(n,0,Pe(Be(0,r),u))}}function $t(t,e,r){if(typeof r=="number"){var u=t?t.length:0;r=0>r?Be(0,u+r):r||0}else if(r)return r=Lt(t,e),t[r]===e?r:-1;return t?n(t,e,r):-1}function zt(n,t,e){if(typeof t!="number"&&t!=m){var r=0,u=-1,o=n?n.length:0;for(t=b.createCallback(t,e,3);++u<o&&t(n[u],u,n);)r++}else r=t==m||e?1:Be(0,t);return g(n,r)}function Lt(n,t,e,r){var u=0,o=n?n.length:u;
for(e=e?b.createCallback(e,r,1):Mt,t=e(t);u<o;)r=u+o>>>1,e(n[r])<t?u=r+1:o=r;return u}function Tt(n,t,e,r){return typeof t!="boolean"&&t!=m&&(r=e,e=r&&r[t]===n?v:t,t=d),e!=m&&(e=b.createCallback(e,r,3)),ut(n,t,e)}function qt(){for(var n=1<arguments.length?arguments:arguments[0],t=-1,e=n?At(ar(n,"length")):0,r=Qt(0>e?0:e);++t<e;)r[t]=ar(n,t);return r}function Kt(n,t){for(var e=-1,r=n?n.length:0,u={};++e<r;){var o=n[e];t?u[o]=t[e]:o&&(u[o[0]]=o[1])}return u}function Wt(n,t){return at(n,17,Fe.call(arguments,2),m,t)
}function Gt(n,t,e){function r(){o(),(h||p!==t)&&(c=+new Yt,i=n.apply(f,a))}function u(){var t=h&&(!v||1<l);o(),t&&(c=+new Yt,i=n.apply(f,a))}function o(){ge(s),ge(g),l=0,s=g=m}var a,i,f,l=0,c=0,p=d,s=m,g=m,h=y;if(!mt(n))throw new oe;if(t=Be(0,t||0),e===y)var v=y,h=d;else dt(e)&&(v=e.leading,p="maxWait"in e&&Be(t,e.maxWait||0),h="trailing"in e?e.trailing:h);return function(){if(a=arguments,f=this,l++,ge(g),p===false)v&&2>l&&(i=n.apply(f,a));else{var e=+new Yt;!s&&!v&&(c=e);var o=p-(e-c);0<o?s||(s=we(r,o)):(ge(s),s=m,c=e,i=n.apply(f,a))
}return t!==p&&(g=we(u,t)),i}}function Jt(n){if(!mt(n))throw new oe;var t=Fe.call(arguments,1);return we(function(){n.apply(v,t)},1)}function Mt(n){return n}function Ht(n,t){var e=n,r=!t||mt(e);t||(e=_,t=n,n=b),Et(vt(t),function(u){var o=n[u]=t[u];r&&(e.prototype[u]=function(){var t=this.__wrapped__,r=[t];return de.apply(r,arguments),r=o.apply(n,r),t&&typeof t=="object"&&t===r?this:new e(r)})})}function Ut(n,t){n==m&&t==m&&(t=1),n=+n||0,t==m?(t=n,n=0):t=+t||0;var e=Re();return n%1||t%1?n+Pe(e*(t-n+parseFloat("1e-"+((e+"").length-1))),t):n+ve(e*(t-n+1))
}function Vt(){return this.__wrapped__}e=e?et.defaults(Y.Object(),e,et.pick(Y,$)):Y;var Qt=e.Array,Xt=e.Boolean,Yt=e.Date,Zt=e.Function,ne=e.Math,te=e.Number,ee=e.Object,re=e.RegExp,ue=e.String,oe=e.TypeError,ae=[],ie=e.Error.prototype,fe=ee.prototype,le=ue.prototype,ce=e._,pe=re("^"+ue(fe.valueOf).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/valueOf|for [^\]]+/g,".+?")+"$"),se=ne.ceil,ge=e.clearTimeout,he=pe.test(he=ee.defineProperty)&&he,ve=ne.floor,ye=pe.test(ye=ee.getPrototypeOf)&&ye,me=fe.hasOwnProperty,de=ae.push,be=fe.propertyIsEnumerable,_e=e.setImmediate,we=e.setTimeout,je=ae.splice,ke=fe.toString,xe=ae.unshift,Ce=pe.test(Ce=ke.bind)&&Ce,Ee=pe.test(Ee=ee.create)&&Ee,Oe=pe.test(Oe=Qt.isArray)&&Oe,Se=e.isFinite,Ae=e.isNaN,Ie=pe.test(Ie=ee.keys)&&Ie,Be=ne.max,Pe=ne.min,Ne=e.parseInt,Re=ne.random,Fe=ae.slice,De=pe.test(e.attachEvent),$e=Ce&&!/\n|true/.test(Ce+De),ze={};
}function Ot(n,t,e){var r=n,u=n?n.length:0;if(t=t&&typeof e=="undefined"?t:X(t,e,3),qe(n))for(;u--&&t(n[u],u,n)!==false;);else{if(typeof u!="number")var o=We(n),u=o.length;else Te.unindexedChars&&_t(n)&&(r=n.split(""));Xe(n,function(n,e,a){return e=o?o[--u]:--u,t(r[e],e,a)})}return n}function St(n,t,e){var r=-1,u=n?n.length:0,o=Qt(typeof u=="number"?u:0);if(t=b.createCallback(t,e,3),qe(n))for(;++r<u;)o[r]=t(n[r],r,n);else Xe(n,function(n,e,u){o[++r]=t(n,e,u)});return o}function At(n,t,e){var u=-1/0,o=u;
if(!t&&qe(n)){e=-1;for(var a=n.length;++e<a;){var i=n[e];i>o&&(o=i)}}else t=!t&&_t(n)?r:b.createCallback(t,e,3),Xe(n,function(n,e,r){e=t(n,e,r),e>u&&(u=e,o=n)});return o}function It(n,t,e,r){var u=3>arguments.length;if(t=X(t,r,4),qe(n)){var o=-1,a=n.length;for(u&&(e=n[++o]);++o<a;)e=t(e,n[o],o,n)}else Xe(n,function(n,r,o){e=u?(u=d,n):t(e,n,r,o)});return e}function Bt(n,t,e,r){var u=3>arguments.length;return t=X(t,r,4),Ot(n,function(n,r,o){e=u?(u=d,n):t(e,n,r,o)}),e}function Pt(n){var t=-1,e=n?n.length:0,r=Qt(typeof e=="number"?e:0);
return Et(n,function(n){var e=Ut(++t);r[t]=r[e],r[e]=n}),r}function Nt(n,t,e){var r;if(t=b.createCallback(t,e,3),qe(n)){e=-1;for(var u=n.length;++e<u&&!(r=t(n[e],e,n)););}else Xe(n,function(n,e,u){return!(r=t(n,e,u))});return!!r}function Rt(n){return n&&typeof n.length=="number"?Te.unindexedChars&&_t(n)?n.split(""):g(n):wt(n)}function Ft(e){var r=-1,u=ct(),a=e?e.length:0,i=Z(arguments,y,y,1),f=[],l=a>=C&&u===n;if(l){var c=o(i);c?(u=t,i=c):l=d}for(;++r<a;)c=e[r],0>u(i,c)&&f.push(c);return l&&s(i),f
}function Dt(n,t,e){if(n){var r=0,u=n.length;if(typeof t!="number"&&t!=m){var o=-1;for(t=b.createCallback(t,e,3);++o<u&&t(n[o],o,n);)r++}else if(r=t,r==m||e)return n[0];return g(n,0,Pe(Be(0,r),u))}}function $t(t,e,r){if(typeof r=="number"){var u=t?t.length:0;r=0>r?Be(0,u+r):r||0}else if(r)return r=Lt(t,e),t[r]===e?r:-1;return n(t,e,r)}function zt(n,t,e){if(typeof t!="number"&&t!=m){var r=0,u=-1,o=n?n.length:0;for(t=b.createCallback(t,e,3);++u<o&&t(n[u],u,n);)r++}else r=t==m||e?1:Be(0,t);return g(n,r)
}function Lt(n,t,e,r){var u=0,o=n?n.length:u;for(e=e?b.createCallback(e,r,1):Mt,t=e(t);u<o;)r=u+o>>>1,e(n[r])<t?u=r+1:o=r;return u}function Tt(n,t,e,r){return typeof t!="boolean"&&t!=m&&(r=e,e=r&&r[t]===n?v:t,t=d),e!=m&&(e=b.createCallback(e,r,3)),ut(n,t,e)}function qt(){for(var n=1<arguments.length?arguments:arguments[0],t=-1,e=n?At(ar(n,"length")):0,r=Qt(0>e?0:e);++t<e;)r[t]=ar(n,t);return r}function Kt(n,t){for(var e=-1,r=n?n.length:0,u={};++e<r;){var o=n[e];t?u[o]=t[e]:o&&(u[o[0]]=o[1])}return u
}function Wt(n,t){return at(n,17,Fe.call(arguments,2),m,t)}function Gt(n,t,e){function r(){g&&ge(g),l=0,s=g=m,(h||p!==t)&&(c=+new Yt,a=n.apply(f,o))}function u(){var e=t-(new Yt-i);0<e?g=we(u,e):(e=h&&(!v||1<l),s&&ge(s),l=0,s=g=m,e&&(c=+new Yt,a=n.apply(f,o)))}var o,a,i,f,l=0,c=0,p=d,s=m,g=m,h=y;if(!mt(n))throw new oe;if(t=Be(0,t||0),e===y)var v=y,h=d;else dt(e)&&(v=e.leading,p="maxWait"in e&&Be(t,e.maxWait||0),h="trailing"in e?e.trailing:h);return function(){if(o=arguments,i=+new Yt,f=this,l++,p===false)v&&2>l&&(a=n.apply(f,o));
else{!s&&!v&&(c=i);var e=p-(i-c);0<e?s||(s=we(r,e)):(s&&(ge(s),s=m),c=i,a=n.apply(f,o))}return!g&&t!==p&&(g=we(u,t)),a}}function Jt(n){if(!mt(n))throw new oe;var t=Fe.call(arguments,1);return we(function(){n.apply(v,t)},1)}function Mt(n){return n}function Ht(n,t){var e=n,r=!t||mt(e);t||(e=_,t=n,n=b),Et(vt(t),function(u){var o=n[u]=t[u];r&&(e.prototype[u]=function(){var t=this.__wrapped__,r=[t];return de.apply(r,arguments),r=o.apply(n,r),t&&typeof t=="object"&&t===r?this:new e(r)})})}function Ut(n,t){n==m&&t==m&&(t=1),n=+n||0,t==m?(t=n,n=0):t=+t||0;
var e=Re();return n%1||t%1?n+Pe(e*(t-n+parseFloat("1e-"+((e+"").length-1))),t):n+ve(e*(t-n+1))}function Vt(){return this.__wrapped__}e=e?et.defaults(Y.Object(),e,et.pick(Y,$)):Y;var Qt=e.Array,Xt=e.Boolean,Yt=e.Date,Zt=e.Function,ne=e.Math,te=e.Number,ee=e.Object,re=e.RegExp,ue=e.String,oe=e.TypeError,ae=[],ie=e.Error.prototype,fe=ee.prototype,le=ue.prototype,ce=e._,pe=re("^"+ue(fe.valueOf).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/valueOf|for [^\]]+/g,".+?")+"$"),se=ne.ceil,ge=e.clearTimeout,he=pe.test(he=ee.defineProperty)&&he,ve=ne.floor,ye=pe.test(ye=ee.getPrototypeOf)&&ye,me=fe.hasOwnProperty,de=ae.push,be=fe.propertyIsEnumerable,_e=e.setImmediate,we=e.setTimeout,je=ae.splice,ke=fe.toString,xe=ae.unshift,Ce=pe.test(Ce=ke.bind)&&Ce,Ee=pe.test(Ee=ee.create)&&Ee,Oe=pe.test(Oe=Qt.isArray)&&Oe,Se=e.isFinite,Ae=e.isNaN,Ie=pe.test(Ie=ee.keys)&&Ie,Be=ne.max,Pe=ne.min,Ne=e.parseInt,Re=ne.random,Fe=ae.slice,De=pe.test(e.attachEvent),$e=Ce&&!/\n|true/.test(Ce+De),ze={};
ze[T]=Qt,ze[q]=Xt,ze[K]=Yt,ze[G]=Zt,ze[M]=ee,ze[J]=te,ze[H]=re,ze[U]=ue;var Le={};Le[T]=Le[K]=Le[J]={constructor:y,toLocaleString:y,toString:y,valueOf:y},Le[q]=Le[U]={constructor:y,toString:y,valueOf:y},Le[W]=Le[G]=Le[H]={constructor:y,toString:y},Le[M]={constructor:y},function(){for(var n=z.length;n--;){var t,e=z[n];for(t in Le)me.call(Le,t)&&!me.call(Le[t],e)&&(Le[t][e]=d)}}(),_.prototype=b.prototype;var Te=b.support={};!function(){function n(){this.x=1}var t={0:1,length:1},e=[];n.prototype={valueOf:1};
for(var r in new n)e.push(r);for(r in arguments);Te.argsObject=arguments.constructor==ee&&!(arguments instanceof Qt),Te.argsClass=ke.call(arguments)==L,Te.enumErrorProps=be.call(ie,"message")||be.call(ie,"name"),Te.enumPrototypes=be.call(n,"prototype"),Te.fastBind=Ce&&!$e,Te.ownLast="x"!=e[0],Te.nonEnumArgs=0!=r,Te.nonEnumShadows=!/valueOf/.test(e),Te.spliceObjects=(ae.splice.call(t,0,1),!t[0]),Te.unindexedChars="xx"!="x"[0]+ee("x")[0];try{Te.nodeClass=!(ke.call(document)==M&&!({toString:0}+""))}catch(u){Te.nodeClass=y
}}(1),b.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:N,variable:"",imports:{_:b}},Ee||(ft=function(n){if(dt(n)){c.prototype=n;var t=new c;c.prototype=m}return t||{}}),Te.argsClass||(gt=function(n){return n&&typeof n=="object"?me.call(n,"callee"):d});var qe=Oe||function(n){return n&&typeof n=="object"?ke.call(n)==T:d},Ke=it({a:"z",e:"[]",i:"if(!(B[typeof z]))return E",g:"E.push(n)"}),We=Ie?function(n){return dt(n)?Te.enumPrototypes&&typeof n=="function"||Te.nonEnumArgs&&n.length&&gt(n)?Ke(n):Ie(n):[]
}:Ke,Ge={a:"g,e,K",i:"e=e&&typeof K=='undefined'?e:d(e,K,3)",b:"typeof u=='number'",v:We,g:"if(e(t[n],n,g)===false)return E"},Je={a:"z,H,l",i:"var a=arguments,b=0,c=typeof l=='number'?2:a.length;while(++b<c){t=a[b];if(t&&B[typeof t]){",v:We,g:"if(typeof E[n]=='undefined')E[n]=t[n]",c:"}}"},Me={i:"if(!B[typeof t])return E;"+Ge.i,b:d},He={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},Ue=yt(He),Ve=re("("+We(Ue).join("|")+")","g"),Qe=re("["+We(He).join("")+"]","g"),Xe=it(Ge),Ye=it(Je,{i:Je.i.replace(";",";if(c>3&&typeof a[c-2]=='function'){var e=d(a[--c-1],a[c--],2)}else if(c>2&&typeof a[c-1]=='function'){e=a[--c]}"),g:"E[n]=e?e(E[n],t[n]):t[n]"}),Ze=it(Je),nr=it(Ge,Me,{j:d}),tr=it(Ge,Me);
mt(/x/)&&(mt=function(n){return typeof n=="function"&&ke.call(n)==G});var er=ye?function(n){if(!n||ke.call(n)!=M||!Te.argsClass&&gt(n))return d;var t=n.valueOf,e=typeof t=="function"&&(e=ye(t))&&ye(e);return e?n==e||ye(n)==e:pt(n)}:pt,rr=ot(function(n,t,e){me.call(n,e)?n[e]++:n[e]=1}),ur=ot(function(n,t,e){(me.call(n,e)?n[e]:n[e]=[]).push(t)}),or=ot(function(n,t,e){n[e]=t}),ar=St;$e&&nt&&typeof _e=="function"&&(Jt=function(n){if(!mt(n))throw new oe;return _e.apply(e,arguments)});var ir=8==Ne(O+"08")?Ne:function(n,t){return Ne(_t(n)?n.replace(R,""):n,t||0)
};return b.after=function(n,t){if(!mt(t))throw new oe;return function(){return 1>--n?t.apply(this,arguments):void 0}},b.assign=Ye,b.at=function(n){var t=arguments,e=-1,r=Z(t,y,d,1),t=t[2]&&t[2][t[1]]===n?1:r.length,u=Qt(t);for(Te.unindexedChars&&_t(n)&&(n=n.split(""));++e<t;)u[e]=n[r[e]];return u},b.bind=Wt,b.bindAll=function(n){for(var t=1<arguments.length?Z(arguments,y,d,1):vt(n),e=-1,r=t.length;++e<r;){var u=t[e];n[u]=Wt(n[u],n)}return n},b.bindKey=function(n,t){return at(n,19,Fe.call(arguments,2),m,t)
};return b.after=function(n,t){if(!mt(t))throw new oe;return function(){return 1>--n?t.apply(this,arguments):void 0}},b.assign=Ye,b.at=function(n){var t=arguments,e=-1,r=Z(t,y,d,1),t=t[2]&&t[2][t[1]]===n?1:r.length,u=Qt(t);for(Te.unindexedChars&&_t(n)&&(n=n.split(""));++e<t;)u[e]=n[r[e]];return u},b.bind=Wt,b.bindAll=function(n){for(var t=1<arguments.length?Z(arguments,y,d,1):vt(n),e=-1,r=t.length;++e<r;){var u=t[e];n[u]=at(n[u],1,m,m,n)}return n},b.bindKey=function(n,t){return at(t,19,Fe.call(arguments,2),m,n)
},b.chain=function(n){return n=new _(n),n.__chain__=y,n},b.compact=function(n){for(var t=-1,e=n?n.length:0,r=[];++t<e;){var u=n[t];u&&r.push(u)}return r},b.compose=function(){for(var n=arguments,t=n.length||1;t--;)if(!mt(n[t]))throw new oe;return function(){for(var t=arguments,e=n.length;e--;)t=[n[e].apply(this,t)];return t[0]}},b.countBy=rr,b.createCallback=function(n,t,e){var r=typeof n;if(n==m||"function"==r)return X(n,t,e);if("object"!=r)return function(t){return t[n]};var u=We(n),o=u[0],a=n[o];
return 1!=u.length||a!==a||dt(a)?function(t){for(var e=u.length,r=d;e--&&(r=tt(t[u[e]],n[u[e]],m,y)););return r}:function(n){return n=n[o],a===n&&(0!==a||1/a==1/n)}},b.curry=function(n,t){return t=typeof t=="number"?t:+t||n.length,at(n,4,m,m,m,t)},b.debounce=Gt,b.defaults=Ze,b.defer=Jt,b.delay=function(n,t){if(!mt(n))throw new oe;var e=Fe.call(arguments,2);return we(function(){n.apply(v,e)},t)},b.difference=Ft,b.filter=xt,b.flatten=function(n,t,e,r){return typeof t!="boolean"&&t!=m&&(r=e,e=r&&r[t]===n?v:t,t=d),e!=m&&(n=St(n,e,r)),Z(n,t)
},b.forEach=Et,b.forEachRight=Ot,b.forIn=nr,b.forInRight=function(n,t,e){var r=[];nr(n,function(n,t){r.push(t,n)});var u=r.length;for(t=X(t,e,3);u--&&t(r[u--],r[u],n)!==false;);return n},b.forOwn=tr,b.forOwnRight=ht,b.functions=vt,b.groupBy=ur,b.indexBy=or,b.initial=function(n,t,e){if(!n)return[];var r=0,u=n.length;if(typeof t!="number"&&t!=m){var o=u;for(t=b.createCallback(t,e,3);o--&&t(n[o],o,n);)r++}else r=t==m||e?1:t||r;return g(n,0,Pe(Be(0,u-r),u))},b.intersection=function(e){for(var r=arguments,u=r.length,a=-1,f=i(),l=-1,c=ct(),g=e?e.length:0,h=[],v=i();++a<u;){var y=r[a];