From 44ee07382180c26d2c9a7834bf3b48868e40bafb Mon Sep 17 00:00:00 2001 From: Brandon Tilley Date: Sun, 18 May 2014 14:59:19 -0700 Subject: [PATCH] v1.0.0 --- build/fluxbox.min.js | 4 ++-- build/fluxbox.min.js.map | 2 +- examples/carousel/app/bundle.js | 14 +++++++------- examples/carousel/app/bundle.js.map | 2 +- examples/todo-basic/app/bundle.js | 12 ++++++------ examples/todo-basic/app/bundle.js.map | 2 +- package.json | 2 +- site/contents/examples/carousel/carousel-bundle.js | 14 +++++++------- site/contents/getting-started/todo-bundle.js | 12 ++++++------ 9 files changed, 32 insertions(+), 32 deletions(-) diff --git a/build/fluxbox.min.js b/build/fluxbox.min.js index fd9cef6..42f317c 100644 --- a/build/fluxbox.min.js +++ b/build/fluxbox.min.js @@ -1,5 +1,5 @@ -!function(n,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):"object"==typeof exports?exports.Fluxbox=t():n.Fluxbox=t()}(this,function(){return function(n){function t(r){if(e[r])return e[r].exports;var i=e[r]={exports:{},id:r,loaded:!1};return n[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var e={};return t.m=n,t.c=e,t.p="",t(0)}([function(n,t,e){var r=e(1),i=e(4),o=e(5),a=e(7),u=e(3),s={Dispatcher:r,Flux:i,FluxMixin:o,StoreWatchMixin:a,createStore:u};n.exports=s},function(n,t,e){var r=e(8),i=function(n){this.stores=n,this.currentDispatch=null,this.waitingToDispatch=[];for(var t in n)n[t].dispatcher=this};i.prototype.dispatch=function(n){if(this.currentDispatch)throw new Error("Cannot dispatch an action while another action is being dispatched");this.waitingToDispatch=r.clone(this.stores),this.currentDispatch=r.mapValues(this.stores,function(){return{resolved:!1,waitingOn:[],waitCallback:null}}),this.doDispatchLoop(n),this.currentDispatch=null},i.prototype.doDispatchLoop=function(n){var t,e,i=[],o=[];if(r.forOwn(this.waitingToDispatch,function(a,u){if(t=this.currentDispatch[u],e=!t.waitingOn.length||!r.intersection(t.waitingOn,r.keys(this.waitingToDispatch)).length){if(t.waitCallback){var s=r.map(t.waitingOn,function(n){return this.stores[n]},this),l=t.waitCallback;t.waitCallback=null,t.waitingOn=[],t.resolved=!0,l.apply(null,s)}else t.resolved=!0,this.stores[u].__handleAction__(n);o.push(u),this.currentDispatch[u].resolved&&i.push(u)}},this),!o.length){var a=r.keys(this.waitingToDispatch).join(", ");throw new Error("Indirect circular wait detected among: "+a)}r.each(i,function(n){delete this.waitingToDispatch[n]},this),r.size(this.waitingToDispatch)&&this.doDispatchLoop(n)},i.prototype.waitForStores=function(n,t,e){if(!this.currentDispatch)throw new Error("Cannot wait unless an action is being dispatched");var i=r.findKey(this.stores,function(t){return t===n});if(t.indexOf(i)>-1)throw new Error("A store cannot wait on itself");var o=this.currentDispatch[i];if(r.intersection(o.waitingOn,t).length)throw new Error("Already waiting on "+i);r.each(t,function(n){var t=this.currentDispatch[n];if(!this.stores[n])throw new Error("Cannot wait for non-existant store "+n);if(t.waitingOn.indexOf(i)>-1)throw new Error("Circular wait detected between "+i+" and "+n)},this),o.resolved=!1,o.waitingOn=r.uniq(o.waitingOn.concat(t)),o.waitCallback=e},n.exports=i},function(n,t,e){(function(n,r){function i(n,e){var r={seen:[],stylize:a};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),v(e)?r.showHidden=e:e&&t._extend(r,e),w(r.showHidden)&&(r.showHidden=!1),w(r.depth)&&(r.depth=2),w(r.colors)&&(r.colors=!1),w(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=o),s(r,n,r.depth)}function o(n,t){var e=i.styles[t];return e?"["+i.colors[e][0]+"m"+n+"["+i.colors[e][1]+"m":n}function a(n){return n}function u(n){var t={};return n.forEach(function(n){t[n]=!0}),t}function s(n,e,r){if(n.customInspect&&e&&C(e.inspect)&&e.inspect!==t.inspect&&(!e.constructor||e.constructor.prototype!==e)){var i=e.inspect(r,n);return b(i)||(i=s(n,i,r)),i}var o=l(n,e);if(o)return o;var a=Object.keys(e),v=u(a);if(n.showHidden&&(a=Object.getOwnPropertyNames(e)),E(e)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return c(e);if(0===a.length){if(C(e)){var y=e.name?": "+e.name:"";return n.stylize("[Function"+y+"]","special")}if(x(e))return n.stylize(RegExp.prototype.toString.call(e),"regexp");if(j(e))return n.stylize(Date.prototype.toString.call(e),"date");if(E(e))return c(e)}var d="",m=!1,_=["{","}"];if(g(e)&&(m=!0,_=["[","]"]),C(e)){var w=e.name?": "+e.name:"";d=" [Function"+w+"]"}if(x(e)&&(d=" "+RegExp.prototype.toString.call(e)),j(e)&&(d=" "+Date.prototype.toUTCString.call(e)),E(e)&&(d=" "+c(e)),0===a.length&&(!m||0==e.length))return _[0]+d+_[1];if(0>r)return x(e)?n.stylize(RegExp.prototype.toString.call(e),"regexp"):n.stylize("[Object]","special");n.seen.push(e);var k;return k=m?f(n,e,r,v,a):a.map(function(t){return p(n,e,r,v,t,m)}),n.seen.pop(),h(k,d,_)}function l(n,t){if(w(t))return n.stylize("undefined","undefined");if(b(t)){var e="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return n.stylize(e,"string")}return m(t)?n.stylize(""+t,"number"):v(t)?n.stylize(""+t,"boolean"):y(t)?n.stylize("null","null"):void 0}function c(n){return"["+Error.prototype.toString.call(n)+"]"}function f(n,t,e,r,i){for(var o=[],a=0,u=t.length;u>a;++a)o.push(A(t,String(a))?p(n,t,e,r,String(a),!0):"");return i.forEach(function(i){i.match(/^\d+$/)||o.push(p(n,t,e,r,i,!0))}),o}function p(n,t,e,r,i,o){var a,u,l;if(l=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]},l.get?u=l.set?n.stylize("[Getter/Setter]","special"):n.stylize("[Getter]","special"):l.set&&(u=n.stylize("[Setter]","special")),A(r,i)||(a="["+i+"]"),u||(n.seen.indexOf(l.value)<0?(u=y(e)?s(n,l.value,null):s(n,l.value,e-1),u.indexOf("\n")>-1&&(u=o?u.split("\n").map(function(n){return" "+n}).join("\n").substr(2):"\n"+u.split("\n").map(function(n){return" "+n}).join("\n"))):u=n.stylize("[Circular]","special")),w(a)){if(o&&i.match(/^\d+$/))return u;a=JSON.stringify(""+i),a.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=n.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=n.stylize(a,"string"))}return a+": "+u}function h(n,t,e){var r=0,i=n.reduce(function(n,t){return r++,t.indexOf("\n")>=0&&r++,n+t.replace(/\u001b\[\d\d?m/g,"").length+1},0);return i>60?e[0]+(""===t?"":t+"\n ")+" "+n.join(",\n ")+" "+e[1]:e[0]+t+" "+n.join(", ")+" "+e[1]}function g(n){return Array.isArray(n)}function v(n){return"boolean"==typeof n}function y(n){return null===n}function d(n){return null==n}function m(n){return"number"==typeof n}function b(n){return"string"==typeof n}function _(n){return"symbol"==typeof n}function w(n){return void 0===n}function x(n){return k(n)&&"[object RegExp]"===S(n)}function k(n){return"object"==typeof n&&null!==n}function j(n){return k(n)&&"[object Date]"===S(n)}function E(n){return k(n)&&("[object Error]"===S(n)||n instanceof Error)}function C(n){return"function"==typeof n}function O(n){return null===n||"boolean"==typeof n||"number"==typeof n||"string"==typeof n||"symbol"==typeof n||"undefined"==typeof n}function S(n){return Object.prototype.toString.call(n)}function L(n){return 10>n?"0"+n.toString(10):n.toString(10)}function P(){var n=new Date,t=[L(n.getHours()),L(n.getMinutes()),L(n.getSeconds())].join(":");return[n.getDate(),I[n.getMonth()],t].join(" ")}function A(n,t){return Object.prototype.hasOwnProperty.call(n,t)}var D=/%[sdj%]/g;t.format=function(n){if(!b(n)){for(var t=[],e=0;e=o)return n;switch(n){case"%s":return String(r[e++]);case"%d":return Number(r[e++]);case"%j":try{return JSON.stringify(r[e++])}catch(t){return"[Circular]"}default:return n}}),u=r[e];o>e;u=r[++e])a+=y(u)||!k(u)?" "+u:" "+i(u);return a},t.deprecate=function(e,i){function o(){if(!a){if(r.throwDeprecation)throw new Error(i);r.traceDeprecation?console.trace(i):console.error(i),a=!0}return e.apply(this,arguments)}if(w(n.process))return function(){return t.deprecate(e,i).apply(this,arguments)};if(r.noDeprecation===!0)return e;var a=!1;return o};var F,T={};t.debuglog=function(n){if(w(F)&&(F=r.env.NODE_DEBUG||""),n=n.toUpperCase(),!T[n])if(new RegExp("\\b"+n+"\\b","i").test(F)){var e=r.pid;T[n]=function(){var r=t.format.apply(t,arguments);console.error("%s %d: %s",n,e,r)}}else T[n]=function(){};return T[n]},t.inspect=i,i.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},i.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=g,t.isBoolean=v,t.isNull=y,t.isNullOrUndefined=d,t.isNumber=m,t.isString=b,t.isSymbol=_,t.isUndefined=w,t.isRegExp=x,t.isObject=k,t.isDate=j,t.isError=E,t.isFunction=C,t.isPrimitive=O,t.isBuffer=e(13);var I=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];t.log=function(){console.log("%s - %s",P(),t.format.apply(t,arguments))},t.inherits=e(12),t._extend=function(n,t){if(!t||!k(t))return n;for(var e=Object.keys(t),r=e.length;r--;)n[e[r]]=t[e[r]];return n}}).call(t,function(){return this}(),e(11))},function(n,t,e){var r=e(6),i=e(2),o=function(n){var t=function(t){t=t||{},r.call(this),this.__actions__={};for(key in n){if("waitFor"===key||"flux"===key)throw new Exception("Reserved key '"+key+"' found in store definition");"actions"===key?this.__actions__=n[key]:"initialize"===key||(this[key]="function"==typeof n[key]?n[key].bind(this):n[key])}n.initialize&&n.initialize.call(this,t)};return i.inherits(t,r),t};n.exports=o},function(n,t,e){var r=e(1),i=function(n,t){var e=new r(n),i={dispatch:function(n,t){e.dispatch({type:n,payload:t})}};this.dispatcher=e,this.actions={};for(key in t)this.actions[key]=t[key].bind(i);for(key in n)n[key].flux=this};i.prototype.store=function(n){return this.dispatcher.stores[n]},n.exports=i},function(n){var t=function(n){return{propTypes:{flux:n.PropTypes.object.isRequired},childContextTypes:{flux:n.PropTypes.object},getChildContext:function(){return{flux:this.props.flux}}}};t.componentWillMount=function(){throw new Error("Fluxbox.FluxMixin is a function that takes React as a parameter and returns the mixin, e.g.: mixins[Fluxbox.FluxMixin(React)]")},n.exports=t},function(n,t,e){function r(n){this.dispatcher=n,i.call(this)}var i=e(10).EventEmitter,o=e(2);o.inherits(r,i),r.prototype.__handleAction__=function(n){var t;(t=this.__actions__[n.type])&&("function"==typeof t?t.call(this,n.payload,n.type):t&&"function"==typeof this[t]&&this[t].call(this,n.payload,n.type))},r.prototype.bindActions=function(){var n=Array.prototype.slice.call(arguments);if(n.length%2!==0)throw new Error("bindActions must take an even number of arguments.");for(var t=0;t-1?0:-1:n?0:-1}function u(n){var t=this.cache,e=typeof n;if("boolean"==e||null==n)t[n]=!0;else{"number"!=e&&"string"!=e&&(e="object");var r="number"==e?n:E+n,i=t[e]||(t[e]={});"object"==e?(i[r]||(i[r]=[])).push(n):i[r]=!0}}function s(n){return n.charCodeAt(0)}function l(n,t){for(var e=n.criteria,r=t.criteria,i=-1,o=e.length;++iu||"undefined"==typeof a)return 1;if(u>a||"undefined"==typeof u)return-1}}return n.index-t.index}function c(n){var t=-1,e=n.length,r=n[0],i=n[e/2|0],o=n[e-1];if(r&&"object"==typeof r&&i&&"object"==typeof i&&o&&"object"==typeof o)return!1;var a=h();a["false"]=a["null"]=a["true"]=a.undefined=!1;var s=h();for(s.array=n,s.cache=a,s.push=u;++ti?0:i);++r=C&&r===o,s=[];if(u){var l=c(t);l?(r=a,t=l):u=!1}for(;++e-1:void 0});return i.pop(),o.pop(),b&&(v(i),v(o)),a}function ut(n,t,e,r,i){(ci(t)?re:ji)(t,function(t,o){var a,u,s=t,l=n[o];if(t&&((u=ci(t))||Ei(t))){for(var c=r.length;c--;)if(a=r[c]==t){l=i[c];break}if(!a){var f;e&&(s=e(l,t),(f="undefined"!=typeof s)&&(l=s)),f||(l=u?ci(l)?l:[]:Ei(l)?l:{}),r.push(t),i.push(l),f||ut(l,t,e,r,i)}}else e&&(s=e(l,t),"undefined"==typeof s&&(s=t)),"undefined"!=typeof s&&(l=s);n[o]=l})}function st(n,t){return n+$r(ii()*(t-n+1))}function ct(n,t,e){var r=-1,i=vt(),u=n?n.length:0,s=[],l=!t&&u>=C&&i===o,f=e||l?p():s;if(l){var h=c(f);i=a,f=h}for(;++r3&&"function"==typeof t[e-2])var r=_(t[--e-1],t[e--],2);else e>2&&"function"==typeof t[e-1]&&(r=t[--e]);for(var i=d(arguments,1,e),o=-1,a=p(),u=p();++oe?ti(0,o+e):e)||0,ci(n)?a=i(n,t,e)>-1:"number"==typeof o?a=(Bt(n)?n.indexOf(t,e):i(n,t,e))>-1:_i(n,function(n){return++r>=e?!(a=n===t):void 0}),a}function Yt(n,e,r){var i=!0;if(e=t.createCallback(e,r,3),ci(n))for(var o=-1,a=n.length;++oo&&(o=l)}else e=null==e&&Bt(n)?s:t.createCallback(e,r,3),_i(n,function(n,t,r){var a=e(n,t,r);a>i&&(i=a,o=n)});return o}function se(n,e,r){var i=1/0,o=i;if("function"!=typeof e&&r&&r[e]===n&&(e=null),null==e&&ci(n))for(var a=-1,u=n.length;++al&&(o=l)}else e=null==e&&Bt(n)?s:t.createCallback(e,r,3),_i(n,function(n,t,r){var a=e(n,t,r);i>a&&(i=a,o=n)});return o}function le(n,e,r,i){var o=arguments.length<3;if(e=t.createCallback(e,i,4),ci(n)){var a=-1,u=n.length;for(o&&(r=n[++a]);++ae?ti(0,r+e):e||0}else if(e){var i=Fe(n,t);return n[i]===t?i:-1}return o(n,t,e)}function Ee(n,e,r){var i=0,o=n?n.length:0;if("number"!=typeof e&&null!=e){var a=o;for(e=t.createCallback(e,r,3);a--&&e(n[a],a,n);)i++}else i=null==e||r?1:e||i;return d(n,0,ei(ti(0,o-i),o))}function Ce(){for(var n=[],t=-1,e=arguments.length,r=p(),i=vt(),u=i===o,s=p();++t=C&&c(t?n[t]:s)))}var f=n[0],h=-1,g=f?f.length:0,d=[];n:for(;++he?ti(0,r+e):ei(e,r-1))+1);r--;)if(n[r]===t)return r;return-1}function Le(n){for(var t=arguments,e=0,r=t.length,i=n?n.length:0;++eo;){var u=o+a>>>1;r(n[u])1?arguments:arguments[0],t=-1,e=n?ue(Li(n,"length")):0,r=_r(0>e?0:e);++t2?pt(n,17,d(arguments,2),null,t):pt(n,1,null,null,t)}function Be(n){for(var t=arguments.length>1?it(arguments,!0,!1,1):Ot(n),e=-1,r=t.length;++e2?pt(t,19,d(arguments,2),null,n):pt(t,3,null,null,n)}function We(){for(var n=arguments,t=n.length;t--;)if(!zt(n[t]))throw new Pr;return function(){for(var t=arguments,e=n.length;e--;)t=[n[e].apply(this,t)];return t[0]}}function qe(n,t){return t="number"==typeof t?t:+t||n.length,pt(n,4,null,null,null,t)}function Je(n,t,e){var r,i,o,a,u,s,l,c=0,f=!1,p=!0;if(!zt(n))throw new Pr;if(t=ti(0,t)||0,e===!0){var h=!0;p=!1}else Nt(e)&&(h=e.leading,f="maxWait"in e&&(ti(t,e.maxWait)||0),p="trailing"in e?e.trailing:p);var g=function(){var e=t-(Ai()-a);if(0>=e){i&&Mr(i);var f=l;i=s=l=b,f&&(c=Ai(),o=n.apply(u,r),s||i||(r=u=null))}else s=Jr(g,e)},v=function(){s&&Mr(s),i=s=l=b,(p||f!==t)&&(c=Ai(),o=n.apply(u,r),s||i||(r=u=null))};return function(){if(r=arguments,a=Ai(),u=this,l=p&&(s||!h),f===!1)var e=h&&!s;else{i||h||(c=a);var y=f-(a-c),d=0>=y;d?(i&&(i=Mr(i)),c=a,o=n.apply(u,r)):i||(i=Jr(v,y))}return d&&s?s=Mr(s):s||t===f||(s=Jr(g,t)),e&&(d=!0,o=n.apply(u,r)),!d||s||i||(r=u=null),o}}function Ke(n){if(!zt(n))throw new Pr;var t=d(arguments,1);return Jr(function(){n.apply(b,t)},1)}function Ge(n,t){if(!zt(n))throw new Pr;var e=d(arguments,2);return Jr(function(){n.apply(b,e)},t)}function Ve(n,t){if(!zt(n))throw new Pr;var e=function(){var r=e.cache,i=t?t.apply(this,arguments):E+arguments[0];return Hr.call(r,i)?r[i]:r[i]=n.apply(this,arguments)};return e.cache={},e}function Ze(n){var t,e;if(!zt(n))throw new Pr;return function(){return t?e:(t=!0,e=n.apply(this,arguments),n=null,e)}}function Qe(n){return pt(n,16,d(arguments,1))}function Xe(n){return pt(n,32,null,d(arguments,1))}function Ye(n,t,e){var r=!0,i=!0;if(!zt(n))throw new Pr;return e===!1?r=!1:Nt(e)&&(r="leading"in e?e.leading:r,i="trailing"in e?e.trailing:i),nt.leading=r,nt.maxWait=t,nt.trailing=i,Je(n,t,nt)}function nr(n,t){return pt(t,16,[n])}function tr(n){return function(){return n}}function er(n,t,e){var r=typeof n;if(null==n||"function"==r)return _(n,t,e);if("object"!=r)return sr(n);var i=pi(n),o=i[0],a=n[o];return 1!=i.length||a!==a||Nt(a)?function(t){for(var e=i.length,r=!1;e--&&(r=at(t[i[e]],n[i[e]],null,!0)););return r}:function(n){var t=n[o];return a===t&&(0!==a||1/a==1/t)}}function rr(n){return null==n?"":Lr(n).replace(bi,gt)}function ir(n){return n}function or(n,r,i){var o=!0,a=r&&Ot(r);r&&(i||a.length)||(null==i&&(i=r),u=e,r=n,n=t,a=Ot(r)),i===!1?o=!1:Nt(i)&&"chain"in i&&(o=i.chain);var u=n,s=zt(u);re(a,function(t){var e=n[t]=r[t];s&&(u.prototype[t]=function(){var t=this.__chain__,r=this.__wrapped__,i=[r];Wr.apply(i,arguments);var a=e.apply(n,i);if(o||t){if(r===a&&Nt(a))return this;a=new u(a),a.__chain__=t}return a})})}function ar(){return n._=Ir,this}function ur(){}function sr(n){return function(t){return t[n]}}function lr(n,t,e){var r=null==n,i=null==t;if(null==e&&("boolean"==typeof n&&i?(e=n,n=1):i||"boolean"!=typeof t||(e=t,i=!0)),r&&i&&(t=1),n=+n||0,i?(t=n,n=0):t=+t||0,e||n%1||t%1){var o=ii();return ei(n+o*(t-n+parseFloat("1e-"+((o+"").length-1))),t)}return st(n,t)}function cr(n,t){if(n){var e=n[t];return zt(e)?n[t]():e}}function fr(n,e,r){var i=t.templateSettings;n=Lr(n||""),r=xi({},r,i);var o,a=xi({},r.imports,i.imports),u=pi(a),s=Zt(a),l=0,c=r.interpolate||N,p="__p += '",h=Sr((r.escape||N).source+"|"+c.source+"|"+(c===I?D:N).source+"|"+(r.evaluate||N).source+"|$","g"); -n.replace(h,function(t,e,r,i,a,u){return r||(r=i),p+=n.slice(l,u).replace(M,f),e&&(p+="' +\n__e("+e+") +\n'"),a&&(o=!0,p+="';\n"+a+";\n__p += '"),r&&(p+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),l=u+t.length,t}),p+="';\n";var g=r.variable,v=g;v||(g="obj",p="with ("+g+") {\n"+p+"\n}\n"),p=(o?p.replace(L,""):p).replace(P,"$1").replace(A,"$1;"),p="function("+g+") {\n"+(v?"":g+" || ("+g+" = {});\n")+"var __t, __p = '', __e = _.escape"+(o?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+p+"return __p\n}";var y="\n/*\n//# sourceURL="+(r.sourceURL||"/lodash/template/source["+B++ +"]")+"\n*/";try{var d=jr(u,"return "+p+y).apply(b,s)}catch(m){throw m.source=p,m}return e?d(e):(d.source=p,d)}function pr(n,t,e){n=(n=+n)>-1?n:0;var r=-1,i=_r(n);for(t=_(t,e,1);++r/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:I,variable:"",imports:{_:t}};var si=function(n){var t="var index, iterable = "+n.firstArg+", result = "+n.init+";\nif (!iterable) return result;\n"+n.top+";";n.array?(t+="\nvar length = iterable.length; index = -1;\nif ("+n.array+") { ",ui.unindexedChars&&(t+="\n if (isString(iterable)) {\n iterable = iterable.split('')\n } "),t+="\n while (++index < length) {\n "+n.loop+";\n }\n}\nelse { "):ui.nonEnumArgs&&(t+="\n var length = iterable.length; index = -1;\n if (length && isArguments(iterable)) {\n while (++index < length) {\n index += '';\n "+n.loop+";\n }\n } else { "),ui.enumPrototypes&&(t+="\n var skipProto = typeof iterable == 'function';\n "),ui.enumErrorProps&&(t+="\n var skipErrorProps = iterable === errorProto || iterable instanceof Error;\n ");var e=[];if(ui.enumPrototypes&&e.push('!(skipProto && index == "prototype")'),ui.enumErrorProps&&e.push('!(skipErrorProps && (index == "message" || index == "name"))'),n.useHas&&n.keys)t+="\n var ownIndex = -1,\n ownProps = objectTypes[typeof iterable] && keys(iterable),\n length = ownProps ? ownProps.length : 0;\n\n while (++ownIndex < length) {\n index = ownProps[ownIndex];\n",e.length&&(t+=" if ("+e.join(" && ")+") {\n "),t+=n.loop+"; ",e.length&&(t+="\n }"),t+="\n } ";else if(t+="\n for (index in iterable) {\n",n.useHas&&e.push("hasOwnProperty.call(iterable, index)"),e.length&&(t+=" if ("+e.join(" && ")+") {\n "),t+=n.loop+"; ",e.length&&(t+="\n }"),t+="\n } ",ui.nonEnumShadows){for(t+="\n\n if (iterable !== objectProto) {\n var ctor = iterable.constructor,\n isProto = iterable === (ctor && ctor.prototype),\n className = iterable === stringProto ? stringClass : iterable === errorProto ? errorClass : toString.call(iterable),\n nonEnum = nonEnumProps[className];\n ",k=0;7>k;k++)t+="\n index = '"+n.shadowedProps[k]+"';\n if ((!(isProto && nonEnum[index]) && hasOwnProperty.call(iterable, index))",n.useHas||(t+=" || (!nonEnum[index] && iterable[index] !== objectProto[index])"),t+=") {\n "+n.loop+";\n } ";t+="\n } "}return(n.array||ui.nonEnumArgs)&&(t+="\n}"),t+=n.bottom+";\nreturn result"};Zr||(u=function(){function t(){}return function(e){if(Nt(e)){t.prototype=e;var r=new t;t.prototype=null}return r||n.Object()}}());var li=Vr?function(n,t){tt.value=t,Vr(n,"__bindData__",tt)}:ur;ui.argsClass||(bt=function(n){return n&&"object"==typeof n&&"number"==typeof n.length&&Hr.call(n,"callee")&&!qr.call(n,"callee")||!1});var ci=Qr||function(n){return n&&"object"==typeof n&&"number"==typeof n.length&&zr.call(n)==W||!1},fi=ht({args:"object",init:"[]",top:"if (!(objectTypes[typeof object])) return result",loop:"result.push(index)"}),pi=ni?function(n){return Nt(n)?ui.enumPrototypes&&"function"==typeof n||ui.nonEnumArgs&&n.length&&bt(n)?fi(n):ni(n):[]}:fi,hi={args:"collection, callback, thisArg",top:"callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3)",array:"typeof length == 'number'",keys:pi,loop:"if (callback(iterable[index], index, collection) === false) return result"},gi={args:"object, source, guard",top:"var args = arguments,\n argsIndex = 0,\n argsLength = typeof guard == 'number' ? 2 : args.length;\nwhile (++argsIndex < argsLength) {\n iterable = args[argsIndex];\n if (iterable && objectTypes[typeof iterable]) {",keys:pi,loop:"if (typeof result[index] == 'undefined') result[index] = iterable[index]",bottom:" }\n}"},vi={top:"if (!objectTypes[typeof iterable]) return result;\n"+hi.top,array:!1},yi={"&":"&","<":"<",">":">",'"':""","'":"'"},di=Lt(yi),mi=Sr("("+pi(di).join("|")+")","g"),bi=Sr("["+pi(yi).join("")+"]","g"),_i=ht(hi),wi=ht(gi,{top:gi.top.replace(";",";\nif (argsLength > 3 && typeof args[argsLength - 2] == 'function') {\n var callback = baseCreateCallback(args[--argsLength - 1], args[argsLength--], 2);\n} else if (argsLength > 2 && typeof args[argsLength - 1] == 'function') {\n callback = args[--argsLength];\n}"),loop:"result[index] = callback ? callback(result[index], iterable[index]) : iterable[index]"}),xi=ht(gi),ki=ht(hi,vi,{useHas:!1}),ji=ht(hi,vi);zt(/x/)&&(zt=function(n){return"function"==typeof n&&zr.call(n)==G});var Ei=Br?function(n){if(!n||zr.call(n)!=Z||!ui.argsClass&&bt(n))return!1;var t=n.valueOf,e=yt(t)&&(e=Br(t))&&Br(e);return e?n==e||Br(n)==e:dt(n)}:dt,Ci=ft(function(n,t,e){Hr.call(n,e)?n[e]++:n[e]=1}),Oi=ft(function(n,t,e){(Hr.call(n,e)?n[e]:n[e]=[]).push(t)}),Si=ft(function(n,t,e){n[e]=t}),Li=ae,Pi=ne,Ai=yt(Ai=xr.now)&&Ai||function(){return(new xr).getTime()},Di=8==ri(S+"08")?ri:function(n,t){return ri(Bt(n)?n.replace(z,""):n,t||0)};return t.after=$e,t.assign=wi,t.at=Qt,t.bind=Ue,t.bindAll=Be,t.bindKey=He,t.chain=vr,t.compact=me,t.compose=We,t.constant=tr,t.countBy=Ci,t.create=xt,t.createCallback=er,t.curry=qe,t.debounce=Je,t.defaults=xi,t.defer=Ke,t.delay=Ge,t.difference=be,t.filter=ne,t.flatten=ke,t.forEach=re,t.forEachRight=ie,t.forIn=ki,t.forInRight=Et,t.forOwn=ji,t.forOwnRight=Ct,t.functions=Ot,t.groupBy=Oi,t.indexBy=Si,t.initial=Ee,t.intersection=Ce,t.invert=Lt,t.invoke=oe,t.keys=pi,t.map=ae,t.mapValues=Wt,t.max=ue,t.memoize=Ve,t.merge=qt,t.min=se,t.omit=Jt,t.once=Ze,t.pairs=Kt,t.partial=Qe,t.partialRight=Xe,t.pick=Gt,t.pluck=Li,t.property=sr,t.pull=Le,t.range=Pe,t.reject=fe,t.remove=Ae,t.rest=De,t.shuffle=he,t.sortBy=ye,t.tap=yr,t.throttle=Ye,t.times=pr,t.toArray=de,t.transform=Vt,t.union=Te,t.uniq=Ie,t.values=Zt,t.where=Pi,t.without=ze,t.wrap=nr,t.xor=Ne,t.zip=Re,t.zipObject=Me,t.collect=ae,t.drop=De,t.each=re,t.eachRight=ie,t.extend=wi,t.methods=Ot,t.object=Me,t.select=ne,t.tail=De,t.unique=Ie,t.unzip=Re,or(t),t.clone=_t,t.cloneDeep=wt,t.contains=Xt,t.escape=rr,t.every=Yt,t.find=te,t.findIndex=_e,t.findKey=kt,t.findLast=ee,t.findLastIndex=we,t.findLastKey=jt,t.has=St,t.identity=ir,t.indexOf=je,t.isArguments=bt,t.isArray=ci,t.isBoolean=Pt,t.isDate=At,t.isElement=Dt,t.isEmpty=Ft,t.isEqual=Tt,t.isFinite=It,t.isFunction=zt,t.isNaN=Rt,t.isNull=Mt,t.isNumber=$t,t.isObject=Nt,t.isPlainObject=Ei,t.isRegExp=Ut,t.isString=Bt,t.isUndefined=Ht,t.lastIndexOf=Se,t.mixin=or,t.noConflict=ar,t.noop=ur,t.now=Ai,t.parseInt=Di,t.random=lr,t.reduce=le,t.reduceRight=ce,t.result=cr,t.runInContext=m,t.size=ge,t.some=ve,t.sortedIndex=Fe,t.template=fr,t.unescape=hr,t.uniqueId=gr,t.all=Yt,t.any=ve,t.detect=te,t.findWhere=te,t.foldl=le,t.foldr=ce,t.include=Xt,t.inject=le,or(function(){var n={};return ji(t,function(e,r){t.prototype[r]||(n[r]=e)}),n}(),!1),t.first=xe,t.last=Oe,t.sample=pe,t.take=xe,t.head=xe,ji(t,function(n,r){var i="sample"!==r;t.prototype[r]||(t.prototype[r]=function(t,r){var o=this.__chain__,a=n(this.__wrapped__,t,r);return o||null!=t&&(!r||i&&"function"==typeof t)?new e(a,o):a})}),t.VERSION="2.4.1",t.prototype.chain=dr,t.prototype.toString=mr,t.prototype.value=br,t.prototype.valueOf=br,_i(["join","pop","shift"],function(n){var r=Ar[n];t.prototype[n]=function(){var n=this.__chain__,t=r.apply(this.__wrapped__,arguments);return n?new e(t,n):t}}),_i(["push","reverse","sort","unshift"],function(n){var e=Ar[n];t.prototype[n]=function(){return e.apply(this.__wrapped__,arguments),this}}),_i(["concat","slice","splice"],function(n){var r=Ar[n];t.prototype[n]=function(){return new e(r.apply(this.__wrapped__,arguments),this.__chain__)}}),ui.spliceObjects||_i(["pop","shift","splice"],function(n){var r=Ar[n],i="splice"==n;t.prototype[n]=function(){var n=this.__chain__,t=this.__wrapped__,o=r.apply(t,arguments);return 0===t.length&&delete t[0],n||i?new e(o,n):o}}),t}var b,_=[],w=[],x=0,j={},E=+new Date+"",C=75,O=40,S=" \f \n\r\u2028\u2029 ᠎              ",L=/\b__p \+= '';/g,P=/\b(__p \+=) '' \+/g,A=/(__e\(.*?\)|\b__t\)) \+\n'';/g,D=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,F=/\w*$/,T=/^\s*function[ \n\r\t]+\w/,I=/<%=([\s\S]+?)%>/g,z=RegExp("^["+S+"]*0+(?=.$)"),N=/($^)/,R=/\bthis\b/,M=/['\n\r\t\u2028\u2029\\]/g,$=["Array","Boolean","Date","Error","Function","Math","Number","Object","RegExp","String","_","attachEvent","clearTimeout","isFinite","isNaN","parseInt","setTimeout"],U=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],B=0,H="[object Arguments]",W="[object Array]",q="[object Boolean]",J="[object Date]",K="[object Error]",G="[object Function]",V="[object Number]",Z="[object Object]",Q="[object RegExp]",X="[object String]",Y={};Y[G]=!1,Y[H]=Y[W]=Y[q]=Y[J]=Y[V]=Y[Z]=Y[Q]=Y[X]=!0;var nt={leading:!1,maxWait:0,trailing:!1},tt={configurable:!1,enumerable:!1,value:null,writable:!1},et={args:"",array:null,bottom:"",firstArg:"",init:"",keys:null,loop:"",shadowedProps:null,support:null,top:"",useHas:!1},rt={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},it={"\\":"\\","'":"'","\n":"n","\r":"r"," ":"t","\u2028":"u2028","\u2029":"u2029"},ot=rt[typeof window]&&window||this,at=rt[typeof t]&&t&&!t.nodeType&&t,ut=rt[typeof n]&&n&&!n.nodeType&&n,st=(ut&&ut.exports===at&&at,rt[typeof i]&&i);!st||st.global!==st&&st.window!==st||(ot=st);var lt=m();ot._=lt,r=function(){return lt}.call(t,e,t,n),!(r!==b&&(n.exports=r))}).call(this)}).call(t,e(9)(n),function(){return this}())},function(n){n.exports=function(n){return n.webpackPolyfill||(n.deprecate=function(){},n.paths=[],n.children=[],n.webpackPolyfill=1),n}},function(n){function t(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function e(n){return"function"==typeof n}function r(n){return"number"==typeof n}function i(n){return"object"==typeof n&&null!==n}function o(n){return void 0===n}n.exports=t,t.EventEmitter=t,t.prototype._events=void 0,t.prototype._maxListeners=void 0,t.defaultMaxListeners=10,t.prototype.setMaxListeners=function(n){if(!r(n)||0>n||isNaN(n))throw TypeError("n must be a positive number");return this._maxListeners=n,this},t.prototype.emit=function(n){var t,r,a,u,s,l;if(this._events||(this._events={}),"error"===n&&(!this._events.error||i(this._events.error)&&!this._events.error.length))throw t=arguments[1],t instanceof Error?t:TypeError('Uncaught, unspecified "error" event.');if(r=this._events[n],o(r))return!1;if(e(r))switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:for(a=arguments.length,u=new Array(a-1),s=1;a>s;s++)u[s-1]=arguments[s];r.apply(this,u)}else if(i(r)){for(a=arguments.length,u=new Array(a-1),s=1;a>s;s++)u[s-1]=arguments[s];for(l=r.slice(),a=l.length,s=0;a>s;s++)l[s].apply(this,u)}return!0},t.prototype.addListener=function(n,r){var a;if(!e(r))throw TypeError("listener must be a function");if(this._events||(this._events={}),this._events.newListener&&this.emit("newListener",n,e(r.listener)?r.listener:r),this._events[n]?i(this._events[n])?this._events[n].push(r):this._events[n]=[this._events[n],r]:this._events[n]=r,i(this._events[n])&&!this._events[n].warned){var a;a=o(this._maxListeners)?t.defaultMaxListeners:this._maxListeners,a&&a>0&&this._events[n].length>a&&(this._events[n].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[n].length),"function"==typeof console.trace&&console.trace())}return this},t.prototype.on=t.prototype.addListener,t.prototype.once=function(n,t){function r(){this.removeListener(n,r),i||(i=!0,t.apply(this,arguments))}if(!e(t))throw TypeError("listener must be a function");var i=!1;return r.listener=t,this.on(n,r),this},t.prototype.removeListener=function(n,t){var r,o,a,u;if(!e(t))throw TypeError("listener must be a function");if(!this._events||!this._events[n])return this;if(r=this._events[n],a=r.length,o=-1,r===t||e(r.listener)&&r.listener===t)delete this._events[n],this._events.removeListener&&this.emit("removeListener",n,t);else if(i(r)){for(u=a;u-->0;)if(r[u]===t||r[u].listener&&r[u].listener===t){o=u;break}if(0>o)return this;1===r.length?(r.length=0,delete this._events[n]):r.splice(o,1),this._events.removeListener&&this.emit("removeListener",n,t)}return this},t.prototype.removeAllListeners=function(n){var t,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[n]&&delete this._events[n],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r=this._events[n],e(r))this.removeListener(n,r);else for(;r.length;)this.removeListener(n,r[r.length-1]);return delete this._events[n],this},t.prototype.listeners=function(n){var t;return t=this._events&&this._events[n]?e(this._events[n])?[this._events[n]]:this._events[n].slice():[]},t.listenerCount=function(n,t){var r;return r=n._events&&n._events[t]?e(n._events[t])?1:n._events[t].length:0}},function(n){function t(){}var e=n.exports={};e.nextTick=function(){var n="undefined"!=typeof window&&window.setImmediate,t="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(n)return function(n){return window.setImmediate(n)};if(t){var e=[];return window.addEventListener("message",function(n){var t=n.source;if((t===window||null===t)&&"process-tick"===n.data&&(n.stopPropagation(),e.length>0)){var r=e.shift();r()}},!0),function(n){e.push(n),window.postMessage("process-tick","*")}}return function(n){setTimeout(n,0)}}(),e.title="browser",e.browser=!0,e.env={},e.argv=[],e.on=t,e.once=t,e.off=t,e.emit=t,e.binding=function(){throw new Error("process.binding is not supported")},e.cwd=function(){return"/"},e.chdir=function(){throw new Error("process.chdir is not supported")}},function(n){n.exports="function"==typeof Object.create?function(n,t){n.super_=t,n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}})}:function(n,t){n.super_=t;var e=function(){};e.prototype=t.prototype,n.prototype=new e,n.prototype.constructor=n}},function(n){n.exports=function(n){return n&&"object"==typeof n&&"function"==typeof n.copy&&"function"==typeof n.fill&&"function"==typeof n.readUInt8}}])}); +!function(t,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):"object"==typeof exports?exports.Fluxbox=n():t.Fluxbox=n()}(this,function(){return function(t){function n(r){if(e[r])return e[r].exports;var i=e[r]={exports:{},id:r,loaded:!1};return t[r].call(i.exports,i,i.exports,n),i.loaded=!0,i.exports}var e={};return n.m=t,n.c=e,n.p="",n(0)}([function(t,n,e){var r=e(2),i=e(5),o=e(6),a=e(8),u=e(4),s={Dispatcher:r,Flux:i,FluxMixin:o,StoreWatchMixin:a,createStore:u,version:e(9).version};t.exports=s},function(t,n,e){var r;(function(t,i){(function(){function o(t,n,e){for(var r=(e||0)-1,i=t?t.length:0;++r-1?0:-1:t?0:-1}function u(t){var n=this.cache,e=typeof t;if("boolean"==e||null==t)n[t]=!0;else{"number"!=e&&"string"!=e&&(e="object");var r="number"==e?t:C+t,i=n[e]||(n[e]={});"object"==e?(i[r]||(i[r]=[])).push(t):i[r]=!0}}function s(t){return t.charCodeAt(0)}function l(t,n){for(var e=t.criteria,r=n.criteria,i=-1,o=e.length;++iu||"undefined"==typeof a)return 1;if(u>a||"undefined"==typeof u)return-1}}return t.index-n.index}function c(t){var n=-1,e=t.length,r=t[0],i=t[e/2|0],o=t[e-1];if(r&&"object"==typeof r&&i&&"object"==typeof i&&o&&"object"==typeof o)return!1;var a=h();a["false"]=a["null"]=a["true"]=a.undefined=!1;var s=h();for(s.array=t,s.cache=a,s.push=u;++ni?0:i);++r=E&&r===o,s=[];if(u){var l=c(n);l?(r=a,n=l):u=!1}for(;++e-1:void 0});return i.pop(),o.pop(),b&&(v(i),v(o)),a}function sn(t,n,e,r,i){(fi(n)?ie:Ci)(n,function(n,o){var a,u,s=n,l=t[o];if(n&&((u=fi(n))||Ei(n))){for(var c=r.length;c--;)if(a=r[c]==n){l=i[c];break}if(!a){var f;e&&(s=e(l,n),(f="undefined"!=typeof s)&&(l=s)),f||(l=u?fi(l)?l:[]:Ei(l)?l:{}),r.push(n),i.push(l),f||sn(l,n,e,r,i)}}else e&&(s=e(l,n),"undefined"==typeof s&&(s=n)),"undefined"!=typeof s&&(l=s);t[o]=l})}function ln(t,n){return t+Br(oi()*(n-t+1))}function fn(t,n,e){var r=-1,i=dn(),u=t?t.length:0,s=[],l=!n&&u>=E&&i===o,f=e||l?p():s;if(l){var h=c(f);i=a,f=h}for(;++r3&&"function"==typeof n[e-2])var r=_(n[--e-1],n[e--],2);else e>2&&"function"==typeof n[e-1]&&(r=n[--e]);for(var i=y(arguments,1,e),o=-1,a=p(),u=p();++oe?ei(0,o+e):e)||0,fi(t)?a=i(t,n,e)>-1:"number"==typeof o?a=(Hn(t)?t.indexOf(n,e):i(t,n,e))>-1:wi(t,function(t){return++r>=e?!(a=t===n):void 0}),a}function te(t,e,r){var i=!0;if(e=n.createCallback(e,r,3),fi(t))for(var o=-1,a=t.length;++oo&&(o=l)}else e=null==e&&Hn(t)?s:n.createCallback(e,r,3),wi(t,function(t,n,r){var a=e(t,n,r);a>i&&(i=a,o=t)});return o}function le(t,e,r){var i=1/0,o=i;if("function"!=typeof e&&r&&r[e]===t&&(e=null),null==e&&fi(t))for(var a=-1,u=t.length;++al&&(o=l)}else e=null==e&&Hn(t)?s:n.createCallback(e,r,3),wi(t,function(t,n,r){var a=e(t,n,r);i>a&&(i=a,o=t)});return o}function ce(t,e,r,i){var o=arguments.length<3;if(e=n.createCallback(e,i,4),fi(t)){var a=-1,u=t.length;for(o&&(r=t[++a]);++ae?ei(0,r+e):e||0}else if(e){var i=Fe(t,n);return t[i]===n?i:-1}return o(t,n,e)}function Ee(t,e,r){var i=0,o=t?t.length:0;if("number"!=typeof e&&null!=e){var a=o;for(e=n.createCallback(e,r,3);a--&&e(t[a],a,t);)i++}else i=null==e||r?1:e||i;return y(t,0,ri(ei(0,o-i),o))}function Oe(){for(var t=[],n=-1,e=arguments.length,r=p(),i=dn(),u=i===o,s=p();++n=E&&c(n?t[n]:s)))}var f=t[0],h=-1,g=f?f.length:0,y=[];t:for(;++he?ei(0,r+e):ri(e,r-1))+1);r--;)if(t[r]===n)return r;return-1}function Pe(t){for(var n=arguments,e=0,r=n.length,i=t?t.length:0;++eo;){var u=o+a>>>1;r(t[u])1?arguments:arguments[0],n=-1,e=t?se(Pi(t,"length")):0,r=wr(0>e?0:e);++n2?hn(t,17,y(arguments,2),null,n):hn(t,1,null,null,n)}function He(t){for(var n=arguments.length>1?on(arguments,!0,!1,1):Sn(t),e=-1,r=n.length;++e2?hn(n,19,y(arguments,2),null,t):hn(n,3,null,null,t)}function qe(){for(var t=arguments,n=t.length;n--;)if(!Nn(t[n]))throw new Dr;return function(){for(var n=arguments,e=t.length;e--;)n=[t[e].apply(this,n)];return n[0]}}function Je(t,n){return n="number"==typeof n?n:+n||t.length,hn(t,4,null,null,null,n)}function Ke(t,n,e){var r,i,o,a,u,s,l,c=0,f=!1,p=!0;if(!Nn(t))throw new Dr;if(n=ei(0,n)||0,e===!0){var h=!0;p=!1}else Rn(e)&&(h=e.leading,f="maxWait"in e&&(ei(n,e.maxWait)||0),p="trailing"in e?e.trailing:p);var g=function(){var e=n-(Ai()-a);if(0>=e){i&&$r(i);var f=l;i=s=l=b,f&&(c=Ai(),o=t.apply(u,r),s||i||(r=u=null))}else s=Kr(g,e)},v=function(){s&&$r(s),i=s=l=b,(p||f!==n)&&(c=Ai(),o=t.apply(u,r),s||i||(r=u=null))};return function(){if(r=arguments,a=Ai(),u=this,l=p&&(s||!h),f===!1)var e=h&&!s;else{i||h||(c=a);var d=f-(a-c),y=0>=d;y?(i&&(i=$r(i)),c=a,o=t.apply(u,r)):i||(i=Kr(v,d))}return y&&s?s=$r(s):s||n===f||(s=Kr(g,n)),e&&(y=!0,o=t.apply(u,r)),!y||s||i||(r=u=null),o}}function Ge(t){if(!Nn(t))throw new Dr;var n=y(arguments,1);return Kr(function(){t.apply(b,n)},1)}function Ve(t,n){if(!Nn(t))throw new Dr;var e=y(arguments,2);return Kr(function(){t.apply(b,e)},n)}function Ze(t,n){if(!Nn(t))throw new Dr;var e=function(){var r=e.cache,i=n?n.apply(this,arguments):C+arguments[0];return Wr.call(r,i)?r[i]:r[i]=t.apply(this,arguments)};return e.cache={},e}function Qe(t){var n,e;if(!Nn(t))throw new Dr;return function(){return n?e:(n=!0,e=t.apply(this,arguments),t=null,e)}}function Xe(t){return hn(t,16,y(arguments,1))}function Ye(t){return hn(t,32,null,y(arguments,1))}function tr(t,n,e){var r=!0,i=!0;if(!Nn(t))throw new Dr;return e===!1?r=!1:Rn(e)&&(r="leading"in e?e.leading:r,i="trailing"in e?e.trailing:i),tn.leading=r,tn.maxWait=n,tn.trailing=i,Ke(t,n,tn)}function nr(t,n){return hn(n,16,[t])}function er(t){return function(){return t}}function rr(t,n,e){var r=typeof t;if(null==t||"function"==r)return _(t,n,e);if("object"!=r)return lr(t);var i=hi(t),o=i[0],a=t[o];return 1!=i.length||a!==a||Rn(a)?function(n){for(var e=i.length,r=!1;e--&&(r=un(n[i[e]],t[i[e]],null,!0)););return r}:function(t){var n=t[o];return a===n&&(0!==a||1/a==1/n)}}function ir(t){return null==t?"":Pr(t).replace(_i,vn)}function or(t){return t}function ar(t,r,i){var o=!0,a=r&&Sn(r);r&&(i||a.length)||(null==i&&(i=r),u=e,r=t,t=n,a=Sn(r)),i===!1?o=!1:Rn(i)&&"chain"in i&&(o=i.chain);var u=t,s=Nn(u);ie(a,function(n){var e=t[n]=r[n];s&&(u.prototype[n]=function(){var n=this.__chain__,r=this.__wrapped__,i=[r];qr.apply(i,arguments);var a=e.apply(t,i);if(o||n){if(r===a&&Rn(a))return this;a=new u(a),a.__chain__=n}return a})})}function ur(){return t._=zr,this}function sr(){}function lr(t){return function(n){return n[t]}}function cr(t,n,e){var r=null==t,i=null==n;if(null==e&&("boolean"==typeof t&&i?(e=t,t=1):i||"boolean"!=typeof n||(e=n,i=!0)),r&&i&&(n=1),t=+t||0,i?(n=t,t=0):n=+n||0,e||t%1||n%1){var o=oi();return ri(t+o*(n-t+parseFloat("1e-"+((o+"").length-1))),n)}return ln(t,n)}function fr(t,n){if(t){var e=t[n];return Nn(e)?t[n]():e}}function pr(t,e,r){var i=n.templateSettings;t=Pr(t||""),r=ji({},r,i);var o,a=ji({},r.imports,i.imports),u=hi(a),s=Qn(a),l=0,c=r.interpolate||N,p="__p += '",h=Lr((r.escape||N).source+"|"+c.source+"|"+(c===I?A:N).source+"|"+(r.evaluate||N).source+"|$","g");t.replace(h,function(n,e,r,i,a,u){return r||(r=i),p+=t.slice(l,u).replace(M,f),e&&(p+="' +\n__e("+e+") +\n'"),a&&(o=!0,p+="';\n"+a+";\n__p += '"),r&&(p+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),l=u+n.length,n}),p+="';\n";var g=r.variable,v=g;v||(g="obj",p="with ("+g+") {\n"+p+"\n}\n"),p=(o?p.replace(L,""):p).replace(P,"$1").replace(D,"$1;"),p="function("+g+") {\n"+(v?"":g+" || ("+g+" = {});\n")+"var __t, __p = '', __e = _.escape"+(o?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+p+"return __p\n}";var d="\n/*\n//# sourceURL="+(r.sourceURL||"/lodash/template/source["+U++ +"]")+"\n*/";try{var y=Cr(u,"return "+p+d).apply(b,s)}catch(m){throw m.source=p,m}return e?y(e):(y.source=p,y)}function hr(t,n,e){t=(t=+t)>-1?t:0;var r=-1,i=wr(t);for(n=_(n,e,1);++r/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:I,variable:"",imports:{_:n}};var li=function(t){var n="var index, iterable = "+t.firstArg+", result = "+t.init+";\nif (!iterable) return result;\n"+t.top+";";t.array?(n+="\nvar length = iterable.length; index = -1;\nif ("+t.array+") { ",si.unindexedChars&&(n+="\n if (isString(iterable)) {\n iterable = iterable.split('')\n } "),n+="\n while (++index < length) {\n "+t.loop+";\n }\n}\nelse { "):si.nonEnumArgs&&(n+="\n var length = iterable.length; index = -1;\n if (length && isArguments(iterable)) {\n while (++index < length) {\n index += '';\n "+t.loop+";\n }\n } else { "),si.enumPrototypes&&(n+="\n var skipProto = typeof iterable == 'function';\n "),si.enumErrorProps&&(n+="\n var skipErrorProps = iterable === errorProto || iterable instanceof Error;\n ");var e=[];if(si.enumPrototypes&&e.push('!(skipProto && index == "prototype")'),si.enumErrorProps&&e.push('!(skipErrorProps && (index == "message" || index == "name"))'),t.useHas&&t.keys)n+="\n var ownIndex = -1,\n ownProps = objectTypes[typeof iterable] && keys(iterable),\n length = ownProps ? ownProps.length : 0;\n\n while (++ownIndex < length) {\n index = ownProps[ownIndex];\n",e.length&&(n+=" if ("+e.join(" && ")+") {\n "),n+=t.loop+"; ",e.length&&(n+="\n }"),n+="\n } ";else if(n+="\n for (index in iterable) {\n",t.useHas&&e.push("hasOwnProperty.call(iterable, index)"),e.length&&(n+=" if ("+e.join(" && ")+") {\n "),n+=t.loop+"; ",e.length&&(n+="\n }"),n+="\n } ",si.nonEnumShadows){for(n+="\n\n if (iterable !== objectProto) {\n var ctor = iterable.constructor,\n isProto = iterable === (ctor && ctor.prototype),\n className = iterable === stringProto ? stringClass : iterable === errorProto ? errorClass : toString.call(iterable),\n nonEnum = nonEnumProps[className];\n ",k=0;7>k;k++)n+="\n index = '"+t.shadowedProps[k]+"';\n if ((!(isProto && nonEnum[index]) && hasOwnProperty.call(iterable, index))",t.useHas||(n+=" || (!nonEnum[index] && iterable[index] !== objectProto[index])"),n+=") {\n "+t.loop+";\n } ";n+="\n } "}return(t.array||si.nonEnumArgs)&&(n+="\n}"),n+=t.bottom+";\nreturn result"};Qr||(u=function(){function n(){}return function(e){if(Rn(e)){n.prototype=e;var r=new n;n.prototype=null}return r||t.Object()}}());var ci=Zr?function(t,n){nn.value=n,Zr(t,"__bindData__",nn)}:sr;si.argsClass||(_n=function(t){return t&&"object"==typeof t&&"number"==typeof t.length&&Wr.call(t,"callee")&&!Jr.call(t,"callee")||!1});var fi=Xr||function(t){return t&&"object"==typeof t&&"number"==typeof t.length&&Nr.call(t)==W||!1},pi=gn({args:"object",init:"[]",top:"if (!(objectTypes[typeof object])) return result",loop:"result.push(index)"}),hi=ni?function(t){return Rn(t)?si.enumPrototypes&&"function"==typeof t||si.nonEnumArgs&&t.length&&_n(t)?pi(t):ni(t):[]}:pi,gi={args:"collection, callback, thisArg",top:"callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3)",array:"typeof length == 'number'",keys:hi,loop:"if (callback(iterable[index], index, collection) === false) return result"},vi={args:"object, source, guard",top:"var args = arguments,\n argsIndex = 0,\n argsLength = typeof guard == 'number' ? 2 : args.length;\nwhile (++argsIndex < argsLength) {\n iterable = args[argsIndex];\n if (iterable && objectTypes[typeof iterable]) {",keys:hi,loop:"if (typeof result[index] == 'undefined') result[index] = iterable[index]",bottom:" }\n}"},di={top:"if (!objectTypes[typeof iterable]) return result;\n"+gi.top,array:!1},yi={"&":"&","<":"<",">":">",'"':""","'":"'"},mi=Pn(yi),bi=Lr("("+hi(mi).join("|")+")","g"),_i=Lr("["+hi(yi).join("")+"]","g"),wi=gn(gi),xi=gn(vi,{top:vi.top.replace(";",";\nif (argsLength > 3 && typeof args[argsLength - 2] == 'function') {\n var callback = baseCreateCallback(args[--argsLength - 1], args[argsLength--], 2);\n} else if (argsLength > 2 && typeof args[argsLength - 1] == 'function') {\n callback = args[--argsLength];\n}"),loop:"result[index] = callback ? callback(result[index], iterable[index]) : iterable[index]"}),ji=gn(vi),ki=gn(gi,di,{useHas:!1}),Ci=gn(gi,di);Nn(/x/)&&(Nn=function(t){return"function"==typeof t&&Nr.call(t)==G});var Ei=Hr?function(t){if(!t||Nr.call(t)!=Z||!si.argsClass&&_n(t))return!1;var n=t.valueOf,e=yn(n)&&(e=Hr(n))&&Hr(e);return e?t==e||Hr(t)==e:mn(t)}:mn,Oi=pn(function(t,n,e){Wr.call(t,e)?t[e]++:t[e]=1}),Si=pn(function(t,n,e){(Wr.call(t,e)?t[e]:t[e]=[]).push(n)}),Li=pn(function(t,n,e){t[e]=n}),Pi=ue,Di=ne,Ai=yn(Ai=jr.now)&&Ai||function(){return(new jr).getTime()},Ti=8==ii(S+"08")?ii:function(t,n){return ii(Hn(t)?t.replace(z,""):t,n||0)};return n.after=Be,n.assign=xi,n.at=Xn,n.bind=Ue,n.bindAll=He,n.bindKey=We,n.chain=dr,n.compact=be,n.compose=qe,n.constant=er,n.countBy=Oi,n.create=jn,n.createCallback=rr,n.curry=Je,n.debounce=Ke,n.defaults=ji,n.defer=Ge,n.delay=Ve,n.difference=_e,n.filter=ne,n.flatten=ke,n.forEach=ie,n.forEachRight=oe,n.forIn=ki,n.forInRight=En,n.forOwn=Ci,n.forOwnRight=On,n.functions=Sn,n.groupBy=Si,n.indexBy=Li,n.initial=Ee,n.intersection=Oe,n.invert=Pn,n.invoke=ae,n.keys=hi,n.map=ue,n.mapValues=qn,n.max=se,n.memoize=Ze,n.merge=Jn,n.min=le,n.omit=Kn,n.once=Qe,n.pairs=Gn,n.partial=Xe,n.partialRight=Ye,n.pick=Vn,n.pluck=Pi,n.property=lr,n.pull=Pe,n.range=De,n.reject=pe,n.remove=Ae,n.rest=Te,n.shuffle=ge,n.sortBy=ye,n.tap=yr,n.throttle=tr,n.times=hr,n.toArray=me,n.transform=Zn,n.union=Ie,n.uniq=ze,n.values=Qn,n.where=Di,n.without=Ne,n.wrap=nr,n.xor=Re,n.zip=Me,n.zipObject=$e,n.collect=ue,n.drop=Te,n.each=ie,n.eachRight=oe,n.extend=xi,n.methods=Sn,n.object=$e,n.select=ne,n.tail=Te,n.unique=ze,n.unzip=Me,ar(n),n.clone=wn,n.cloneDeep=xn,n.contains=Yn,n.escape=ir,n.every=te,n.find=ee,n.findIndex=we,n.findKey=kn,n.findLast=re,n.findLastIndex=xe,n.findLastKey=Cn,n.has=Ln,n.identity=or,n.indexOf=Ce,n.isArguments=_n,n.isArray=fi,n.isBoolean=Dn,n.isDate=An,n.isElement=Tn,n.isEmpty=Fn,n.isEqual=In,n.isFinite=zn,n.isFunction=Nn,n.isNaN=Mn,n.isNull=$n,n.isNumber=Bn,n.isObject=Rn,n.isPlainObject=Ei,n.isRegExp=Un,n.isString=Hn,n.isUndefined=Wn,n.lastIndexOf=Le,n.mixin=ar,n.noConflict=ur,n.noop=sr,n.now=Ai,n.parseInt=Ti,n.random=cr,n.reduce=ce,n.reduceRight=fe,n.result=fr,n.runInContext=m,n.size=ve,n.some=de,n.sortedIndex=Fe,n.template=pr,n.unescape=gr,n.uniqueId=vr,n.all=te,n.any=de,n.detect=ee,n.findWhere=ee,n.foldl=ce,n.foldr=fe,n.include=Yn,n.inject=ce,ar(function(){var t={};return Ci(n,function(e,r){n.prototype[r]||(t[r]=e)}),t}(),!1),n.first=je,n.last=Se,n.sample=he,n.take=je,n.head=je,Ci(n,function(t,r){var i="sample"!==r;n.prototype[r]||(n.prototype[r]=function(n,r){var o=this.__chain__,a=t(this.__wrapped__,n,r);return o||null!=n&&(!r||i&&"function"==typeof n)?new e(a,o):a})}),n.VERSION="2.4.1",n.prototype.chain=mr,n.prototype.toString=br,n.prototype.value=_r,n.prototype.valueOf=_r,wi(["join","pop","shift"],function(t){var r=Ar[t];n.prototype[t]=function(){var t=this.__chain__,n=r.apply(this.__wrapped__,arguments); +return t?new e(n,t):n}}),wi(["push","reverse","sort","unshift"],function(t){var e=Ar[t];n.prototype[t]=function(){return e.apply(this.__wrapped__,arguments),this}}),wi(["concat","slice","splice"],function(t){var r=Ar[t];n.prototype[t]=function(){return new e(r.apply(this.__wrapped__,arguments),this.__chain__)}}),si.spliceObjects||wi(["pop","shift","splice"],function(t){var r=Ar[t],i="splice"==t;n.prototype[t]=function(){var t=this.__chain__,n=this.__wrapped__,o=r.apply(n,arguments);return 0===n.length&&delete n[0],t||i?new e(o,t):o}}),n}var b,_=[],w=[],x=0,j={},C=+new Date+"",E=75,O=40,S=" \f \n\r\u2028\u2029 ᠎              ",L=/\b__p \+= '';/g,P=/\b(__p \+=) '' \+/g,D=/(__e\(.*?\)|\b__t\)) \+\n'';/g,A=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,T=/\w*$/,F=/^\s*function[ \n\r\t]+\w/,I=/<%=([\s\S]+?)%>/g,z=RegExp("^["+S+"]*0+(?=.$)"),N=/($^)/,R=/\bthis\b/,M=/['\n\r\t\u2028\u2029\\]/g,$=["Array","Boolean","Date","Error","Function","Math","Number","Object","RegExp","String","_","attachEvent","clearTimeout","isFinite","isNaN","parseInt","setTimeout"],B=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],U=0,H="[object Arguments]",W="[object Array]",q="[object Boolean]",J="[object Date]",K="[object Error]",G="[object Function]",V="[object Number]",Z="[object Object]",Q="[object RegExp]",X="[object String]",Y={};Y[G]=!1,Y[H]=Y[W]=Y[q]=Y[J]=Y[V]=Y[Z]=Y[Q]=Y[X]=!0;var tn={leading:!1,maxWait:0,trailing:!1},nn={configurable:!1,enumerable:!1,value:null,writable:!1},en={args:"",array:null,bottom:"",firstArg:"",init:"",keys:null,loop:"",shadowedProps:null,support:null,top:"",useHas:!1},rn={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},on={"\\":"\\","'":"'","\n":"n","\r":"r"," ":"t","\u2028":"u2028","\u2029":"u2029"},an=rn[typeof window]&&window||this,un=rn[typeof n]&&n&&!n.nodeType&&n,sn=rn[typeof t]&&t&&!t.nodeType&&t,ln=(sn&&sn.exports===un&&un,rn[typeof i]&&i);!ln||ln.global!==ln&&ln.window!==ln||(an=ln);var cn=m();an._=cn,r=function(){return cn}.call(n,e,n,t),!(r!==b&&(t.exports=r))}).call(this)}).call(n,e(10)(t),function(){return this}())},function(t,n,e){var r=e(1),i=function(t){this.stores=t,this.currentDispatch=null,this.waitingToDispatch=[];for(var n in t)t[n].dispatcher=this};i.prototype.dispatch=function(t){if(this.currentDispatch)throw new Error("Cannot dispatch an action while another action is being dispatched");this.waitingToDispatch=r.clone(this.stores),this.currentDispatch=r.mapValues(this.stores,function(){return{resolved:!1,waitingOn:[],waitCallback:null}}),this.doDispatchLoop(t),setTimeout(function(){this.currentDispatch=null}.bind(this))},i.prototype.doDispatchLoop=function(t){var n,e,i=[],o=[];if(r.forOwn(this.waitingToDispatch,function(a,u){if(n=this.currentDispatch[u],e=!n.waitingOn.length||!r.intersection(n.waitingOn,r.keys(this.waitingToDispatch)).length){if(n.waitCallback){var s=r.map(n.waitingOn,function(t){return this.stores[t]},this),l=n.waitCallback;n.waitCallback=null,n.waitingOn=[],n.resolved=!0,l.apply(null,s)}else n.resolved=!0,this.stores[u].__handleAction__(t);o.push(u),this.currentDispatch[u].resolved&&i.push(u)}},this),!o.length){var a=r.keys(this.waitingToDispatch).join(", ");throw new Error("Indirect circular wait detected among: "+a)}r.each(i,function(t){delete this.waitingToDispatch[t]},this),r.size(this.waitingToDispatch)&&this.doDispatchLoop(t)},i.prototype.waitForStores=function(t,n,e){if(!this.currentDispatch)throw new Error("Cannot wait unless an action is being dispatched");var i=r.findKey(this.stores,function(n){return n===t});if(n.indexOf(i)>-1)throw new Error("A store cannot wait on itself");var o=this.currentDispatch[i];if(o.waitingOn.length)throw new Error(i+" already waiting on stores");r.each(n,function(t){var n=this.currentDispatch[t];if(!this.stores[t])throw new Error("Cannot wait for non-existant store "+t);if(n.waitingOn.indexOf(i)>-1)throw new Error("Circular wait detected between "+i+" and "+t)},this),o.resolved=!1,o.waitingOn=r.uniq(o.waitingOn.concat(n)),o.waitCallback=e},t.exports=i},function(t,n,e){(function(t,r){function i(t,e){var r={seen:[],stylize:a};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),v(e)?r.showHidden=e:e&&n._extend(r,e),w(r.showHidden)&&(r.showHidden=!1),w(r.depth)&&(r.depth=2),w(r.colors)&&(r.colors=!1),w(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=o),s(r,t,r.depth)}function o(t,n){var e=i.styles[n];return e?"["+i.colors[e][0]+"m"+t+"["+i.colors[e][1]+"m":t}function a(t){return t}function u(t){var n={};return t.forEach(function(t){n[t]=!0}),n}function s(t,e,r){if(t.customInspect&&e&&E(e.inspect)&&e.inspect!==n.inspect&&(!e.constructor||e.constructor.prototype!==e)){var i=e.inspect(r,t);return b(i)||(i=s(t,i,r)),i}var o=l(t,e);if(o)return o;var a=Object.keys(e),v=u(a);if(t.showHidden&&(a=Object.getOwnPropertyNames(e)),C(e)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return c(e);if(0===a.length){if(E(e)){var d=e.name?": "+e.name:"";return t.stylize("[Function"+d+"]","special")}if(x(e))return t.stylize(RegExp.prototype.toString.call(e),"regexp");if(k(e))return t.stylize(Date.prototype.toString.call(e),"date");if(C(e))return c(e)}var y="",m=!1,_=["{","}"];if(g(e)&&(m=!0,_=["[","]"]),E(e)){var w=e.name?": "+e.name:"";y=" [Function"+w+"]"}if(x(e)&&(y=" "+RegExp.prototype.toString.call(e)),k(e)&&(y=" "+Date.prototype.toUTCString.call(e)),C(e)&&(y=" "+c(e)),0===a.length&&(!m||0==e.length))return _[0]+y+_[1];if(0>r)return x(e)?t.stylize(RegExp.prototype.toString.call(e),"regexp"):t.stylize("[Object]","special");t.seen.push(e);var j;return j=m?f(t,e,r,v,a):a.map(function(n){return p(t,e,r,v,n,m)}),t.seen.pop(),h(j,y,_)}function l(t,n){if(w(n))return t.stylize("undefined","undefined");if(b(n)){var e="'"+JSON.stringify(n).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(e,"string")}return m(n)?t.stylize(""+n,"number"):v(n)?t.stylize(""+n,"boolean"):d(n)?t.stylize("null","null"):void 0}function c(t){return"["+Error.prototype.toString.call(t)+"]"}function f(t,n,e,r,i){for(var o=[],a=0,u=n.length;u>a;++a)o.push(D(n,String(a))?p(t,n,e,r,String(a),!0):"");return i.forEach(function(i){i.match(/^\d+$/)||o.push(p(t,n,e,r,i,!0))}),o}function p(t,n,e,r,i,o){var a,u,l;if(l=Object.getOwnPropertyDescriptor(n,i)||{value:n[i]},l.get?u=l.set?t.stylize("[Getter/Setter]","special"):t.stylize("[Getter]","special"):l.set&&(u=t.stylize("[Setter]","special")),D(r,i)||(a="["+i+"]"),u||(t.seen.indexOf(l.value)<0?(u=d(e)?s(t,l.value,null):s(t,l.value,e-1),u.indexOf("\n")>-1&&(u=o?u.split("\n").map(function(t){return" "+t}).join("\n").substr(2):"\n"+u.split("\n").map(function(t){return" "+t}).join("\n"))):u=t.stylize("[Circular]","special")),w(a)){if(o&&i.match(/^\d+$/))return u;a=JSON.stringify(""+i),a.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=t.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=t.stylize(a,"string"))}return a+": "+u}function h(t,n,e){var r=0,i=t.reduce(function(t,n){return r++,n.indexOf("\n")>=0&&r++,t+n.replace(/\u001b\[\d\d?m/g,"").length+1},0);return i>60?e[0]+(""===n?"":n+"\n ")+" "+t.join(",\n ")+" "+e[1]:e[0]+n+" "+t.join(", ")+" "+e[1]}function g(t){return Array.isArray(t)}function v(t){return"boolean"==typeof t}function d(t){return null===t}function y(t){return null==t}function m(t){return"number"==typeof t}function b(t){return"string"==typeof t}function _(t){return"symbol"==typeof t}function w(t){return void 0===t}function x(t){return j(t)&&"[object RegExp]"===S(t)}function j(t){return"object"==typeof t&&null!==t}function k(t){return j(t)&&"[object Date]"===S(t)}function C(t){return j(t)&&("[object Error]"===S(t)||t instanceof Error)}function E(t){return"function"==typeof t}function O(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||"undefined"==typeof t}function S(t){return Object.prototype.toString.call(t)}function L(t){return 10>t?"0"+t.toString(10):t.toString(10)}function P(){var t=new Date,n=[L(t.getHours()),L(t.getMinutes()),L(t.getSeconds())].join(":");return[t.getDate(),I[t.getMonth()],n].join(" ")}function D(t,n){return Object.prototype.hasOwnProperty.call(t,n)}var A=/%[sdj%]/g;n.format=function(t){if(!b(t)){for(var n=[],e=0;e=o)return t;switch(t){case"%s":return String(r[e++]);case"%d":return Number(r[e++]);case"%j":try{return JSON.stringify(r[e++])}catch(n){return"[Circular]"}default:return t}}),u=r[e];o>e;u=r[++e])a+=d(u)||!j(u)?" "+u:" "+i(u);return a},n.deprecate=function(e,i){function o(){if(!a){if(r.throwDeprecation)throw new Error(i);r.traceDeprecation?console.trace(i):console.error(i),a=!0}return e.apply(this,arguments)}if(w(t.process))return function(){return n.deprecate(e,i).apply(this,arguments)};if(r.noDeprecation===!0)return e;var a=!1;return o};var T,F={};n.debuglog=function(t){if(w(T)&&(T=r.env.NODE_DEBUG||""),t=t.toUpperCase(),!F[t])if(new RegExp("\\b"+t+"\\b","i").test(T)){var e=r.pid;F[t]=function(){var r=n.format.apply(n,arguments);console.error("%s %d: %s",t,e,r)}}else F[t]=function(){};return F[t]},n.inspect=i,i.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},i.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"},n.isArray=g,n.isBoolean=v,n.isNull=d,n.isNullOrUndefined=y,n.isNumber=m,n.isString=b,n.isSymbol=_,n.isUndefined=w,n.isRegExp=x,n.isObject=j,n.isDate=k,n.isError=C,n.isFunction=E,n.isPrimitive=O,n.isBuffer=e(14);var I=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];n.log=function(){console.log("%s - %s",P(),n.format.apply(n,arguments))},n.inherits=e(13),n._extend=function(t,n){if(!n||!j(n))return t;for(var e=Object.keys(n),r=e.length;r--;)t[e[r]]=n[e[r]];return t}}).call(n,function(){return this}(),e(12))},function(t,n,e){var r=e(1),i=e(7),o=e(3),a=["flux","waitFor"],u=function(t){r.each(a,function(n){if(t[n])throw new Error("Reserved key '"+n+"' found in store definition")});var n=function(n){n=n||{},i.call(this);for(var e in t)"actions"===e?this.__actions__=t[e]:"initialize"===e||(this[e]="function"==typeof t[e]?t[e].bind(this):t[e]);t.initialize&&t.initialize.call(this,n)};return o.inherits(n,i),n};t.exports=u},function(t,n,e){var r=e(2),i=function(t,n){var e=new r(t),i={dispatch:function(t,n){e.dispatch({type:t,payload:n})}};this.dispatcher=e,this.actions={};for(var o in n)this.actions[o]=n[o].bind(i);for(o in t)t[o].flux=this};i.prototype.store=function(t){return this.dispatcher.stores[t]},t.exports=i},function(t){var n=function(t){return{propTypes:{flux:t.PropTypes.object.isRequired},childContextTypes:{flux:t.PropTypes.object},getChildContext:function(){return{flux:this.props.flux}}}};n.componentWillMount=function(){throw new Error("Fluxbox.FluxMixin is a function that takes React as a parameter and returns the mixin, e.g.: mixins[Fluxbox.FluxMixin(React)]")},t.exports=n},function(t,n,e){function r(t){this.dispatcher=t,this.__actions__={},i.call(this)}var i=e(11).EventEmitter,o=e(3);o.inherits(r,i),r.prototype.__handleAction__=function(t){var n;(n=this.__actions__[t.type])&&("function"==typeof n?n.call(this,t.payload,t.type):n&&"function"==typeof this[n]&&this[n].call(this,t.payload,t.type))},r.prototype.bindActions=function(){var t=Array.prototype.slice.call(arguments);if(t.length%2!==0)throw new Error("bindActions must take an even number of arguments.");for(var n=0;n",license:"MIT",devDependencies:{chai:"^1.9.1","css-loader":"^0.6.12",envify:"^1.2.1",jsdom:"^0.10.5","json-loader":"^0.5.0","jsx-loader":"^0.10.2",jsxhint:"^0.4.9",less:"^1.7.0","less-loader":"^0.7.3",mocha:"^1.18.2",react:"^0.10.0",sinon:"^1.9.1","sinon-chai":"^2.5.0","style-loader":"^0.6.3",webpack:"^1.1.11","webpack-dev-server":"^1.2.7",wintersmith:"^2.0.10","wintersmith-ejs":"^0.1.4","wintersmith-less":"^0.2.2"},dependencies:{lodash:"^2.4.1"}}},function(t){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}},function(t){function n(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function e(t){return"function"==typeof t}function r(t){return"number"==typeof t}function i(t){return"object"==typeof t&&null!==t}function o(t){return void 0===t}t.exports=n,n.EventEmitter=n,n.prototype._events=void 0,n.prototype._maxListeners=void 0,n.defaultMaxListeners=10,n.prototype.setMaxListeners=function(t){if(!r(t)||0>t||isNaN(t))throw TypeError("n must be a positive number");return this._maxListeners=t,this},n.prototype.emit=function(t){var n,r,a,u,s,l;if(this._events||(this._events={}),"error"===t&&(!this._events.error||i(this._events.error)&&!this._events.error.length))throw n=arguments[1],n instanceof Error?n:TypeError('Uncaught, unspecified "error" event.');if(r=this._events[t],o(r))return!1;if(e(r))switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:for(a=arguments.length,u=new Array(a-1),s=1;a>s;s++)u[s-1]=arguments[s];r.apply(this,u)}else if(i(r)){for(a=arguments.length,u=new Array(a-1),s=1;a>s;s++)u[s-1]=arguments[s];for(l=r.slice(),a=l.length,s=0;a>s;s++)l[s].apply(this,u)}return!0},n.prototype.addListener=function(t,r){var a;if(!e(r))throw TypeError("listener must be a function");if(this._events||(this._events={}),this._events.newListener&&this.emit("newListener",t,e(r.listener)?r.listener:r),this._events[t]?i(this._events[t])?this._events[t].push(r):this._events[t]=[this._events[t],r]:this._events[t]=r,i(this._events[t])&&!this._events[t].warned){var a;a=o(this._maxListeners)?n.defaultMaxListeners:this._maxListeners,a&&a>0&&this._events[t].length>a&&(this._events[t].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[t].length),"function"==typeof console.trace&&console.trace())}return this},n.prototype.on=n.prototype.addListener,n.prototype.once=function(t,n){function r(){this.removeListener(t,r),i||(i=!0,n.apply(this,arguments))}if(!e(n))throw TypeError("listener must be a function");var i=!1;return r.listener=n,this.on(t,r),this},n.prototype.removeListener=function(t,n){var r,o,a,u;if(!e(n))throw TypeError("listener must be a function");if(!this._events||!this._events[t])return this;if(r=this._events[t],a=r.length,o=-1,r===n||e(r.listener)&&r.listener===n)delete this._events[t],this._events.removeListener&&this.emit("removeListener",t,n);else if(i(r)){for(u=a;u-->0;)if(r[u]===n||r[u].listener&&r[u].listener===n){o=u;break}if(0>o)return this;1===r.length?(r.length=0,delete this._events[t]):r.splice(o,1),this._events.removeListener&&this.emit("removeListener",t,n)}return this},n.prototype.removeAllListeners=function(t){var n,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[t]&&delete this._events[t],this;if(0===arguments.length){for(n in this._events)"removeListener"!==n&&this.removeAllListeners(n);return this.removeAllListeners("removeListener"),this._events={},this}if(r=this._events[t],e(r))this.removeListener(t,r);else for(;r.length;)this.removeListener(t,r[r.length-1]);return delete this._events[t],this},n.prototype.listeners=function(t){var n;return n=this._events&&this._events[t]?e(this._events[t])?[this._events[t]]:this._events[t].slice():[]},n.listenerCount=function(t,n){var r;return r=t._events&&t._events[n]?e(t._events[n])?1:t._events[n].length:0}},function(t){function n(){}var e=t.exports={};e.nextTick=function(){var t="undefined"!=typeof window&&window.setImmediate,n="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(t)return function(t){return window.setImmediate(t)};if(n){var e=[];return window.addEventListener("message",function(t){var n=t.source;if((n===window||null===n)&&"process-tick"===t.data&&(t.stopPropagation(),e.length>0)){var r=e.shift();r()}},!0),function(t){e.push(t),window.postMessage("process-tick","*")}}return function(t){setTimeout(t,0)}}(),e.title="browser",e.browser=!0,e.env={},e.argv=[],e.on=n,e.once=n,e.off=n,e.emit=n,e.binding=function(){throw new Error("process.binding is not supported")},e.cwd=function(){return"/"},e.chdir=function(){throw new Error("process.chdir is not supported")}},function(t){t.exports="function"==typeof Object.create?function(t,n){t.super_=n,t.prototype=Object.create(n.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:function(t,n){t.super_=n;var e=function(){};e.prototype=n.prototype,t.prototype=new e,t.prototype.constructor=t}},function(t){t.exports=function(t){return t&&"object"==typeof t&&"function"==typeof t.copy&&"function"==typeof t.fill&&"function"==typeof t.readUInt8}}])}); /* //@ sourceMappingURL=fluxbox.min.js.map */ \ No newline at end of file diff --git a/build/fluxbox.min.js.map b/build/fluxbox.min.js.map index e96180f..c4c8509 100644 --- a/build/fluxbox.min.js.map +++ b/build/fluxbox.min.js.map @@ -1 +1 @@ -{"version":3,"file":"fluxbox.min.js","sources":["webpack/universalModuleDefinition","fluxbox.min.js","webpack/bootstrap 22deda409c47b7ab6ea5*","./index.js","./lib/dispatcher.js","(webpack)/~/node-libs-browser/~/util/util.js","./lib/create_store.js","./lib/flux.js","./lib/flux_mixin.js","./lib/store.js","./lib/store_watch_mixin.js","./~/lodash/dist/lodash.compat.js","(webpack)/buildin/module.js","(webpack)/~/node-libs-browser/~/events/events.js","(webpack)/~/node-libs-browser/~/process/browser.js","(webpack)/~/node-libs-browser/~/util/~/inherits/inherits_browser.js","(webpack)/~/node-libs-browser/~/util/support/isBufferBrowser.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","Dispatcher","Flux","FluxMixin","StoreWatchMixin","createStore","Fluxbox","_","stores","currentDispatch","waitingToDispatch","key","dispatcher","prototype","dispatch","action","Error","clone","mapValues","resolved","waitingOn","waitCallback","doDispatchLoop","canBeDispatchedTo","removeFromDispatchQueue","dispatchedThisLoop","forOwn","value","length","intersection","keys","map","fn","apply","__handleAction__","push","storesWithCircularWaits","join","each","size","waitForStores","store","waitingStoreName","findKey","val","indexOf","storeName","storeDispatch","uniq","concat","global","process","inspect","obj","opts","ctx","seen","stylize","stylizeNoColor","arguments","depth","colors","isBoolean","showHidden","_extend","isUndefined","customInspect","stylizeWithColor","formatValue","str","styleType","style","styles","arrayToHash","array","hash","forEach","recurseTimes","isFunction","constructor","ret","isString","primitive","formatPrimitive","Object","visibleKeys","getOwnPropertyNames","isError","formatError","name","isRegExp","RegExp","toString","isDate","Date","base","braces","isArray","n","toUTCString","output","formatArray","formatProperty","pop","reduceToSingleString","simple","JSON","stringify","replace","isNumber","isNull","i","l","hasOwnProperty","String","match","desc","getOwnPropertyDescriptor","get","set","split","line","substr","numLinesEst","reduce","prev","cur","ar","Array","arg","isNullOrUndefined","isSymbol","re","isObject","objectToString","d","e","isPrimitive","o","pad","timestamp","time","getHours","getMinutes","getSeconds","getDate","months","getMonth","prop","formatRegExp","format","f","objects","args","len","x","Number","deprecate","msg","deprecated","warned","throwDeprecation","traceDeprecation","console","trace","error","noDeprecation","debugEnviron","debugs","debuglog","env","NODE_DEBUG","toUpperCase","test","pid","bold","italic","underline","inverse","white","grey","black","blue","cyan","green","magenta","red","yellow","special","number","boolean","undefined","null","string","date","regexp","isBuffer","log","inherits","origin","add","Store","util","spec","options","__actions__","Exception","bind","initialize","actions","dispatchBinder","type","payload","flux","React","propTypes","PropTypes","object","isRequired","childContextTypes","getChildContext","props","componentWillMount","EventEmitter","handler","bindActions","slice","waitFor","storeNames","context","on","_setStateFromFlux","componentWillUnmount","off","setState","getStateFromFlux","getInitialState","__WEBPACK_AMD_DEFINE_RESULT__","baseIndexOf","fromIndex","index","cacheIndexOf","cache","keyPrefix","cachePush","typeCache","charAtCallback","charCodeAt","compareAscending","a","b","ac","criteria","bc","other","createCache","first","mid","last","getObject","result","escapeStringChar","stringEscapes","getArray","arrayPool","objectPool","false","true","isNode","releaseArray","maxPoolSize","releaseObject","start","end","runInContext","lodash","lodashWrapper","chainAll","__chain__","__wrapped__","baseBind","bindData","bound","partialArgs","thisBinding","baseCreate","func","thisArg","setBindData","baseClone","isDeep","callback","stackA","stackB","isObj","className","cloneableClasses","support","nodeClass","ctor","ctorByClass","boolClass","dateClass","numberClass","stringClass","regexpClass","source","reFlags","exec","lastIndex","isArr","initedStack","assign","input","baseEach","objValue","nativeCreate","baseCreateCallback","argCount","identity","__bindData__","funcNames","funcDecomp","fnToString","reFuncName","reThis","collection","accumulator","baseCreateWrapper","isBind","partialRightArgs","isCurry","arity","bitmask","isCurryBound","isBindKey","baseDifference","values","getIndexOf","isLarge","largeArraySize","baseFlatten","isShallow","isStrict","isArguments","valIndex","valLength","resIndex","baseIsEqual","isWhere","otherType","objectTypes","otherClass","argsClass","objectClass","arrayClass","aWrapped","bWrapped","ctorA","argsObject","ctorB","forIn","baseMerge","found","isPlainObject","stackLength","baseRandom","min","max","floor","nativeRandom","baseUniq","isSorted","computed","createAggregator","setter","createCallback","createWrapper","isPartial","isPartialRight","TypeError","unshift","creater","createIterator","iteratorData","shadowedProps","bottom","loop","top","init","useHas","firstArg","Function","iteratorTemplate","errorClass","errorProto","indicatorObject","objectProto","nonEnumProps","stringProto","escapeHtmlChar","htmlEscapes","isNative","reNative","shimIsPlainObject","ownLast","unescapeHtmlChar","htmlUnescapes","cloneDeep","create","properties","findLastKey","forOwnRight","forInRight","pairs","functions","sort","has","invert","isElement","nodeType","isEmpty","splice","isEqual","isFinite","nativeIsFinite","nativeIsNaN","parseFloat","isNaN","merge","sources","omit","pick","transform","proto","at","unindexedChars","contains","target","nativeMax","every","filter","find","findLast","forEachRight","iterable","invoke","methodName","isFunc","Infinity","current","noaccum","reduceRight","reject","sample","guard","shuffle","nativeMin","rand","some","sortBy","toArray","compact","difference","findIndex","findLastIndex","flatten","sortedIndex","initial","argsIndex","argsLength","caches","trustIndexOf","outer","lastIndexOf","pull","range","step","ceil","remove","rest","low","high","union","without","xor","zip","pluck","zipObject","after","bindAll","funcs","bindKey","compose","curry","debounce","wait","maxTimeoutId","stamp","timeoutId","trailingCall","lastCalled","maxWait","trailing","leading","delayed","remaining","now","clearTimeout","isCalled","setTimeout","maxDelayed","leadingCall","defer","delay","memoize","resolver","memoized","once","ran","partial","partialRight","throttle","debounceOptions","wrap","wrapper","constant","property","escape","reUnescapedHtml","mixin","chain","methodNames","noConflict","oldDash","noop","random","floating","noMin","noMax","template","text","data","settings","templateSettings","defaults","isEvaluating","imports","importsKeys","importsValues","interpolate","reNoMatch","reDelimiters","reInterpolate","reEsTemplate","evaluate","escapeValue","interpolateValue","esTemplateValue","evaluateValue","offset","reUnescapedString","variable","hasVariable","reEmptyStringLeading","reEmptyStringMiddle","reEmptyStringTrailing","sourceURL","templateCounter","times","unescape","reEscapedHtml","uniqueId","prefix","idCounter","tap","interceptor","wrapperChain","wrapperToString","wrapperValueOf","contextProps","Boolean","Math","arrayRef","getPrototypeOf","propertyIsEnumerable","defineProperty","nativeIsArray","nativeKeys","nativeParseInt","parseInt","funcClass","toLocaleString","valueOf","0","y","enumErrorProps","enumPrototypes","WinRTError","nonEnumArgs","nonEnumShadows","spliceObjects","document","__p","conditions","k","descriptor","shimKeys","eachIteratorOptions","defaultsIteratorOptions","forOwnIteratorOptions","&","<",">","\"","'","objProto","countBy","groupBy","indexBy","where","getTime","whitespace","radix","reLeadingSpacesAndZeros","collect","drop","eachRight","extend","methods","select","tail","unique","unzip","all","any","detect","findWhere","foldl","foldr","include","inject","take","head","callbackable","VERSION","isSplice","configurable","enumerable","writable","function","\\","\n","\r","\t","
","
","window","freeExports","freeModule","freeGlobal","webpackPolyfill","paths","children","_events","_maxListeners","defaultMaxListeners","setMaxListeners","emit","er","listeners","addListener","listener","newListener","g","removeListener","fired","list","position","removeAllListeners","listenerCount","emitter","nextTick","canSetImmediate","setImmediate","canPost","postMessage","addEventListener","queue","ev","stopPropagation","shift","title","browser","argv","binding","cwd","chdir","superCtor","super_","TempCtor","copy","fill","readUInt8"],"mappings":"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","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Fluxbox\"] = factory();\n\telse\n\t\troot[\"Fluxbox\"] = factory();\n})(this, function() {\nreturn ","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Fluxbox\"] = factory();\n\telse\n\t\troot[\"Fluxbox\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/ \t\t\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\t\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/ \t\t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/******/ \t\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/ \t\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/ \t\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/ \t\n/******/ \t\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar Dispatcher = __webpack_require__(1),\n\t Flux = __webpack_require__(4),\n\t FluxMixin = __webpack_require__(5),\n\t StoreWatchMixin = __webpack_require__(7),\n\t createStore = __webpack_require__(3);\n\t\n\tvar Fluxbox = {\n\t Dispatcher: Dispatcher,\n\t Flux: Flux,\n\t FluxMixin: FluxMixin,\n\t StoreWatchMixin: StoreWatchMixin,\n\t createStore: createStore\n\t};\n\t\n\tmodule.exports = Fluxbox;\n\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar _ = __webpack_require__(8);\n\t\n\tvar Dispatcher = function(stores) {\n\t this.stores = stores;\n\t this.currentDispatch = null;\n\t this.waitingToDispatch = [];\n\t\n\t for (var key in stores) {\n\t stores[key].dispatcher = this;\n\t }\n\t};\n\t\n\tDispatcher.prototype.dispatch = function(action) {\n\t if (this.currentDispatch) {\n\t throw new Error(\"Cannot dispatch an action while another action is being dispatched\");\n\t }\n\t\n\t this.waitingToDispatch = _.clone(this.stores);\n\t\n\t this.currentDispatch = _.mapValues(this.stores, function() {\n\t return { resolved: false, waitingOn: [], waitCallback: null };\n\t });\n\t\n\t this.doDispatchLoop(action);\n\t\n\t this.currentDispatch = null;\n\t};\n\t\n\tDispatcher.prototype.doDispatchLoop = function(action) {\n\t var dispatch, canBeDispatchedTo,\n\t removeFromDispatchQueue = [], dispatchedThisLoop = [];\n\t\n\t _.forOwn(this.waitingToDispatch, function(value, key) {\n\t dispatch = this.currentDispatch[key];\n\t canBeDispatchedTo = !dispatch.waitingOn.length ||\n\t !_.intersection(dispatch.waitingOn, _.keys(this.waitingToDispatch)).length;\n\t if (canBeDispatchedTo) {\n\t if (dispatch.waitCallback) {\n\t var stores = _.map(dispatch.waitingOn, function(key) {\n\t return this.stores[key]\n\t }, this);\n\t var fn = dispatch.waitCallback;\n\t dispatch.waitCallback = null;\n\t dispatch.waitingOn = [];\n\t dispatch.resolved = true;\n\t fn.apply(null, stores);\n\t } else {\n\t dispatch.resolved = true;\n\t this.stores[key].__handleAction__(action);\n\t }\n\t\n\t dispatchedThisLoop.push(key);\n\t\n\t if (this.currentDispatch[key].resolved) {\n\t removeFromDispatchQueue.push(key);\n\t }\n\t }\n\t }, this);\n\t\n\t if (!dispatchedThisLoop.length) {\n\t var storesWithCircularWaits = _.keys(this.waitingToDispatch).join(\", \");\n\t throw new Error(\"Indirect circular wait detected among: \" + storesWithCircularWaits);\n\t }\n\t\n\t _.each(removeFromDispatchQueue, function(key) {\n\t delete this.waitingToDispatch[key];\n\t }, this);\n\t\n\t if (_.size(this.waitingToDispatch)) {\n\t this.doDispatchLoop(action);\n\t }\n\t};\n\t\n\tDispatcher.prototype.waitForStores = function(store, stores, fn) {\n\t if (!this.currentDispatch) {\n\t throw new Error(\"Cannot wait unless an action is being dispatched\");\n\t }\n\t\n\t var waitingStoreName = _.findKey(this.stores, function(val) {\n\t return val === store\n\t });\n\t\n\t if (stores.indexOf(waitingStoreName) > -1) {\n\t throw new Error(\"A store cannot wait on itself\");\n\t }\n\t\n\t var dispatch = this.currentDispatch[waitingStoreName];\n\t\n\t if (_.intersection(dispatch.waitingOn, stores).length) {\n\t throw new Error(\"Already waiting on \" + waitingStoreName);\n\t }\n\t\n\t _.each(stores, function(storeName) {\n\t var storeDispatch = this.currentDispatch[storeName];\n\t if (!this.stores[storeName]) {\n\t throw new Error(\"Cannot wait for non-existant store \" + storeName);\n\t }\n\t if (storeDispatch.waitingOn.indexOf(waitingStoreName) > -1) {\n\t throw new Error(\"Circular wait detected between \" + waitingStoreName + \" and \" + storeName);\n\t }\n\t }, this);\n\t\n\t dispatch.resolved = false;\n\t dispatch.waitingOn = _.uniq(dispatch.waitingOn.concat(stores));\n\t dispatch.waitCallback = fn;\n\t};\n\t\n\tmodule.exports = Dispatcher;\n\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors.\n\t//\n\t// Permission is hereby granted, free of charge, to any person obtaining a\n\t// copy of this software and associated documentation files (the\n\t// \"Software\"), to deal in the Software without restriction, including\n\t// without limitation the rights to use, copy, modify, merge, publish,\n\t// distribute, sublicense, and/or sell copies of the Software, and to permit\n\t// persons to whom the Software is furnished to do so, subject to the\n\t// following conditions:\n\t//\n\t// The above copyright notice and this permission notice shall be included\n\t// in all copies or substantial portions of the Software.\n\t//\n\t// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n\t// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n\t// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n\t// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n\t// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n\t// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n\t// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\t\n\tvar formatRegExp = /%[sdj%]/g;\n\texports.format = function(f) {\n\t if (!isString(f)) {\n\t var objects = [];\n\t for (var i = 0; i < arguments.length; i++) {\n\t objects.push(inspect(arguments[i]));\n\t }\n\t return objects.join(' ');\n\t }\n\t\n\t var i = 1;\n\t var args = arguments;\n\t var len = args.length;\n\t var str = String(f).replace(formatRegExp, function(x) {\n\t if (x === '%%') return '%';\n\t if (i >= len) return x;\n\t switch (x) {\n\t case '%s': return String(args[i++]);\n\t case '%d': return Number(args[i++]);\n\t case '%j':\n\t try {\n\t return JSON.stringify(args[i++]);\n\t } catch (_) {\n\t return '[Circular]';\n\t }\n\t default:\n\t return x;\n\t }\n\t });\n\t for (var x = args[i]; i < len; x = args[++i]) {\n\t if (isNull(x) || !isObject(x)) {\n\t str += ' ' + x;\n\t } else {\n\t str += ' ' + inspect(x);\n\t }\n\t }\n\t return str;\n\t};\n\t\n\t\n\t// Mark that a method should not be used.\n\t// Returns a modified function which warns once by default.\n\t// If --no-deprecation is set, then it is a no-op.\n\texports.deprecate = function(fn, msg) {\n\t // Allow for deprecating things in the process of starting up.\n\t if (isUndefined(global.process)) {\n\t return function() {\n\t return exports.deprecate(fn, msg).apply(this, arguments);\n\t };\n\t }\n\t\n\t if (process.noDeprecation === true) {\n\t return fn;\n\t }\n\t\n\t var warned = false;\n\t function deprecated() {\n\t if (!warned) {\n\t if (process.throwDeprecation) {\n\t throw new Error(msg);\n\t } else if (process.traceDeprecation) {\n\t console.trace(msg);\n\t } else {\n\t console.error(msg);\n\t }\n\t warned = true;\n\t }\n\t return fn.apply(this, arguments);\n\t }\n\t\n\t return deprecated;\n\t};\n\t\n\t\n\tvar debugs = {};\n\tvar debugEnviron;\n\texports.debuglog = function(set) {\n\t if (isUndefined(debugEnviron))\n\t debugEnviron = process.env.NODE_DEBUG || '';\n\t set = set.toUpperCase();\n\t if (!debugs[set]) {\n\t if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n\t var pid = process.pid;\n\t debugs[set] = function() {\n\t var msg = exports.format.apply(exports, arguments);\n\t console.error('%s %d: %s', set, pid, msg);\n\t };\n\t } else {\n\t debugs[set] = function() {};\n\t }\n\t }\n\t return debugs[set];\n\t};\n\t\n\t\n\t/**\n\t * Echos the value of a value. Trys to print the value out\n\t * in the best way possible given the different types.\n\t *\n\t * @param {Object} obj The object to print out.\n\t * @param {Object} opts Optional options object that alters the output.\n\t */\n\t/* legacy: obj, showHidden, depth, colors*/\n\tfunction inspect(obj, opts) {\n\t // default options\n\t var ctx = {\n\t seen: [],\n\t stylize: stylizeNoColor\n\t };\n\t // legacy...\n\t if (arguments.length >= 3) ctx.depth = arguments[2];\n\t if (arguments.length >= 4) ctx.colors = arguments[3];\n\t if (isBoolean(opts)) {\n\t // legacy...\n\t ctx.showHidden = opts;\n\t } else if (opts) {\n\t // got an \"options\" object\n\t exports._extend(ctx, opts);\n\t }\n\t // set default options\n\t if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n\t if (isUndefined(ctx.depth)) ctx.depth = 2;\n\t if (isUndefined(ctx.colors)) ctx.colors = false;\n\t if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n\t if (ctx.colors) ctx.stylize = stylizeWithColor;\n\t return formatValue(ctx, obj, ctx.depth);\n\t}\n\texports.inspect = inspect;\n\t\n\t\n\t// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\n\tinspect.colors = {\n\t 'bold' : [1, 22],\n\t 'italic' : [3, 23],\n\t 'underline' : [4, 24],\n\t 'inverse' : [7, 27],\n\t 'white' : [37, 39],\n\t 'grey' : [90, 39],\n\t 'black' : [30, 39],\n\t 'blue' : [34, 39],\n\t 'cyan' : [36, 39],\n\t 'green' : [32, 39],\n\t 'magenta' : [35, 39],\n\t 'red' : [31, 39],\n\t 'yellow' : [33, 39]\n\t};\n\t\n\t// Don't use 'blue' not visible on cmd.exe\n\tinspect.styles = {\n\t 'special': 'cyan',\n\t 'number': 'yellow',\n\t 'boolean': 'yellow',\n\t 'undefined': 'grey',\n\t 'null': 'bold',\n\t 'string': 'green',\n\t 'date': 'magenta',\n\t // \"name\": intentionally not styling\n\t 'regexp': 'red'\n\t};\n\t\n\t\n\tfunction stylizeWithColor(str, styleType) {\n\t var style = inspect.styles[styleType];\n\t\n\t if (style) {\n\t return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n\t '\\u001b[' + inspect.colors[style][1] + 'm';\n\t } else {\n\t return str;\n\t }\n\t}\n\t\n\t\n\tfunction stylizeNoColor(str, styleType) {\n\t return str;\n\t}\n\t\n\t\n\tfunction arrayToHash(array) {\n\t var hash = {};\n\t\n\t array.forEach(function(val, idx) {\n\t hash[val] = true;\n\t });\n\t\n\t return hash;\n\t}\n\t\n\t\n\tfunction formatValue(ctx, value, recurseTimes) {\n\t // Provide a hook for user-specified inspect functions.\n\t // Check that value is an object with an inspect function on it\n\t if (ctx.customInspect &&\n\t value &&\n\t isFunction(value.inspect) &&\n\t // Filter out the util module, it's inspect function is special\n\t value.inspect !== exports.inspect &&\n\t // Also filter out any prototype objects using the circular check.\n\t !(value.constructor && value.constructor.prototype === value)) {\n\t var ret = value.inspect(recurseTimes, ctx);\n\t if (!isString(ret)) {\n\t ret = formatValue(ctx, ret, recurseTimes);\n\t }\n\t return ret;\n\t }\n\t\n\t // Primitive types cannot have properties\n\t var primitive = formatPrimitive(ctx, value);\n\t if (primitive) {\n\t return primitive;\n\t }\n\t\n\t // Look up the keys of the object.\n\t var keys = Object.keys(value);\n\t var visibleKeys = arrayToHash(keys);\n\t\n\t if (ctx.showHidden) {\n\t keys = Object.getOwnPropertyNames(value);\n\t }\n\t\n\t // IE doesn't make error fields non-enumerable\n\t // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n\t if (isError(value)\n\t && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n\t return formatError(value);\n\t }\n\t\n\t // Some type of object without properties can be shortcutted.\n\t if (keys.length === 0) {\n\t if (isFunction(value)) {\n\t var name = value.name ? ': ' + value.name : '';\n\t return ctx.stylize('[Function' + name + ']', 'special');\n\t }\n\t if (isRegExp(value)) {\n\t return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n\t }\n\t if (isDate(value)) {\n\t return ctx.stylize(Date.prototype.toString.call(value), 'date');\n\t }\n\t if (isError(value)) {\n\t return formatError(value);\n\t }\n\t }\n\t\n\t var base = '', array = false, braces = ['{', '}'];\n\t\n\t // Make Array say that they are Array\n\t if (isArray(value)) {\n\t array = true;\n\t braces = ['[', ']'];\n\t }\n\t\n\t // Make functions say that they are functions\n\t if (isFunction(value)) {\n\t var n = value.name ? ': ' + value.name : '';\n\t base = ' [Function' + n + ']';\n\t }\n\t\n\t // Make RegExps say that they are RegExps\n\t if (isRegExp(value)) {\n\t base = ' ' + RegExp.prototype.toString.call(value);\n\t }\n\t\n\t // Make dates with properties first say the date\n\t if (isDate(value)) {\n\t base = ' ' + Date.prototype.toUTCString.call(value);\n\t }\n\t\n\t // Make error with message first say the error\n\t if (isError(value)) {\n\t base = ' ' + formatError(value);\n\t }\n\t\n\t if (keys.length === 0 && (!array || value.length == 0)) {\n\t return braces[0] + base + braces[1];\n\t }\n\t\n\t if (recurseTimes < 0) {\n\t if (isRegExp(value)) {\n\t return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n\t } else {\n\t return ctx.stylize('[Object]', 'special');\n\t }\n\t }\n\t\n\t ctx.seen.push(value);\n\t\n\t var output;\n\t if (array) {\n\t output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n\t } else {\n\t output = keys.map(function(key) {\n\t return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n\t });\n\t }\n\t\n\t ctx.seen.pop();\n\t\n\t return reduceToSingleString(output, base, braces);\n\t}\n\t\n\t\n\tfunction formatPrimitive(ctx, value) {\n\t if (isUndefined(value))\n\t return ctx.stylize('undefined', 'undefined');\n\t if (isString(value)) {\n\t var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n\t .replace(/'/g, \"\\\\'\")\n\t .replace(/\\\\\"/g, '\"') + '\\'';\n\t return ctx.stylize(simple, 'string');\n\t }\n\t if (isNumber(value))\n\t return ctx.stylize('' + value, 'number');\n\t if (isBoolean(value))\n\t return ctx.stylize('' + value, 'boolean');\n\t // For some reason typeof null is \"object\", so special case here.\n\t if (isNull(value))\n\t return ctx.stylize('null', 'null');\n\t}\n\t\n\t\n\tfunction formatError(value) {\n\t return '[' + Error.prototype.toString.call(value) + ']';\n\t}\n\t\n\t\n\tfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n\t var output = [];\n\t for (var i = 0, l = value.length; i < l; ++i) {\n\t if (hasOwnProperty(value, String(i))) {\n\t output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n\t String(i), true));\n\t } else {\n\t output.push('');\n\t }\n\t }\n\t keys.forEach(function(key) {\n\t if (!key.match(/^\\d+$/)) {\n\t output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n\t key, true));\n\t }\n\t });\n\t return output;\n\t}\n\t\n\t\n\tfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n\t var name, str, desc;\n\t desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n\t if (desc.get) {\n\t if (desc.set) {\n\t str = ctx.stylize('[Getter/Setter]', 'special');\n\t } else {\n\t str = ctx.stylize('[Getter]', 'special');\n\t }\n\t } else {\n\t if (desc.set) {\n\t str = ctx.stylize('[Setter]', 'special');\n\t }\n\t }\n\t if (!hasOwnProperty(visibleKeys, key)) {\n\t name = '[' + key + ']';\n\t }\n\t if (!str) {\n\t if (ctx.seen.indexOf(desc.value) < 0) {\n\t if (isNull(recurseTimes)) {\n\t str = formatValue(ctx, desc.value, null);\n\t } else {\n\t str = formatValue(ctx, desc.value, recurseTimes - 1);\n\t }\n\t if (str.indexOf('\\n') > -1) {\n\t if (array) {\n\t str = str.split('\\n').map(function(line) {\n\t return ' ' + line;\n\t }).join('\\n').substr(2);\n\t } else {\n\t str = '\\n' + str.split('\\n').map(function(line) {\n\t return ' ' + line;\n\t }).join('\\n');\n\t }\n\t }\n\t } else {\n\t str = ctx.stylize('[Circular]', 'special');\n\t }\n\t }\n\t if (isUndefined(name)) {\n\t if (array && key.match(/^\\d+$/)) {\n\t return str;\n\t }\n\t name = JSON.stringify('' + key);\n\t if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n\t name = name.substr(1, name.length - 2);\n\t name = ctx.stylize(name, 'name');\n\t } else {\n\t name = name.replace(/'/g, \"\\\\'\")\n\t .replace(/\\\\\"/g, '\"')\n\t .replace(/(^\"|\"$)/g, \"'\");\n\t name = ctx.stylize(name, 'string');\n\t }\n\t }\n\t\n\t return name + ': ' + str;\n\t}\n\t\n\t\n\tfunction reduceToSingleString(output, base, braces) {\n\t var numLinesEst = 0;\n\t var length = output.reduce(function(prev, cur) {\n\t numLinesEst++;\n\t if (cur.indexOf('\\n') >= 0) numLinesEst++;\n\t return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n\t }, 0);\n\t\n\t if (length > 60) {\n\t return braces[0] +\n\t (base === '' ? '' : base + '\\n ') +\n\t ' ' +\n\t output.join(',\\n ') +\n\t ' ' +\n\t braces[1];\n\t }\n\t\n\t return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n\t}\n\t\n\t\n\t// NOTE: These type checking functions intentionally don't use `instanceof`\n\t// because it is fragile and can be easily faked with `Object.create()`.\n\tfunction isArray(ar) {\n\t return Array.isArray(ar);\n\t}\n\texports.isArray = isArray;\n\t\n\tfunction isBoolean(arg) {\n\t return typeof arg === 'boolean';\n\t}\n\texports.isBoolean = isBoolean;\n\t\n\tfunction isNull(arg) {\n\t return arg === null;\n\t}\n\texports.isNull = isNull;\n\t\n\tfunction isNullOrUndefined(arg) {\n\t return arg == null;\n\t}\n\texports.isNullOrUndefined = isNullOrUndefined;\n\t\n\tfunction isNumber(arg) {\n\t return typeof arg === 'number';\n\t}\n\texports.isNumber = isNumber;\n\t\n\tfunction isString(arg) {\n\t return typeof arg === 'string';\n\t}\n\texports.isString = isString;\n\t\n\tfunction isSymbol(arg) {\n\t return typeof arg === 'symbol';\n\t}\n\texports.isSymbol = isSymbol;\n\t\n\tfunction isUndefined(arg) {\n\t return arg === void 0;\n\t}\n\texports.isUndefined = isUndefined;\n\t\n\tfunction isRegExp(re) {\n\t return isObject(re) && objectToString(re) === '[object RegExp]';\n\t}\n\texports.isRegExp = isRegExp;\n\t\n\tfunction isObject(arg) {\n\t return typeof arg === 'object' && arg !== null;\n\t}\n\texports.isObject = isObject;\n\t\n\tfunction isDate(d) {\n\t return isObject(d) && objectToString(d) === '[object Date]';\n\t}\n\texports.isDate = isDate;\n\t\n\tfunction isError(e) {\n\t return isObject(e) &&\n\t (objectToString(e) === '[object Error]' || e instanceof Error);\n\t}\n\texports.isError = isError;\n\t\n\tfunction isFunction(arg) {\n\t return typeof arg === 'function';\n\t}\n\texports.isFunction = isFunction;\n\t\n\tfunction isPrimitive(arg) {\n\t return arg === null ||\n\t typeof arg === 'boolean' ||\n\t typeof arg === 'number' ||\n\t typeof arg === 'string' ||\n\t typeof arg === 'symbol' || // ES6 symbol\n\t typeof arg === 'undefined';\n\t}\n\texports.isPrimitive = isPrimitive;\n\t\n\texports.isBuffer = __webpack_require__(13);\n\t\n\tfunction objectToString(o) {\n\t return Object.prototype.toString.call(o);\n\t}\n\t\n\t\n\tfunction pad(n) {\n\t return n < 10 ? '0' + n.toString(10) : n.toString(10);\n\t}\n\t\n\t\n\tvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n\t 'Oct', 'Nov', 'Dec'];\n\t\n\t// 26 Feb 16:19:34\n\tfunction timestamp() {\n\t var d = new Date();\n\t var time = [pad(d.getHours()),\n\t pad(d.getMinutes()),\n\t pad(d.getSeconds())].join(':');\n\t return [d.getDate(), months[d.getMonth()], time].join(' ');\n\t}\n\t\n\t\n\t// log is just a thin wrapper to console.log that prepends a timestamp\n\texports.log = function() {\n\t console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n\t};\n\t\n\t\n\t/**\n\t * Inherit the prototype methods from one constructor into another.\n\t *\n\t * The Function.prototype.inherits from lang.js rewritten as a standalone\n\t * function (not on Function.prototype). NOTE: If this file is to be loaded\n\t * during bootstrapping this function needs to be rewritten using some native\n\t * functions as prototype setup using normal JavaScript does not work as\n\t * expected during bootstrapping (see mirror.js in r114903).\n\t *\n\t * @param {function} ctor Constructor function which needs to inherit the\n\t * prototype.\n\t * @param {function} superCtor Constructor function to inherit prototype from.\n\t */\n\texports.inherits = __webpack_require__(12);\n\t\n\texports._extend = function(origin, add) {\n\t // Don't do anything if add isn't an object\n\t if (!add || !isObject(add)) return origin;\n\t\n\t var keys = Object.keys(add);\n\t var i = keys.length;\n\t while (i--) {\n\t origin[keys[i]] = add[keys[i]];\n\t }\n\t return origin;\n\t};\n\t\n\tfunction hasOwnProperty(obj, prop) {\n\t return Object.prototype.hasOwnProperty.call(obj, prop);\n\t}\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(11)))\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar Store = __webpack_require__(6),\n\t util = __webpack_require__(2);\n\t\n\tvar createStore = function(spec) {\n\t var constructor = function(options) {\n\t options = options || {};\n\t Store.call(this);\n\t this.__actions__ = {};\n\t\n\t for (key in spec) {\n\t if (key === \"waitFor\" || key === \"flux\") {\n\t throw new Exception(\"Reserved key '\" + key + \"' found in store definition\");\n\t } else if (key === \"actions\") {\n\t this.__actions__ = spec[key];\n\t } else if (key === \"initialize\") {\n\t // do nothing\n\t } else if (typeof spec[key] === \"function\") {\n\t this[key] = spec[key].bind(this);\n\t } else {\n\t this[key] = spec[key];\n\t }\n\t }\n\t\n\t if (spec.initialize) spec.initialize.call(this, options);\n\t };\n\t\n\t util.inherits(constructor, Store);\n\t return constructor;\n\t};\n\t\n\tmodule.exports = createStore;\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar Dispatcher = __webpack_require__(1);\n\t\n\tvar Flux = function(stores, actions) {\n\t var dispatcher = new Dispatcher(stores),\n\t dispatchBinder = {\n\t dispatch: function(type, payload) {\n\t dispatcher.dispatch({type: type, payload: payload});\n\t }\n\t };\n\t\n\t this.dispatcher = dispatcher;\n\t this.actions = {};\n\t\n\t for (key in actions) {\n\t this.actions[key] = actions[key].bind(dispatchBinder);\n\t }\n\t\n\t for (key in stores) {\n\t stores[key].flux = this\n\t }\n\t};\n\t\n\tFlux.prototype.store = function(name) {\n\t return this.dispatcher.stores[name];\n\t};\n\t\n\tmodule.exports = Flux;\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar FluxMixin = function(React) {\n\t return {\n\t propTypes: {\n\t flux: React.PropTypes.object.isRequired\n\t },\n\t\n\t childContextTypes: {\n\t flux: React.PropTypes.object\n\t },\n\t\n\t getChildContext: function() {\n\t return {\n\t flux: this.props.flux\n\t };\n\t }\n\t };\n\t};\n\t\n\tFluxMixin.componentWillMount = function() {\n\t throw new Error(\"Fluxbox.FluxMixin is a function that takes React as a \" +\n\t \"parameter and returns the mixin, e.g.: mixins[Fluxbox.FluxMixin(React)]\");\n\t};\n\t\n\tmodule.exports = FluxMixin;\n\n\n/***/ },\n/* 6 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar EventEmitter = __webpack_require__(10).EventEmitter,\n\t util = __webpack_require__(2);\n\t\n\tfunction Store(dispatcher) {\n\t this.dispatcher = dispatcher;\n\t EventEmitter.call(this);\n\t};\n\t\n\tutil.inherits(Store, EventEmitter);\n\t\n\tStore.prototype.__handleAction__ = function(action) {\n\t var handler;\n\t if (handler = this.__actions__[action.type]) {\n\t if (typeof handler === \"function\")\n\t handler.call(this, action.payload, action.type);\n\t else if (handler && typeof this[handler] === \"function\")\n\t this[handler].call(this, action.payload, action.type);\n\t }\n\t};\n\t\n\tStore.prototype.bindActions = function() {\n\t var actions = Array.prototype.slice.call(arguments);\n\t if (actions.length % 2 !== 0) {\n\t throw new Error(\"bindActions must take an even number of arguments.\");\n\t }\n\t\n\t for (var i = 0; i < actions.length; i += 2) {\n\t var type = actions[i],\n\t handler = actions[i+1];\n\t\n\t this.__actions__[type] = handler;\n\t }\n\t};\n\t\n\tStore.prototype.waitFor = function(stores, fn) {\n\t this.dispatcher.waitForStores(this, stores, fn.bind(this));\n\t};\n\t\n\tmodule.exports = Store;\n\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = function() {\n\t var storeNames = Array.prototype.slice.call(arguments);\n\t return {\n\t componentWillMount: function() {\n\t var flux = this.props.flux || this.context.flux;\n\t _.each(storeNames, function(store) {\n\t flux.store(store).on(\"change\", this._setStateFromFlux)\n\t }, this);\n\t },\n\t\n\t componentWillUnmount: function() {\n\t var flux = this.props.flux || this.context.flux;\n\t _.each(storeNames, function(store) {\n\t flux.store(store).off(\"change\", this._setStateFromFlux)\n\t }, this);\n\t },\n\t\n\t _setStateFromFlux: function() {\n\t this.setState(this.getStateFromFlux());\n\t },\n\t\n\t getInitialState: function() {\n\t return this.getStateFromFlux();\n\t }\n\t }\n\t};\n\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(module, global) {/**\n\t * @license\n\t * Lo-Dash 2.4.1 (Custom Build) \n\t * Build: `lodash -o ./dist/lodash.compat.js`\n\t * Copyright 2012-2013 The Dojo Foundation \n\t * Based on Underscore.js 1.5.2 \n\t * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t;(function() {\n\t\n\t /** Used as a safe reference for `undefined` in pre ES5 environments */\n\t var undefined;\n\t\n\t /** Used to pool arrays and objects used internally */\n\t var arrayPool = [],\n\t objectPool = [];\n\t\n\t /** Used to generate unique IDs */\n\t var idCounter = 0;\n\t\n\t /** Used internally to indicate various things */\n\t var indicatorObject = {};\n\t\n\t /** Used to prefix keys to avoid issues with `__proto__` and properties on `Object.prototype` */\n\t var keyPrefix = +new Date + '';\n\t\n\t /** Used as the size when optimizations are enabled for large arrays */\n\t var largeArraySize = 75;\n\t\n\t /** Used as the max size of the `arrayPool` and `objectPool` */\n\t var maxPoolSize = 40;\n\t\n\t /** Used to detect and test whitespace */\n\t var whitespace = (\n\t // whitespace\n\t ' \\t\\x0B\\f\\xA0\\ufeff' +\n\t\n\t // line terminators\n\t '\\n\\r\\u2028\\u2029' +\n\t\n\t // unicode category \"Zs\" space separators\n\t '\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000'\n\t );\n\t\n\t /** Used to match empty string literals in compiled template source */\n\t var reEmptyStringLeading = /\\b__p \\+= '';/g,\n\t reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n\t reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\t\n\t /**\n\t * Used to match ES6 template delimiters\n\t * http://people.mozilla.org/~jorendorff/es6-draft.html#sec-literals-string-literals\n\t */\n\t var reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\t\n\t /** Used to match regexp flags from their coerced string values */\n\t var reFlags = /\\w*$/;\n\t\n\t /** Used to detected named functions */\n\t var reFuncName = /^\\s*function[ \\n\\r\\t]+\\w/;\n\t\n\t /** Used to match \"interpolate\" template delimiters */\n\t var reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\t\n\t /** Used to match leading whitespace and zeros to be removed */\n\t var reLeadingSpacesAndZeros = RegExp('^[' + whitespace + ']*0+(?=.$)');\n\t\n\t /** Used to ensure capturing order of template delimiters */\n\t var reNoMatch = /($^)/;\n\t\n\t /** Used to detect functions containing a `this` reference */\n\t var reThis = /\\bthis\\b/;\n\t\n\t /** Used to match unescaped characters in compiled string literals */\n\t var reUnescapedString = /['\\n\\r\\t\\u2028\\u2029\\\\]/g;\n\t\n\t /** Used to assign default `context` object properties */\n\t var contextProps = [\n\t 'Array', 'Boolean', 'Date', 'Error', 'Function', 'Math', 'Number', 'Object',\n\t 'RegExp', 'String', '_', 'attachEvent', 'clearTimeout', 'isFinite', 'isNaN',\n\t 'parseInt', 'setTimeout'\n\t ];\n\t\n\t /** Used to fix the JScript [[DontEnum]] bug */\n\t var shadowedProps = [\n\t 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable',\n\t 'toLocaleString', 'toString', 'valueOf'\n\t ];\n\t\n\t /** Used to make template sourceURLs easier to identify */\n\t var templateCounter = 0;\n\t\n\t /** `Object#toString` result shortcuts */\n\t var argsClass = '[object Arguments]',\n\t arrayClass = '[object Array]',\n\t boolClass = '[object Boolean]',\n\t dateClass = '[object Date]',\n\t errorClass = '[object Error]',\n\t funcClass = '[object Function]',\n\t numberClass = '[object Number]',\n\t objectClass = '[object Object]',\n\t regexpClass = '[object RegExp]',\n\t stringClass = '[object String]';\n\t\n\t /** Used to identify object classifications that `_.clone` supports */\n\t var cloneableClasses = {};\n\t cloneableClasses[funcClass] = false;\n\t cloneableClasses[argsClass] = cloneableClasses[arrayClass] =\n\t cloneableClasses[boolClass] = cloneableClasses[dateClass] =\n\t cloneableClasses[numberClass] = cloneableClasses[objectClass] =\n\t cloneableClasses[regexpClass] = cloneableClasses[stringClass] = true;\n\t\n\t /** Used as an internal `_.debounce` options object */\n\t var debounceOptions = {\n\t 'leading': false,\n\t 'maxWait': 0,\n\t 'trailing': false\n\t };\n\t\n\t /** Used as the property descriptor for `__bindData__` */\n\t var descriptor = {\n\t 'configurable': false,\n\t 'enumerable': false,\n\t 'value': null,\n\t 'writable': false\n\t };\n\t\n\t /** Used as the data object for `iteratorTemplate` */\n\t var iteratorData = {\n\t 'args': '',\n\t 'array': null,\n\t 'bottom': '',\n\t 'firstArg': '',\n\t 'init': '',\n\t 'keys': null,\n\t 'loop': '',\n\t 'shadowedProps': null,\n\t 'support': null,\n\t 'top': '',\n\t 'useHas': false\n\t };\n\t\n\t /** Used to determine if values are of the language type Object */\n\t var objectTypes = {\n\t 'boolean': false,\n\t 'function': true,\n\t 'object': true,\n\t 'number': false,\n\t 'string': false,\n\t 'undefined': false\n\t };\n\t\n\t /** Used to escape characters for inclusion in compiled string literals */\n\t var stringEscapes = {\n\t '\\\\': '\\\\',\n\t \"'\": \"'\",\n\t '\\n': 'n',\n\t '\\r': 'r',\n\t '\\t': 't',\n\t '\\u2028': 'u2028',\n\t '\\u2029': 'u2029'\n\t };\n\t\n\t /** Used as a reference to the global object */\n\t var root = (objectTypes[typeof window] && window) || this;\n\t\n\t /** Detect free variable `exports` */\n\t var freeExports = objectTypes[typeof exports] && exports && !exports.nodeType && exports;\n\t\n\t /** Detect free variable `module` */\n\t var freeModule = objectTypes[typeof module] && module && !module.nodeType && module;\n\t\n\t /** Detect the popular CommonJS extension `module.exports` */\n\t var moduleExports = freeModule && freeModule.exports === freeExports && freeExports;\n\t\n\t /** Detect free variable `global` from Node.js or Browserified code and use it as `root` */\n\t var freeGlobal = objectTypes[typeof global] && global;\n\t if (freeGlobal && (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal)) {\n\t root = freeGlobal;\n\t }\n\t\n\t /*--------------------------------------------------------------------------*/\n\t\n\t /**\n\t * The base implementation of `_.indexOf` without support for binary searches\n\t * or `fromIndex` constraints.\n\t *\n\t * @private\n\t * @param {Array} array The array to search.\n\t * @param {*} value The value to search for.\n\t * @param {number} [fromIndex=0] The index to search from.\n\t * @returns {number} Returns the index of the matched value or `-1`.\n\t */\n\t function baseIndexOf(array, value, fromIndex) {\n\t var index = (fromIndex || 0) - 1,\n\t length = array ? array.length : 0;\n\t\n\t while (++index < length) {\n\t if (array[index] === value) {\n\t return index;\n\t }\n\t }\n\t return -1;\n\t }\n\t\n\t /**\n\t * An implementation of `_.contains` for cache objects that mimics the return\n\t * signature of `_.indexOf` by returning `0` if the value is found, else `-1`.\n\t *\n\t * @private\n\t * @param {Object} cache The cache object to inspect.\n\t * @param {*} value The value to search for.\n\t * @returns {number} Returns `0` if `value` is found, else `-1`.\n\t */\n\t function cacheIndexOf(cache, value) {\n\t var type = typeof value;\n\t cache = cache.cache;\n\t\n\t if (type == 'boolean' || value == null) {\n\t return cache[value] ? 0 : -1;\n\t }\n\t if (type != 'number' && type != 'string') {\n\t type = 'object';\n\t }\n\t var key = type == 'number' ? value : keyPrefix + value;\n\t cache = (cache = cache[type]) && cache[key];\n\t\n\t return type == 'object'\n\t ? (cache && baseIndexOf(cache, value) > -1 ? 0 : -1)\n\t : (cache ? 0 : -1);\n\t }\n\t\n\t /**\n\t * Adds a given value to the corresponding cache object.\n\t *\n\t * @private\n\t * @param {*} value The value to add to the cache.\n\t */\n\t function cachePush(value) {\n\t var cache = this.cache,\n\t type = typeof value;\n\t\n\t if (type == 'boolean' || value == null) {\n\t cache[value] = true;\n\t } else {\n\t if (type != 'number' && type != 'string') {\n\t type = 'object';\n\t }\n\t var key = type == 'number' ? value : keyPrefix + value,\n\t typeCache = cache[type] || (cache[type] = {});\n\t\n\t if (type == 'object') {\n\t (typeCache[key] || (typeCache[key] = [])).push(value);\n\t } else {\n\t typeCache[key] = true;\n\t }\n\t }\n\t }\n\t\n\t /**\n\t * Used by `_.max` and `_.min` as the default callback when a given\n\t * collection is a string value.\n\t *\n\t * @private\n\t * @param {string} value The character to inspect.\n\t * @returns {number} Returns the code unit of given character.\n\t */\n\t function charAtCallback(value) {\n\t return value.charCodeAt(0);\n\t }\n\t\n\t /**\n\t * Used by `sortBy` to compare transformed `collection` elements, stable sorting\n\t * them in ascending order.\n\t *\n\t * @private\n\t * @param {Object} a The object to compare to `b`.\n\t * @param {Object} b The object to compare to `a`.\n\t * @returns {number} Returns the sort order indicator of `1` or `-1`.\n\t */\n\t function compareAscending(a, b) {\n\t var ac = a.criteria,\n\t bc = b.criteria,\n\t index = -1,\n\t length = ac.length;\n\t\n\t while (++index < length) {\n\t var value = ac[index],\n\t other = bc[index];\n\t\n\t if (value !== other) {\n\t if (value > other || typeof value == 'undefined') {\n\t return 1;\n\t }\n\t if (value < other || typeof other == 'undefined') {\n\t return -1;\n\t }\n\t }\n\t }\n\t // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n\t // that causes it, under certain circumstances, to return the same value for\n\t // `a` and `b`. See https://github.com/jashkenas/underscore/pull/1247\n\t //\n\t // This also ensures a stable sort in V8 and other engines.\n\t // See http://code.google.com/p/v8/issues/detail?id=90\n\t return a.index - b.index;\n\t }\n\t\n\t /**\n\t * Creates a cache object to optimize linear searches of large arrays.\n\t *\n\t * @private\n\t * @param {Array} [array=[]] The array to search.\n\t * @returns {null|Object} Returns the cache object or `null` if caching should not be used.\n\t */\n\t function createCache(array) {\n\t var index = -1,\n\t length = array.length,\n\t first = array[0],\n\t mid = array[(length / 2) | 0],\n\t last = array[length - 1];\n\t\n\t if (first && typeof first == 'object' &&\n\t mid && typeof mid == 'object' && last && typeof last == 'object') {\n\t return false;\n\t }\n\t var cache = getObject();\n\t cache['false'] = cache['null'] = cache['true'] = cache['undefined'] = false;\n\t\n\t var result = getObject();\n\t result.array = array;\n\t result.cache = cache;\n\t result.push = cachePush;\n\t\n\t while (++index < length) {\n\t result.push(array[index]);\n\t }\n\t return result;\n\t }\n\t\n\t /**\n\t * Used by `template` to escape characters for inclusion in compiled\n\t * string literals.\n\t *\n\t * @private\n\t * @param {string} match The matched character to escape.\n\t * @returns {string} Returns the escaped character.\n\t */\n\t function escapeStringChar(match) {\n\t return '\\\\' + stringEscapes[match];\n\t }\n\t\n\t /**\n\t * Gets an array from the array pool or creates a new one if the pool is empty.\n\t *\n\t * @private\n\t * @returns {Array} The array from the pool.\n\t */\n\t function getArray() {\n\t return arrayPool.pop() || [];\n\t }\n\t\n\t /**\n\t * Gets an object from the object pool or creates a new one if the pool is empty.\n\t *\n\t * @private\n\t * @returns {Object} The object from the pool.\n\t */\n\t function getObject() {\n\t return objectPool.pop() || {\n\t 'array': null,\n\t 'cache': null,\n\t 'criteria': null,\n\t 'false': false,\n\t 'index': 0,\n\t 'null': false,\n\t 'number': null,\n\t 'object': null,\n\t 'push': null,\n\t 'string': null,\n\t 'true': false,\n\t 'undefined': false,\n\t 'value': null\n\t };\n\t }\n\t\n\t /**\n\t * Checks if `value` is a DOM node in IE < 9.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if the `value` is a DOM node, else `false`.\n\t */\n\t function isNode(value) {\n\t // IE < 9 presents DOM nodes as `Object` objects except they have `toString`\n\t // methods that are `typeof` \"string\" and still can coerce nodes to strings\n\t return typeof value.toString != 'function' && typeof (value + '') == 'string';\n\t }\n\t\n\t /**\n\t * Releases the given array back to the array pool.\n\t *\n\t * @private\n\t * @param {Array} [array] The array to release.\n\t */\n\t function releaseArray(array) {\n\t array.length = 0;\n\t if (arrayPool.length < maxPoolSize) {\n\t arrayPool.push(array);\n\t }\n\t }\n\t\n\t /**\n\t * Releases the given object back to the object pool.\n\t *\n\t * @private\n\t * @param {Object} [object] The object to release.\n\t */\n\t function releaseObject(object) {\n\t var cache = object.cache;\n\t if (cache) {\n\t releaseObject(cache);\n\t }\n\t object.array = object.cache = object.criteria = object.object = object.number = object.string = object.value = null;\n\t if (objectPool.length < maxPoolSize) {\n\t objectPool.push(object);\n\t }\n\t }\n\t\n\t /**\n\t * Slices the `collection` from the `start` index up to, but not including,\n\t * the `end` index.\n\t *\n\t * Note: This function is used instead of `Array#slice` to support node lists\n\t * in IE < 9 and to ensure dense arrays are returned.\n\t *\n\t * @private\n\t * @param {Array|Object|string} collection The collection to slice.\n\t * @param {number} start The start index.\n\t * @param {number} end The end index.\n\t * @returns {Array} Returns the new array.\n\t */\n\t function slice(array, start, end) {\n\t start || (start = 0);\n\t if (typeof end == 'undefined') {\n\t end = array ? array.length : 0;\n\t }\n\t var index = -1,\n\t length = end - start || 0,\n\t result = Array(length < 0 ? 0 : length);\n\t\n\t while (++index < length) {\n\t result[index] = array[start + index];\n\t }\n\t return result;\n\t }\n\t\n\t /*--------------------------------------------------------------------------*/\n\t\n\t /**\n\t * Create a new `lodash` function using the given context object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Utilities\n\t * @param {Object} [context=root] The context object.\n\t * @returns {Function} Returns the `lodash` function.\n\t */\n\t function runInContext(context) {\n\t // Avoid issues with some ES3 environments that attempt to use values, named\n\t // after built-in constructors like `Object`, for the creation of literals.\n\t // ES5 clears this up by stating that literals must use built-in constructors.\n\t // See http://es5.github.io/#x11.1.5.\n\t context = context ? _.defaults(root.Object(), context, _.pick(root, contextProps)) : root;\n\t\n\t /** Native constructor references */\n\t var Array = context.Array,\n\t Boolean = context.Boolean,\n\t Date = context.Date,\n\t Error = context.Error,\n\t Function = context.Function,\n\t Math = context.Math,\n\t Number = context.Number,\n\t Object = context.Object,\n\t RegExp = context.RegExp,\n\t String = context.String,\n\t TypeError = context.TypeError;\n\t\n\t /**\n\t * Used for `Array` method references.\n\t *\n\t * Normally `Array.prototype` would suffice, however, using an array literal\n\t * avoids issues in Narwhal.\n\t */\n\t var arrayRef = [];\n\t\n\t /** Used for native method references */\n\t var errorProto = Error.prototype,\n\t objectProto = Object.prototype,\n\t stringProto = String.prototype;\n\t\n\t /** Used to restore the original `_` reference in `noConflict` */\n\t var oldDash = context._;\n\t\n\t /** Used to resolve the internal [[Class]] of values */\n\t var toString = objectProto.toString;\n\t\n\t /** Used to detect if a method is native */\n\t var reNative = RegExp('^' +\n\t String(toString)\n\t .replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n\t .replace(/toString| for [^\\]]+/g, '.*?') + '$'\n\t );\n\t\n\t /** Native method shortcuts */\n\t var ceil = Math.ceil,\n\t clearTimeout = context.clearTimeout,\n\t floor = Math.floor,\n\t fnToString = Function.prototype.toString,\n\t getPrototypeOf = isNative(getPrototypeOf = Object.getPrototypeOf) && getPrototypeOf,\n\t hasOwnProperty = objectProto.hasOwnProperty,\n\t push = arrayRef.push,\n\t propertyIsEnumerable = objectProto.propertyIsEnumerable,\n\t setTimeout = context.setTimeout,\n\t splice = arrayRef.splice,\n\t unshift = arrayRef.unshift;\n\t\n\t /** Used to set meta data on functions */\n\t var defineProperty = (function() {\n\t // IE 8 only accepts DOM elements\n\t try {\n\t var o = {},\n\t func = isNative(func = Object.defineProperty) && func,\n\t result = func(o, o, o) && func;\n\t } catch(e) { }\n\t return result;\n\t }());\n\t\n\t /* Native method shortcuts for methods with the same name as other `lodash` methods */\n\t var nativeCreate = isNative(nativeCreate = Object.create) && nativeCreate,\n\t nativeIsArray = isNative(nativeIsArray = Array.isArray) && nativeIsArray,\n\t nativeIsFinite = context.isFinite,\n\t nativeIsNaN = context.isNaN,\n\t nativeKeys = isNative(nativeKeys = Object.keys) && nativeKeys,\n\t nativeMax = Math.max,\n\t nativeMin = Math.min,\n\t nativeParseInt = context.parseInt,\n\t nativeRandom = Math.random;\n\t\n\t /** Used to lookup a built-in constructor by [[Class]] */\n\t var ctorByClass = {};\n\t ctorByClass[arrayClass] = Array;\n\t ctorByClass[boolClass] = Boolean;\n\t ctorByClass[dateClass] = Date;\n\t ctorByClass[funcClass] = Function;\n\t ctorByClass[objectClass] = Object;\n\t ctorByClass[numberClass] = Number;\n\t ctorByClass[regexpClass] = RegExp;\n\t ctorByClass[stringClass] = String;\n\t\n\t /** Used to avoid iterating non-enumerable properties in IE < 9 */\n\t var nonEnumProps = {};\n\t nonEnumProps[arrayClass] = nonEnumProps[dateClass] = nonEnumProps[numberClass] = { 'constructor': true, 'toLocaleString': true, 'toString': true, 'valueOf': true };\n\t nonEnumProps[boolClass] = nonEnumProps[stringClass] = { 'constructor': true, 'toString': true, 'valueOf': true };\n\t nonEnumProps[errorClass] = nonEnumProps[funcClass] = nonEnumProps[regexpClass] = { 'constructor': true, 'toString': true };\n\t nonEnumProps[objectClass] = { 'constructor': true };\n\t\n\t (function() {\n\t var length = shadowedProps.length;\n\t while (length--) {\n\t var key = shadowedProps[length];\n\t for (var className in nonEnumProps) {\n\t if (hasOwnProperty.call(nonEnumProps, className) && !hasOwnProperty.call(nonEnumProps[className], key)) {\n\t nonEnumProps[className][key] = false;\n\t }\n\t }\n\t }\n\t }());\n\t\n\t /*--------------------------------------------------------------------------*/\n\t\n\t /**\n\t * Creates a `lodash` object which wraps the given value to enable intuitive\n\t * method chaining.\n\t *\n\t * In addition to Lo-Dash methods, wrappers also have the following `Array` methods:\n\t * `concat`, `join`, `pop`, `push`, `reverse`, `shift`, `slice`, `sort`, `splice`,\n\t * and `unshift`\n\t *\n\t * Chaining is supported in custom builds as long as the `value` method is\n\t * implicitly or explicitly included in the build.\n\t *\n\t * The chainable wrapper functions are:\n\t * `after`, `assign`, `bind`, `bindAll`, `bindKey`, `chain`, `compact`,\n\t * `compose`, `concat`, `countBy`, `create`, `createCallback`, `curry`,\n\t * `debounce`, `defaults`, `defer`, `delay`, `difference`, `filter`, `flatten`,\n\t * `forEach`, `forEachRight`, `forIn`, `forInRight`, `forOwn`, `forOwnRight`,\n\t * `functions`, `groupBy`, `indexBy`, `initial`, `intersection`, `invert`,\n\t * `invoke`, `keys`, `map`, `max`, `memoize`, `merge`, `min`, `object`, `omit`,\n\t * `once`, `pairs`, `partial`, `partialRight`, `pick`, `pluck`, `pull`, `push`,\n\t * `range`, `reject`, `remove`, `rest`, `reverse`, `shuffle`, `slice`, `sort`,\n\t * `sortBy`, `splice`, `tap`, `throttle`, `times`, `toArray`, `transform`,\n\t * `union`, `uniq`, `unshift`, `unzip`, `values`, `where`, `without`, `wrap`,\n\t * and `zip`\n\t *\n\t * The non-chainable wrapper functions are:\n\t * `clone`, `cloneDeep`, `contains`, `escape`, `every`, `find`, `findIndex`,\n\t * `findKey`, `findLast`, `findLastIndex`, `findLastKey`, `has`, `identity`,\n\t * `indexOf`, `isArguments`, `isArray`, `isBoolean`, `isDate`, `isElement`,\n\t * `isEmpty`, `isEqual`, `isFinite`, `isFunction`, `isNaN`, `isNull`, `isNumber`,\n\t * `isObject`, `isPlainObject`, `isRegExp`, `isString`, `isUndefined`, `join`,\n\t * `lastIndexOf`, `mixin`, `noConflict`, `parseInt`, `pop`, `random`, `reduce`,\n\t * `reduceRight`, `result`, `shift`, `size`, `some`, `sortedIndex`, `runInContext`,\n\t * `template`, `unescape`, `uniqueId`, and `value`\n\t *\n\t * The wrapper functions `first` and `last` return wrapped values when `n` is\n\t * provided, otherwise they return unwrapped values.\n\t *\n\t * Explicit chaining can be enabled by using the `_.chain` method.\n\t *\n\t * @name _\n\t * @constructor\n\t * @category Chaining\n\t * @param {*} value The value to wrap in a `lodash` instance.\n\t * @returns {Object} Returns a `lodash` instance.\n\t * @example\n\t *\n\t * var wrapped = _([1, 2, 3]);\n\t *\n\t * // returns an unwrapped value\n\t * wrapped.reduce(function(sum, num) {\n\t * return sum + num;\n\t * });\n\t * // => 6\n\t *\n\t * // returns a wrapped value\n\t * var squares = wrapped.map(function(num) {\n\t * return num * num;\n\t * });\n\t *\n\t * _.isArray(squares);\n\t * // => false\n\t *\n\t * _.isArray(squares.value());\n\t * // => true\n\t */\n\t function lodash(value) {\n\t // don't wrap if already wrapped, even if wrapped by a different `lodash` constructor\n\t return (value && typeof value == 'object' && !isArray(value) && hasOwnProperty.call(value, '__wrapped__'))\n\t ? value\n\t : new lodashWrapper(value);\n\t }\n\t\n\t /**\n\t * A fast path for creating `lodash` wrapper objects.\n\t *\n\t * @private\n\t * @param {*} value The value to wrap in a `lodash` instance.\n\t * @param {boolean} chainAll A flag to enable chaining for all methods\n\t * @returns {Object} Returns a `lodash` instance.\n\t */\n\t function lodashWrapper(value, chainAll) {\n\t this.__chain__ = !!chainAll;\n\t this.__wrapped__ = value;\n\t }\n\t // ensure `new lodashWrapper` is an instance of `lodash`\n\t lodashWrapper.prototype = lodash.prototype;\n\t\n\t /**\n\t * An object used to flag environments features.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @type Object\n\t */\n\t var support = lodash.support = {};\n\t\n\t (function() {\n\t var ctor = function() { this.x = 1; },\n\t object = { '0': 1, 'length': 1 },\n\t props = [];\n\t\n\t ctor.prototype = { 'valueOf': 1, 'y': 1 };\n\t for (var key in new ctor) { props.push(key); }\n\t for (key in arguments) { }\n\t\n\t /**\n\t * Detect if an `arguments` object's [[Class]] is resolvable (all but Firefox < 4, IE < 9).\n\t *\n\t * @memberOf _.support\n\t * @type boolean\n\t */\n\t support.argsClass = toString.call(arguments) == argsClass;\n\t\n\t /**\n\t * Detect if `arguments` objects are `Object` objects (all but Narwhal and Opera < 10.5).\n\t *\n\t * @memberOf _.support\n\t * @type boolean\n\t */\n\t support.argsObject = arguments.constructor == Object && !(arguments instanceof Array);\n\t\n\t /**\n\t * Detect if `name` or `message` properties of `Error.prototype` are\n\t * enumerable by default. (IE < 9, Safari < 5.1)\n\t *\n\t * @memberOf _.support\n\t * @type boolean\n\t */\n\t support.enumErrorProps = propertyIsEnumerable.call(errorProto, 'message') || propertyIsEnumerable.call(errorProto, 'name');\n\t\n\t /**\n\t * Detect if `prototype` properties are enumerable by default.\n\t *\n\t * Firefox < 3.6, Opera > 9.50 - Opera < 11.60, and Safari < 5.1\n\t * (if the prototype or a property on the prototype has been set)\n\t * incorrectly sets a function's `prototype` property [[Enumerable]]\n\t * value to `true`.\n\t *\n\t * @memberOf _.support\n\t * @type boolean\n\t */\n\t support.enumPrototypes = propertyIsEnumerable.call(ctor, 'prototype');\n\t\n\t /**\n\t * Detect if functions can be decompiled by `Function#toString`\n\t * (all but PS3 and older Opera mobile browsers & avoided in Windows 8 apps).\n\t *\n\t * @memberOf _.support\n\t * @type boolean\n\t */\n\t support.funcDecomp = !isNative(context.WinRTError) && reThis.test(runInContext);\n\t\n\t /**\n\t * Detect if `Function#name` is supported (all but IE).\n\t *\n\t * @memberOf _.support\n\t * @type boolean\n\t */\n\t support.funcNames = typeof Function.name == 'string';\n\t\n\t /**\n\t * Detect if `arguments` object indexes are non-enumerable\n\t * (Firefox < 4, IE < 9, PhantomJS, Safari < 5.1).\n\t *\n\t * @memberOf _.support\n\t * @type boolean\n\t */\n\t support.nonEnumArgs = key != 0;\n\t\n\t /**\n\t * Detect if properties shadowing those on `Object.prototype` are non-enumerable.\n\t *\n\t * In IE < 9 an objects own properties, shadowing non-enumerable ones, are\n\t * made non-enumerable as well (a.k.a the JScript [[DontEnum]] bug).\n\t *\n\t * @memberOf _.support\n\t * @type boolean\n\t */\n\t support.nonEnumShadows = !/valueOf/.test(props);\n\t\n\t /**\n\t * Detect if own properties are iterated after inherited properties (all but IE < 9).\n\t *\n\t * @memberOf _.support\n\t * @type boolean\n\t */\n\t support.ownLast = props[0] != 'x';\n\t\n\t /**\n\t * Detect if `Array#shift` and `Array#splice` augment array-like objects correctly.\n\t *\n\t * Firefox < 10, IE compatibility mode, and IE < 9 have buggy Array `shift()`\n\t * and `splice()` functions that fail to remove the last element, `value[0]`,\n\t * of array-like objects even though the `length` property is set to `0`.\n\t * The `shift()` method is buggy in IE 8 compatibility mode, while `splice()`\n\t * is buggy regardless of mode in IE < 9 and buggy in compatibility mode in IE 9.\n\t *\n\t * @memberOf _.support\n\t * @type boolean\n\t */\n\t support.spliceObjects = (arrayRef.splice.call(object, 0, 1), !object[0]);\n\t\n\t /**\n\t * Detect lack of support for accessing string characters by index.\n\t *\n\t * IE < 8 can't access characters by index and IE 8 can only access\n\t * characters by index on string literals.\n\t *\n\t * @memberOf _.support\n\t * @type boolean\n\t */\n\t support.unindexedChars = ('x'[0] + Object('x')[0]) != 'xx';\n\t\n\t /**\n\t * Detect if a DOM node's [[Class]] is resolvable (all but IE < 9)\n\t * and that the JS engine errors when attempting to coerce an object to\n\t * a string without a `toString` function.\n\t *\n\t * @memberOf _.support\n\t * @type boolean\n\t */\n\t try {\n\t support.nodeClass = !(toString.call(document) == objectClass && !({ 'toString': 0 } + ''));\n\t } catch(e) {\n\t support.nodeClass = true;\n\t }\n\t }(1));\n\t\n\t /**\n\t * By default, the template delimiters used by Lo-Dash are similar to those in\n\t * embedded Ruby (ERB). Change the following template settings to use alternative\n\t * delimiters.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @type Object\n\t */\n\t lodash.templateSettings = {\n\t\n\t /**\n\t * Used to detect `data` property values to be HTML-escaped.\n\t *\n\t * @memberOf _.templateSettings\n\t * @type RegExp\n\t */\n\t 'escape': /<%-([\\s\\S]+?)%>/g,\n\t\n\t /**\n\t * Used to detect code to be evaluated.\n\t *\n\t * @memberOf _.templateSettings\n\t * @type RegExp\n\t */\n\t 'evaluate': /<%([\\s\\S]+?)%>/g,\n\t\n\t /**\n\t * Used to detect `data` property values to inject.\n\t *\n\t * @memberOf _.templateSettings\n\t * @type RegExp\n\t */\n\t 'interpolate': reInterpolate,\n\t\n\t /**\n\t * Used to reference the data object in the template text.\n\t *\n\t * @memberOf _.templateSettings\n\t * @type string\n\t */\n\t 'variable': '',\n\t\n\t /**\n\t * Used to import variables into the compiled template.\n\t *\n\t * @memberOf _.templateSettings\n\t * @type Object\n\t */\n\t 'imports': {\n\t\n\t /**\n\t * A reference to the `lodash` function.\n\t *\n\t * @memberOf _.templateSettings.imports\n\t * @type Function\n\t */\n\t '_': lodash\n\t }\n\t };\n\t\n\t /*--------------------------------------------------------------------------*/\n\t\n\t /**\n\t * The template used to create iterator functions.\n\t *\n\t * @private\n\t * @param {Object} data The data object used to populate the text.\n\t * @returns {string} Returns the interpolated text.\n\t */\n\t var iteratorTemplate = function(obj) {\n\t\n\t var __p = 'var index, iterable = ' +\n\t (obj.firstArg) +\n\t ', result = ' +\n\t (obj.init) +\n\t ';\\nif (!iterable) return result;\\n' +\n\t (obj.top) +\n\t ';';\n\t if (obj.array) {\n\t __p += '\\nvar length = iterable.length; index = -1;\\nif (' +\n\t (obj.array) +\n\t ') { ';\n\t if (support.unindexedChars) {\n\t __p += '\\n if (isString(iterable)) {\\n iterable = iterable.split(\\'\\')\\n } ';\n\t }\n\t __p += '\\n while (++index < length) {\\n ' +\n\t (obj.loop) +\n\t ';\\n }\\n}\\nelse { ';\n\t } else if (support.nonEnumArgs) {\n\t __p += '\\n var length = iterable.length; index = -1;\\n if (length && isArguments(iterable)) {\\n while (++index < length) {\\n index += \\'\\';\\n ' +\n\t (obj.loop) +\n\t ';\\n }\\n } else { ';\n\t }\n\t\n\t if (support.enumPrototypes) {\n\t __p += '\\n var skipProto = typeof iterable == \\'function\\';\\n ';\n\t }\n\t\n\t if (support.enumErrorProps) {\n\t __p += '\\n var skipErrorProps = iterable === errorProto || iterable instanceof Error;\\n ';\n\t }\n\t\n\t var conditions = []; if (support.enumPrototypes) { conditions.push('!(skipProto && index == \"prototype\")'); } if (support.enumErrorProps) { conditions.push('!(skipErrorProps && (index == \"message\" || index == \"name\"))'); }\n\t\n\t if (obj.useHas && obj.keys) {\n\t __p += '\\n var ownIndex = -1,\\n ownProps = objectTypes[typeof iterable] && keys(iterable),\\n length = ownProps ? ownProps.length : 0;\\n\\n while (++ownIndex < length) {\\n index = ownProps[ownIndex];\\n';\n\t if (conditions.length) {\n\t __p += ' if (' +\n\t (conditions.join(' && ')) +\n\t ') {\\n ';\n\t }\n\t __p +=\n\t (obj.loop) +\n\t '; ';\n\t if (conditions.length) {\n\t __p += '\\n }';\n\t }\n\t __p += '\\n } ';\n\t } else {\n\t __p += '\\n for (index in iterable) {\\n';\n\t if (obj.useHas) { conditions.push(\"hasOwnProperty.call(iterable, index)\"); } if (conditions.length) {\n\t __p += ' if (' +\n\t (conditions.join(' && ')) +\n\t ') {\\n ';\n\t }\n\t __p +=\n\t (obj.loop) +\n\t '; ';\n\t if (conditions.length) {\n\t __p += '\\n }';\n\t }\n\t __p += '\\n } ';\n\t if (support.nonEnumShadows) {\n\t __p += '\\n\\n if (iterable !== objectProto) {\\n var ctor = iterable.constructor,\\n isProto = iterable === (ctor && ctor.prototype),\\n className = iterable === stringProto ? stringClass : iterable === errorProto ? errorClass : toString.call(iterable),\\n nonEnum = nonEnumProps[className];\\n ';\n\t for (k = 0; k < 7; k++) {\n\t __p += '\\n index = \\'' +\n\t (obj.shadowedProps[k]) +\n\t '\\';\\n if ((!(isProto && nonEnum[index]) && hasOwnProperty.call(iterable, index))';\n\t if (!obj.useHas) {\n\t __p += ' || (!nonEnum[index] && iterable[index] !== objectProto[index])';\n\t }\n\t __p += ') {\\n ' +\n\t (obj.loop) +\n\t ';\\n } ';\n\t }\n\t __p += '\\n } ';\n\t }\n\t\n\t }\n\t\n\t if (obj.array || support.nonEnumArgs) {\n\t __p += '\\n}';\n\t }\n\t __p +=\n\t (obj.bottom) +\n\t ';\\nreturn result';\n\t\n\t return __p\n\t };\n\t\n\t /*--------------------------------------------------------------------------*/\n\t\n\t /**\n\t * The base implementation of `_.bind` that creates the bound function and\n\t * sets its meta data.\n\t *\n\t * @private\n\t * @param {Array} bindData The bind data array.\n\t * @returns {Function} Returns the new bound function.\n\t */\n\t function baseBind(bindData) {\n\t var func = bindData[0],\n\t partialArgs = bindData[2],\n\t thisArg = bindData[4];\n\t\n\t function bound() {\n\t // `Function#bind` spec\n\t // http://es5.github.io/#x15.3.4.5\n\t if (partialArgs) {\n\t // avoid `arguments` object deoptimizations by using `slice` instead\n\t // of `Array.prototype.slice.call` and not assigning `arguments` to a\n\t // variable as a ternary expression\n\t var args = slice(partialArgs);\n\t push.apply(args, arguments);\n\t }\n\t // mimic the constructor's `return` behavior\n\t // http://es5.github.io/#x13.2.2\n\t if (this instanceof bound) {\n\t // ensure `new bound` is an instance of `func`\n\t var thisBinding = baseCreate(func.prototype),\n\t result = func.apply(thisBinding, args || arguments);\n\t return isObject(result) ? result : thisBinding;\n\t }\n\t return func.apply(thisArg, args || arguments);\n\t }\n\t setBindData(bound, bindData);\n\t return bound;\n\t }\n\t\n\t /**\n\t * The base implementation of `_.clone` without argument juggling or support\n\t * for `thisArg` binding.\n\t *\n\t * @private\n\t * @param {*} value The value to clone.\n\t * @param {boolean} [isDeep=false] Specify a deep clone.\n\t * @param {Function} [callback] The function to customize cloning values.\n\t * @param {Array} [stackA=[]] Tracks traversed source objects.\n\t * @param {Array} [stackB=[]] Associates clones with source counterparts.\n\t * @returns {*} Returns the cloned value.\n\t */\n\t function baseClone(value, isDeep, callback, stackA, stackB) {\n\t if (callback) {\n\t var result = callback(value);\n\t if (typeof result != 'undefined') {\n\t return result;\n\t }\n\t }\n\t // inspect [[Class]]\n\t var isObj = isObject(value);\n\t if (isObj) {\n\t var className = toString.call(value);\n\t if (!cloneableClasses[className] || (!support.nodeClass && isNode(value))) {\n\t return value;\n\t }\n\t var ctor = ctorByClass[className];\n\t switch (className) {\n\t case boolClass:\n\t case dateClass:\n\t return new ctor(+value);\n\t\n\t case numberClass:\n\t case stringClass:\n\t return new ctor(value);\n\t\n\t case regexpClass:\n\t result = ctor(value.source, reFlags.exec(value));\n\t result.lastIndex = value.lastIndex;\n\t return result;\n\t }\n\t } else {\n\t return value;\n\t }\n\t var isArr = isArray(value);\n\t if (isDeep) {\n\t // check for circular references and return corresponding clone\n\t var initedStack = !stackA;\n\t stackA || (stackA = getArray());\n\t stackB || (stackB = getArray());\n\t\n\t var length = stackA.length;\n\t while (length--) {\n\t if (stackA[length] == value) {\n\t return stackB[length];\n\t }\n\t }\n\t result = isArr ? ctor(value.length) : {};\n\t }\n\t else {\n\t result = isArr ? slice(value) : assign({}, value);\n\t }\n\t // add array properties assigned by `RegExp#exec`\n\t if (isArr) {\n\t if (hasOwnProperty.call(value, 'index')) {\n\t result.index = value.index;\n\t }\n\t if (hasOwnProperty.call(value, 'input')) {\n\t result.input = value.input;\n\t }\n\t }\n\t // exit for shallow clone\n\t if (!isDeep) {\n\t return result;\n\t }\n\t // add the source value to the stack of traversed objects\n\t // and associate it with its clone\n\t stackA.push(value);\n\t stackB.push(result);\n\t\n\t // recursively populate clone (susceptible to call stack limits)\n\t (isArr ? baseEach : forOwn)(value, function(objValue, key) {\n\t result[key] = baseClone(objValue, isDeep, callback, stackA, stackB);\n\t });\n\t\n\t if (initedStack) {\n\t releaseArray(stackA);\n\t releaseArray(stackB);\n\t }\n\t return result;\n\t }\n\t\n\t /**\n\t * The base implementation of `_.create` without support for assigning\n\t * properties to the created object.\n\t *\n\t * @private\n\t * @param {Object} prototype The object to inherit from.\n\t * @returns {Object} Returns the new object.\n\t */\n\t function baseCreate(prototype, properties) {\n\t return isObject(prototype) ? nativeCreate(prototype) : {};\n\t }\n\t // fallback for browsers without `Object.create`\n\t if (!nativeCreate) {\n\t baseCreate = (function() {\n\t function Object() {}\n\t return function(prototype) {\n\t if (isObject(prototype)) {\n\t Object.prototype = prototype;\n\t var result = new Object;\n\t Object.prototype = null;\n\t }\n\t return result || context.Object();\n\t };\n\t }());\n\t }\n\t\n\t /**\n\t * The base implementation of `_.createCallback` without support for creating\n\t * \"_.pluck\" or \"_.where\" style callbacks.\n\t *\n\t * @private\n\t * @param {*} [func=identity] The value to convert to a callback.\n\t * @param {*} [thisArg] The `this` binding of the created callback.\n\t * @param {number} [argCount] The number of arguments the callback accepts.\n\t * @returns {Function} Returns a callback function.\n\t */\n\t function baseCreateCallback(func, thisArg, argCount) {\n\t if (typeof func != 'function') {\n\t return identity;\n\t }\n\t // exit early for no `thisArg` or already bound by `Function#bind`\n\t if (typeof thisArg == 'undefined' || !('prototype' in func)) {\n\t return func;\n\t }\n\t var bindData = func.__bindData__;\n\t if (typeof bindData == 'undefined') {\n\t if (support.funcNames) {\n\t bindData = !func.name;\n\t }\n\t bindData = bindData || !support.funcDecomp;\n\t if (!bindData) {\n\t var source = fnToString.call(func);\n\t if (!support.funcNames) {\n\t bindData = !reFuncName.test(source);\n\t }\n\t if (!bindData) {\n\t // checks if `func` references the `this` keyword and stores the result\n\t bindData = reThis.test(source);\n\t setBindData(func, bindData);\n\t }\n\t }\n\t }\n\t // exit early if there are no `this` references or `func` is bound\n\t if (bindData === false || (bindData !== true && bindData[1] & 1)) {\n\t return func;\n\t }\n\t switch (argCount) {\n\t case 1: return function(value) {\n\t return func.call(thisArg, value);\n\t };\n\t case 2: return function(a, b) {\n\t return func.call(thisArg, a, b);\n\t };\n\t case 3: return function(value, index, collection) {\n\t return func.call(thisArg, value, index, collection);\n\t };\n\t case 4: return function(accumulator, value, index, collection) {\n\t return func.call(thisArg, accumulator, value, index, collection);\n\t };\n\t }\n\t return bind(func, thisArg);\n\t }\n\t\n\t /**\n\t * The base implementation of `createWrapper` that creates the wrapper and\n\t * sets its meta data.\n\t *\n\t * @private\n\t * @param {Array} bindData The bind data array.\n\t * @returns {Function} Returns the new function.\n\t */\n\t function baseCreateWrapper(bindData) {\n\t var func = bindData[0],\n\t bitmask = bindData[1],\n\t partialArgs = bindData[2],\n\t partialRightArgs = bindData[3],\n\t thisArg = bindData[4],\n\t arity = bindData[5];\n\t\n\t var isBind = bitmask & 1,\n\t isBindKey = bitmask & 2,\n\t isCurry = bitmask & 4,\n\t isCurryBound = bitmask & 8,\n\t key = func;\n\t\n\t function bound() {\n\t var thisBinding = isBind ? thisArg : this;\n\t if (partialArgs) {\n\t var args = slice(partialArgs);\n\t push.apply(args, arguments);\n\t }\n\t if (partialRightArgs || isCurry) {\n\t args || (args = slice(arguments));\n\t if (partialRightArgs) {\n\t push.apply(args, partialRightArgs);\n\t }\n\t if (isCurry && args.length < arity) {\n\t bitmask |= 16 & ~32;\n\t return baseCreateWrapper([func, (isCurryBound ? bitmask : bitmask & ~3), args, null, thisArg, arity]);\n\t }\n\t }\n\t args || (args = arguments);\n\t if (isBindKey) {\n\t func = thisBinding[key];\n\t }\n\t if (this instanceof bound) {\n\t thisBinding = baseCreate(func.prototype);\n\t var result = func.apply(thisBinding, args);\n\t return isObject(result) ? result : thisBinding;\n\t }\n\t return func.apply(thisBinding, args);\n\t }\n\t setBindData(bound, bindData);\n\t return bound;\n\t }\n\t\n\t /**\n\t * The base implementation of `_.difference` that accepts a single array\n\t * of values to exclude.\n\t *\n\t * @private\n\t * @param {Array} array The array to process.\n\t * @param {Array} [values] The array of values to exclude.\n\t * @returns {Array} Returns a new array of filtered values.\n\t */\n\t function baseDifference(array, values) {\n\t var index = -1,\n\t indexOf = getIndexOf(),\n\t length = array ? array.length : 0,\n\t isLarge = length >= largeArraySize && indexOf === baseIndexOf,\n\t result = [];\n\t\n\t if (isLarge) {\n\t var cache = createCache(values);\n\t if (cache) {\n\t indexOf = cacheIndexOf;\n\t values = cache;\n\t } else {\n\t isLarge = false;\n\t }\n\t }\n\t while (++index < length) {\n\t var value = array[index];\n\t if (indexOf(values, value) < 0) {\n\t result.push(value);\n\t }\n\t }\n\t if (isLarge) {\n\t releaseObject(values);\n\t }\n\t return result;\n\t }\n\t\n\t /**\n\t * The base implementation of `_.flatten` without support for callback\n\t * shorthands or `thisArg` binding.\n\t *\n\t * @private\n\t * @param {Array} array The array to flatten.\n\t * @param {boolean} [isShallow=false] A flag to restrict flattening to a single level.\n\t * @param {boolean} [isStrict=false] A flag to restrict flattening to arrays and `arguments` objects.\n\t * @param {number} [fromIndex=0] The index to start from.\n\t * @returns {Array} Returns a new flattened array.\n\t */\n\t function baseFlatten(array, isShallow, isStrict, fromIndex) {\n\t var index = (fromIndex || 0) - 1,\n\t length = array ? array.length : 0,\n\t result = [];\n\t\n\t while (++index < length) {\n\t var value = array[index];\n\t\n\t if (value && typeof value == 'object' && typeof value.length == 'number'\n\t && (isArray(value) || isArguments(value))) {\n\t // recursively flatten arrays (susceptible to call stack limits)\n\t if (!isShallow) {\n\t value = baseFlatten(value, isShallow, isStrict);\n\t }\n\t var valIndex = -1,\n\t valLength = value.length,\n\t resIndex = result.length;\n\t\n\t result.length += valLength;\n\t while (++valIndex < valLength) {\n\t result[resIndex++] = value[valIndex];\n\t }\n\t } else if (!isStrict) {\n\t result.push(value);\n\t }\n\t }\n\t return result;\n\t }\n\t\n\t /**\n\t * The base implementation of `_.isEqual`, without support for `thisArg` binding,\n\t * that allows partial \"_.where\" style comparisons.\n\t *\n\t * @private\n\t * @param {*} a The value to compare.\n\t * @param {*} b The other value to compare.\n\t * @param {Function} [callback] The function to customize comparing values.\n\t * @param {Function} [isWhere=false] A flag to indicate performing partial comparisons.\n\t * @param {Array} [stackA=[]] Tracks traversed `a` objects.\n\t * @param {Array} [stackB=[]] Tracks traversed `b` objects.\n\t * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n\t */\n\t function baseIsEqual(a, b, callback, isWhere, stackA, stackB) {\n\t // used to indicate that when comparing objects, `a` has at least the properties of `b`\n\t if (callback) {\n\t var result = callback(a, b);\n\t if (typeof result != 'undefined') {\n\t return !!result;\n\t }\n\t }\n\t // exit early for identical values\n\t if (a === b) {\n\t // treat `+0` vs. `-0` as not equal\n\t return a !== 0 || (1 / a == 1 / b);\n\t }\n\t var type = typeof a,\n\t otherType = typeof b;\n\t\n\t // exit early for unlike primitive values\n\t if (a === a &&\n\t !(a && objectTypes[type]) &&\n\t !(b && objectTypes[otherType])) {\n\t return false;\n\t }\n\t // exit early for `null` and `undefined` avoiding ES3's Function#call behavior\n\t // http://es5.github.io/#x15.3.4.4\n\t if (a == null || b == null) {\n\t return a === b;\n\t }\n\t // compare [[Class]] names\n\t var className = toString.call(a),\n\t otherClass = toString.call(b);\n\t\n\t if (className == argsClass) {\n\t className = objectClass;\n\t }\n\t if (otherClass == argsClass) {\n\t otherClass = objectClass;\n\t }\n\t if (className != otherClass) {\n\t return false;\n\t }\n\t switch (className) {\n\t case boolClass:\n\t case dateClass:\n\t // coerce dates and booleans to numbers, dates to milliseconds and booleans\n\t // to `1` or `0` treating invalid dates coerced to `NaN` as not equal\n\t return +a == +b;\n\t\n\t case numberClass:\n\t // treat `NaN` vs. `NaN` as equal\n\t return (a != +a)\n\t ? b != +b\n\t // but treat `+0` vs. `-0` as not equal\n\t : (a == 0 ? (1 / a == 1 / b) : a == +b);\n\t\n\t case regexpClass:\n\t case stringClass:\n\t // coerce regexes to strings (http://es5.github.io/#x15.10.6.4)\n\t // treat string primitives and their corresponding object instances as equal\n\t return a == String(b);\n\t }\n\t var isArr = className == arrayClass;\n\t if (!isArr) {\n\t // unwrap any `lodash` wrapped values\n\t var aWrapped = hasOwnProperty.call(a, '__wrapped__'),\n\t bWrapped = hasOwnProperty.call(b, '__wrapped__');\n\t\n\t if (aWrapped || bWrapped) {\n\t return baseIsEqual(aWrapped ? a.__wrapped__ : a, bWrapped ? b.__wrapped__ : b, callback, isWhere, stackA, stackB);\n\t }\n\t // exit for functions and DOM nodes\n\t if (className != objectClass || (!support.nodeClass && (isNode(a) || isNode(b)))) {\n\t return false;\n\t }\n\t // in older versions of Opera, `arguments` objects have `Array` constructors\n\t var ctorA = !support.argsObject && isArguments(a) ? Object : a.constructor,\n\t ctorB = !support.argsObject && isArguments(b) ? Object : b.constructor;\n\t\n\t // non `Object` object instances with different constructors are not equal\n\t if (ctorA != ctorB &&\n\t !(isFunction(ctorA) && ctorA instanceof ctorA && isFunction(ctorB) && ctorB instanceof ctorB) &&\n\t ('constructor' in a && 'constructor' in b)\n\t ) {\n\t return false;\n\t }\n\t }\n\t // assume cyclic structures are equal\n\t // the algorithm for detecting cyclic structures is adapted from ES 5.1\n\t // section 15.12.3, abstract operation `JO` (http://es5.github.io/#x15.12.3)\n\t var initedStack = !stackA;\n\t stackA || (stackA = getArray());\n\t stackB || (stackB = getArray());\n\t\n\t var length = stackA.length;\n\t while (length--) {\n\t if (stackA[length] == a) {\n\t return stackB[length] == b;\n\t }\n\t }\n\t var size = 0;\n\t result = true;\n\t\n\t // add `a` and `b` to the stack of traversed objects\n\t stackA.push(a);\n\t stackB.push(b);\n\t\n\t // recursively compare objects and arrays (susceptible to call stack limits)\n\t if (isArr) {\n\t // compare lengths to determine if a deep comparison is necessary\n\t length = a.length;\n\t size = b.length;\n\t result = size == length;\n\t\n\t if (result || isWhere) {\n\t // deep compare the contents, ignoring non-numeric properties\n\t while (size--) {\n\t var index = length,\n\t value = b[size];\n\t\n\t if (isWhere) {\n\t while (index--) {\n\t if ((result = baseIsEqual(a[index], value, callback, isWhere, stackA, stackB))) {\n\t break;\n\t }\n\t }\n\t } else if (!(result = baseIsEqual(a[size], value, callback, isWhere, stackA, stackB))) {\n\t break;\n\t }\n\t }\n\t }\n\t }\n\t else {\n\t // deep compare objects using `forIn`, instead of `forOwn`, to avoid `Object.keys`\n\t // which, in this case, is more costly\n\t forIn(b, function(value, key, b) {\n\t if (hasOwnProperty.call(b, key)) {\n\t // count the number of properties.\n\t size++;\n\t // deep compare each property value.\n\t return (result = hasOwnProperty.call(a, key) && baseIsEqual(a[key], value, callback, isWhere, stackA, stackB));\n\t }\n\t });\n\t\n\t if (result && !isWhere) {\n\t // ensure both objects have the same number of properties\n\t forIn(a, function(value, key, a) {\n\t if (hasOwnProperty.call(a, key)) {\n\t // `size` will be `-1` if `a` has more properties than `b`\n\t return (result = --size > -1);\n\t }\n\t });\n\t }\n\t }\n\t stackA.pop();\n\t stackB.pop();\n\t\n\t if (initedStack) {\n\t releaseArray(stackA);\n\t releaseArray(stackB);\n\t }\n\t return result;\n\t }\n\t\n\t /**\n\t * The base implementation of `_.merge` without argument juggling or support\n\t * for `thisArg` binding.\n\t *\n\t * @private\n\t * @param {Object} object The destination object.\n\t * @param {Object} source The source object.\n\t * @param {Function} [callback] The function to customize merging properties.\n\t * @param {Array} [stackA=[]] Tracks traversed source objects.\n\t * @param {Array} [stackB=[]] Associates values with source counterparts.\n\t */\n\t function baseMerge(object, source, callback, stackA, stackB) {\n\t (isArray(source) ? forEach : forOwn)(source, function(source, key) {\n\t var found,\n\t isArr,\n\t result = source,\n\t value = object[key];\n\t\n\t if (source && ((isArr = isArray(source)) || isPlainObject(source))) {\n\t // avoid merging previously merged cyclic sources\n\t var stackLength = stackA.length;\n\t while (stackLength--) {\n\t if ((found = stackA[stackLength] == source)) {\n\t value = stackB[stackLength];\n\t break;\n\t }\n\t }\n\t if (!found) {\n\t var isShallow;\n\t if (callback) {\n\t result = callback(value, source);\n\t if ((isShallow = typeof result != 'undefined')) {\n\t value = result;\n\t }\n\t }\n\t if (!isShallow) {\n\t value = isArr\n\t ? (isArray(value) ? value : [])\n\t : (isPlainObject(value) ? value : {});\n\t }\n\t // add `source` and associated `value` to the stack of traversed objects\n\t stackA.push(source);\n\t stackB.push(value);\n\t\n\t // recursively merge objects and arrays (susceptible to call stack limits)\n\t if (!isShallow) {\n\t baseMerge(value, source, callback, stackA, stackB);\n\t }\n\t }\n\t }\n\t else {\n\t if (callback) {\n\t result = callback(value, source);\n\t if (typeof result == 'undefined') {\n\t result = source;\n\t }\n\t }\n\t if (typeof result != 'undefined') {\n\t value = result;\n\t }\n\t }\n\t object[key] = value;\n\t });\n\t }\n\t\n\t /**\n\t * The base implementation of `_.random` without argument juggling or support\n\t * for returning floating-point numbers.\n\t *\n\t * @private\n\t * @param {number} min The minimum possible value.\n\t * @param {number} max The maximum possible value.\n\t * @returns {number} Returns a random number.\n\t */\n\t function baseRandom(min, max) {\n\t return min + floor(nativeRandom() * (max - min + 1));\n\t }\n\t\n\t /**\n\t * The base implementation of `_.uniq` without support for callback shorthands\n\t * or `thisArg` binding.\n\t *\n\t * @private\n\t * @param {Array} array The array to process.\n\t * @param {boolean} [isSorted=false] A flag to indicate that `array` is sorted.\n\t * @param {Function} [callback] The function called per iteration.\n\t * @returns {Array} Returns a duplicate-value-free array.\n\t */\n\t function baseUniq(array, isSorted, callback) {\n\t var index = -1,\n\t indexOf = getIndexOf(),\n\t length = array ? array.length : 0,\n\t result = [];\n\t\n\t var isLarge = !isSorted && length >= largeArraySize && indexOf === baseIndexOf,\n\t seen = (callback || isLarge) ? getArray() : result;\n\t\n\t if (isLarge) {\n\t var cache = createCache(seen);\n\t indexOf = cacheIndexOf;\n\t seen = cache;\n\t }\n\t while (++index < length) {\n\t var value = array[index],\n\t computed = callback ? callback(value, index, array) : value;\n\t\n\t if (isSorted\n\t ? !index || seen[seen.length - 1] !== computed\n\t : indexOf(seen, computed) < 0\n\t ) {\n\t if (callback || isLarge) {\n\t seen.push(computed);\n\t }\n\t result.push(value);\n\t }\n\t }\n\t if (isLarge) {\n\t releaseArray(seen.array);\n\t releaseObject(seen);\n\t } else if (callback) {\n\t releaseArray(seen);\n\t }\n\t return result;\n\t }\n\t\n\t /**\n\t * Creates a function that aggregates a collection, creating an object composed\n\t * of keys generated from the results of running each element of the collection\n\t * through a callback. The given `setter` function sets the keys and values\n\t * of the composed object.\n\t *\n\t * @private\n\t * @param {Function} setter The setter function.\n\t * @returns {Function} Returns the new aggregator function.\n\t */\n\t function createAggregator(setter) {\n\t return function(collection, callback, thisArg) {\n\t var result = {};\n\t callback = lodash.createCallback(callback, thisArg, 3);\n\t\n\t if (isArray(collection)) {\n\t var index = -1,\n\t length = collection.length;\n\t\n\t while (++index < length) {\n\t var value = collection[index];\n\t setter(result, value, callback(value, index, collection), collection);\n\t }\n\t } else {\n\t baseEach(collection, function(value, key, collection) {\n\t setter(result, value, callback(value, key, collection), collection);\n\t });\n\t }\n\t return result;\n\t };\n\t }\n\t\n\t /**\n\t * Creates a function that, when called, either curries or invokes `func`\n\t * with an optional `this` binding and partially applied arguments.\n\t *\n\t * @private\n\t * @param {Function|string} func The function or method name to reference.\n\t * @param {number} bitmask The bitmask of method flags to compose.\n\t * The bitmask may be composed of the following flags:\n\t * 1 - `_.bind`\n\t * 2 - `_.bindKey`\n\t * 4 - `_.curry`\n\t * 8 - `_.curry` (bound)\n\t * 16 - `_.partial`\n\t * 32 - `_.partialRight`\n\t * @param {Array} [partialArgs] An array of arguments to prepend to those\n\t * provided to the new function.\n\t * @param {Array} [partialRightArgs] An array of arguments to append to those\n\t * provided to the new function.\n\t * @param {*} [thisArg] The `this` binding of `func`.\n\t * @param {number} [arity] The arity of `func`.\n\t * @returns {Function} Returns the new function.\n\t */\n\t function createWrapper(func, bitmask, partialArgs, partialRightArgs, thisArg, arity) {\n\t var isBind = bitmask & 1,\n\t isBindKey = bitmask & 2,\n\t isCurry = bitmask & 4,\n\t isCurryBound = bitmask & 8,\n\t isPartial = bitmask & 16,\n\t isPartialRight = bitmask & 32;\n\t\n\t if (!isBindKey && !isFunction(func)) {\n\t throw new TypeError;\n\t }\n\t if (isPartial && !partialArgs.length) {\n\t bitmask &= ~16;\n\t isPartial = partialArgs = false;\n\t }\n\t if (isPartialRight && !partialRightArgs.length) {\n\t bitmask &= ~32;\n\t isPartialRight = partialRightArgs = false;\n\t }\n\t var bindData = func && func.__bindData__;\n\t if (bindData && bindData !== true) {\n\t // clone `bindData`\n\t bindData = slice(bindData);\n\t if (bindData[2]) {\n\t bindData[2] = slice(bindData[2]);\n\t }\n\t if (bindData[3]) {\n\t bindData[3] = slice(bindData[3]);\n\t }\n\t // set `thisBinding` is not previously bound\n\t if (isBind && !(bindData[1] & 1)) {\n\t bindData[4] = thisArg;\n\t }\n\t // set if previously bound but not currently (subsequent curried functions)\n\t if (!isBind && bindData[1] & 1) {\n\t bitmask |= 8;\n\t }\n\t // set curried arity if not yet set\n\t if (isCurry && !(bindData[1] & 4)) {\n\t bindData[5] = arity;\n\t }\n\t // append partial left arguments\n\t if (isPartial) {\n\t push.apply(bindData[2] || (bindData[2] = []), partialArgs);\n\t }\n\t // append partial right arguments\n\t if (isPartialRight) {\n\t unshift.apply(bindData[3] || (bindData[3] = []), partialRightArgs);\n\t }\n\t // merge flags\n\t bindData[1] |= bitmask;\n\t return createWrapper.apply(null, bindData);\n\t }\n\t // fast path for `_.bind`\n\t var creater = (bitmask == 1 || bitmask === 17) ? baseBind : baseCreateWrapper;\n\t return creater([func, bitmask, partialArgs, partialRightArgs, thisArg, arity]);\n\t }\n\t\n\t /**\n\t * Creates compiled iteration functions.\n\t *\n\t * @private\n\t * @param {...Object} [options] The compile options object(s).\n\t * @param {string} [options.array] Code to determine if the iterable is an array or array-like.\n\t * @param {boolean} [options.useHas] Specify using `hasOwnProperty` checks in the object loop.\n\t * @param {Function} [options.keys] A reference to `_.keys` for use in own property iteration.\n\t * @param {string} [options.args] A comma separated string of iteration function arguments.\n\t * @param {string} [options.top] Code to execute before the iteration branches.\n\t * @param {string} [options.loop] Code to execute in the object loop.\n\t * @param {string} [options.bottom] Code to execute after the iteration branches.\n\t * @returns {Function} Returns the compiled function.\n\t */\n\t function createIterator() {\n\t // data properties\n\t iteratorData.shadowedProps = shadowedProps;\n\t\n\t // iterator options\n\t iteratorData.array = iteratorData.bottom = iteratorData.loop = iteratorData.top = '';\n\t iteratorData.init = 'iterable';\n\t iteratorData.useHas = true;\n\t\n\t // merge options into a template data object\n\t for (var object, index = 0; object = arguments[index]; index++) {\n\t for (var key in object) {\n\t iteratorData[key] = object[key];\n\t }\n\t }\n\t var args = iteratorData.args;\n\t iteratorData.firstArg = /^[^,]+/.exec(args)[0];\n\t\n\t // create the function factory\n\t var factory = Function(\n\t 'baseCreateCallback, errorClass, errorProto, hasOwnProperty, ' +\n\t 'indicatorObject, isArguments, isArray, isString, keys, objectProto, ' +\n\t 'objectTypes, nonEnumProps, stringClass, stringProto, toString',\n\t 'return function(' + args + ') {\\n' + iteratorTemplate(iteratorData) + '\\n}'\n\t );\n\t\n\t // return the compiled function\n\t return factory(\n\t baseCreateCallback, errorClass, errorProto, hasOwnProperty,\n\t indicatorObject, isArguments, isArray, isString, iteratorData.keys, objectProto,\n\t objectTypes, nonEnumProps, stringClass, stringProto, toString\n\t );\n\t }\n\t\n\t /**\n\t * Used by `escape` to convert characters to HTML entities.\n\t *\n\t * @private\n\t * @param {string} match The matched character to escape.\n\t * @returns {string} Returns the escaped character.\n\t */\n\t function escapeHtmlChar(match) {\n\t return htmlEscapes[match];\n\t }\n\t\n\t /**\n\t * Gets the appropriate \"indexOf\" function. If the `_.indexOf` method is\n\t * customized, this method returns the custom method, otherwise it returns\n\t * the `baseIndexOf` function.\n\t *\n\t * @private\n\t * @returns {Function} Returns the \"indexOf\" function.\n\t */\n\t function getIndexOf() {\n\t var result = (result = lodash.indexOf) === indexOf ? baseIndexOf : result;\n\t return result;\n\t }\n\t\n\t /**\n\t * Checks if `value` is a native function.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if the `value` is a native function, else `false`.\n\t */\n\t function isNative(value) {\n\t return typeof value == 'function' && reNative.test(value);\n\t }\n\t\n\t /**\n\t * Sets `this` binding data on a given function.\n\t *\n\t * @private\n\t * @param {Function} func The function to set data on.\n\t * @param {Array} value The data array to set.\n\t */\n\t var setBindData = !defineProperty ? noop : function(func, value) {\n\t descriptor.value = value;\n\t defineProperty(func, '__bindData__', descriptor);\n\t };\n\t\n\t /**\n\t * A fallback implementation of `isPlainObject` which checks if a given value\n\t * is an object created by the `Object` constructor, assuming objects created\n\t * by the `Object` constructor have no inherited enumerable properties and that\n\t * there are no `Object.prototype` extensions.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n\t */\n\t function shimIsPlainObject(value) {\n\t var ctor,\n\t result;\n\t\n\t // avoid non Object objects, `arguments` objects, and DOM elements\n\t if (!(value && toString.call(value) == objectClass) ||\n\t (ctor = value.constructor, isFunction(ctor) && !(ctor instanceof ctor)) ||\n\t (!support.argsClass && isArguments(value)) ||\n\t (!support.nodeClass && isNode(value))) {\n\t return false;\n\t }\n\t // IE < 9 iterates inherited properties before own properties. If the first\n\t // iterated property is an object's own property then there are no inherited\n\t // enumerable properties.\n\t if (support.ownLast) {\n\t forIn(value, function(value, key, object) {\n\t result = hasOwnProperty.call(object, key);\n\t return false;\n\t });\n\t return result !== false;\n\t }\n\t // In most environments an object's own properties are iterated before\n\t // its inherited properties. If the last iterated property is an object's\n\t // own property then there are no inherited enumerable properties.\n\t forIn(value, function(value, key) {\n\t result = key;\n\t });\n\t return typeof result == 'undefined' || hasOwnProperty.call(value, result);\n\t }\n\t\n\t /**\n\t * Used by `unescape` to convert HTML entities to characters.\n\t *\n\t * @private\n\t * @param {string} match The matched character to unescape.\n\t * @returns {string} Returns the unescaped character.\n\t */\n\t function unescapeHtmlChar(match) {\n\t return htmlUnescapes[match];\n\t }\n\t\n\t /*--------------------------------------------------------------------------*/\n\t\n\t /**\n\t * Checks if `value` is an `arguments` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if the `value` is an `arguments` object, else `false`.\n\t * @example\n\t *\n\t * (function() { return _.isArguments(arguments); })(1, 2, 3);\n\t * // => true\n\t *\n\t * _.isArguments([1, 2, 3]);\n\t * // => false\n\t */\n\t function isArguments(value) {\n\t return value && typeof value == 'object' && typeof value.length == 'number' &&\n\t toString.call(value) == argsClass || false;\n\t }\n\t // fallback for browsers that can't detect `arguments` objects by [[Class]]\n\t if (!support.argsClass) {\n\t isArguments = function(value) {\n\t return value && typeof value == 'object' && typeof value.length == 'number' &&\n\t hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee') || false;\n\t };\n\t }\n\t\n\t /**\n\t * Checks if `value` is an array.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @type Function\n\t * @category Objects\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if the `value` is an array, else `false`.\n\t * @example\n\t *\n\t * (function() { return _.isArray(arguments); })();\n\t * // => false\n\t *\n\t * _.isArray([1, 2, 3]);\n\t * // => true\n\t */\n\t var isArray = nativeIsArray || function(value) {\n\t return value && typeof value == 'object' && typeof value.length == 'number' &&\n\t toString.call(value) == arrayClass || false;\n\t };\n\t\n\t /**\n\t * A fallback implementation of `Object.keys` which produces an array of the\n\t * given object's own enumerable property names.\n\t *\n\t * @private\n\t * @type Function\n\t * @param {Object} object The object to inspect.\n\t * @returns {Array} Returns an array of property names.\n\t */\n\t var shimKeys = createIterator({\n\t 'args': 'object',\n\t 'init': '[]',\n\t 'top': 'if (!(objectTypes[typeof object])) return result',\n\t 'loop': 'result.push(index)'\n\t });\n\t\n\t /**\n\t * Creates an array composed of the own enumerable property names of an object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {Object} object The object to inspect.\n\t * @returns {Array} Returns an array of property names.\n\t * @example\n\t *\n\t * _.keys({ 'one': 1, 'two': 2, 'three': 3 });\n\t * // => ['one', 'two', 'three'] (property order is not guaranteed across environments)\n\t */\n\t var keys = !nativeKeys ? shimKeys : function(object) {\n\t if (!isObject(object)) {\n\t return [];\n\t }\n\t if ((support.enumPrototypes && typeof object == 'function') ||\n\t (support.nonEnumArgs && object.length && isArguments(object))) {\n\t return shimKeys(object);\n\t }\n\t return nativeKeys(object);\n\t };\n\t\n\t /** Reusable iterator options shared by `each`, `forIn`, and `forOwn` */\n\t var eachIteratorOptions = {\n\t 'args': 'collection, callback, thisArg',\n\t 'top': \"callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3)\",\n\t 'array': \"typeof length == 'number'\",\n\t 'keys': keys,\n\t 'loop': 'if (callback(iterable[index], index, collection) === false) return result'\n\t };\n\t\n\t /** Reusable iterator options for `assign` and `defaults` */\n\t var defaultsIteratorOptions = {\n\t 'args': 'object, source, guard',\n\t 'top':\n\t 'var args = arguments,\\n' +\n\t ' argsIndex = 0,\\n' +\n\t \" argsLength = typeof guard == 'number' ? 2 : args.length;\\n\" +\n\t 'while (++argsIndex < argsLength) {\\n' +\n\t ' iterable = args[argsIndex];\\n' +\n\t ' if (iterable && objectTypes[typeof iterable]) {',\n\t 'keys': keys,\n\t 'loop': \"if (typeof result[index] == 'undefined') result[index] = iterable[index]\",\n\t 'bottom': ' }\\n}'\n\t };\n\t\n\t /** Reusable iterator options for `forIn` and `forOwn` */\n\t var forOwnIteratorOptions = {\n\t 'top': 'if (!objectTypes[typeof iterable]) return result;\\n' + eachIteratorOptions.top,\n\t 'array': false\n\t };\n\t\n\t /**\n\t * Used to convert characters to HTML entities:\n\t *\n\t * Though the `>` character is escaped for symmetry, characters like `>` and `/`\n\t * don't require escaping in HTML and have no special meaning unless they're part\n\t * of a tag or an unquoted attribute value.\n\t * http://mathiasbynens.be/notes/ambiguous-ampersands (under \"semi-related fun fact\")\n\t */\n\t var htmlEscapes = {\n\t '&': '&',\n\t '<': '<',\n\t '>': '>',\n\t '\"': '"',\n\t \"'\": '''\n\t };\n\t\n\t /** Used to convert HTML entities to characters */\n\t var htmlUnescapes = invert(htmlEscapes);\n\t\n\t /** Used to match HTML entities and HTML characters */\n\t var reEscapedHtml = RegExp('(' + keys(htmlUnescapes).join('|') + ')', 'g'),\n\t reUnescapedHtml = RegExp('[' + keys(htmlEscapes).join('') + ']', 'g');\n\t\n\t /**\n\t * A function compiled to iterate `arguments` objects, arrays, objects, and\n\t * strings consistenly across environments, executing the callback for each\n\t * element in the collection. The callback is bound to `thisArg` and invoked\n\t * with three arguments; (value, index|key, collection). Callbacks may exit\n\t * iteration early by explicitly returning `false`.\n\t *\n\t * @private\n\t * @type Function\n\t * @param {Array|Object|string} collection The collection to iterate over.\n\t * @param {Function} [callback=identity] The function called per iteration.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Array|Object|string} Returns `collection`.\n\t */\n\t var baseEach = createIterator(eachIteratorOptions);\n\t\n\t /*--------------------------------------------------------------------------*/\n\t\n\t /**\n\t * Assigns own enumerable properties of source object(s) to the destination\n\t * object. Subsequent sources will overwrite property assignments of previous\n\t * sources. If a callback is provided it will be executed to produce the\n\t * assigned values. The callback is bound to `thisArg` and invoked with two\n\t * arguments; (objectValue, sourceValue).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @type Function\n\t * @alias extend\n\t * @category Objects\n\t * @param {Object} object The destination object.\n\t * @param {...Object} [source] The source objects.\n\t * @param {Function} [callback] The function to customize assigning values.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Object} Returns the destination object.\n\t * @example\n\t *\n\t * _.assign({ 'name': 'fred' }, { 'employer': 'slate' });\n\t * // => { 'name': 'fred', 'employer': 'slate' }\n\t *\n\t * var defaults = _.partialRight(_.assign, function(a, b) {\n\t * return typeof a == 'undefined' ? b : a;\n\t * });\n\t *\n\t * var object = { 'name': 'barney' };\n\t * defaults(object, { 'name': 'fred', 'employer': 'slate' });\n\t * // => { 'name': 'barney', 'employer': 'slate' }\n\t */\n\t var assign = createIterator(defaultsIteratorOptions, {\n\t 'top':\n\t defaultsIteratorOptions.top.replace(';',\n\t ';\\n' +\n\t \"if (argsLength > 3 && typeof args[argsLength - 2] == 'function') {\\n\" +\n\t ' var callback = baseCreateCallback(args[--argsLength - 1], args[argsLength--], 2);\\n' +\n\t \"} else if (argsLength > 2 && typeof args[argsLength - 1] == 'function') {\\n\" +\n\t ' callback = args[--argsLength];\\n' +\n\t '}'\n\t ),\n\t 'loop': 'result[index] = callback ? callback(result[index], iterable[index]) : iterable[index]'\n\t });\n\t\n\t /**\n\t * Creates a clone of `value`. If `isDeep` is `true` nested objects will also\n\t * be cloned, otherwise they will be assigned by reference. If a callback\n\t * is provided it will be executed to produce the cloned values. If the\n\t * callback returns `undefined` cloning will be handled by the method instead.\n\t * The callback is bound to `thisArg` and invoked with one argument; (value).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {*} value The value to clone.\n\t * @param {boolean} [isDeep=false] Specify a deep clone.\n\t * @param {Function} [callback] The function to customize cloning values.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {*} Returns the cloned value.\n\t * @example\n\t *\n\t * var characters = [\n\t * { 'name': 'barney', 'age': 36 },\n\t * { 'name': 'fred', 'age': 40 }\n\t * ];\n\t *\n\t * var shallow = _.clone(characters);\n\t * shallow[0] === characters[0];\n\t * // => true\n\t *\n\t * var deep = _.clone(characters, true);\n\t * deep[0] === characters[0];\n\t * // => false\n\t *\n\t * _.mixin({\n\t * 'clone': _.partialRight(_.clone, function(value) {\n\t * return _.isElement(value) ? value.cloneNode(false) : undefined;\n\t * })\n\t * });\n\t *\n\t * var clone = _.clone(document.body);\n\t * clone.childNodes.length;\n\t * // => 0\n\t */\n\t function clone(value, isDeep, callback, thisArg) {\n\t // allows working with \"Collections\" methods without using their `index`\n\t // and `collection` arguments for `isDeep` and `callback`\n\t if (typeof isDeep != 'boolean' && isDeep != null) {\n\t thisArg = callback;\n\t callback = isDeep;\n\t isDeep = false;\n\t }\n\t return baseClone(value, isDeep, typeof callback == 'function' && baseCreateCallback(callback, thisArg, 1));\n\t }\n\t\n\t /**\n\t * Creates a deep clone of `value`. If a callback is provided it will be\n\t * executed to produce the cloned values. If the callback returns `undefined`\n\t * cloning will be handled by the method instead. The callback is bound to\n\t * `thisArg` and invoked with one argument; (value).\n\t *\n\t * Note: This method is loosely based on the structured clone algorithm. Functions\n\t * and DOM nodes are **not** cloned. The enumerable properties of `arguments` objects and\n\t * objects created by constructors other than `Object` are cloned to plain `Object` objects.\n\t * See http://www.w3.org/TR/html5/infrastructure.html#internal-structured-cloning-algorithm.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {*} value The value to deep clone.\n\t * @param {Function} [callback] The function to customize cloning values.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {*} Returns the deep cloned value.\n\t * @example\n\t *\n\t * var characters = [\n\t * { 'name': 'barney', 'age': 36 },\n\t * { 'name': 'fred', 'age': 40 }\n\t * ];\n\t *\n\t * var deep = _.cloneDeep(characters);\n\t * deep[0] === characters[0];\n\t * // => false\n\t *\n\t * var view = {\n\t * 'label': 'docs',\n\t * 'node': element\n\t * };\n\t *\n\t * var clone = _.cloneDeep(view, function(value) {\n\t * return _.isElement(value) ? value.cloneNode(true) : undefined;\n\t * });\n\t *\n\t * clone.node == view.node;\n\t * // => false\n\t */\n\t function cloneDeep(value, callback, thisArg) {\n\t return baseClone(value, true, typeof callback == 'function' && baseCreateCallback(callback, thisArg, 1));\n\t }\n\t\n\t /**\n\t * Creates an object that inherits from the given `prototype` object. If a\n\t * `properties` object is provided its own enumerable properties are assigned\n\t * to the created object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {Object} prototype The object to inherit from.\n\t * @param {Object} [properties] The properties to assign to the object.\n\t * @returns {Object} Returns the new object.\n\t * @example\n\t *\n\t * function Shape() {\n\t * this.x = 0;\n\t * this.y = 0;\n\t * }\n\t *\n\t * function Circle() {\n\t * Shape.call(this);\n\t * }\n\t *\n\t * Circle.prototype = _.create(Shape.prototype, { 'constructor': Circle });\n\t *\n\t * var circle = new Circle;\n\t * circle instanceof Circle;\n\t * // => true\n\t *\n\t * circle instanceof Shape;\n\t * // => true\n\t */\n\t function create(prototype, properties) {\n\t var result = baseCreate(prototype);\n\t return properties ? assign(result, properties) : result;\n\t }\n\t\n\t /**\n\t * Assigns own enumerable properties of source object(s) to the destination\n\t * object for all destination properties that resolve to `undefined`. Once a\n\t * property is set, additional defaults of the same property will be ignored.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @type Function\n\t * @category Objects\n\t * @param {Object} object The destination object.\n\t * @param {...Object} [source] The source objects.\n\t * @param- {Object} [guard] Allows working with `_.reduce` without using its\n\t * `key` and `object` arguments as sources.\n\t * @returns {Object} Returns the destination object.\n\t * @example\n\t *\n\t * var object = { 'name': 'barney' };\n\t * _.defaults(object, { 'name': 'fred', 'employer': 'slate' });\n\t * // => { 'name': 'barney', 'employer': 'slate' }\n\t */\n\t var defaults = createIterator(defaultsIteratorOptions);\n\t\n\t /**\n\t * This method is like `_.findIndex` except that it returns the key of the\n\t * first element that passes the callback check, instead of the element itself.\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {Object} object The object to search.\n\t * @param {Function|Object|string} [callback=identity] The function called per\n\t * iteration. If a property name or object is provided it will be used to\n\t * create a \"_.pluck\" or \"_.where\" style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {string|undefined} Returns the key of the found element, else `undefined`.\n\t * @example\n\t *\n\t * var characters = {\n\t * 'barney': { 'age': 36, 'blocked': false },\n\t * 'fred': { 'age': 40, 'blocked': true },\n\t * 'pebbles': { 'age': 1, 'blocked': false }\n\t * };\n\t *\n\t * _.findKey(characters, function(chr) {\n\t * return chr.age < 40;\n\t * });\n\t * // => 'barney' (property order is not guaranteed across environments)\n\t *\n\t * // using \"_.where\" callback shorthand\n\t * _.findKey(characters, { 'age': 1 });\n\t * // => 'pebbles'\n\t *\n\t * // using \"_.pluck\" callback shorthand\n\t * _.findKey(characters, 'blocked');\n\t * // => 'fred'\n\t */\n\t function findKey(object, callback, thisArg) {\n\t var result;\n\t callback = lodash.createCallback(callback, thisArg, 3);\n\t forOwn(object, function(value, key, object) {\n\t if (callback(value, key, object)) {\n\t result = key;\n\t return false;\n\t }\n\t });\n\t return result;\n\t }\n\t\n\t /**\n\t * This method is like `_.findKey` except that it iterates over elements\n\t * of a `collection` in the opposite order.\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {Object} object The object to search.\n\t * @param {Function|Object|string} [callback=identity] The function called per\n\t * iteration. If a property name or object is provided it will be used to\n\t * create a \"_.pluck\" or \"_.where\" style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {string|undefined} Returns the key of the found element, else `undefined`.\n\t * @example\n\t *\n\t * var characters = {\n\t * 'barney': { 'age': 36, 'blocked': true },\n\t * 'fred': { 'age': 40, 'blocked': false },\n\t * 'pebbles': { 'age': 1, 'blocked': true }\n\t * };\n\t *\n\t * _.findLastKey(characters, function(chr) {\n\t * return chr.age < 40;\n\t * });\n\t * // => returns `pebbles`, assuming `_.findKey` returns `barney`\n\t *\n\t * // using \"_.where\" callback shorthand\n\t * _.findLastKey(characters, { 'age': 40 });\n\t * // => 'fred'\n\t *\n\t * // using \"_.pluck\" callback shorthand\n\t * _.findLastKey(characters, 'blocked');\n\t * // => 'pebbles'\n\t */\n\t function findLastKey(object, callback, thisArg) {\n\t var result;\n\t callback = lodash.createCallback(callback, thisArg, 3);\n\t forOwnRight(object, function(value, key, object) {\n\t if (callback(value, key, object)) {\n\t result = key;\n\t return false;\n\t }\n\t });\n\t return result;\n\t }\n\t\n\t /**\n\t * Iterates over own and inherited enumerable properties of an object,\n\t * executing the callback for each property. The callback is bound to `thisArg`\n\t * and invoked with three arguments; (value, key, object). Callbacks may exit\n\t * iteration early by explicitly returning `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @type Function\n\t * @category Objects\n\t * @param {Object} object The object to iterate over.\n\t * @param {Function} [callback=identity] The function called per iteration.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Object} Returns `object`.\n\t * @example\n\t *\n\t * function Shape() {\n\t * this.x = 0;\n\t * this.y = 0;\n\t * }\n\t *\n\t * Shape.prototype.move = function(x, y) {\n\t * this.x += x;\n\t * this.y += y;\n\t * };\n\t *\n\t * _.forIn(new Shape, function(value, key) {\n\t * console.log(key);\n\t * });\n\t * // => logs 'x', 'y', and 'move' (property order is not guaranteed across environments)\n\t */\n\t var forIn = createIterator(eachIteratorOptions, forOwnIteratorOptions, {\n\t 'useHas': false\n\t });\n\t\n\t /**\n\t * This method is like `_.forIn` except that it iterates over elements\n\t * of a `collection` in the opposite order.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {Object} object The object to iterate over.\n\t * @param {Function} [callback=identity] The function called per iteration.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Object} Returns `object`.\n\t * @example\n\t *\n\t * function Shape() {\n\t * this.x = 0;\n\t * this.y = 0;\n\t * }\n\t *\n\t * Shape.prototype.move = function(x, y) {\n\t * this.x += x;\n\t * this.y += y;\n\t * };\n\t *\n\t * _.forInRight(new Shape, function(value, key) {\n\t * console.log(key);\n\t * });\n\t * // => logs 'move', 'y', and 'x' assuming `_.forIn ` logs 'x', 'y', and 'move'\n\t */\n\t function forInRight(object, callback, thisArg) {\n\t var pairs = [];\n\t\n\t forIn(object, function(value, key) {\n\t pairs.push(key, value);\n\t });\n\t\n\t var length = pairs.length;\n\t callback = baseCreateCallback(callback, thisArg, 3);\n\t while (length--) {\n\t if (callback(pairs[length--], pairs[length], object) === false) {\n\t break;\n\t }\n\t }\n\t return object;\n\t }\n\t\n\t /**\n\t * Iterates over own enumerable properties of an object, executing the callback\n\t * for each property. The callback is bound to `thisArg` and invoked with three\n\t * arguments; (value, key, object). Callbacks may exit iteration early by\n\t * explicitly returning `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @type Function\n\t * @category Objects\n\t * @param {Object} object The object to iterate over.\n\t * @param {Function} [callback=identity] The function called per iteration.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Object} Returns `object`.\n\t * @example\n\t *\n\t * _.forOwn({ '0': 'zero', '1': 'one', 'length': 2 }, function(num, key) {\n\t * console.log(key);\n\t * });\n\t * // => logs '0', '1', and 'length' (property order is not guaranteed across environments)\n\t */\n\t var forOwn = createIterator(eachIteratorOptions, forOwnIteratorOptions);\n\t\n\t /**\n\t * This method is like `_.forOwn` except that it iterates over elements\n\t * of a `collection` in the opposite order.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {Object} object The object to iterate over.\n\t * @param {Function} [callback=identity] The function called per iteration.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Object} Returns `object`.\n\t * @example\n\t *\n\t * _.forOwnRight({ '0': 'zero', '1': 'one', 'length': 2 }, function(num, key) {\n\t * console.log(key);\n\t * });\n\t * // => logs 'length', '1', and '0' assuming `_.forOwn` logs '0', '1', and 'length'\n\t */\n\t function forOwnRight(object, callback, thisArg) {\n\t var props = keys(object),\n\t length = props.length;\n\t\n\t callback = baseCreateCallback(callback, thisArg, 3);\n\t while (length--) {\n\t var key = props[length];\n\t if (callback(object[key], key, object) === false) {\n\t break;\n\t }\n\t }\n\t return object;\n\t }\n\t\n\t /**\n\t * Creates a sorted array of property names of all enumerable properties,\n\t * own and inherited, of `object` that have function values.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @alias methods\n\t * @category Objects\n\t * @param {Object} object The object to inspect.\n\t * @returns {Array} Returns an array of property names that have function values.\n\t * @example\n\t *\n\t * _.functions(_);\n\t * // => ['all', 'any', 'bind', 'bindAll', 'clone', 'compact', 'compose', ...]\n\t */\n\t function functions(object) {\n\t var result = [];\n\t forIn(object, function(value, key) {\n\t if (isFunction(value)) {\n\t result.push(key);\n\t }\n\t });\n\t return result.sort();\n\t }\n\t\n\t /**\n\t * Checks if the specified property name exists as a direct property of `object`,\n\t * instead of an inherited property.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {Object} object The object to inspect.\n\t * @param {string} key The name of the property to check.\n\t * @returns {boolean} Returns `true` if key is a direct property, else `false`.\n\t * @example\n\t *\n\t * _.has({ 'a': 1, 'b': 2, 'c': 3 }, 'b');\n\t * // => true\n\t */\n\t function has(object, key) {\n\t return object ? hasOwnProperty.call(object, key) : false;\n\t }\n\t\n\t /**\n\t * Creates an object composed of the inverted keys and values of the given object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {Object} object The object to invert.\n\t * @returns {Object} Returns the created inverted object.\n\t * @example\n\t *\n\t * _.invert({ 'first': 'fred', 'second': 'barney' });\n\t * // => { 'fred': 'first', 'barney': 'second' }\n\t */\n\t function invert(object) {\n\t var index = -1,\n\t props = keys(object),\n\t length = props.length,\n\t result = {};\n\t\n\t while (++index < length) {\n\t var key = props[index];\n\t result[object[key]] = key;\n\t }\n\t return result;\n\t }\n\t\n\t /**\n\t * Checks if `value` is a boolean value.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if the `value` is a boolean value, else `false`.\n\t * @example\n\t *\n\t * _.isBoolean(null);\n\t * // => false\n\t */\n\t function isBoolean(value) {\n\t return value === true || value === false ||\n\t value && typeof value == 'object' && toString.call(value) == boolClass || false;\n\t }\n\t\n\t /**\n\t * Checks if `value` is a date.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if the `value` is a date, else `false`.\n\t * @example\n\t *\n\t * _.isDate(new Date);\n\t * // => true\n\t */\n\t function isDate(value) {\n\t return value && typeof value == 'object' && toString.call(value) == dateClass || false;\n\t }\n\t\n\t /**\n\t * Checks if `value` is a DOM element.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if the `value` is a DOM element, else `false`.\n\t * @example\n\t *\n\t * _.isElement(document.body);\n\t * // => true\n\t */\n\t function isElement(value) {\n\t return value && value.nodeType === 1 || false;\n\t }\n\t\n\t /**\n\t * Checks if `value` is empty. Arrays, strings, or `arguments` objects with a\n\t * length of `0` and objects with no own enumerable properties are considered\n\t * \"empty\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {Array|Object|string} value The value to inspect.\n\t * @returns {boolean} Returns `true` if the `value` is empty, else `false`.\n\t * @example\n\t *\n\t * _.isEmpty([1, 2, 3]);\n\t * // => false\n\t *\n\t * _.isEmpty({});\n\t * // => true\n\t *\n\t * _.isEmpty('');\n\t * // => true\n\t */\n\t function isEmpty(value) {\n\t var result = true;\n\t if (!value) {\n\t return result;\n\t }\n\t var className = toString.call(value),\n\t length = value.length;\n\t\n\t if ((className == arrayClass || className == stringClass ||\n\t (support.argsClass ? className == argsClass : isArguments(value))) ||\n\t (className == objectClass && typeof length == 'number' && isFunction(value.splice))) {\n\t return !length;\n\t }\n\t forOwn(value, function() {\n\t return (result = false);\n\t });\n\t return result;\n\t }\n\t\n\t /**\n\t * Performs a deep comparison between two values to determine if they are\n\t * equivalent to each other. If a callback is provided it will be executed\n\t * to compare values. If the callback returns `undefined` comparisons will\n\t * be handled by the method instead. The callback is bound to `thisArg` and\n\t * invoked with two arguments; (a, b).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {*} a The value to compare.\n\t * @param {*} b The other value to compare.\n\t * @param {Function} [callback] The function to customize comparing values.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n\t * @example\n\t *\n\t * var object = { 'name': 'fred' };\n\t * var copy = { 'name': 'fred' };\n\t *\n\t * object == copy;\n\t * // => false\n\t *\n\t * _.isEqual(object, copy);\n\t * // => true\n\t *\n\t * var words = ['hello', 'goodbye'];\n\t * var otherWords = ['hi', 'goodbye'];\n\t *\n\t * _.isEqual(words, otherWords, function(a, b) {\n\t * var reGreet = /^(?:hello|hi)$/i,\n\t * aGreet = _.isString(a) && reGreet.test(a),\n\t * bGreet = _.isString(b) && reGreet.test(b);\n\t *\n\t * return (aGreet || bGreet) ? (aGreet == bGreet) : undefined;\n\t * });\n\t * // => true\n\t */\n\t function isEqual(a, b, callback, thisArg) {\n\t return baseIsEqual(a, b, typeof callback == 'function' && baseCreateCallback(callback, thisArg, 2));\n\t }\n\t\n\t /**\n\t * Checks if `value` is, or can be coerced to, a finite number.\n\t *\n\t * Note: This is not the same as native `isFinite` which will return true for\n\t * booleans and empty strings. See http://es5.github.io/#x15.1.2.5.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if the `value` is finite, else `false`.\n\t * @example\n\t *\n\t * _.isFinite(-101);\n\t * // => true\n\t *\n\t * _.isFinite('10');\n\t * // => true\n\t *\n\t * _.isFinite(true);\n\t * // => false\n\t *\n\t * _.isFinite('');\n\t * // => false\n\t *\n\t * _.isFinite(Infinity);\n\t * // => false\n\t */\n\t function isFinite(value) {\n\t return nativeIsFinite(value) && !nativeIsNaN(parseFloat(value));\n\t }\n\t\n\t /**\n\t * Checks if `value` is a function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if the `value` is a function, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t */\n\t function isFunction(value) {\n\t return typeof value == 'function';\n\t }\n\t // fallback for older versions of Chrome and Safari\n\t if (isFunction(/x/)) {\n\t isFunction = function(value) {\n\t return typeof value == 'function' && toString.call(value) == funcClass;\n\t };\n\t }\n\t\n\t /**\n\t * Checks if `value` is the language type of Object.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if the `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\t function isObject(value) {\n\t // check if the value is the ECMAScript language type of Object\n\t // http://es5.github.io/#x8\n\t // and avoid a V8 bug\n\t // http://code.google.com/p/v8/issues/detail?id=2291\n\t return !!(value && objectTypes[typeof value]);\n\t }\n\t\n\t /**\n\t * Checks if `value` is `NaN`.\n\t *\n\t * Note: This is not the same as native `isNaN` which will return `true` for\n\t * `undefined` and other non-numeric values. See http://es5.github.io/#x15.1.2.4.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if the `value` is `NaN`, else `false`.\n\t * @example\n\t *\n\t * _.isNaN(NaN);\n\t * // => true\n\t *\n\t * _.isNaN(new Number(NaN));\n\t * // => true\n\t *\n\t * isNaN(undefined);\n\t * // => true\n\t *\n\t * _.isNaN(undefined);\n\t * // => false\n\t */\n\t function isNaN(value) {\n\t // `NaN` as a primitive is the only value that is not equal to itself\n\t // (perform the [[Class]] check first to avoid errors with some host objects in IE)\n\t return isNumber(value) && value != +value;\n\t }\n\t\n\t /**\n\t * Checks if `value` is `null`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if the `value` is `null`, else `false`.\n\t * @example\n\t *\n\t * _.isNull(null);\n\t * // => true\n\t *\n\t * _.isNull(undefined);\n\t * // => false\n\t */\n\t function isNull(value) {\n\t return value === null;\n\t }\n\t\n\t /**\n\t * Checks if `value` is a number.\n\t *\n\t * Note: `NaN` is considered a number. See http://es5.github.io/#x8.5.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if the `value` is a number, else `false`.\n\t * @example\n\t *\n\t * _.isNumber(8.4 * 5);\n\t * // => true\n\t */\n\t function isNumber(value) {\n\t return typeof value == 'number' ||\n\t value && typeof value == 'object' && toString.call(value) == numberClass || false;\n\t }\n\t\n\t /**\n\t * Checks if `value` is an object created by the `Object` constructor.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n\t * @example\n\t *\n\t * function Shape() {\n\t * this.x = 0;\n\t * this.y = 0;\n\t * }\n\t *\n\t * _.isPlainObject(new Shape);\n\t * // => false\n\t *\n\t * _.isPlainObject([1, 2, 3]);\n\t * // => false\n\t *\n\t * _.isPlainObject({ 'x': 0, 'y': 0 });\n\t * // => true\n\t */\n\t var isPlainObject = !getPrototypeOf ? shimIsPlainObject : function(value) {\n\t if (!(value && toString.call(value) == objectClass) || (!support.argsClass && isArguments(value))) {\n\t return false;\n\t }\n\t var valueOf = value.valueOf,\n\t objProto = isNative(valueOf) && (objProto = getPrototypeOf(valueOf)) && getPrototypeOf(objProto);\n\t\n\t return objProto\n\t ? (value == objProto || getPrototypeOf(value) == objProto)\n\t : shimIsPlainObject(value);\n\t };\n\t\n\t /**\n\t * Checks if `value` is a regular expression.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if the `value` is a regular expression, else `false`.\n\t * @example\n\t *\n\t * _.isRegExp(/fred/);\n\t * // => true\n\t */\n\t function isRegExp(value) {\n\t return value && objectTypes[typeof value] && toString.call(value) == regexpClass || false;\n\t }\n\t\n\t /**\n\t * Checks if `value` is a string.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if the `value` is a string, else `false`.\n\t * @example\n\t *\n\t * _.isString('fred');\n\t * // => true\n\t */\n\t function isString(value) {\n\t return typeof value == 'string' ||\n\t value && typeof value == 'object' && toString.call(value) == stringClass || false;\n\t }\n\t\n\t /**\n\t * Checks if `value` is `undefined`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if the `value` is `undefined`, else `false`.\n\t * @example\n\t *\n\t * _.isUndefined(void 0);\n\t * // => true\n\t */\n\t function isUndefined(value) {\n\t return typeof value == 'undefined';\n\t }\n\t\n\t /**\n\t * Creates an object with the same keys as `object` and values generated by\n\t * running each own enumerable property of `object` through the callback.\n\t * The callback is bound to `thisArg` and invoked with three arguments;\n\t * (value, key, object).\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {Object} object The object to iterate over.\n\t * @param {Function|Object|string} [callback=identity] The function called\n\t * per iteration. If a property name or object is provided it will be used\n\t * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Array} Returns a new object with values of the results of each `callback` execution.\n\t * @example\n\t *\n\t * _.mapValues({ 'a': 1, 'b': 2, 'c': 3} , function(num) { return num * 3; });\n\t * // => { 'a': 3, 'b': 6, 'c': 9 }\n\t *\n\t * var characters = {\n\t * 'fred': { 'name': 'fred', 'age': 40 },\n\t * 'pebbles': { 'name': 'pebbles', 'age': 1 }\n\t * };\n\t *\n\t * // using \"_.pluck\" callback shorthand\n\t * _.mapValues(characters, 'age');\n\t * // => { 'fred': 40, 'pebbles': 1 }\n\t */\n\t function mapValues(object, callback, thisArg) {\n\t var result = {};\n\t callback = lodash.createCallback(callback, thisArg, 3);\n\t\n\t forOwn(object, function(value, key, object) {\n\t result[key] = callback(value, key, object);\n\t });\n\t return result;\n\t }\n\t\n\t /**\n\t * Recursively merges own enumerable properties of the source object(s), that\n\t * don't resolve to `undefined` into the destination object. Subsequent sources\n\t * will overwrite property assignments of previous sources. If a callback is\n\t * provided it will be executed to produce the merged values of the destination\n\t * and source properties. If the callback returns `undefined` merging will\n\t * be handled by the method instead. The callback is bound to `thisArg` and\n\t * invoked with two arguments; (objectValue, sourceValue).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {Object} object The destination object.\n\t * @param {...Object} [source] The source objects.\n\t * @param {Function} [callback] The function to customize merging properties.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Object} Returns the destination object.\n\t * @example\n\t *\n\t * var names = {\n\t * 'characters': [\n\t * { 'name': 'barney' },\n\t * { 'name': 'fred' }\n\t * ]\n\t * };\n\t *\n\t * var ages = {\n\t * 'characters': [\n\t * { 'age': 36 },\n\t * { 'age': 40 }\n\t * ]\n\t * };\n\t *\n\t * _.merge(names, ages);\n\t * // => { 'characters': [{ 'name': 'barney', 'age': 36 }, { 'name': 'fred', 'age': 40 }] }\n\t *\n\t * var food = {\n\t * 'fruits': ['apple'],\n\t * 'vegetables': ['beet']\n\t * };\n\t *\n\t * var otherFood = {\n\t * 'fruits': ['banana'],\n\t * 'vegetables': ['carrot']\n\t * };\n\t *\n\t * _.merge(food, otherFood, function(a, b) {\n\t * return _.isArray(a) ? a.concat(b) : undefined;\n\t * });\n\t * // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot] }\n\t */\n\t function merge(object) {\n\t var args = arguments,\n\t length = 2;\n\t\n\t if (!isObject(object)) {\n\t return object;\n\t }\n\t // allows working with `_.reduce` and `_.reduceRight` without using\n\t // their `index` and `collection` arguments\n\t if (typeof args[2] != 'number') {\n\t length = args.length;\n\t }\n\t if (length > 3 && typeof args[length - 2] == 'function') {\n\t var callback = baseCreateCallback(args[--length - 1], args[length--], 2);\n\t } else if (length > 2 && typeof args[length - 1] == 'function') {\n\t callback = args[--length];\n\t }\n\t var sources = slice(arguments, 1, length),\n\t index = -1,\n\t stackA = getArray(),\n\t stackB = getArray();\n\t\n\t while (++index < length) {\n\t baseMerge(object, sources[index], callback, stackA, stackB);\n\t }\n\t releaseArray(stackA);\n\t releaseArray(stackB);\n\t return object;\n\t }\n\t\n\t /**\n\t * Creates a shallow clone of `object` excluding the specified properties.\n\t * Property names may be specified as individual arguments or as arrays of\n\t * property names. If a callback is provided it will be executed for each\n\t * property of `object` omitting the properties the callback returns truey\n\t * for. The callback is bound to `thisArg` and invoked with three arguments;\n\t * (value, key, object).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {Object} object The source object.\n\t * @param {Function|...string|string[]} [callback] The properties to omit or the\n\t * function called per iteration.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Object} Returns an object without the omitted properties.\n\t * @example\n\t *\n\t * _.omit({ 'name': 'fred', 'age': 40 }, 'age');\n\t * // => { 'name': 'fred' }\n\t *\n\t * _.omit({ 'name': 'fred', 'age': 40 }, function(value) {\n\t * return typeof value == 'number';\n\t * });\n\t * // => { 'name': 'fred' }\n\t */\n\t function omit(object, callback, thisArg) {\n\t var result = {};\n\t if (typeof callback != 'function') {\n\t var props = [];\n\t forIn(object, function(value, key) {\n\t props.push(key);\n\t });\n\t props = baseDifference(props, baseFlatten(arguments, true, false, 1));\n\t\n\t var index = -1,\n\t length = props.length;\n\t\n\t while (++index < length) {\n\t var key = props[index];\n\t result[key] = object[key];\n\t }\n\t } else {\n\t callback = lodash.createCallback(callback, thisArg, 3);\n\t forIn(object, function(value, key, object) {\n\t if (!callback(value, key, object)) {\n\t result[key] = value;\n\t }\n\t });\n\t }\n\t return result;\n\t }\n\t\n\t /**\n\t * Creates a two dimensional array of an object's key-value pairs,\n\t * i.e. `[[key1, value1], [key2, value2]]`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {Object} object The object to inspect.\n\t * @returns {Array} Returns new array of key-value pairs.\n\t * @example\n\t *\n\t * _.pairs({ 'barney': 36, 'fred': 40 });\n\t * // => [['barney', 36], ['fred', 40]] (property order is not guaranteed across environments)\n\t */\n\t function pairs(object) {\n\t var index = -1,\n\t props = keys(object),\n\t length = props.length,\n\t result = Array(length);\n\t\n\t while (++index < length) {\n\t var key = props[index];\n\t result[index] = [key, object[key]];\n\t }\n\t return result;\n\t }\n\t\n\t /**\n\t * Creates a shallow clone of `object` composed of the specified properties.\n\t * Property names may be specified as individual arguments or as arrays of\n\t * property names. If a callback is provided it will be executed for each\n\t * property of `object` picking the properties the callback returns truey\n\t * for. The callback is bound to `thisArg` and invoked with three arguments;\n\t * (value, key, object).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {Object} object The source object.\n\t * @param {Function|...string|string[]} [callback] The function called per\n\t * iteration or property names to pick, specified as individual property\n\t * names or arrays of property names.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Object} Returns an object composed of the picked properties.\n\t * @example\n\t *\n\t * _.pick({ 'name': 'fred', '_userid': 'fred1' }, 'name');\n\t * // => { 'name': 'fred' }\n\t *\n\t * _.pick({ 'name': 'fred', '_userid': 'fred1' }, function(value, key) {\n\t * return key.charAt(0) != '_';\n\t * });\n\t * // => { 'name': 'fred' }\n\t */\n\t function pick(object, callback, thisArg) {\n\t var result = {};\n\t if (typeof callback != 'function') {\n\t var index = -1,\n\t props = baseFlatten(arguments, true, false, 1),\n\t length = isObject(object) ? props.length : 0;\n\t\n\t while (++index < length) {\n\t var key = props[index];\n\t if (key in object) {\n\t result[key] = object[key];\n\t }\n\t }\n\t } else {\n\t callback = lodash.createCallback(callback, thisArg, 3);\n\t forIn(object, function(value, key, object) {\n\t if (callback(value, key, object)) {\n\t result[key] = value;\n\t }\n\t });\n\t }\n\t return result;\n\t }\n\t\n\t /**\n\t * An alternative to `_.reduce` this method transforms `object` to a new\n\t * `accumulator` object which is the result of running each of its own\n\t * enumerable properties through a callback, with each callback execution\n\t * potentially mutating the `accumulator` object. The callback is bound to\n\t * `thisArg` and invoked with four arguments; (accumulator, value, key, object).\n\t * Callbacks may exit iteration early by explicitly returning `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {Array|Object} object The object to iterate over.\n\t * @param {Function} [callback=identity] The function called per iteration.\n\t * @param {*} [accumulator] The custom accumulator value.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {*} Returns the accumulated value.\n\t * @example\n\t *\n\t * var squares = _.transform([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], function(result, num) {\n\t * num *= num;\n\t * if (num % 2) {\n\t * return result.push(num) < 3;\n\t * }\n\t * });\n\t * // => [1, 9, 25]\n\t *\n\t * var mapped = _.transform({ 'a': 1, 'b': 2, 'c': 3 }, function(result, num, key) {\n\t * result[key] = num * 3;\n\t * });\n\t * // => { 'a': 3, 'b': 6, 'c': 9 }\n\t */\n\t function transform(object, callback, accumulator, thisArg) {\n\t var isArr = isArray(object);\n\t if (accumulator == null) {\n\t if (isArr) {\n\t accumulator = [];\n\t } else {\n\t var ctor = object && object.constructor,\n\t proto = ctor && ctor.prototype;\n\t\n\t accumulator = baseCreate(proto);\n\t }\n\t }\n\t if (callback) {\n\t callback = lodash.createCallback(callback, thisArg, 4);\n\t (isArr ? baseEach : forOwn)(object, function(value, index, object) {\n\t return callback(accumulator, value, index, object);\n\t });\n\t }\n\t return accumulator;\n\t }\n\t\n\t /**\n\t * Creates an array composed of the own enumerable property values of `object`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Objects\n\t * @param {Object} object The object to inspect.\n\t * @returns {Array} Returns an array of property values.\n\t * @example\n\t *\n\t * _.values({ 'one': 1, 'two': 2, 'three': 3 });\n\t * // => [1, 2, 3] (property order is not guaranteed across environments)\n\t */\n\t function values(object) {\n\t var index = -1,\n\t props = keys(object),\n\t length = props.length,\n\t result = Array(length);\n\t\n\t while (++index < length) {\n\t result[index] = object[props[index]];\n\t }\n\t return result;\n\t }\n\t\n\t /*--------------------------------------------------------------------------*/\n\t\n\t /**\n\t * Creates an array of elements from the specified indexes, or keys, of the\n\t * `collection`. Indexes may be specified as individual arguments or as arrays\n\t * of indexes.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to iterate over.\n\t * @param {...(number|number[]|string|string[])} [index] The indexes of `collection`\n\t * to retrieve, specified as individual indexes or arrays of indexes.\n\t * @returns {Array} Returns a new array of elements corresponding to the\n\t * provided indexes.\n\t * @example\n\t *\n\t * _.at(['a', 'b', 'c', 'd', 'e'], [0, 2, 4]);\n\t * // => ['a', 'c', 'e']\n\t *\n\t * _.at(['fred', 'barney', 'pebbles'], 0, 2);\n\t * // => ['fred', 'pebbles']\n\t */\n\t function at(collection) {\n\t var args = arguments,\n\t index = -1,\n\t props = baseFlatten(args, true, false, 1),\n\t length = (args[2] && args[2][args[1]] === collection) ? 1 : props.length,\n\t result = Array(length);\n\t\n\t if (support.unindexedChars && isString(collection)) {\n\t collection = collection.split('');\n\t }\n\t while(++index < length) {\n\t result[index] = collection[props[index]];\n\t }\n\t return result;\n\t }\n\t\n\t /**\n\t * Checks if a given value is present in a collection using strict equality\n\t * for comparisons, i.e. `===`. If `fromIndex` is negative, it is used as the\n\t * offset from the end of the collection.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @alias include\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to iterate over.\n\t * @param {*} target The value to check for.\n\t * @param {number} [fromIndex=0] The index to search from.\n\t * @returns {boolean} Returns `true` if the `target` element is found, else `false`.\n\t * @example\n\t *\n\t * _.contains([1, 2, 3], 1);\n\t * // => true\n\t *\n\t * _.contains([1, 2, 3], 1, 2);\n\t * // => false\n\t *\n\t * _.contains({ 'name': 'fred', 'age': 40 }, 'fred');\n\t * // => true\n\t *\n\t * _.contains('pebbles', 'eb');\n\t * // => true\n\t */\n\t function contains(collection, target, fromIndex) {\n\t var index = -1,\n\t indexOf = getIndexOf(),\n\t length = collection ? collection.length : 0,\n\t result = false;\n\t\n\t fromIndex = (fromIndex < 0 ? nativeMax(0, length + fromIndex) : fromIndex) || 0;\n\t if (isArray(collection)) {\n\t result = indexOf(collection, target, fromIndex) > -1;\n\t } else if (typeof length == 'number') {\n\t result = (isString(collection) ? collection.indexOf(target, fromIndex) : indexOf(collection, target, fromIndex)) > -1;\n\t } else {\n\t baseEach(collection, function(value) {\n\t if (++index >= fromIndex) {\n\t return !(result = value === target);\n\t }\n\t });\n\t }\n\t return result;\n\t }\n\t\n\t /**\n\t * Creates an object composed of keys generated from the results of running\n\t * each element of `collection` through the callback. The corresponding value\n\t * of each key is the number of times the key was returned by the callback.\n\t * The callback is bound to `thisArg` and invoked with three arguments;\n\t * (value, index|key, collection).\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to iterate over.\n\t * @param {Function|Object|string} [callback=identity] The function called\n\t * per iteration. If a property name or object is provided it will be used\n\t * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Object} Returns the composed aggregate object.\n\t * @example\n\t *\n\t * _.countBy([4.3, 6.1, 6.4], function(num) { return Math.floor(num); });\n\t * // => { '4': 1, '6': 2 }\n\t *\n\t * _.countBy([4.3, 6.1, 6.4], function(num) { return this.floor(num); }, Math);\n\t * // => { '4': 1, '6': 2 }\n\t *\n\t * _.countBy(['one', 'two', 'three'], 'length');\n\t * // => { '3': 2, '5': 1 }\n\t */\n\t var countBy = createAggregator(function(result, value, key) {\n\t (hasOwnProperty.call(result, key) ? result[key]++ : result[key] = 1);\n\t });\n\t\n\t /**\n\t * Checks if the given callback returns truey value for **all** elements of\n\t * a collection. The callback is bound to `thisArg` and invoked with three\n\t * arguments; (value, index|key, collection).\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @alias all\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to iterate over.\n\t * @param {Function|Object|string} [callback=identity] The function called\n\t * per iteration. If a property name or object is provided it will be used\n\t * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {boolean} Returns `true` if all elements passed the callback check,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.every([true, 1, null, 'yes']);\n\t * // => false\n\t *\n\t * var characters = [\n\t * { 'name': 'barney', 'age': 36 },\n\t * { 'name': 'fred', 'age': 40 }\n\t * ];\n\t *\n\t * // using \"_.pluck\" callback shorthand\n\t * _.every(characters, 'age');\n\t * // => true\n\t *\n\t * // using \"_.where\" callback shorthand\n\t * _.every(characters, { 'age': 36 });\n\t * // => false\n\t */\n\t function every(collection, callback, thisArg) {\n\t var result = true;\n\t callback = lodash.createCallback(callback, thisArg, 3);\n\t\n\t if (isArray(collection)) {\n\t var index = -1,\n\t length = collection.length;\n\t\n\t while (++index < length) {\n\t if (!(result = !!callback(collection[index], index, collection))) {\n\t break;\n\t }\n\t }\n\t } else {\n\t baseEach(collection, function(value, index, collection) {\n\t return (result = !!callback(value, index, collection));\n\t });\n\t }\n\t return result;\n\t }\n\t\n\t /**\n\t * Iterates over elements of a collection, returning an array of all elements\n\t * the callback returns truey for. The callback is bound to `thisArg` and\n\t * invoked with three arguments; (value, index|key, collection).\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @alias select\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to iterate over.\n\t * @param {Function|Object|string} [callback=identity] The function called\n\t * per iteration. If a property name or object is provided it will be used\n\t * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Array} Returns a new array of elements that passed the callback check.\n\t * @example\n\t *\n\t * var evens = _.filter([1, 2, 3, 4, 5, 6], function(num) { return num % 2 == 0; });\n\t * // => [2, 4, 6]\n\t *\n\t * var characters = [\n\t * { 'name': 'barney', 'age': 36, 'blocked': false },\n\t * { 'name': 'fred', 'age': 40, 'blocked': true }\n\t * ];\n\t *\n\t * // using \"_.pluck\" callback shorthand\n\t * _.filter(characters, 'blocked');\n\t * // => [{ 'name': 'fred', 'age': 40, 'blocked': true }]\n\t *\n\t * // using \"_.where\" callback shorthand\n\t * _.filter(characters, { 'age': 36 });\n\t * // => [{ 'name': 'barney', 'age': 36, 'blocked': false }]\n\t */\n\t function filter(collection, callback, thisArg) {\n\t var result = [];\n\t callback = lodash.createCallback(callback, thisArg, 3);\n\t\n\t if (isArray(collection)) {\n\t var index = -1,\n\t length = collection.length;\n\t\n\t while (++index < length) {\n\t var value = collection[index];\n\t if (callback(value, index, collection)) {\n\t result.push(value);\n\t }\n\t }\n\t } else {\n\t baseEach(collection, function(value, index, collection) {\n\t if (callback(value, index, collection)) {\n\t result.push(value);\n\t }\n\t });\n\t }\n\t return result;\n\t }\n\t\n\t /**\n\t * Iterates over elements of a collection, returning the first element that\n\t * the callback returns truey for. The callback is bound to `thisArg` and\n\t * invoked with three arguments; (value, index|key, collection).\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @alias detect, findWhere\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to iterate over.\n\t * @param {Function|Object|string} [callback=identity] The function called\n\t * per iteration. If a property name or object is provided it will be used\n\t * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {*} Returns the found element, else `undefined`.\n\t * @example\n\t *\n\t * var characters = [\n\t * { 'name': 'barney', 'age': 36, 'blocked': false },\n\t * { 'name': 'fred', 'age': 40, 'blocked': true },\n\t * { 'name': 'pebbles', 'age': 1, 'blocked': false }\n\t * ];\n\t *\n\t * _.find(characters, function(chr) {\n\t * return chr.age < 40;\n\t * });\n\t * // => { 'name': 'barney', 'age': 36, 'blocked': false }\n\t *\n\t * // using \"_.where\" callback shorthand\n\t * _.find(characters, { 'age': 1 });\n\t * // => { 'name': 'pebbles', 'age': 1, 'blocked': false }\n\t *\n\t * // using \"_.pluck\" callback shorthand\n\t * _.find(characters, 'blocked');\n\t * // => { 'name': 'fred', 'age': 40, 'blocked': true }\n\t */\n\t function find(collection, callback, thisArg) {\n\t callback = lodash.createCallback(callback, thisArg, 3);\n\t\n\t if (isArray(collection)) {\n\t var index = -1,\n\t length = collection.length;\n\t\n\t while (++index < length) {\n\t var value = collection[index];\n\t if (callback(value, index, collection)) {\n\t return value;\n\t }\n\t }\n\t } else {\n\t var result;\n\t baseEach(collection, function(value, index, collection) {\n\t if (callback(value, index, collection)) {\n\t result = value;\n\t return false;\n\t }\n\t });\n\t return result;\n\t }\n\t }\n\t\n\t /**\n\t * This method is like `_.find` except that it iterates over elements\n\t * of a `collection` from right to left.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to iterate over.\n\t * @param {Function|Object|string} [callback=identity] The function called\n\t * per iteration. If a property name or object is provided it will be used\n\t * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {*} Returns the found element, else `undefined`.\n\t * @example\n\t *\n\t * _.findLast([1, 2, 3, 4], function(num) {\n\t * return num % 2 == 1;\n\t * });\n\t * // => 3\n\t */\n\t function findLast(collection, callback, thisArg) {\n\t var result;\n\t callback = lodash.createCallback(callback, thisArg, 3);\n\t forEachRight(collection, function(value, index, collection) {\n\t if (callback(value, index, collection)) {\n\t result = value;\n\t return false;\n\t }\n\t });\n\t return result;\n\t }\n\t\n\t /**\n\t * Iterates over elements of a collection, executing the callback for each\n\t * element. The callback is bound to `thisArg` and invoked with three arguments;\n\t * (value, index|key, collection). Callbacks may exit iteration early by\n\t * explicitly returning `false`.\n\t *\n\t * Note: As with other \"Collections\" methods, objects with a `length` property\n\t * are iterated like arrays. To avoid this behavior `_.forIn` or `_.forOwn`\n\t * may be used for object iteration.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @alias each\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to iterate over.\n\t * @param {Function} [callback=identity] The function called per iteration.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Array|Object|string} Returns `collection`.\n\t * @example\n\t *\n\t * _([1, 2, 3]).forEach(function(num) { console.log(num); }).join(',');\n\t * // => logs each number and returns '1,2,3'\n\t *\n\t * _.forEach({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { console.log(num); });\n\t * // => logs each number and returns the object (property order is not guaranteed across environments)\n\t */\n\t function forEach(collection, callback, thisArg) {\n\t if (callback && typeof thisArg == 'undefined' && isArray(collection)) {\n\t var index = -1,\n\t length = collection.length;\n\t\n\t while (++index < length) {\n\t if (callback(collection[index], index, collection) === false) {\n\t break;\n\t }\n\t }\n\t } else {\n\t baseEach(collection, callback, thisArg);\n\t }\n\t return collection;\n\t }\n\t\n\t /**\n\t * This method is like `_.forEach` except that it iterates over elements\n\t * of a `collection` from right to left.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @alias eachRight\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to iterate over.\n\t * @param {Function} [callback=identity] The function called per iteration.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Array|Object|string} Returns `collection`.\n\t * @example\n\t *\n\t * _([1, 2, 3]).forEachRight(function(num) { console.log(num); }).join(',');\n\t * // => logs each number from right to left and returns '3,2,1'\n\t */\n\t function forEachRight(collection, callback, thisArg) {\n\t var iterable = collection,\n\t length = collection ? collection.length : 0;\n\t\n\t callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);\n\t if (isArray(collection)) {\n\t while (length--) {\n\t if (callback(collection[length], length, collection) === false) {\n\t break;\n\t }\n\t }\n\t } else {\n\t if (typeof length != 'number') {\n\t var props = keys(collection);\n\t length = props.length;\n\t } else if (support.unindexedChars && isString(collection)) {\n\t iterable = collection.split('');\n\t }\n\t baseEach(collection, function(value, key, collection) {\n\t key = props ? props[--length] : --length;\n\t return callback(iterable[key], key, collection);\n\t });\n\t }\n\t return collection;\n\t }\n\t\n\t /**\n\t * Creates an object composed of keys generated from the results of running\n\t * each element of a collection through the callback. The corresponding value\n\t * of each key is an array of the elements responsible for generating the key.\n\t * The callback is bound to `thisArg` and invoked with three arguments;\n\t * (value, index|key, collection).\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to iterate over.\n\t * @param {Function|Object|string} [callback=identity] The function called\n\t * per iteration. If a property name or object is provided it will be used\n\t * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Object} Returns the composed aggregate object.\n\t * @example\n\t *\n\t * _.groupBy([4.2, 6.1, 6.4], function(num) { return Math.floor(num); });\n\t * // => { '4': [4.2], '6': [6.1, 6.4] }\n\t *\n\t * _.groupBy([4.2, 6.1, 6.4], function(num) { return this.floor(num); }, Math);\n\t * // => { '4': [4.2], '6': [6.1, 6.4] }\n\t *\n\t * // using \"_.pluck\" callback shorthand\n\t * _.groupBy(['one', 'two', 'three'], 'length');\n\t * // => { '3': ['one', 'two'], '5': ['three'] }\n\t */\n\t var groupBy = createAggregator(function(result, value, key) {\n\t (hasOwnProperty.call(result, key) ? result[key] : result[key] = []).push(value);\n\t });\n\t\n\t /**\n\t * Creates an object composed of keys generated from the results of running\n\t * each element of the collection through the given callback. The corresponding\n\t * value of each key is the last element responsible for generating the key.\n\t * The callback is bound to `thisArg` and invoked with three arguments;\n\t * (value, index|key, collection).\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to iterate over.\n\t * @param {Function|Object|string} [callback=identity] The function called\n\t * per iteration. If a property name or object is provided it will be used\n\t * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Object} Returns the composed aggregate object.\n\t * @example\n\t *\n\t * var keys = [\n\t * { 'dir': 'left', 'code': 97 },\n\t * { 'dir': 'right', 'code': 100 }\n\t * ];\n\t *\n\t * _.indexBy(keys, 'dir');\n\t * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n\t *\n\t * _.indexBy(keys, function(key) { return String.fromCharCode(key.code); });\n\t * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n\t *\n\t * _.indexBy(characters, function(key) { this.fromCharCode(key.code); }, String);\n\t * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n\t */\n\t var indexBy = createAggregator(function(result, value, key) {\n\t result[key] = value;\n\t });\n\t\n\t /**\n\t * Invokes the method named by `methodName` on each element in the `collection`\n\t * returning an array of the results of each invoked method. Additional arguments\n\t * will be provided to each invoked method. If `methodName` is a function it\n\t * will be invoked for, and `this` bound to, each element in the `collection`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to iterate over.\n\t * @param {Function|string} methodName The name of the method to invoke or\n\t * the function invoked per iteration.\n\t * @param {...*} [arg] Arguments to invoke the method with.\n\t * @returns {Array} Returns a new array of the results of each invoked method.\n\t * @example\n\t *\n\t * _.invoke([[5, 1, 7], [3, 2, 1]], 'sort');\n\t * // => [[1, 5, 7], [1, 2, 3]]\n\t *\n\t * _.invoke([123, 456], String.prototype.split, '');\n\t * // => [['1', '2', '3'], ['4', '5', '6']]\n\t */\n\t function invoke(collection, methodName) {\n\t var args = slice(arguments, 2),\n\t index = -1,\n\t isFunc = typeof methodName == 'function',\n\t length = collection ? collection.length : 0,\n\t result = Array(typeof length == 'number' ? length : 0);\n\t\n\t forEach(collection, function(value) {\n\t result[++index] = (isFunc ? methodName : value[methodName]).apply(value, args);\n\t });\n\t return result;\n\t }\n\t\n\t /**\n\t * Creates an array of values by running each element in the collection\n\t * through the callback. The callback is bound to `thisArg` and invoked with\n\t * three arguments; (value, index|key, collection).\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @alias collect\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to iterate over.\n\t * @param {Function|Object|string} [callback=identity] The function called\n\t * per iteration. If a property name or object is provided it will be used\n\t * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Array} Returns a new array of the results of each `callback` execution.\n\t * @example\n\t *\n\t * _.map([1, 2, 3], function(num) { return num * 3; });\n\t * // => [3, 6, 9]\n\t *\n\t * _.map({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { return num * 3; });\n\t * // => [3, 6, 9] (property order is not guaranteed across environments)\n\t *\n\t * var characters = [\n\t * { 'name': 'barney', 'age': 36 },\n\t * { 'name': 'fred', 'age': 40 }\n\t * ];\n\t *\n\t * // using \"_.pluck\" callback shorthand\n\t * _.map(characters, 'name');\n\t * // => ['barney', 'fred']\n\t */\n\t function map(collection, callback, thisArg) {\n\t var index = -1,\n\t length = collection ? collection.length : 0,\n\t result = Array(typeof length == 'number' ? length : 0);\n\t\n\t callback = lodash.createCallback(callback, thisArg, 3);\n\t if (isArray(collection)) {\n\t while (++index < length) {\n\t result[index] = callback(collection[index], index, collection);\n\t }\n\t } else {\n\t baseEach(collection, function(value, key, collection) {\n\t result[++index] = callback(value, key, collection);\n\t });\n\t }\n\t return result;\n\t }\n\t\n\t /**\n\t * Retrieves the maximum value of a collection. If the collection is empty or\n\t * falsey `-Infinity` is returned. If a callback is provided it will be executed\n\t * for each value in the collection to generate the criterion by which the value\n\t * is ranked. The callback is bound to `thisArg` and invoked with three\n\t * arguments; (value, index, collection).\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to iterate over.\n\t * @param {Function|Object|string} [callback=identity] The function called\n\t * per iteration. If a property name or object is provided it will be used\n\t * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {*} Returns the maximum value.\n\t * @example\n\t *\n\t * _.max([4, 2, 8, 6]);\n\t * // => 8\n\t *\n\t * var characters = [\n\t * { 'name': 'barney', 'age': 36 },\n\t * { 'name': 'fred', 'age': 40 }\n\t * ];\n\t *\n\t * _.max(characters, function(chr) { return chr.age; });\n\t * // => { 'name': 'fred', 'age': 40 };\n\t *\n\t * // using \"_.pluck\" callback shorthand\n\t * _.max(characters, 'age');\n\t * // => { 'name': 'fred', 'age': 40 };\n\t */\n\t function max(collection, callback, thisArg) {\n\t var computed = -Infinity,\n\t result = computed;\n\t\n\t // allows working with functions like `_.map` without using\n\t // their `index` argument as a callback\n\t if (typeof callback != 'function' && thisArg && thisArg[callback] === collection) {\n\t callback = null;\n\t }\n\t if (callback == null && isArray(collection)) {\n\t var index = -1,\n\t length = collection.length;\n\t\n\t while (++index < length) {\n\t var value = collection[index];\n\t if (value > result) {\n\t result = value;\n\t }\n\t }\n\t } else {\n\t callback = (callback == null && isString(collection))\n\t ? charAtCallback\n\t : lodash.createCallback(callback, thisArg, 3);\n\t\n\t baseEach(collection, function(value, index, collection) {\n\t var current = callback(value, index, collection);\n\t if (current > computed) {\n\t computed = current;\n\t result = value;\n\t }\n\t });\n\t }\n\t return result;\n\t }\n\t\n\t /**\n\t * Retrieves the minimum value of a collection. If the collection is empty or\n\t * falsey `Infinity` is returned. If a callback is provided it will be executed\n\t * for each value in the collection to generate the criterion by which the value\n\t * is ranked. The callback is bound to `thisArg` and invoked with three\n\t * arguments; (value, index, collection).\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to iterate over.\n\t * @param {Function|Object|string} [callback=identity] The function called\n\t * per iteration. If a property name or object is provided it will be used\n\t * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {*} Returns the minimum value.\n\t * @example\n\t *\n\t * _.min([4, 2, 8, 6]);\n\t * // => 2\n\t *\n\t * var characters = [\n\t * { 'name': 'barney', 'age': 36 },\n\t * { 'name': 'fred', 'age': 40 }\n\t * ];\n\t *\n\t * _.min(characters, function(chr) { return chr.age; });\n\t * // => { 'name': 'barney', 'age': 36 };\n\t *\n\t * // using \"_.pluck\" callback shorthand\n\t * _.min(characters, 'age');\n\t * // => { 'name': 'barney', 'age': 36 };\n\t */\n\t function min(collection, callback, thisArg) {\n\t var computed = Infinity,\n\t result = computed;\n\t\n\t // allows working with functions like `_.map` without using\n\t // their `index` argument as a callback\n\t if (typeof callback != 'function' && thisArg && thisArg[callback] === collection) {\n\t callback = null;\n\t }\n\t if (callback == null && isArray(collection)) {\n\t var index = -1,\n\t length = collection.length;\n\t\n\t while (++index < length) {\n\t var value = collection[index];\n\t if (value < result) {\n\t result = value;\n\t }\n\t }\n\t } else {\n\t callback = (callback == null && isString(collection))\n\t ? charAtCallback\n\t : lodash.createCallback(callback, thisArg, 3);\n\t\n\t baseEach(collection, function(value, index, collection) {\n\t var current = callback(value, index, collection);\n\t if (current < computed) {\n\t computed = current;\n\t result = value;\n\t }\n\t });\n\t }\n\t return result;\n\t }\n\t\n\t /**\n\t * Retrieves the value of a specified property from all elements in the collection.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @type Function\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to iterate over.\n\t * @param {string} property The name of the property to pluck.\n\t * @returns {Array} Returns a new array of property values.\n\t * @example\n\t *\n\t * var characters = [\n\t * { 'name': 'barney', 'age': 36 },\n\t * { 'name': 'fred', 'age': 40 }\n\t * ];\n\t *\n\t * _.pluck(characters, 'name');\n\t * // => ['barney', 'fred']\n\t */\n\t var pluck = map;\n\t\n\t /**\n\t * Reduces a collection to a value which is the accumulated result of running\n\t * each element in the collection through the callback, where each successive\n\t * callback execution consumes the return value of the previous execution. If\n\t * `accumulator` is not provided the first element of the collection will be\n\t * used as the initial `accumulator` value. The callback is bound to `thisArg`\n\t * and invoked with four arguments; (accumulator, value, index|key, collection).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @alias foldl, inject\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to iterate over.\n\t * @param {Function} [callback=identity] The function called per iteration.\n\t * @param {*} [accumulator] Initial value of the accumulator.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {*} Returns the accumulated value.\n\t * @example\n\t *\n\t * var sum = _.reduce([1, 2, 3], function(sum, num) {\n\t * return sum + num;\n\t * });\n\t * // => 6\n\t *\n\t * var mapped = _.reduce({ 'a': 1, 'b': 2, 'c': 3 }, function(result, num, key) {\n\t * result[key] = num * 3;\n\t * return result;\n\t * }, {});\n\t * // => { 'a': 3, 'b': 6, 'c': 9 }\n\t */\n\t function reduce(collection, callback, accumulator, thisArg) {\n\t var noaccum = arguments.length < 3;\n\t callback = lodash.createCallback(callback, thisArg, 4);\n\t\n\t if (isArray(collection)) {\n\t var index = -1,\n\t length = collection.length;\n\t\n\t if (noaccum) {\n\t accumulator = collection[++index];\n\t }\n\t while (++index < length) {\n\t accumulator = callback(accumulator, collection[index], index, collection);\n\t }\n\t } else {\n\t baseEach(collection, function(value, index, collection) {\n\t accumulator = noaccum\n\t ? (noaccum = false, value)\n\t : callback(accumulator, value, index, collection)\n\t });\n\t }\n\t return accumulator;\n\t }\n\t\n\t /**\n\t * This method is like `_.reduce` except that it iterates over elements\n\t * of a `collection` from right to left.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @alias foldr\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to iterate over.\n\t * @param {Function} [callback=identity] The function called per iteration.\n\t * @param {*} [accumulator] Initial value of the accumulator.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {*} Returns the accumulated value.\n\t * @example\n\t *\n\t * var list = [[0, 1], [2, 3], [4, 5]];\n\t * var flat = _.reduceRight(list, function(a, b) { return a.concat(b); }, []);\n\t * // => [4, 5, 2, 3, 0, 1]\n\t */\n\t function reduceRight(collection, callback, accumulator, thisArg) {\n\t var noaccum = arguments.length < 3;\n\t callback = lodash.createCallback(callback, thisArg, 4);\n\t forEachRight(collection, function(value, index, collection) {\n\t accumulator = noaccum\n\t ? (noaccum = false, value)\n\t : callback(accumulator, value, index, collection);\n\t });\n\t return accumulator;\n\t }\n\t\n\t /**\n\t * The opposite of `_.filter` this method returns the elements of a\n\t * collection that the callback does **not** return truey for.\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to iterate over.\n\t * @param {Function|Object|string} [callback=identity] The function called\n\t * per iteration. If a property name or object is provided it will be used\n\t * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Array} Returns a new array of elements that failed the callback check.\n\t * @example\n\t *\n\t * var odds = _.reject([1, 2, 3, 4, 5, 6], function(num) { return num % 2 == 0; });\n\t * // => [1, 3, 5]\n\t *\n\t * var characters = [\n\t * { 'name': 'barney', 'age': 36, 'blocked': false },\n\t * { 'name': 'fred', 'age': 40, 'blocked': true }\n\t * ];\n\t *\n\t * // using \"_.pluck\" callback shorthand\n\t * _.reject(characters, 'blocked');\n\t * // => [{ 'name': 'barney', 'age': 36, 'blocked': false }]\n\t *\n\t * // using \"_.where\" callback shorthand\n\t * _.reject(characters, { 'age': 36 });\n\t * // => [{ 'name': 'fred', 'age': 40, 'blocked': true }]\n\t */\n\t function reject(collection, callback, thisArg) {\n\t callback = lodash.createCallback(callback, thisArg, 3);\n\t return filter(collection, function(value, index, collection) {\n\t return !callback(value, index, collection);\n\t });\n\t }\n\t\n\t /**\n\t * Retrieves a random element or `n` random elements from a collection.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to sample.\n\t * @param {number} [n] The number of elements to sample.\n\t * @param- {Object} [guard] Allows working with functions like `_.map`\n\t * without using their `index` arguments as `n`.\n\t * @returns {Array} Returns the random sample(s) of `collection`.\n\t * @example\n\t *\n\t * _.sample([1, 2, 3, 4]);\n\t * // => 2\n\t *\n\t * _.sample([1, 2, 3, 4], 2);\n\t * // => [3, 1]\n\t */\n\t function sample(collection, n, guard) {\n\t if (collection && typeof collection.length != 'number') {\n\t collection = values(collection);\n\t } else if (support.unindexedChars && isString(collection)) {\n\t collection = collection.split('');\n\t }\n\t if (n == null || guard) {\n\t return collection ? collection[baseRandom(0, collection.length - 1)] : undefined;\n\t }\n\t var result = shuffle(collection);\n\t result.length = nativeMin(nativeMax(0, n), result.length);\n\t return result;\n\t }\n\t\n\t /**\n\t * Creates an array of shuffled values, using a version of the Fisher-Yates\n\t * shuffle. See http://en.wikipedia.org/wiki/Fisher-Yates_shuffle.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to shuffle.\n\t * @returns {Array} Returns a new shuffled collection.\n\t * @example\n\t *\n\t * _.shuffle([1, 2, 3, 4, 5, 6]);\n\t * // => [4, 1, 6, 3, 5, 2]\n\t */\n\t function shuffle(collection) {\n\t var index = -1,\n\t length = collection ? collection.length : 0,\n\t result = Array(typeof length == 'number' ? length : 0);\n\t\n\t forEach(collection, function(value) {\n\t var rand = baseRandom(0, ++index);\n\t result[index] = result[rand];\n\t result[rand] = value;\n\t });\n\t return result;\n\t }\n\t\n\t /**\n\t * Gets the size of the `collection` by returning `collection.length` for arrays\n\t * and array-like objects or the number of own enumerable properties for objects.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to inspect.\n\t * @returns {number} Returns `collection.length` or number of own enumerable properties.\n\t * @example\n\t *\n\t * _.size([1, 2]);\n\t * // => 2\n\t *\n\t * _.size({ 'one': 1, 'two': 2, 'three': 3 });\n\t * // => 3\n\t *\n\t * _.size('pebbles');\n\t * // => 7\n\t */\n\t function size(collection) {\n\t var length = collection ? collection.length : 0;\n\t return typeof length == 'number' ? length : keys(collection).length;\n\t }\n\t\n\t /**\n\t * Checks if the callback returns a truey value for **any** element of a\n\t * collection. The function returns as soon as it finds a passing value and\n\t * does not iterate over the entire collection. The callback is bound to\n\t * `thisArg` and invoked with three arguments; (value, index|key, collection).\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @alias any\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to iterate over.\n\t * @param {Function|Object|string} [callback=identity] The function called\n\t * per iteration. If a property name or object is provided it will be used\n\t * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {boolean} Returns `true` if any element passed the callback check,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.some([null, 0, 'yes', false], Boolean);\n\t * // => true\n\t *\n\t * var characters = [\n\t * { 'name': 'barney', 'age': 36, 'blocked': false },\n\t * { 'name': 'fred', 'age': 40, 'blocked': true }\n\t * ];\n\t *\n\t * // using \"_.pluck\" callback shorthand\n\t * _.some(characters, 'blocked');\n\t * // => true\n\t *\n\t * // using \"_.where\" callback shorthand\n\t * _.some(characters, { 'age': 1 });\n\t * // => false\n\t */\n\t function some(collection, callback, thisArg) {\n\t var result;\n\t callback = lodash.createCallback(callback, thisArg, 3);\n\t\n\t if (isArray(collection)) {\n\t var index = -1,\n\t length = collection.length;\n\t\n\t while (++index < length) {\n\t if ((result = callback(collection[index], index, collection))) {\n\t break;\n\t }\n\t }\n\t } else {\n\t baseEach(collection, function(value, index, collection) {\n\t return !(result = callback(value, index, collection));\n\t });\n\t }\n\t return !!result;\n\t }\n\t\n\t /**\n\t * Creates an array of elements, sorted in ascending order by the results of\n\t * running each element in a collection through the callback. This method\n\t * performs a stable sort, that is, it will preserve the original sort order\n\t * of equal elements. The callback is bound to `thisArg` and invoked with\n\t * three arguments; (value, index|key, collection).\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an array of property names is provided for `callback` the collection\n\t * will be sorted by each property value.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to iterate over.\n\t * @param {Array|Function|Object|string} [callback=identity] The function called\n\t * per iteration. If a property name or object is provided it will be used\n\t * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Array} Returns a new array of sorted elements.\n\t * @example\n\t *\n\t * _.sortBy([1, 2, 3], function(num) { return Math.sin(num); });\n\t * // => [3, 1, 2]\n\t *\n\t * _.sortBy([1, 2, 3], function(num) { return this.sin(num); }, Math);\n\t * // => [3, 1, 2]\n\t *\n\t * var characters = [\n\t * { 'name': 'barney', 'age': 36 },\n\t * { 'name': 'fred', 'age': 40 },\n\t * { 'name': 'barney', 'age': 26 },\n\t * { 'name': 'fred', 'age': 30 }\n\t * ];\n\t *\n\t * // using \"_.pluck\" callback shorthand\n\t * _.map(_.sortBy(characters, 'age'), _.values);\n\t * // => [['barney', 26], ['fred', 30], ['barney', 36], ['fred', 40]]\n\t *\n\t * // sorting by multiple properties\n\t * _.map(_.sortBy(characters, ['name', 'age']), _.values);\n\t * // = > [['barney', 26], ['barney', 36], ['fred', 30], ['fred', 40]]\n\t */\n\t function sortBy(collection, callback, thisArg) {\n\t var index = -1,\n\t isArr = isArray(callback),\n\t length = collection ? collection.length : 0,\n\t result = Array(typeof length == 'number' ? length : 0);\n\t\n\t if (!isArr) {\n\t callback = lodash.createCallback(callback, thisArg, 3);\n\t }\n\t forEach(collection, function(value, key, collection) {\n\t var object = result[++index] = getObject();\n\t if (isArr) {\n\t object.criteria = map(callback, function(key) { return value[key]; });\n\t } else {\n\t (object.criteria = getArray())[0] = callback(value, key, collection);\n\t }\n\t object.index = index;\n\t object.value = value;\n\t });\n\t\n\t length = result.length;\n\t result.sort(compareAscending);\n\t while (length--) {\n\t var object = result[length];\n\t result[length] = object.value;\n\t if (!isArr) {\n\t releaseArray(object.criteria);\n\t }\n\t releaseObject(object);\n\t }\n\t return result;\n\t }\n\t\n\t /**\n\t * Converts the `collection` to an array.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to convert.\n\t * @returns {Array} Returns the new converted array.\n\t * @example\n\t *\n\t * (function() { return _.toArray(arguments).slice(1); })(1, 2, 3, 4);\n\t * // => [2, 3, 4]\n\t */\n\t function toArray(collection) {\n\t if (collection && typeof collection.length == 'number') {\n\t return (support.unindexedChars && isString(collection))\n\t ? collection.split('')\n\t : slice(collection);\n\t }\n\t return values(collection);\n\t }\n\t\n\t /**\n\t * Performs a deep comparison of each element in a `collection` to the given\n\t * `properties` object, returning an array of all elements that have equivalent\n\t * property values.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @type Function\n\t * @category Collections\n\t * @param {Array|Object|string} collection The collection to iterate over.\n\t * @param {Object} props The object of property values to filter by.\n\t * @returns {Array} Returns a new array of elements that have the given properties.\n\t * @example\n\t *\n\t * var characters = [\n\t * { 'name': 'barney', 'age': 36, 'pets': ['hoppy'] },\n\t * { 'name': 'fred', 'age': 40, 'pets': ['baby puss', 'dino'] }\n\t * ];\n\t *\n\t * _.where(characters, { 'age': 36 });\n\t * // => [{ 'name': 'barney', 'age': 36, 'pets': ['hoppy'] }]\n\t *\n\t * _.where(characters, { 'pets': ['dino'] });\n\t * // => [{ 'name': 'fred', 'age': 40, 'pets': ['baby puss', 'dino'] }]\n\t */\n\t var where = filter;\n\t\n\t /*--------------------------------------------------------------------------*/\n\t\n\t /**\n\t * Creates an array with all falsey values removed. The values `false`, `null`,\n\t * `0`, `\"\"`, `undefined`, and `NaN` are all falsey.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Arrays\n\t * @param {Array} array The array to compact.\n\t * @returns {Array} Returns a new array of filtered values.\n\t * @example\n\t *\n\t * _.compact([0, 1, false, 2, '', 3]);\n\t * // => [1, 2, 3]\n\t */\n\t function compact(array) {\n\t var index = -1,\n\t length = array ? array.length : 0,\n\t result = [];\n\t\n\t while (++index < length) {\n\t var value = array[index];\n\t if (value) {\n\t result.push(value);\n\t }\n\t }\n\t return result;\n\t }\n\t\n\t /**\n\t * Creates an array excluding all values of the provided arrays using strict\n\t * equality for comparisons, i.e. `===`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Arrays\n\t * @param {Array} array The array to process.\n\t * @param {...Array} [values] The arrays of values to exclude.\n\t * @returns {Array} Returns a new array of filtered values.\n\t * @example\n\t *\n\t * _.difference([1, 2, 3, 4, 5], [5, 2, 10]);\n\t * // => [1, 3, 4]\n\t */\n\t function difference(array) {\n\t return baseDifference(array, baseFlatten(arguments, true, true, 1));\n\t }\n\t\n\t /**\n\t * This method is like `_.find` except that it returns the index of the first\n\t * element that passes the callback check, instead of the element itself.\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Arrays\n\t * @param {Array} array The array to search.\n\t * @param {Function|Object|string} [callback=identity] The function called\n\t * per iteration. If a property name or object is provided it will be used\n\t * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {number} Returns the index of the found element, else `-1`.\n\t * @example\n\t *\n\t * var characters = [\n\t * { 'name': 'barney', 'age': 36, 'blocked': false },\n\t * { 'name': 'fred', 'age': 40, 'blocked': true },\n\t * { 'name': 'pebbles', 'age': 1, 'blocked': false }\n\t * ];\n\t *\n\t * _.findIndex(characters, function(chr) {\n\t * return chr.age < 20;\n\t * });\n\t * // => 2\n\t *\n\t * // using \"_.where\" callback shorthand\n\t * _.findIndex(characters, { 'age': 36 });\n\t * // => 0\n\t *\n\t * // using \"_.pluck\" callback shorthand\n\t * _.findIndex(characters, 'blocked');\n\t * // => 1\n\t */\n\t function findIndex(array, callback, thisArg) {\n\t var index = -1,\n\t length = array ? array.length : 0;\n\t\n\t callback = lodash.createCallback(callback, thisArg, 3);\n\t while (++index < length) {\n\t if (callback(array[index], index, array)) {\n\t return index;\n\t }\n\t }\n\t return -1;\n\t }\n\t\n\t /**\n\t * This method is like `_.findIndex` except that it iterates over elements\n\t * of a `collection` from right to left.\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Arrays\n\t * @param {Array} array The array to search.\n\t * @param {Function|Object|string} [callback=identity] The function called\n\t * per iteration. If a property name or object is provided it will be used\n\t * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {number} Returns the index of the found element, else `-1`.\n\t * @example\n\t *\n\t * var characters = [\n\t * { 'name': 'barney', 'age': 36, 'blocked': true },\n\t * { 'name': 'fred', 'age': 40, 'blocked': false },\n\t * { 'name': 'pebbles', 'age': 1, 'blocked': true }\n\t * ];\n\t *\n\t * _.findLastIndex(characters, function(chr) {\n\t * return chr.age > 30;\n\t * });\n\t * // => 1\n\t *\n\t * // using \"_.where\" callback shorthand\n\t * _.findLastIndex(characters, { 'age': 36 });\n\t * // => 0\n\t *\n\t * // using \"_.pluck\" callback shorthand\n\t * _.findLastIndex(characters, 'blocked');\n\t * // => 2\n\t */\n\t function findLastIndex(array, callback, thisArg) {\n\t var length = array ? array.length : 0;\n\t callback = lodash.createCallback(callback, thisArg, 3);\n\t while (length--) {\n\t if (callback(array[length], length, array)) {\n\t return length;\n\t }\n\t }\n\t return -1;\n\t }\n\t\n\t /**\n\t * Gets the first element or first `n` elements of an array. If a callback\n\t * is provided elements at the beginning of the array are returned as long\n\t * as the callback returns truey. The callback is bound to `thisArg` and\n\t * invoked with three arguments; (value, index, array).\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @alias head, take\n\t * @category Arrays\n\t * @param {Array} array The array to query.\n\t * @param {Function|Object|number|string} [callback] The function called\n\t * per element or the number of elements to return. If a property name or\n\t * object is provided it will be used to create a \"_.pluck\" or \"_.where\"\n\t * style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {*} Returns the first element(s) of `array`.\n\t * @example\n\t *\n\t * _.first([1, 2, 3]);\n\t * // => 1\n\t *\n\t * _.first([1, 2, 3], 2);\n\t * // => [1, 2]\n\t *\n\t * _.first([1, 2, 3], function(num) {\n\t * return num < 3;\n\t * });\n\t * // => [1, 2]\n\t *\n\t * var characters = [\n\t * { 'name': 'barney', 'blocked': true, 'employer': 'slate' },\n\t * { 'name': 'fred', 'blocked': false, 'employer': 'slate' },\n\t * { 'name': 'pebbles', 'blocked': true, 'employer': 'na' }\n\t * ];\n\t *\n\t * // using \"_.pluck\" callback shorthand\n\t * _.first(characters, 'blocked');\n\t * // => [{ 'name': 'barney', 'blocked': true, 'employer': 'slate' }]\n\t *\n\t * // using \"_.where\" callback shorthand\n\t * _.pluck(_.first(characters, { 'employer': 'slate' }), 'name');\n\t * // => ['barney', 'fred']\n\t */\n\t function first(array, callback, thisArg) {\n\t var n = 0,\n\t length = array ? array.length : 0;\n\t\n\t if (typeof callback != 'number' && callback != null) {\n\t var index = -1;\n\t callback = lodash.createCallback(callback, thisArg, 3);\n\t while (++index < length && callback(array[index], index, array)) {\n\t n++;\n\t }\n\t } else {\n\t n = callback;\n\t if (n == null || thisArg) {\n\t return array ? array[0] : undefined;\n\t }\n\t }\n\t return slice(array, 0, nativeMin(nativeMax(0, n), length));\n\t }\n\t\n\t /**\n\t * Flattens a nested array (the nesting can be to any depth). If `isShallow`\n\t * is truey, the array will only be flattened a single level. If a callback\n\t * is provided each element of the array is passed through the callback before\n\t * flattening. The callback is bound to `thisArg` and invoked with three\n\t * arguments; (value, index, array).\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Arrays\n\t * @param {Array} array The array to flatten.\n\t * @param {boolean} [isShallow=false] A flag to restrict flattening to a single level.\n\t * @param {Function|Object|string} [callback=identity] The function called\n\t * per iteration. If a property name or object is provided it will be used\n\t * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Array} Returns a new flattened array.\n\t * @example\n\t *\n\t * _.flatten([1, [2], [3, [[4]]]]);\n\t * // => [1, 2, 3, 4];\n\t *\n\t * _.flatten([1, [2], [3, [[4]]]], true);\n\t * // => [1, 2, 3, [[4]]];\n\t *\n\t * var characters = [\n\t * { 'name': 'barney', 'age': 30, 'pets': ['hoppy'] },\n\t * { 'name': 'fred', 'age': 40, 'pets': ['baby puss', 'dino'] }\n\t * ];\n\t *\n\t * // using \"_.pluck\" callback shorthand\n\t * _.flatten(characters, 'pets');\n\t * // => ['hoppy', 'baby puss', 'dino']\n\t */\n\t function flatten(array, isShallow, callback, thisArg) {\n\t // juggle arguments\n\t if (typeof isShallow != 'boolean' && isShallow != null) {\n\t thisArg = callback;\n\t callback = (typeof isShallow != 'function' && thisArg && thisArg[isShallow] === array) ? null : isShallow;\n\t isShallow = false;\n\t }\n\t if (callback != null) {\n\t array = map(array, callback, thisArg);\n\t }\n\t return baseFlatten(array, isShallow);\n\t }\n\t\n\t /**\n\t * Gets the index at which the first occurrence of `value` is found using\n\t * strict equality for comparisons, i.e. `===`. If the array is already sorted\n\t * providing `true` for `fromIndex` will run a faster binary search.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Arrays\n\t * @param {Array} array The array to search.\n\t * @param {*} value The value to search for.\n\t * @param {boolean|number} [fromIndex=0] The index to search from or `true`\n\t * to perform a binary search on a sorted array.\n\t * @returns {number} Returns the index of the matched value or `-1`.\n\t * @example\n\t *\n\t * _.indexOf([1, 2, 3, 1, 2, 3], 2);\n\t * // => 1\n\t *\n\t * _.indexOf([1, 2, 3, 1, 2, 3], 2, 3);\n\t * // => 4\n\t *\n\t * _.indexOf([1, 1, 2, 2, 3, 3], 2, true);\n\t * // => 2\n\t */\n\t function indexOf(array, value, fromIndex) {\n\t if (typeof fromIndex == 'number') {\n\t var length = array ? array.length : 0;\n\t fromIndex = (fromIndex < 0 ? nativeMax(0, length + fromIndex) : fromIndex || 0);\n\t } else if (fromIndex) {\n\t var index = sortedIndex(array, value);\n\t return array[index] === value ? index : -1;\n\t }\n\t return baseIndexOf(array, value, fromIndex);\n\t }\n\t\n\t /**\n\t * Gets all but the last element or last `n` elements of an array. If a\n\t * callback is provided elements at the end of the array are excluded from\n\t * the result as long as the callback returns truey. The callback is bound\n\t * to `thisArg` and invoked with three arguments; (value, index, array).\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Arrays\n\t * @param {Array} array The array to query.\n\t * @param {Function|Object|number|string} [callback=1] The function called\n\t * per element or the number of elements to exclude. If a property name or\n\t * object is provided it will be used to create a \"_.pluck\" or \"_.where\"\n\t * style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Array} Returns a slice of `array`.\n\t * @example\n\t *\n\t * _.initial([1, 2, 3]);\n\t * // => [1, 2]\n\t *\n\t * _.initial([1, 2, 3], 2);\n\t * // => [1]\n\t *\n\t * _.initial([1, 2, 3], function(num) {\n\t * return num > 1;\n\t * });\n\t * // => [1]\n\t *\n\t * var characters = [\n\t * { 'name': 'barney', 'blocked': false, 'employer': 'slate' },\n\t * { 'name': 'fred', 'blocked': true, 'employer': 'slate' },\n\t * { 'name': 'pebbles', 'blocked': true, 'employer': 'na' }\n\t * ];\n\t *\n\t * // using \"_.pluck\" callback shorthand\n\t * _.initial(characters, 'blocked');\n\t * // => [{ 'name': 'barney', 'blocked': false, 'employer': 'slate' }]\n\t *\n\t * // using \"_.where\" callback shorthand\n\t * _.pluck(_.initial(characters, { 'employer': 'na' }), 'name');\n\t * // => ['barney', 'fred']\n\t */\n\t function initial(array, callback, thisArg) {\n\t var n = 0,\n\t length = array ? array.length : 0;\n\t\n\t if (typeof callback != 'number' && callback != null) {\n\t var index = length;\n\t callback = lodash.createCallback(callback, thisArg, 3);\n\t while (index-- && callback(array[index], index, array)) {\n\t n++;\n\t }\n\t } else {\n\t n = (callback == null || thisArg) ? 1 : callback || n;\n\t }\n\t return slice(array, 0, nativeMin(nativeMax(0, length - n), length));\n\t }\n\t\n\t /**\n\t * Creates an array of unique values present in all provided arrays using\n\t * strict equality for comparisons, i.e. `===`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Arrays\n\t * @param {...Array} [array] The arrays to inspect.\n\t * @returns {Array} Returns an array of shared values.\n\t * @example\n\t *\n\t * _.intersection([1, 2, 3], [5, 2, 1, 4], [2, 1]);\n\t * // => [1, 2]\n\t */\n\t function intersection() {\n\t var args = [],\n\t argsIndex = -1,\n\t argsLength = arguments.length,\n\t caches = getArray(),\n\t indexOf = getIndexOf(),\n\t trustIndexOf = indexOf === baseIndexOf,\n\t seen = getArray();\n\t\n\t while (++argsIndex < argsLength) {\n\t var value = arguments[argsIndex];\n\t if (isArray(value) || isArguments(value)) {\n\t args.push(value);\n\t caches.push(trustIndexOf && value.length >= largeArraySize &&\n\t createCache(argsIndex ? args[argsIndex] : seen));\n\t }\n\t }\n\t var array = args[0],\n\t index = -1,\n\t length = array ? array.length : 0,\n\t result = [];\n\t\n\t outer:\n\t while (++index < length) {\n\t var cache = caches[0];\n\t value = array[index];\n\t\n\t if ((cache ? cacheIndexOf(cache, value) : indexOf(seen, value)) < 0) {\n\t argsIndex = argsLength;\n\t (cache || seen).push(value);\n\t while (--argsIndex) {\n\t cache = caches[argsIndex];\n\t if ((cache ? cacheIndexOf(cache, value) : indexOf(args[argsIndex], value)) < 0) {\n\t continue outer;\n\t }\n\t }\n\t result.push(value);\n\t }\n\t }\n\t while (argsLength--) {\n\t cache = caches[argsLength];\n\t if (cache) {\n\t releaseObject(cache);\n\t }\n\t }\n\t releaseArray(caches);\n\t releaseArray(seen);\n\t return result;\n\t }\n\t\n\t /**\n\t * Gets the last element or last `n` elements of an array. If a callback is\n\t * provided elements at the end of the array are returned as long as the\n\t * callback returns truey. The callback is bound to `thisArg` and invoked\n\t * with three arguments; (value, index, array).\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Arrays\n\t * @param {Array} array The array to query.\n\t * @param {Function|Object|number|string} [callback] The function called\n\t * per element or the number of elements to return. If a property name or\n\t * object is provided it will be used to create a \"_.pluck\" or \"_.where\"\n\t * style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {*} Returns the last element(s) of `array`.\n\t * @example\n\t *\n\t * _.last([1, 2, 3]);\n\t * // => 3\n\t *\n\t * _.last([1, 2, 3], 2);\n\t * // => [2, 3]\n\t *\n\t * _.last([1, 2, 3], function(num) {\n\t * return num > 1;\n\t * });\n\t * // => [2, 3]\n\t *\n\t * var characters = [\n\t * { 'name': 'barney', 'blocked': false, 'employer': 'slate' },\n\t * { 'name': 'fred', 'blocked': true, 'employer': 'slate' },\n\t * { 'name': 'pebbles', 'blocked': true, 'employer': 'na' }\n\t * ];\n\t *\n\t * // using \"_.pluck\" callback shorthand\n\t * _.pluck(_.last(characters, 'blocked'), 'name');\n\t * // => ['fred', 'pebbles']\n\t *\n\t * // using \"_.where\" callback shorthand\n\t * _.last(characters, { 'employer': 'na' });\n\t * // => [{ 'name': 'pebbles', 'blocked': true, 'employer': 'na' }]\n\t */\n\t function last(array, callback, thisArg) {\n\t var n = 0,\n\t length = array ? array.length : 0;\n\t\n\t if (typeof callback != 'number' && callback != null) {\n\t var index = length;\n\t callback = lodash.createCallback(callback, thisArg, 3);\n\t while (index-- && callback(array[index], index, array)) {\n\t n++;\n\t }\n\t } else {\n\t n = callback;\n\t if (n == null || thisArg) {\n\t return array ? array[length - 1] : undefined;\n\t }\n\t }\n\t return slice(array, nativeMax(0, length - n));\n\t }\n\t\n\t /**\n\t * Gets the index at which the last occurrence of `value` is found using strict\n\t * equality for comparisons, i.e. `===`. If `fromIndex` is negative, it is used\n\t * as the offset from the end of the collection.\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Arrays\n\t * @param {Array} array The array to search.\n\t * @param {*} value The value to search for.\n\t * @param {number} [fromIndex=array.length-1] The index to search from.\n\t * @returns {number} Returns the index of the matched value or `-1`.\n\t * @example\n\t *\n\t * _.lastIndexOf([1, 2, 3, 1, 2, 3], 2);\n\t * // => 4\n\t *\n\t * _.lastIndexOf([1, 2, 3, 1, 2, 3], 2, 3);\n\t * // => 1\n\t */\n\t function lastIndexOf(array, value, fromIndex) {\n\t var index = array ? array.length : 0;\n\t if (typeof fromIndex == 'number') {\n\t index = (fromIndex < 0 ? nativeMax(0, index + fromIndex) : nativeMin(fromIndex, index - 1)) + 1;\n\t }\n\t while (index--) {\n\t if (array[index] === value) {\n\t return index;\n\t }\n\t }\n\t return -1;\n\t }\n\t\n\t /**\n\t * Removes all provided values from the given array using strict equality for\n\t * comparisons, i.e. `===`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Arrays\n\t * @param {Array} array The array to modify.\n\t * @param {...*} [value] The values to remove.\n\t * @returns {Array} Returns `array`.\n\t * @example\n\t *\n\t * var array = [1, 2, 3, 1, 2, 3];\n\t * _.pull(array, 2, 3);\n\t * console.log(array);\n\t * // => [1, 1]\n\t */\n\t function pull(array) {\n\t var args = arguments,\n\t argsIndex = 0,\n\t argsLength = args.length,\n\t length = array ? array.length : 0;\n\t\n\t while (++argsIndex < argsLength) {\n\t var index = -1,\n\t value = args[argsIndex];\n\t while (++index < length) {\n\t if (array[index] === value) {\n\t splice.call(array, index--, 1);\n\t length--;\n\t }\n\t }\n\t }\n\t return array;\n\t }\n\t\n\t /**\n\t * Creates an array of numbers (positive and/or negative) progressing from\n\t * `start` up to but not including `end`. If `start` is less than `stop` a\n\t * zero-length range is created unless a negative `step` is specified.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Arrays\n\t * @param {number} [start=0] The start of the range.\n\t * @param {number} end The end of the range.\n\t * @param {number} [step=1] The value to increment or decrement by.\n\t * @returns {Array} Returns a new range array.\n\t * @example\n\t *\n\t * _.range(4);\n\t * // => [0, 1, 2, 3]\n\t *\n\t * _.range(1, 5);\n\t * // => [1, 2, 3, 4]\n\t *\n\t * _.range(0, 20, 5);\n\t * // => [0, 5, 10, 15]\n\t *\n\t * _.range(0, -4, -1);\n\t * // => [0, -1, -2, -3]\n\t *\n\t * _.range(1, 4, 0);\n\t * // => [1, 1, 1]\n\t *\n\t * _.range(0);\n\t * // => []\n\t */\n\t function range(start, end, step) {\n\t start = +start || 0;\n\t step = typeof step == 'number' ? step : (+step || 1);\n\t\n\t if (end == null) {\n\t end = start;\n\t start = 0;\n\t }\n\t // use `Array(length)` so engines like Chakra and V8 avoid slower modes\n\t // http://youtu.be/XAqIpGU8ZZk#t=17m25s\n\t var index = -1,\n\t length = nativeMax(0, ceil((end - start) / (step || 1))),\n\t result = Array(length);\n\t\n\t while (++index < length) {\n\t result[index] = start;\n\t start += step;\n\t }\n\t return result;\n\t }\n\t\n\t /**\n\t * Removes all elements from an array that the callback returns truey for\n\t * and returns an array of removed elements. The callback is bound to `thisArg`\n\t * and invoked with three arguments; (value, index, array).\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Arrays\n\t * @param {Array} array The array to modify.\n\t * @param {Function|Object|string} [callback=identity] The function called\n\t * per iteration. If a property name or object is provided it will be used\n\t * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Array} Returns a new array of removed elements.\n\t * @example\n\t *\n\t * var array = [1, 2, 3, 4, 5, 6];\n\t * var evens = _.remove(array, function(num) { return num % 2 == 0; });\n\t *\n\t * console.log(array);\n\t * // => [1, 3, 5]\n\t *\n\t * console.log(evens);\n\t * // => [2, 4, 6]\n\t */\n\t function remove(array, callback, thisArg) {\n\t var index = -1,\n\t length = array ? array.length : 0,\n\t result = [];\n\t\n\t callback = lodash.createCallback(callback, thisArg, 3);\n\t while (++index < length) {\n\t var value = array[index];\n\t if (callback(value, index, array)) {\n\t result.push(value);\n\t splice.call(array, index--, 1);\n\t length--;\n\t }\n\t }\n\t return result;\n\t }\n\t\n\t /**\n\t * The opposite of `_.initial` this method gets all but the first element or\n\t * first `n` elements of an array. If a callback function is provided elements\n\t * at the beginning of the array are excluded from the result as long as the\n\t * callback returns truey. The callback is bound to `thisArg` and invoked\n\t * with three arguments; (value, index, array).\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @alias drop, tail\n\t * @category Arrays\n\t * @param {Array} array The array to query.\n\t * @param {Function|Object|number|string} [callback=1] The function called\n\t * per element or the number of elements to exclude. If a property name or\n\t * object is provided it will be used to create a \"_.pluck\" or \"_.where\"\n\t * style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Array} Returns a slice of `array`.\n\t * @example\n\t *\n\t * _.rest([1, 2, 3]);\n\t * // => [2, 3]\n\t *\n\t * _.rest([1, 2, 3], 2);\n\t * // => [3]\n\t *\n\t * _.rest([1, 2, 3], function(num) {\n\t * return num < 3;\n\t * });\n\t * // => [3]\n\t *\n\t * var characters = [\n\t * { 'name': 'barney', 'blocked': true, 'employer': 'slate' },\n\t * { 'name': 'fred', 'blocked': false, 'employer': 'slate' },\n\t * { 'name': 'pebbles', 'blocked': true, 'employer': 'na' }\n\t * ];\n\t *\n\t * // using \"_.pluck\" callback shorthand\n\t * _.pluck(_.rest(characters, 'blocked'), 'name');\n\t * // => ['fred', 'pebbles']\n\t *\n\t * // using \"_.where\" callback shorthand\n\t * _.rest(characters, { 'employer': 'slate' });\n\t * // => [{ 'name': 'pebbles', 'blocked': true, 'employer': 'na' }]\n\t */\n\t function rest(array, callback, thisArg) {\n\t if (typeof callback != 'number' && callback != null) {\n\t var n = 0,\n\t index = -1,\n\t length = array ? array.length : 0;\n\t\n\t callback = lodash.createCallback(callback, thisArg, 3);\n\t while (++index < length && callback(array[index], index, array)) {\n\t n++;\n\t }\n\t } else {\n\t n = (callback == null || thisArg) ? 1 : nativeMax(0, callback);\n\t }\n\t return slice(array, n);\n\t }\n\t\n\t /**\n\t * Uses a binary search to determine the smallest index at which a value\n\t * should be inserted into a given sorted array in order to maintain the sort\n\t * order of the array. If a callback is provided it will be executed for\n\t * `value` and each element of `array` to compute their sort ranking. The\n\t * callback is bound to `thisArg` and invoked with one argument; (value).\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Arrays\n\t * @param {Array} array The array to inspect.\n\t * @param {*} value The value to evaluate.\n\t * @param {Function|Object|string} [callback=identity] The function called\n\t * per iteration. If a property name or object is provided it will be used\n\t * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {number} Returns the index at which `value` should be inserted\n\t * into `array`.\n\t * @example\n\t *\n\t * _.sortedIndex([20, 30, 50], 40);\n\t * // => 2\n\t *\n\t * // using \"_.pluck\" callback shorthand\n\t * _.sortedIndex([{ 'x': 20 }, { 'x': 30 }, { 'x': 50 }], { 'x': 40 }, 'x');\n\t * // => 2\n\t *\n\t * var dict = {\n\t * 'wordToNumber': { 'twenty': 20, 'thirty': 30, 'fourty': 40, 'fifty': 50 }\n\t * };\n\t *\n\t * _.sortedIndex(['twenty', 'thirty', 'fifty'], 'fourty', function(word) {\n\t * return dict.wordToNumber[word];\n\t * });\n\t * // => 2\n\t *\n\t * _.sortedIndex(['twenty', 'thirty', 'fifty'], 'fourty', function(word) {\n\t * return this.wordToNumber[word];\n\t * }, dict);\n\t * // => 2\n\t */\n\t function sortedIndex(array, value, callback, thisArg) {\n\t var low = 0,\n\t high = array ? array.length : low;\n\t\n\t // explicitly reference `identity` for better inlining in Firefox\n\t callback = callback ? lodash.createCallback(callback, thisArg, 1) : identity;\n\t value = callback(value);\n\t\n\t while (low < high) {\n\t var mid = (low + high) >>> 1;\n\t (callback(array[mid]) < value)\n\t ? low = mid + 1\n\t : high = mid;\n\t }\n\t return low;\n\t }\n\t\n\t /**\n\t * Creates an array of unique values, in order, of the provided arrays using\n\t * strict equality for comparisons, i.e. `===`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Arrays\n\t * @param {...Array} [array] The arrays to inspect.\n\t * @returns {Array} Returns an array of combined values.\n\t * @example\n\t *\n\t * _.union([1, 2, 3], [5, 2, 1, 4], [2, 1]);\n\t * // => [1, 2, 3, 5, 4]\n\t */\n\t function union() {\n\t return baseUniq(baseFlatten(arguments, true, true));\n\t }\n\t\n\t /**\n\t * Creates a duplicate-value-free version of an array using strict equality\n\t * for comparisons, i.e. `===`. If the array is sorted, providing\n\t * `true` for `isSorted` will use a faster algorithm. If a callback is provided\n\t * each element of `array` is passed through the callback before uniqueness\n\t * is computed. The callback is bound to `thisArg` and invoked with three\n\t * arguments; (value, index, array).\n\t *\n\t * If a property name is provided for `callback` the created \"_.pluck\" style\n\t * callback will return the property value of the given element.\n\t *\n\t * If an object is provided for `callback` the created \"_.where\" style callback\n\t * will return `true` for elements that have the properties of the given object,\n\t * else `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @alias unique\n\t * @category Arrays\n\t * @param {Array} array The array to process.\n\t * @param {boolean} [isSorted=false] A flag to indicate that `array` is sorted.\n\t * @param {Function|Object|string} [callback=identity] The function called\n\t * per iteration. If a property name or object is provided it will be used\n\t * to create a \"_.pluck\" or \"_.where\" style callback, respectively.\n\t * @param {*} [thisArg] The `this` binding of `callback`.\n\t * @returns {Array} Returns a duplicate-value-free array.\n\t * @example\n\t *\n\t * _.uniq([1, 2, 1, 3, 1]);\n\t * // => [1, 2, 3]\n\t *\n\t * _.uniq([1, 1, 2, 2, 3], true);\n\t * // => [1, 2, 3]\n\t *\n\t * _.uniq(['A', 'b', 'C', 'a', 'B', 'c'], function(letter) { return letter.toLowerCase(); });\n\t * // => ['A', 'b', 'C']\n\t *\n\t * _.uniq([1, 2.5, 3, 1.5, 2, 3.5], function(num) { return this.floor(num); }, Math);\n\t * // => [1, 2.5, 3]\n\t *\n\t * // using \"_.pluck\" callback shorthand\n\t * _.uniq([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n\t * // => [{ 'x': 1 }, { 'x': 2 }]\n\t */\n\t function uniq(array, isSorted, callback, thisArg) {\n\t // juggle arguments\n\t if (typeof isSorted != 'boolean' && isSorted != null) {\n\t thisArg = callback;\n\t callback = (typeof isSorted != 'function' && thisArg && thisArg[isSorted] === array) ? null : isSorted;\n\t isSorted = false;\n\t }\n\t if (callback != null) {\n\t callback = lodash.createCallback(callback, thisArg, 3);\n\t }\n\t return baseUniq(array, isSorted, callback);\n\t }\n\t\n\t /**\n\t * Creates an array excluding all provided values using strict equality for\n\t * comparisons, i.e. `===`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Arrays\n\t * @param {Array} array The array to filter.\n\t * @param {...*} [value] The values to exclude.\n\t * @returns {Array} Returns a new array of filtered values.\n\t * @example\n\t *\n\t * _.without([1, 2, 1, 0, 3, 1, 4], 0, 1);\n\t * // => [2, 3, 4]\n\t */\n\t function without(array) {\n\t return baseDifference(array, slice(arguments, 1));\n\t }\n\t\n\t /**\n\t * Creates an array that is the symmetric difference of the provided arrays.\n\t * See http://en.wikipedia.org/wiki/Symmetric_difference.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Arrays\n\t * @param {...Array} [array] The arrays to inspect.\n\t * @returns {Array} Returns an array of values.\n\t * @example\n\t *\n\t * _.xor([1, 2, 3], [5, 2, 1, 4]);\n\t * // => [3, 5, 4]\n\t *\n\t * _.xor([1, 2, 5], [2, 3, 5], [3, 4, 5]);\n\t * // => [1, 4, 5]\n\t */\n\t function xor() {\n\t var index = -1,\n\t length = arguments.length;\n\t\n\t while (++index < length) {\n\t var array = arguments[index];\n\t if (isArray(array) || isArguments(array)) {\n\t var result = result\n\t ? baseUniq(baseDifference(result, array).concat(baseDifference(array, result)))\n\t : array;\n\t }\n\t }\n\t return result || [];\n\t }\n\t\n\t /**\n\t * Creates an array of grouped elements, the first of which contains the first\n\t * elements of the given arrays, the second of which contains the second\n\t * elements of the given arrays, and so on.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @alias unzip\n\t * @category Arrays\n\t * @param {...Array} [array] Arrays to process.\n\t * @returns {Array} Returns a new array of grouped elements.\n\t * @example\n\t *\n\t * _.zip(['fred', 'barney'], [30, 40], [true, false]);\n\t * // => [['fred', 30, true], ['barney', 40, false]]\n\t */\n\t function zip() {\n\t var array = arguments.length > 1 ? arguments : arguments[0],\n\t index = -1,\n\t length = array ? max(pluck(array, 'length')) : 0,\n\t result = Array(length < 0 ? 0 : length);\n\t\n\t while (++index < length) {\n\t result[index] = pluck(array, index);\n\t }\n\t return result;\n\t }\n\t\n\t /**\n\t * Creates an object composed from arrays of `keys` and `values`. Provide\n\t * either a single two dimensional array, i.e. `[[key1, value1], [key2, value2]]`\n\t * or two arrays, one of `keys` and one of corresponding `values`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @alias object\n\t * @category Arrays\n\t * @param {Array} keys The array of keys.\n\t * @param {Array} [values=[]] The array of values.\n\t * @returns {Object} Returns an object composed of the given keys and\n\t * corresponding values.\n\t * @example\n\t *\n\t * _.zipObject(['fred', 'barney'], [30, 40]);\n\t * // => { 'fred': 30, 'barney': 40 }\n\t */\n\t function zipObject(keys, values) {\n\t var index = -1,\n\t length = keys ? keys.length : 0,\n\t result = {};\n\t\n\t if (!values && length && !isArray(keys[0])) {\n\t values = [];\n\t }\n\t while (++index < length) {\n\t var key = keys[index];\n\t if (values) {\n\t result[key] = values[index];\n\t } else if (key) {\n\t result[key[0]] = key[1];\n\t }\n\t }\n\t return result;\n\t }\n\t\n\t /*--------------------------------------------------------------------------*/\n\t\n\t /**\n\t * Creates a function that executes `func`, with the `this` binding and\n\t * arguments of the created function, only after being called `n` times.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Functions\n\t * @param {number} n The number of times the function must be called before\n\t * `func` is executed.\n\t * @param {Function} func The function to restrict.\n\t * @returns {Function} Returns the new restricted function.\n\t * @example\n\t *\n\t * var saves = ['profile', 'settings'];\n\t *\n\t * var done = _.after(saves.length, function() {\n\t * console.log('Done saving!');\n\t * });\n\t *\n\t * _.forEach(saves, function(type) {\n\t * asyncSave({ 'type': type, 'complete': done });\n\t * });\n\t * // => logs 'Done saving!', after all saves have completed\n\t */\n\t function after(n, func) {\n\t if (!isFunction(func)) {\n\t throw new TypeError;\n\t }\n\t return function() {\n\t if (--n < 1) {\n\t return func.apply(this, arguments);\n\t }\n\t };\n\t }\n\t\n\t /**\n\t * Creates a function that, when called, invokes `func` with the `this`\n\t * binding of `thisArg` and prepends any additional `bind` arguments to those\n\t * provided to the bound function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Functions\n\t * @param {Function} func The function to bind.\n\t * @param {*} [thisArg] The `this` binding of `func`.\n\t * @param {...*} [arg] Arguments to be partially applied.\n\t * @returns {Function} Returns the new bound function.\n\t * @example\n\t *\n\t * var func = function(greeting) {\n\t * return greeting + ' ' + this.name;\n\t * };\n\t *\n\t * func = _.bind(func, { 'name': 'fred' }, 'hi');\n\t * func();\n\t * // => 'hi fred'\n\t */\n\t function bind(func, thisArg) {\n\t return arguments.length > 2\n\t ? createWrapper(func, 17, slice(arguments, 2), null, thisArg)\n\t : createWrapper(func, 1, null, null, thisArg);\n\t }\n\t\n\t /**\n\t * Binds methods of an object to the object itself, overwriting the existing\n\t * method. Method names may be specified as individual arguments or as arrays\n\t * of method names. If no method names are provided all the function properties\n\t * of `object` will be bound.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Functions\n\t * @param {Object} object The object to bind and assign the bound methods to.\n\t * @param {...string} [methodName] The object method names to\n\t * bind, specified as individual method names or arrays of method names.\n\t * @returns {Object} Returns `object`.\n\t * @example\n\t *\n\t * var view = {\n\t * 'label': 'docs',\n\t * 'onClick': function() { console.log('clicked ' + this.label); }\n\t * };\n\t *\n\t * _.bindAll(view);\n\t * jQuery('#docs').on('click', view.onClick);\n\t * // => logs 'clicked docs', when the button is clicked\n\t */\n\t function bindAll(object) {\n\t var funcs = arguments.length > 1 ? baseFlatten(arguments, true, false, 1) : functions(object),\n\t index = -1,\n\t length = funcs.length;\n\t\n\t while (++index < length) {\n\t var key = funcs[index];\n\t object[key] = createWrapper(object[key], 1, null, null, object);\n\t }\n\t return object;\n\t }\n\t\n\t /**\n\t * Creates a function that, when called, invokes the method at `object[key]`\n\t * and prepends any additional `bindKey` arguments to those provided to the bound\n\t * function. This method differs from `_.bind` by allowing bound functions to\n\t * reference methods that will be redefined or don't yet exist.\n\t * See http://michaux.ca/articles/lazy-function-definition-pattern.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Functions\n\t * @param {Object} object The object the method belongs to.\n\t * @param {string} key The key of the method.\n\t * @param {...*} [arg] Arguments to be partially applied.\n\t * @returns {Function} Returns the new bound function.\n\t * @example\n\t *\n\t * var object = {\n\t * 'name': 'fred',\n\t * 'greet': function(greeting) {\n\t * return greeting + ' ' + this.name;\n\t * }\n\t * };\n\t *\n\t * var func = _.bindKey(object, 'greet', 'hi');\n\t * func();\n\t * // => 'hi fred'\n\t *\n\t * object.greet = function(greeting) {\n\t * return greeting + 'ya ' + this.name + '!';\n\t * };\n\t *\n\t * func();\n\t * // => 'hiya fred!'\n\t */\n\t function bindKey(object, key) {\n\t return arguments.length > 2\n\t ? createWrapper(key, 19, slice(arguments, 2), null, object)\n\t : createWrapper(key, 3, null, null, object);\n\t }\n\t\n\t /**\n\t * Creates a function that is the composition of the provided functions,\n\t * where each function consumes the return value of the function that follows.\n\t * For example, composing the functions `f()`, `g()`, and `h()` produces `f(g(h()))`.\n\t * Each function is executed with the `this` binding of the composed function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Functions\n\t * @param {...Function} [func] Functions to compose.\n\t * @returns {Function} Returns the new composed function.\n\t * @example\n\t *\n\t * var realNameMap = {\n\t * 'pebbles': 'penelope'\n\t * };\n\t *\n\t * var format = function(name) {\n\t * name = realNameMap[name.toLowerCase()] || name;\n\t * return name.charAt(0).toUpperCase() + name.slice(1).toLowerCase();\n\t * };\n\t *\n\t * var greet = function(formatted) {\n\t * return 'Hiya ' + formatted + '!';\n\t * };\n\t *\n\t * var welcome = _.compose(greet, format);\n\t * welcome('pebbles');\n\t * // => 'Hiya Penelope!'\n\t */\n\t function compose() {\n\t var funcs = arguments,\n\t length = funcs.length;\n\t\n\t while (length--) {\n\t if (!isFunction(funcs[length])) {\n\t throw new TypeError;\n\t }\n\t }\n\t return function() {\n\t var args = arguments,\n\t length = funcs.length;\n\t\n\t while (length--) {\n\t args = [funcs[length].apply(this, args)];\n\t }\n\t return args[0];\n\t };\n\t }\n\t\n\t /**\n\t * Creates a function which accepts one or more arguments of `func` that when\n\t * invoked either executes `func` returning its result, if all `func` arguments\n\t * have been provided, or returns a function that accepts one or more of the\n\t * remaining `func` arguments, and so on. The arity of `func` can be specified\n\t * if `func.length` is not sufficient.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Functions\n\t * @param {Function} func The function to curry.\n\t * @param {number} [arity=func.length] The arity of `func`.\n\t * @returns {Function} Returns the new curried function.\n\t * @example\n\t *\n\t * var curried = _.curry(function(a, b, c) {\n\t * console.log(a + b + c);\n\t * });\n\t *\n\t * curried(1)(2)(3);\n\t * // => 6\n\t *\n\t * curried(1, 2)(3);\n\t * // => 6\n\t *\n\t * curried(1, 2, 3);\n\t * // => 6\n\t */\n\t function curry(func, arity) {\n\t arity = typeof arity == 'number' ? arity : (+arity || func.length);\n\t return createWrapper(func, 4, null, null, null, arity);\n\t }\n\t\n\t /**\n\t * Creates a function that will delay the execution of `func` until after\n\t * `wait` milliseconds have elapsed since the last time it was invoked.\n\t * Provide an options object to indicate that `func` should be invoked on\n\t * the leading and/or trailing edge of the `wait` timeout. Subsequent calls\n\t * to the debounced function will return the result of the last `func` call.\n\t *\n\t * Note: If `leading` and `trailing` options are `true` `func` will be called\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Functions\n\t * @param {Function} func The function to debounce.\n\t * @param {number} wait The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify execution on the leading edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be delayed before it's called.\n\t * @param {boolean} [options.trailing=true] Specify execution on the trailing edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * var lazyLayout = _.debounce(calculateLayout, 150);\n\t * jQuery(window).on('resize', lazyLayout);\n\t *\n\t * // execute `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * });\n\t *\n\t * // ensure `batchLog` is executed once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * source.addEventListener('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }, false);\n\t */\n\t function debounce(func, wait, options) {\n\t var args,\n\t maxTimeoutId,\n\t result,\n\t stamp,\n\t thisArg,\n\t timeoutId,\n\t trailingCall,\n\t lastCalled = 0,\n\t maxWait = false,\n\t trailing = true;\n\t\n\t if (!isFunction(func)) {\n\t throw new TypeError;\n\t }\n\t wait = nativeMax(0, wait) || 0;\n\t if (options === true) {\n\t var leading = true;\n\t trailing = false;\n\t } else if (isObject(options)) {\n\t leading = options.leading;\n\t maxWait = 'maxWait' in options && (nativeMax(wait, options.maxWait) || 0);\n\t trailing = 'trailing' in options ? options.trailing : trailing;\n\t }\n\t var delayed = function() {\n\t var remaining = wait - (now() - stamp);\n\t if (remaining <= 0) {\n\t if (maxTimeoutId) {\n\t clearTimeout(maxTimeoutId);\n\t }\n\t var isCalled = trailingCall;\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t if (isCalled) {\n\t lastCalled = now();\n\t result = func.apply(thisArg, args);\n\t if (!timeoutId && !maxTimeoutId) {\n\t args = thisArg = null;\n\t }\n\t }\n\t } else {\n\t timeoutId = setTimeout(delayed, remaining);\n\t }\n\t };\n\t\n\t var maxDelayed = function() {\n\t if (timeoutId) {\n\t clearTimeout(timeoutId);\n\t }\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t if (trailing || (maxWait !== wait)) {\n\t lastCalled = now();\n\t result = func.apply(thisArg, args);\n\t if (!timeoutId && !maxTimeoutId) {\n\t args = thisArg = null;\n\t }\n\t }\n\t };\n\t\n\t return function() {\n\t args = arguments;\n\t stamp = now();\n\t thisArg = this;\n\t trailingCall = trailing && (timeoutId || !leading);\n\t\n\t if (maxWait === false) {\n\t var leadingCall = leading && !timeoutId;\n\t } else {\n\t if (!maxTimeoutId && !leading) {\n\t lastCalled = stamp;\n\t }\n\t var remaining = maxWait - (stamp - lastCalled),\n\t isCalled = remaining <= 0;\n\t\n\t if (isCalled) {\n\t if (maxTimeoutId) {\n\t maxTimeoutId = clearTimeout(maxTimeoutId);\n\t }\n\t lastCalled = stamp;\n\t result = func.apply(thisArg, args);\n\t }\n\t else if (!maxTimeoutId) {\n\t maxTimeoutId = setTimeout(maxDelayed, remaining);\n\t }\n\t }\n\t if (isCalled && timeoutId) {\n\t timeoutId = clearTimeout(timeoutId);\n\t }\n\t else if (!timeoutId && wait !== maxWait) {\n\t timeoutId = setTimeout(delayed, wait);\n\t }\n\t if (leadingCall) {\n\t isCalled = true;\n\t result = func.apply(thisArg, args);\n\t }\n\t if (isCalled && !timeoutId && !maxTimeoutId) {\n\t args = thisArg = null;\n\t }\n\t return result;\n\t };\n\t }\n\t\n\t /**\n\t * Defers executing the `func` function until the current call stack has cleared.\n\t * Additional arguments will be provided to `func` when it is invoked.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Functions\n\t * @param {Function} func The function to defer.\n\t * @param {...*} [arg] Arguments to invoke the function with.\n\t * @returns {number} Returns the timer id.\n\t * @example\n\t *\n\t * _.defer(function(text) { console.log(text); }, 'deferred');\n\t * // logs 'deferred' after one or more milliseconds\n\t */\n\t function defer(func) {\n\t if (!isFunction(func)) {\n\t throw new TypeError;\n\t }\n\t var args = slice(arguments, 1);\n\t return setTimeout(function() { func.apply(undefined, args); }, 1);\n\t }\n\t\n\t /**\n\t * Executes the `func` function after `wait` milliseconds. Additional arguments\n\t * will be provided to `func` when it is invoked.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Functions\n\t * @param {Function} func The function to delay.\n\t * @param {number} wait The number of milliseconds to delay execution.\n\t * @param {...*} [arg] Arguments to invoke the function with.\n\t * @returns {number} Returns the timer id.\n\t * @example\n\t *\n\t * _.delay(function(text) { console.log(text); }, 1000, 'later');\n\t * // => logs 'later' after one second\n\t */\n\t function delay(func, wait) {\n\t if (!isFunction(func)) {\n\t throw new TypeError;\n\t }\n\t var args = slice(arguments, 2);\n\t return setTimeout(function() { func.apply(undefined, args); }, wait);\n\t }\n\t\n\t /**\n\t * Creates a function that memoizes the result of `func`. If `resolver` is\n\t * provided it will be used to determine the cache key for storing the result\n\t * based on the arguments provided to the memoized function. By default, the\n\t * first argument provided to the memoized function is used as the cache key.\n\t * The `func` is executed with the `this` binding of the memoized function.\n\t * The result cache is exposed as the `cache` property on the memoized function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Functions\n\t * @param {Function} func The function to have its output memoized.\n\t * @param {Function} [resolver] A function used to resolve the cache key.\n\t * @returns {Function} Returns the new memoizing function.\n\t * @example\n\t *\n\t * var fibonacci = _.memoize(function(n) {\n\t * return n < 2 ? n : fibonacci(n - 1) + fibonacci(n - 2);\n\t * });\n\t *\n\t * fibonacci(9)\n\t * // => 34\n\t *\n\t * var data = {\n\t * 'fred': { 'name': 'fred', 'age': 40 },\n\t * 'pebbles': { 'name': 'pebbles', 'age': 1 }\n\t * };\n\t *\n\t * // modifying the result cache\n\t * var get = _.memoize(function(name) { return data[name]; }, _.identity);\n\t * get('pebbles');\n\t * // => { 'name': 'pebbles', 'age': 1 }\n\t *\n\t * get.cache.pebbles.name = 'penelope';\n\t * get('pebbles');\n\t * // => { 'name': 'penelope', 'age': 1 }\n\t */\n\t function memoize(func, resolver) {\n\t if (!isFunction(func)) {\n\t throw new TypeError;\n\t }\n\t var memoized = function() {\n\t var cache = memoized.cache,\n\t key = resolver ? resolver.apply(this, arguments) : keyPrefix + arguments[0];\n\t\n\t return hasOwnProperty.call(cache, key)\n\t ? cache[key]\n\t : (cache[key] = func.apply(this, arguments));\n\t }\n\t memoized.cache = {};\n\t return memoized;\n\t }\n\t\n\t /**\n\t * Creates a function that is restricted to execute `func` once. Repeat calls to\n\t * the function will return the value of the first call. The `func` is executed\n\t * with the `this` binding of the created function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Functions\n\t * @param {Function} func The function to restrict.\n\t * @returns {Function} Returns the new restricted function.\n\t * @example\n\t *\n\t * var initialize = _.once(createApplication);\n\t * initialize();\n\t * initialize();\n\t * // `initialize` executes `createApplication` once\n\t */\n\t function once(func) {\n\t var ran,\n\t result;\n\t\n\t if (!isFunction(func)) {\n\t throw new TypeError;\n\t }\n\t return function() {\n\t if (ran) {\n\t return result;\n\t }\n\t ran = true;\n\t result = func.apply(this, arguments);\n\t\n\t // clear the `func` variable so the function may be garbage collected\n\t func = null;\n\t return result;\n\t };\n\t }\n\t\n\t /**\n\t * Creates a function that, when called, invokes `func` with any additional\n\t * `partial` arguments prepended to those provided to the new function. This\n\t * method is similar to `_.bind` except it does **not** alter the `this` binding.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Functions\n\t * @param {Function} func The function to partially apply arguments to.\n\t * @param {...*} [arg] Arguments to be partially applied.\n\t * @returns {Function} Returns the new partially applied function.\n\t * @example\n\t *\n\t * var greet = function(greeting, name) { return greeting + ' ' + name; };\n\t * var hi = _.partial(greet, 'hi');\n\t * hi('fred');\n\t * // => 'hi fred'\n\t */\n\t function partial(func) {\n\t return createWrapper(func, 16, slice(arguments, 1));\n\t }\n\t\n\t /**\n\t * This method is like `_.partial` except that `partial` arguments are\n\t * appended to those provided to the new function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Functions\n\t * @param {Function} func The function to partially apply arguments to.\n\t * @param {...*} [arg] Arguments to be partially applied.\n\t * @returns {Function} Returns the new partially applied function.\n\t * @example\n\t *\n\t * var defaultsDeep = _.partialRight(_.merge, _.defaults);\n\t *\n\t * var options = {\n\t * 'variable': 'data',\n\t * 'imports': { 'jq': $ }\n\t * };\n\t *\n\t * defaultsDeep(options, _.templateSettings);\n\t *\n\t * options.variable\n\t * // => 'data'\n\t *\n\t * options.imports\n\t * // => { '_': _, 'jq': $ }\n\t */\n\t function partialRight(func) {\n\t return createWrapper(func, 32, null, slice(arguments, 1));\n\t }\n\t\n\t /**\n\t * Creates a function that, when executed, will only call the `func` function\n\t * at most once per every `wait` milliseconds. Provide an options object to\n\t * indicate that `func` should be invoked on the leading and/or trailing edge\n\t * of the `wait` timeout. Subsequent calls to the throttled function will\n\t * return the result of the last `func` call.\n\t *\n\t * Note: If `leading` and `trailing` options are `true` `func` will be called\n\t * on the trailing edge of the timeout only if the the throttled function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Functions\n\t * @param {Function} func The function to throttle.\n\t * @param {number} wait The number of milliseconds to throttle executions to.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=true] Specify execution on the leading edge of the timeout.\n\t * @param {boolean} [options.trailing=true] Specify execution on the trailing edge of the timeout.\n\t * @returns {Function} Returns the new throttled function.\n\t * @example\n\t *\n\t * // avoid excessively updating the position while scrolling\n\t * var throttled = _.throttle(updatePosition, 100);\n\t * jQuery(window).on('scroll', throttled);\n\t *\n\t * // execute `renewToken` when the click event is fired, but not more than once every 5 minutes\n\t * jQuery('.interactive').on('click', _.throttle(renewToken, 300000, {\n\t * 'trailing': false\n\t * }));\n\t */\n\t function throttle(func, wait, options) {\n\t var leading = true,\n\t trailing = true;\n\t\n\t if (!isFunction(func)) {\n\t throw new TypeError;\n\t }\n\t if (options === false) {\n\t leading = false;\n\t } else if (isObject(options)) {\n\t leading = 'leading' in options ? options.leading : leading;\n\t trailing = 'trailing' in options ? options.trailing : trailing;\n\t }\n\t debounceOptions.leading = leading;\n\t debounceOptions.maxWait = wait;\n\t debounceOptions.trailing = trailing;\n\t\n\t return debounce(func, wait, debounceOptions);\n\t }\n\t\n\t /**\n\t * Creates a function that provides `value` to the wrapper function as its\n\t * first argument. Additional arguments provided to the function are appended\n\t * to those provided to the wrapper function. The wrapper is executed with\n\t * the `this` binding of the created function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Functions\n\t * @param {*} value The value to wrap.\n\t * @param {Function} wrapper The wrapper function.\n\t * @returns {Function} Returns the new function.\n\t * @example\n\t *\n\t * var p = _.wrap(_.escape, function(func, text) {\n\t * return '

' + func(text) + '

';\n\t * });\n\t *\n\t * p('Fred, Wilma, & Pebbles');\n\t * // => '

Fred, Wilma, & Pebbles

'\n\t */\n\t function wrap(value, wrapper) {\n\t return createWrapper(wrapper, 16, [value]);\n\t }\n\t\n\t /*--------------------------------------------------------------------------*/\n\t\n\t /**\n\t * Creates a function that returns `value`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Utilities\n\t * @param {*} value The value to return from the new function.\n\t * @returns {Function} Returns the new function.\n\t * @example\n\t *\n\t * var object = { 'name': 'fred' };\n\t * var getter = _.constant(object);\n\t * getter() === object;\n\t * // => true\n\t */\n\t function constant(value) {\n\t return function() {\n\t return value;\n\t };\n\t }\n\t\n\t /**\n\t * Produces a callback bound to an optional `thisArg`. If `func` is a property\n\t * name the created callback will return the property value for a given element.\n\t * If `func` is an object the created callback will return `true` for elements\n\t * that contain the equivalent object properties, otherwise it will return `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Utilities\n\t * @param {*} [func=identity] The value to convert to a callback.\n\t * @param {*} [thisArg] The `this` binding of the created callback.\n\t * @param {number} [argCount] The number of arguments the callback accepts.\n\t * @returns {Function} Returns a callback function.\n\t * @example\n\t *\n\t * var characters = [\n\t * { 'name': 'barney', 'age': 36 },\n\t * { 'name': 'fred', 'age': 40 }\n\t * ];\n\t *\n\t * // wrap to create custom callback shorthands\n\t * _.createCallback = _.wrap(_.createCallback, function(func, callback, thisArg) {\n\t * var match = /^(.+?)__([gl]t)(.+)$/.exec(callback);\n\t * return !match ? func(callback, thisArg) : function(object) {\n\t * return match[2] == 'gt' ? object[match[1]] > match[3] : object[match[1]] < match[3];\n\t * };\n\t * });\n\t *\n\t * _.filter(characters, 'age__gt38');\n\t * // => [{ 'name': 'fred', 'age': 40 }]\n\t */\n\t function createCallback(func, thisArg, argCount) {\n\t var type = typeof func;\n\t if (func == null || type == 'function') {\n\t return baseCreateCallback(func, thisArg, argCount);\n\t }\n\t // handle \"_.pluck\" style callback shorthands\n\t if (type != 'object') {\n\t return property(func);\n\t }\n\t var props = keys(func),\n\t key = props[0],\n\t a = func[key];\n\t\n\t // handle \"_.where\" style callback shorthands\n\t if (props.length == 1 && a === a && !isObject(a)) {\n\t // fast path the common case of providing an object with a single\n\t // property containing a primitive value\n\t return function(object) {\n\t var b = object[key];\n\t return a === b && (a !== 0 || (1 / a == 1 / b));\n\t };\n\t }\n\t return function(object) {\n\t var length = props.length,\n\t result = false;\n\t\n\t while (length--) {\n\t if (!(result = baseIsEqual(object[props[length]], func[props[length]], null, true))) {\n\t break;\n\t }\n\t }\n\t return result;\n\t };\n\t }\n\t\n\t /**\n\t * Converts the characters `&`, `<`, `>`, `\"`, and `'` in `string` to their\n\t * corresponding HTML entities.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Utilities\n\t * @param {string} string The string to escape.\n\t * @returns {string} Returns the escaped string.\n\t * @example\n\t *\n\t * _.escape('Fred, Wilma, & Pebbles');\n\t * // => 'Fred, Wilma, & Pebbles'\n\t */\n\t function escape(string) {\n\t return string == null ? '' : String(string).replace(reUnescapedHtml, escapeHtmlChar);\n\t }\n\t\n\t /**\n\t * This method returns the first argument provided to it.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Utilities\n\t * @param {*} value Any value.\n\t * @returns {*} Returns `value`.\n\t * @example\n\t *\n\t * var object = { 'name': 'fred' };\n\t * _.identity(object) === object;\n\t * // => true\n\t */\n\t function identity(value) {\n\t return value;\n\t }\n\t\n\t /**\n\t * Adds function properties of a source object to the destination object.\n\t * If `object` is a function methods will be added to its prototype as well.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Utilities\n\t * @param {Function|Object} [object=lodash] object The destination object.\n\t * @param {Object} source The object of functions to add.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.chain=true] Specify whether the functions added are chainable.\n\t * @example\n\t *\n\t * function capitalize(string) {\n\t * return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();\n\t * }\n\t *\n\t * _.mixin({ 'capitalize': capitalize });\n\t * _.capitalize('fred');\n\t * // => 'Fred'\n\t *\n\t * _('fred').capitalize().value();\n\t * // => 'Fred'\n\t *\n\t * _.mixin({ 'capitalize': capitalize }, { 'chain': false });\n\t * _('fred').capitalize();\n\t * // => 'Fred'\n\t */\n\t function mixin(object, source, options) {\n\t var chain = true,\n\t methodNames = source && functions(source);\n\t\n\t if (!source || (!options && !methodNames.length)) {\n\t if (options == null) {\n\t options = source;\n\t }\n\t ctor = lodashWrapper;\n\t source = object;\n\t object = lodash;\n\t methodNames = functions(source);\n\t }\n\t if (options === false) {\n\t chain = false;\n\t } else if (isObject(options) && 'chain' in options) {\n\t chain = options.chain;\n\t }\n\t var ctor = object,\n\t isFunc = isFunction(ctor);\n\t\n\t forEach(methodNames, function(methodName) {\n\t var func = object[methodName] = source[methodName];\n\t if (isFunc) {\n\t ctor.prototype[methodName] = function() {\n\t var chainAll = this.__chain__,\n\t value = this.__wrapped__,\n\t args = [value];\n\t\n\t push.apply(args, arguments);\n\t var result = func.apply(object, args);\n\t if (chain || chainAll) {\n\t if (value === result && isObject(result)) {\n\t return this;\n\t }\n\t result = new ctor(result);\n\t result.__chain__ = chainAll;\n\t }\n\t return result;\n\t };\n\t }\n\t });\n\t }\n\t\n\t /**\n\t * Reverts the '_' variable to its previous value and returns a reference to\n\t * the `lodash` function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Utilities\n\t * @returns {Function} Returns the `lodash` function.\n\t * @example\n\t *\n\t * var lodash = _.noConflict();\n\t */\n\t function noConflict() {\n\t context._ = oldDash;\n\t return this;\n\t }\n\t\n\t /**\n\t * A no-operation function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Utilities\n\t * @example\n\t *\n\t * var object = { 'name': 'fred' };\n\t * _.noop(object) === undefined;\n\t * // => true\n\t */\n\t function noop() {\n\t // no operation performed\n\t }\n\t\n\t /**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Utilities\n\t * @example\n\t *\n\t * var stamp = _.now();\n\t * _.defer(function() { console.log(_.now() - stamp); });\n\t * // => logs the number of milliseconds it took for the deferred function to be called\n\t */\n\t var now = isNative(now = Date.now) && now || function() {\n\t return new Date().getTime();\n\t };\n\t\n\t /**\n\t * Converts the given value into an integer of the specified radix.\n\t * If `radix` is `undefined` or `0` a `radix` of `10` is used unless the\n\t * `value` is a hexadecimal, in which case a `radix` of `16` is used.\n\t *\n\t * Note: This method avoids differences in native ES3 and ES5 `parseInt`\n\t * implementations. See http://es5.github.io/#E.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Utilities\n\t * @param {string} value The value to parse.\n\t * @param {number} [radix] The radix used to interpret the value to parse.\n\t * @returns {number} Returns the new integer value.\n\t * @example\n\t *\n\t * _.parseInt('08');\n\t * // => 8\n\t */\n\t var parseInt = nativeParseInt(whitespace + '08') == 8 ? nativeParseInt : function(value, radix) {\n\t // Firefox < 21 and Opera < 15 follow the ES3 specified implementation of `parseInt`\n\t return nativeParseInt(isString(value) ? value.replace(reLeadingSpacesAndZeros, '') : value, radix || 0);\n\t };\n\t\n\t /**\n\t * Creates a \"_.pluck\" style function, which returns the `key` value of a\n\t * given object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Utilities\n\t * @param {string} key The name of the property to retrieve.\n\t * @returns {Function} Returns the new function.\n\t * @example\n\t *\n\t * var characters = [\n\t * { 'name': 'fred', 'age': 40 },\n\t * { 'name': 'barney', 'age': 36 }\n\t * ];\n\t *\n\t * var getName = _.property('name');\n\t *\n\t * _.map(characters, getName);\n\t * // => ['barney', 'fred']\n\t *\n\t * _.sortBy(characters, getName);\n\t * // => [{ 'name': 'barney', 'age': 36 }, { 'name': 'fred', 'age': 40 }]\n\t */\n\t function property(key) {\n\t return function(object) {\n\t return object[key];\n\t };\n\t }\n\t\n\t /**\n\t * Produces a random number between `min` and `max` (inclusive). If only one\n\t * argument is provided a number between `0` and the given number will be\n\t * returned. If `floating` is truey or either `min` or `max` are floats a\n\t * floating-point number will be returned instead of an integer.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Utilities\n\t * @param {number} [min=0] The minimum possible value.\n\t * @param {number} [max=1] The maximum possible value.\n\t * @param {boolean} [floating=false] Specify returning a floating-point number.\n\t * @returns {number} Returns a random number.\n\t * @example\n\t *\n\t * _.random(0, 5);\n\t * // => an integer between 0 and 5\n\t *\n\t * _.random(5);\n\t * // => also an integer between 0 and 5\n\t *\n\t * _.random(5, true);\n\t * // => a floating-point number between 0 and 5\n\t *\n\t * _.random(1.2, 5.2);\n\t * // => a floating-point number between 1.2 and 5.2\n\t */\n\t function random(min, max, floating) {\n\t var noMin = min == null,\n\t noMax = max == null;\n\t\n\t if (floating == null) {\n\t if (typeof min == 'boolean' && noMax) {\n\t floating = min;\n\t min = 1;\n\t }\n\t else if (!noMax && typeof max == 'boolean') {\n\t floating = max;\n\t noMax = true;\n\t }\n\t }\n\t if (noMin && noMax) {\n\t max = 1;\n\t }\n\t min = +min || 0;\n\t if (noMax) {\n\t max = min;\n\t min = 0;\n\t } else {\n\t max = +max || 0;\n\t }\n\t if (floating || min % 1 || max % 1) {\n\t var rand = nativeRandom();\n\t return nativeMin(min + (rand * (max - min + parseFloat('1e-' + ((rand +'').length - 1)))), max);\n\t }\n\t return baseRandom(min, max);\n\t }\n\t\n\t /**\n\t * Resolves the value of property `key` on `object`. If `key` is a function\n\t * it will be invoked with the `this` binding of `object` and its result returned,\n\t * else the property value is returned. If `object` is falsey then `undefined`\n\t * is returned.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Utilities\n\t * @param {Object} object The object to inspect.\n\t * @param {string} key The name of the property to resolve.\n\t * @returns {*} Returns the resolved value.\n\t * @example\n\t *\n\t * var object = {\n\t * 'cheese': 'crumpets',\n\t * 'stuff': function() {\n\t * return 'nonsense';\n\t * }\n\t * };\n\t *\n\t * _.result(object, 'cheese');\n\t * // => 'crumpets'\n\t *\n\t * _.result(object, 'stuff');\n\t * // => 'nonsense'\n\t */\n\t function result(object, key) {\n\t if (object) {\n\t var value = object[key];\n\t return isFunction(value) ? object[key]() : value;\n\t }\n\t }\n\t\n\t /**\n\t * A micro-templating method that handles arbitrary delimiters, preserves\n\t * whitespace, and correctly escapes quotes within interpolated code.\n\t *\n\t * Note: In the development build, `_.template` utilizes sourceURLs for easier\n\t * debugging. See http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl\n\t *\n\t * For more information on precompiling templates see:\n\t * http://lodash.com/custom-builds\n\t *\n\t * For more information on Chrome extension sandboxes see:\n\t * http://developer.chrome.com/stable/extensions/sandboxingEval.html\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Utilities\n\t * @param {string} text The template text.\n\t * @param {Object} data The data object used to populate the text.\n\t * @param {Object} [options] The options object.\n\t * @param {RegExp} [options.escape] The \"escape\" delimiter.\n\t * @param {RegExp} [options.evaluate] The \"evaluate\" delimiter.\n\t * @param {Object} [options.imports] An object to import into the template as local variables.\n\t * @param {RegExp} [options.interpolate] The \"interpolate\" delimiter.\n\t * @param {string} [sourceURL] The sourceURL of the template's compiled source.\n\t * @param {string} [variable] The data object variable name.\n\t * @returns {Function|string} Returns a compiled function when no `data` object\n\t * is given, else it returns the interpolated text.\n\t * @example\n\t *\n\t * // using the \"interpolate\" delimiter to create a compiled template\n\t * var compiled = _.template('hello <%= name %>');\n\t * compiled({ 'name': 'fred' });\n\t * // => 'hello fred'\n\t *\n\t * // using the \"escape\" delimiter to escape HTML in data property values\n\t * _.template('<%- value %>', { 'value': '