Browse files

Remove compiling from `_.functions`, `_.isEmpty`, `_.pairs`, `_.value…

…s`, `_.contains`, `_.find`, `_.invoke`, `_.pluck`, `_.reduce`, and `_.where`.
  • Loading branch information...
1 parent fd78aff commit 113c9447ed064e850c991ef62ef37b77a9ad2b38 @jdalton jdalton committed Oct 13, 2012
Showing with 238 additions and 241 deletions.
  1. +51 −27 build.js
  2. +5 −27 build/pre-compile.js
  3. +118 −120 lodash.js
  4. +35 −35 lodash.min.js
  5. +29 −32 lodash.underscore.min.js
View
78 build.js
@@ -70,8 +70,8 @@
'clone': ['extend', 'forEach', 'forOwn', 'isArguments', 'isPlainObject'],
'compact': [],
'compose': [],
- 'contains': [],
- 'countBy': ['forEach', 'identity'],
+ 'contains': ['some'],
+ 'countBy': ['forEach'],
'debounce': [],
'defaults': ['isArguments'],
'defer': [],
@@ -81,27 +81,27 @@
'every': ['identity'],
'extend': ['isArguments'],
'filter': ['identity'],
- 'find': ['identity'],
+ 'find': ['some'],
'first': [],
'flatten': ['isArray'],
'forEach': ['identity'],
'forIn': ['identity', 'isArguments'],
'forOwn': ['identity', 'isArguments'],
- 'functions': ['isArguments', 'isFunction'],
- 'groupBy': ['forEach', 'identity'],
+ 'functions': ['forIn', 'isFunction'],
+ 'groupBy': ['forEach'],
'has': [],
'identity': [],
'indexOf': ['sortedIndex'],
'initial': [],
'intersection': ['indexOf'],
'invert': [],
- 'invoke': [],
+ 'invoke': ['forEach'],
'isArguments': [],
'isArray': [],
'isBoolean': [],
'isDate': [],
'isElement': [],
- 'isEmpty': ['isArguments', 'isFunction'],
+ 'isEmpty': ['forOwn', 'isArguments', 'isFunction'],
'isEqual': ['isArguments', 'isFunction'],
'isFinite': [],
'isFunction': [],
@@ -125,36 +125,36 @@
'mixin': ['forEach', 'functions'],
'noConflict': [],
'object': [],
- 'omit': ['forIn', 'indexOf', 'isArguments'],
+ 'omit': ['forIn', 'indexOf'],
'once': [],
- 'pairs': [],
+ 'pairs': ['forOwn'],
'partial': ['isFunction'],
'pick': ['forIn'],
- 'pluck': [],
+ 'pluck': ['forEach'],
'random': [],
'range': [],
- 'reduce': ['identity'],
+ 'reduce': ['forEach'],
'reduceRight': ['forEach', 'keys'],
'reject': ['identity'],
'rest': [],
'result': ['isFunction'],
'shuffle': ['forEach'],
'size': ['keys'],
'some': ['identity'],
- 'sortBy': ['forEach', 'identity'],
+ 'sortBy': ['forEach'],
'sortedIndex': ['identity'],
'tap': ['mixin'],
'template': ['escape'],
'throttle': [],
'times': [],
- 'toArray': ['isFunction', 'values'],
+ 'toArray': ['values'],
'unescape': [],
'union': ['indexOf'],
'uniq': ['identity', 'indexOf'],
'uniqueId': [],
'value': ['mixin'],
- 'values': ['isArguments'],
- 'where': ['forIn'],
+ 'values': ['forOwn'],
+ 'where': ['forEach', 'forIn'],
'without': ['indexOf'],
'wrap': [],
'zip': ['max', 'pluck']
@@ -676,9 +676,9 @@
return removeVar(source, 'isKeysFast')
// remove optimized branch in `iteratorTemplate`
.replace(/(?: *\/\/.*\n)* *'( *)<% *if *\(isKeysFast[\s\S]+?'\1<% *} *else *\{ *%>.+\n([\s\S]+?) *'\1<% *} *%>.+/, "'\\n' +\n$2")
- // remove `isKeysFast` from `beforeLoop.object` of `mapIteratorOptions`
+ // remove `isKeysFast` from `beforeLoop.object` of `_.map`
.replace(/=\s*'\s*\+\s*\(isKeysFast.+/, "= []'")
- // remove `isKeysFast` from `inLoop.object` of `mapIteratorOptions`, `invoke`, `pairs`, `pluck`, and `sortBy`
+ // remove `isKeysFast` from `inLoop.object` of `_.map`
.replace(/'\s*\+\s*\(isKeysFast[^)]+?\)\s*\+\s*'/g, '.push')
// remove data object property assignment in `createIterator`
.replace(/ *'isKeysFast':.+\n/, '');
@@ -948,6 +948,11 @@
// flag used to specify replacing Lo-Dash's `_.clone` with Underscore's
var useUnderscoreClone = isUnderscore;
+ // flags used to specify exposing Lo-Dash methods in an Underscore build
+ var exposeForIn = !isUnderscore,
+ exposeForOwn = !isUnderscore,
+ exposeIsPlainObject = !isUnderscore;
+
/*------------------------------------------------------------------------*/
// names of methods to include in the build
@@ -972,11 +977,13 @@
(result = getDependencies(optionToMethodsArray(source, value)));
});
- // use Lo-Dash's clone if explicitly requested
- if (result && result.indexOf('clone') > -1) {
- useUnderscoreClone = false;
+ // include Lo-Dash's methods if explicitly requested
+ if (result) {
+ exposeForIn = result.indexOf('forIn') > -1;
+ exposeForOwn = result.indexOf('forOwn') > -1;
+ exposeIsPlainObject = result.indexOf('isPlainObject') > -1;
+ useUnderscoreClone = result.indexOf('clone') < 0;
}
-
// add method names required by Backbone and Underscore builds
if (isBackbone && !result) {
result = getDependencies(backboneDependencies);
@@ -1123,7 +1130,7 @@
].join('\n'));
// replace `arrayLikeClasses` in `_.isEmpty`
- source = source.replace(/'if *\(arrayLikeClasses[\s\S]+?' \|\|\\n/, "'if (isArray(value) || className == stringClass ||");
+ source = source.replace(/if *\(\(arrayLikeClasses.+?noArgsClass.+/, 'if (isArray(value) || className == stringClass ||');
// replace `arrayLikeClasses` in `_.isEqual`
source = source.replace(/(?: *\/\/.*\n)*( +)var isArr *= *arrayLikeClasses[^}]+}/, '$1var isArr = isArray(a);');
@@ -1248,11 +1255,22 @@
});
if (isUnderscore) {
- // remove "compiled template cleanup" from `_.template`
- source = source.replace(/(?:\s*\/\/.*)*\n *source *=.+?isEvaluating.+?reEmptyStringLeading[\s\S]+?\);/, '');
- source = removeVar(source, 'reEmptyStringLeading');
- source = removeVar(source, 'reEmptyStringMiddle');
- source = removeVar(source, 'reEmptyStringTrailing');
+ // remove `_.forIn`, `_.forOwn`, and `_.isPlainObject` assignments
+ (function() {
+ var snippet = getMethodAssignments(source),
+ modified = snippet;
+
+ if (!exposeForIn) {
+ modified = modified.replace(/(?:\n *\/\/.*\s*)* *lodash\.forIn *= *.+\n/, '');
+ }
+ if (!exposeForOwn) {
+ modified = modified.replace(/(?:\n *\/\/.*\s*)* *lodash\.forOwn *= *.+\n/, '');
+ }
+ if (!exposeIsPlainObject) {
+ modified = modified.replace(/(?:\n *\/\/.*\s*)* *lodash\.isPlainObject *= *.+\n/, '');
+ }
+ source = source.replace(snippet, modified);
+ }());
// replace `isArguments` and its fallback
(function() {
@@ -1267,6 +1285,12 @@
.replace(/\bnoArgsClass\b/g, '!lodash.isArguments(arguments)');
});
}());
+
+ // remove "compiled template cleanup" from `_.template`
+ source = source.replace(/(?:\s*\/\/.*)*\n *source *=.+?isEvaluating.+?reEmptyStringLeading[\s\S]+?\);/, '');
+ source = removeVar(source, 'reEmptyStringLeading');
+ source = removeVar(source, 'reEmptyStringMiddle');
+ source = removeVar(source, 'reEmptyStringTrailing');
}
else {
source = removeIsArgumentsFallback(source);
View
32 build/pre-compile.js
@@ -21,37 +21,20 @@
'object',
'ownIndex',
'ownProps',
- 'prop',
'propertyIsEnumerable',
- 'propIndex',
- 'props',
'result',
'skipProto',
- 'slice',
'stringClass',
'thisArg',
'toString',
- 'undefined',
'value',
// lesser used variables
- 'args',
- 'arrayLikeClasses',
'bind',
- 'className',
- 'forIn',
'funcs',
'isArguments',
- 'isFunc',
'isFunction',
- 'methodName',
- 'objectClass',
- 'objectTypes',
- 'pass',
- 'properties',
- 'property',
- 'propsLength',
- 'target'
+ 'objectTypes'
];
/** Used to minify `compileIterator` option properties */
@@ -290,10 +273,10 @@
// remove debug sourceURL use in `_.template`
source = source.replace(/(?:\s*\/\/.*\n)* *var sourceURL[^;]+;|\+ *sourceURL/g, '');
- // minify internal properties used by 'compareAscending', `_.merge`, and `_.sortBy`
+ // minify internal properties used by 'compareAscending' and `_.sortBy`
(function() {
var properties = ['criteria', 'index', 'value'],
- snippets = source.match(/( +)function (?:compareAscending|merge|sortBy)\b[\s\S]+?\n\1}/g);
+ snippets = source.match(/( +)function (?:compareAscending|sortBy)\b[\s\S]+?\n\1}/g);
if (!snippets) {
return;
@@ -309,13 +292,8 @@
modified = modified
.replace(reBracketProp, "['" + minNames[index] + "']")
- .replace(reDotProp, '.' + minNames[index])
- .replace(rePropColon, "$1'" + minNames[index] + "':")
-
- // correct `value.source` in regexp branch of `_.clone`
- if (property == 'source') {
- modified = modified.replace("value['" + minNames[index] + "']", "value['source']");
- }
+ .replace(reDotProp, "['" + minNames[index] + "']")
+ .replace(rePropColon, "$1'" + minNames[index] + "':");
});
// replace with modified snippet
View
238 lodash.js
@@ -425,8 +425,8 @@
);
/**
- * Reusable iterator options shared by `every`, `filter`,
- * `find`, `forEach`, `forIn`, `forOwn`, `map`, `reject`, and `some`.
+ * Reusable iterator options shared by `every`, `filter`, forEach`, `forIn`,
+ * `forOwn`, `map`, `reject`, and `some`.
*/
var baseIteratorOptions = {
'args': 'collection, callback, thisArg',
@@ -452,13 +452,13 @@
'bottom': ' }\n}'
};
- /** Reusable iterator options for `filter`, `reject`, and `where` */
+ /** Reusable iterator options for `filter` and `reject` */
var filterIteratorOptions = {
'init': '[]',
'inLoop': 'callback(value, index, collection) && result.push(value)'
};
- /** Reusable iterator options for `find`, `forEach`, `forIn`, and `forOwn` */
+ /** Reusable iterator options for `forEach`, `forIn`, and `forOwn` */
var forEachIteratorOptions = {
'top': 'callback = createCallback(callback, thisArg)'
};
@@ -470,19 +470,6 @@
}
};
- /** Reusable iterator options for `invoke`, `map`, and `pluck` */
- var mapIteratorOptions = {
- 'init': 'collection || []',
- 'beforeLoop': {
- 'array': 'result = Array(length)',
- 'object': 'result = ' + (isKeysFast ? 'Array(length)' : '[]')
- },
- 'inLoop': {
- 'array': 'result[index] = callback(value, index, collection)',
- 'object': 'result' + (isKeysFast ? '[ownIndex] = ' : '.push') + '(callback(value, index, collection))'
- }
- };
-
/*--------------------------------------------------------------------------*/
/**
@@ -701,16 +688,14 @@
}
// create the function factory
var factory = Function(
- 'arrayLikeClasses, bind, createCallback, forIn, hasOwnProperty, isArguments, ' +
- 'isFunction, objectClass, objectTypes, nativeKeys, propertyIsEnumerable, ' +
- 'slice, stringClass, toString, undefined',
+ 'bind, createCallback, forIn, hasOwnProperty, isArguments, isFunction, ' +
+ 'objectTypes, nativeKeys, propertyIsEnumerable, stringClass, toString',
'return function(' + args + ') {\n' + iteratorTemplate(data) + '\n}'
);
// return the compiled function
return factory(
- arrayLikeClasses, bind, createCallback, forIn, hasOwnProperty, isArguments,
- isFunction, objectClass, objectTypes, nativeKeys, propertyIsEnumerable,
- slice, stringClass, toString
+ bind, createCallback, forIn, hasOwnProperty, isArguments, isFunction,
+ objectTypes, nativeKeys, propertyIsEnumerable, stringClass, toString
);
}
@@ -1171,13 +1156,15 @@
* _.functions(_);
* // => ['all', 'any', 'bind', 'bindAll', 'clone', 'compact', 'compose', ...]
*/
- var functions = createIterator({
- 'useHas': false,
- 'args': 'object',
- 'init': '[]',
- 'inLoop': 'isFunction(value) && result.push(index)',
- 'bottom': 'result.sort()'
- });
+ function functions(object) {
+ var result = [];
+ forIn(object, function(value, key) {
+ if (isFunction(value)) {
+ result.push(key);
+ }
+ });
+ return result.sort();
+ }
/**
* Checks if the specified object `property` exists and is a direct property,
@@ -1270,21 +1257,23 @@
* _.isEmpty('');
* // => true
*/
- var isEmpty = createIterator({
- 'args': 'value',
- 'init': 'true',
- 'top':
- 'var className = toString.call(value),\n' +
- ' length = value.length;\n' +
- 'if (arrayLikeClasses[className]' +
- (noArgsClass ? ' || isArguments(value)' : '') + ' ||\n' +
- ' (className == objectClass && length === +length &&\n' +
- ' isFunction(value.splice))' +
- ') return !length',
- 'inLoop': {
- 'object': 'return false'
+ function isEmpty(value) {
+ var result = true;
+ if (!value) {
+ return result;
}
- });
+ var className = toString.call(value),
+ length = value.length;
+
+ if ((arrayLikeClasses[className] || (noArgsClass && isArguments(value))) ||
+ (className == objectClass && length === +length && isFunction(value.splice))) {
+ return !length;
+ }
+ forOwn(value, function() {
+ return (result = false);
+ });
+ return result;
+ }
/**
* Performs a deep comparison between two values to determine if they are
@@ -1778,11 +1767,13 @@
* _.pairs({ 'moe': 30, 'larry': 40, 'curly': 50 });
* // => [['moe', 30], ['larry', 40], ['curly', 50]] (order is not guaranteed)
*/
- var pairs = createIterator({
- 'args': 'object',
- 'init':'[]',
- 'inLoop': 'result' + (isKeysFast ? '[ownIndex] = ' : '.push') + '([index, value])'
- });
+ function pairs(object) {
+ var result = [];
+ forOwn(object, function(value, key) {
+ result.push([key, value]);
+ });
+ return result;
+ }
/**
* Creates a shallow clone of `object` composed of the specified properties.
@@ -1846,11 +1837,13 @@
* _.values({ 'one': 1, 'two': 2, 'three': 3 });
* // => [1, 2, 3]
*/
- var values = createIterator({
- 'args': 'object',
- 'init': '[]',
- 'inLoop': 'result.push(value)'
- });
+ function values(object) {
+ var result = [];
+ forOwn(object, function(value) {
+ result.push(value);
+ });
+ return result;
+ }
/*--------------------------------------------------------------------------*/
@@ -1876,15 +1869,11 @@
* _.contains('curly', 'ur');
* // => true
*/
- var contains = createIterator({
- 'args': 'collection, target',
- 'init': 'false',
- 'noCharByIndex': false,
- 'beforeLoop': {
- 'array': 'if (toString.call(collection) == stringClass) return collection.indexOf(target) > -1'
- },
- 'inLoop': 'if (value === target) return true'
- });
+ function contains(collection, target) {
+ return toString.call(collection) == stringClass
+ ? collection.indexOf(target) > -1
+ : some(collection, function(value) { return value === target; });
+ }
/**
* Creates an object composed of keys returned from running each element of
@@ -1983,10 +1972,14 @@
* var even = _.find([1, 2, 3, 4, 5, 6], function(num) { return num % 2 == 0; });
* // => 2
*/
- var find = createIterator(baseIteratorOptions, forEachIteratorOptions, {
- 'init': 'undefined',
- 'inLoop': 'if (callback(value, index, collection)) return value'
- });
+ function find(collection, callback, thisArg) {
+ var result;
+ callback = createCallback(callback, thisArg);
+ some(collection, function(value, index, collection) {
+ return callback(value, index, collection) && (result = value, true);
+ });
+ return result;
+ }
/**
* Iterates over a `collection`, executing the `callback` for each element in
@@ -2070,19 +2063,16 @@
* _.invoke([123, 456], String.prototype.split, '');
* // => [['1', '2', '3'], ['4', '5', '6']]
*/
- var invoke = createIterator(mapIteratorOptions, {
- 'args': 'collection, methodName',
- 'top':
- 'var args = slice.call(arguments, 2),\n' +
- ' isFunc = typeof methodName == \'function\'',
- 'inLoop': {
- 'array':
- 'result[index] = (isFunc ? methodName : value[methodName]).apply(value, args)',
- 'object':
- 'result' + (isKeysFast ? '[ownIndex] = ' : '.push') +
- '((isFunc ? methodName : value[methodName]).apply(value, args))'
- }
- });
+ function invoke(collection, methodName) {
+ var args = slice.call(arguments, 2),
+ isFunc = typeof methodName == 'function',
+ result = [];
+
+ forEach(collection, function(value) {
+ result.push((isFunc ? methodName : value[methodName]).apply(value, args));
+ });
+ return result;
+ }
/**
* Creates an array of values by running each element in the `collection`
@@ -2105,7 +2095,17 @@
* _.map({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { return num * 3; });
* // => [3, 6, 9] (order is not guaranteed)
*/
- var map = createIterator(baseIteratorOptions, mapIteratorOptions);
+ var map = createIterator(baseIteratorOptions, {
+ 'init': 'collection || []',
+ 'beforeLoop': {
+ 'array': 'result = Array(length)',
+ 'object': 'result = ' + (isKeysFast ? 'Array(length)' : '[]')
+ },
+ 'inLoop': {
+ 'array': 'result[index] = callback(value, index, collection)',
+ 'object': 'result' + (isKeysFast ? '[ownIndex] = ' : '.push') + '(callback(value, index, collection))'
+ }
+ });
/**
* Retrieves the maximum value of an `array`. If `callback` is passed,
@@ -2220,13 +2220,13 @@
* _.pluck(stooges, 'name');
* // => ['moe', 'larry', 'curly']
*/
- var pluck = createIterator(mapIteratorOptions, {
- 'args': 'collection, property',
- 'inLoop': {
- 'array': 'result[index] = value[property]',
- 'object': 'result' + (isKeysFast ? '[ownIndex] = ' : '.push') + '(value[property])'
- }
- });
+ function pluck(collection, property) {
+ var result = [];
+ forEach(collection, function(value) {
+ result.push(value[property]);
+ });
+ return result;
+ }
/**
* Boils down a `collection` to a single value. The initial state of the
@@ -2248,24 +2248,16 @@
* var sum = _.reduce([1, 2, 3], function(memo, num) { return memo + num; });
* // => 6
*/
- var reduce = createIterator({
- 'args': 'collection, callback, accumulator, thisArg',
- 'init': 'accumulator',
- 'top':
- 'var noaccum = arguments.length < 3;\n' +
- 'callback = createCallback(callback, thisArg)',
- 'beforeLoop': {
- 'array': 'if (noaccum) result = iteratee[++index]'
- },
- 'inLoop': {
- 'array':
- 'result = callback(result, value, index, collection)',
- 'object':
- 'result = noaccum\n' +
- ' ? (noaccum = false, value)\n' +
- ' : callback(result, value, index, collection)'
- }
- });
+ function reduce(collection, callback, accumulator, thisArg) {
+ var noaccum = arguments.length < 3;
+ callback = createCallback(callback, thisArg);
+ forEach(collection, function(value, index, collection) {
+ accumulator = noaccum
+ ? (noaccum = false, value)
+ : callback(accumulator, value, index, collection)
+ });
+ return accumulator;
+ }
/**
* The right-associative version of `_.reduce`.
@@ -2430,7 +2422,6 @@
function sortBy(collection, callback, thisArg) {
var result = [];
callback = createCallback(callback, thisArg);
-
forEach(collection, function(value, index, collection) {
result.push({
'criteria': callback(value, index, collection),
@@ -2494,19 +2485,26 @@
* _.where(stooges, { 'age': 40 });
* // => [{ 'name': 'moe', 'age': 40 }]
*/
- var where = createIterator(filterIteratorOptions, {
- 'args': 'collection, properties',
- 'top':
- 'var props = [];\n' +
- 'forIn(properties, function(value, prop) { props.push(prop) });\n' +
- 'var propsLength = props.length',
- 'inLoop':
- 'for (var pass = true, propIndex = 0; propIndex < propsLength; propIndex++) {\n' +
- ' var prop = props[propIndex];\n' +
- ' if (!(pass = value[prop] === properties[prop])) break\n' +
- '}\n' +
- 'pass && result.push(value)'
- });
+ function where(collection, properties) {
+ var props = [];
+ forIn(properties, function(value, prop) { props.push(prop); });
+
+ var propsLength = props.length,
+ result = [];
+
+ forEach(collection, function(value) {
+ for (var pass = true, propIndex = 0; propIndex < propsLength; propIndex++) {
+ var prop = props[propIndex];
+ if (!(pass = value[prop] === properties[prop])) {
+ break;
+ }
+ }
+ if (pass) {
+ result.push(value);
+ }
+ });
+ return result;
+ }
/*--------------------------------------------------------------------------*/
View
70 lodash.min.js
@@ -2,38 +2,38 @@
Lo-Dash 0.8.2 lodash.com/license
Underscore.js 1.4.2 underscorejs.org/LICENSE
*/
-;(function(e,t){function s(e){if(e&&e.__wrapped__)return e;if(!(this instanceof s))return new s(e);this.__wrapped__=e}function o(e,t,n){t||(t=0);var r=e.length,i=r-t>=(n||H),s=i?{}:e;if(i)for(n=t-1;++n<r;){var o=e[n]+"";(Z.call(s,o)?s[o]:s[o]=[]).push(e[n])}return function(e){if(i){var n=e+"";return Z.call(s,n)&&-1<T(s[n],e)}return-1<T(s,e,t)}}function u(e,n){var r=e.b,i=n.b,e=e.a,n=n.a;if(e!==n){if(e>n||e===t)return 1;if(e<n||n===t)return-1}return r<i?-1:1}function a(e,t,n){function r(){var u=arguments
-,a=s?this:t;return i||(e=t[o]),n.length&&(u=u.length?n.concat(nt.call(u)):n),this instanceof r?(p.prototype=e.prototype,a=new p,(u=e.apply(a,u))&&Ht[typeof u]?u:a):e.apply(a,u)}var i=m(e),s=!n,o=e;return s&&(n=t),r}function f(e,n){return e?"function"!=typeof e?function(t){return t[e]}:n!==t?function(t,r,i){return e.call(n,t,r,i)}:e:A}function l(){for(var e={e:"",g:Et,i:"",j:Mt,m:Tt,n:kt,o:J,p:"",q:n,r:_t,c:{d:""},l:{d:""}},t,i=-1;t=arguments[++i];)for(var s in t){var o=t[s];/d|h/.test(s)?("string"==typeof
-o&&(o={b:o,k:o}),e.c[s]=o.b,e.l[s]=o.k):e[s]=o}t=e.a;if("d"!=(e.f=/^[^,]+/.exec(t)[0])||!e.c.h)e.c=r;i="",e.r&&(i+="'use strict';"),i+="var i,A,j="+e.f+",t="+(e.i||e.f)+";if(!"+e.f+")return t;"+e.p+";",e.c&&(i+="var k=j.length;i=-1;",e.l&&(i+="if(k===+k){"),e.n&&(i+="if(y.call(j)==w){j=j.split('')}"),i+=e.c.d+";while(++i<k){A=j[i];"+e.c.h+"}",e.l&&(i+="}"));if(e.l){e.c?i+="else {":e.m&&(i+="var k=j.length;i=-1;if(k&&O(j)){while(++i<k){A=j[i+=''];"+e.l.h+"}}else {"),e.g||(i+="var u=typeof j=='function'&&q.call(j,'prototype');"
-);if(e.j&&e.q)i+="var n=-1,o=Y[typeof j]?l(j):[],k=o.length;"+e.l.d+";while(++n<k){i=o[n];",e.g||(i+="if(!(u&&i=='prototype')){"),i+="A=j[i];"+e.l.h+"",e.g||(i+="}");else{i+=e.l.d+";for(i in j){";if(!e.g||e.q)i+="if(",e.g||(i+="!(u&&i=='prototype')"),!e.g&&e.q&&(i+="&&"),e.q&&(i+="h.call(j,i)"),i+="){";i+="A=j[i];"+e.l.h+";";if(!e.g||e.q)i+="}"}i+="}";if(e.g){i+="var g=j.constructor;";for(s=0;7>s;s++)i+="i='"+e.o[s]+"';if(","constructor"==e.o[s]&&(i+="!(g&&g.prototype===j)&&"),i+="h.call(j,i)){A=j[i];"+
-e.l.h+"}"}if(e.c||e.m)i+="}"}return i+=e.e+";return t",Function("D,E,F,I,e,f,J,h,M,O,Q,S,T,X,Y,l,q,v,w,y,z","var G=function("+t+"){"+i+"};return G")(Dt,_,L,u,Q,f,en,Z,T,v,$t,m,Jt,mt,Ht,ut,tt,nt,yt,rt)}function c(e){return"\\"+Bt[e]}function h(e){return Qt[e]}function p(){}function d(e){return Gt[e]}function v(e){return rt.call(e)==ct}function m(e){return"function"==typeof e}function g(e){var t=i;if(!e||"object"!=typeof e||v(e))return t;var n=e.constructor;return(!Lt||"function"==typeof e.toString||"string"!=typeof
-(e+""))&&(!m(n)||n instanceof n)?xt?(en(e,function(e,n,r){return t=!Z.call(r,n),i}),t===i):(en(e,function(e,n){t=n}),t===i||Z.call(e,t)):t}function y(e,t,n,s,o){if(e==r)return e;n&&(t=i);if(n=Ht[typeof e]){var u=rt.call(e);if(!Pt[u]||Nt&&v(e))return e;var a=u==ht,n=a||(u==mt?Jt(e):n)}if(!n||!t)return n?a?nt.call(e):Zt({},e):e;n=e.constructor;switch(u){case pt:case dt:return new n(+e);case vt:case yt:return new n(e);case gt:return n(e.source,U.exec(e))}s||(s=[]),o||(o=[]);for(u=s.length;u--;)if(s[
-u]==e)return o[u];var f=a?n(e.length):{};return s.push(e),o.push(f),(a?mn:tn)(e,function(e,n){f[n]=y(e,t,r,s,o)}),f}function b(e,t,s,o){if(e==r||t==r)return e===t;if(e===t)return 0!==e||1/e==1/t;if(Ht[typeof e]||Ht[typeof t])e=e.__wrapped__||e,t=t.__wrapped__||t;var u=rt.call(e);if(u!=rt.call(t))return i;switch(u){case pt:case dt:return+e==+t;case vt:return e!=+e?t!=+t:0==e?1/e==1/t:e==+t;case gt:case yt:return e==t+""}var a=Dt[u];if(Nt&&!a&&(a=v(e))&&!v(t)||!a&&(u!=mt||Lt&&("function"!=typeof e.
-toString&&"string"==typeof (e+"")||"function"!=typeof t.toString&&"string"==typeof (t+""))))return i;s||(s=[]),o||(o=[]);for(u=s.length;u--;)if(s[u]==e)return o[u]==t;var u=-1,f=n,l=0;s.push(e),o.push(t);if(a){l=e.length;if(f=l==t.length)for(;l--&&(f=b(e[l],t[l],s,o)););return f}a=e.constructor,f=t.constructor;if(a!=f&&(!m(a)||!(a instanceof a&&m(f)&&f instanceof f)))return i;for(var c in e)if(Z.call(e,c)&&(l++,!Z.call(t,c)||!b(e[c],t[c],s,o)))return i;for(c in t)if(Z.call(t,c)&&!(l--))return i;if(
-Et)for(;7>++u;)if(c=J[u],Z.call(e,c)&&(!Z.call(t,c)||!b(e[c],t[c],s,o)))return i;return n}function w(e,t,n){var r=-Infinity,i=-1,s=e?e.length:0,o=r;if(t||s!==+s)t=f(t,n),mn(e,function(e,n,i){n=t(e,n,i),n>r&&(r=n,o=e)});else for(;++i<s;)e[i]>o&&(o=e[i]);return o}function E(e,t,n,r){var s=e,o=e?e.length:0,u=3>arguments.length;if(o!==+o)var a=sn(e),o=a.length;else kt&&rt.call(e)==yt&&(s=e.split(""));return mn(e,function(e,f,l){f=a?a[--o]:--o,n=u?(u=i,s[f]):t.call(r,n,s[f],f,l)}),n}function S(e,t,n){
-if(e)return t==r||n?e[0]:nt.call(e,0,t)}function x(e,t){for(var n=-1,r=e?e.length:0,i=[];++n<r;){var s=e[n];$t(s)?et.apply(i,t?s:x(s)):i.push(s)}return i}function T(e,t,n){var r=-1,i=e?e.length:0;if("number"==typeof n)r=(0>n?at(0,i+n):n||0)-1;else if(n)return r=C(e,t),e[r]===t?r:-1;for(;++r<i;)if(e[r]===t)return r;return-1}function N(e,t,n){return e?nt.call(e,t==r||n?1:t):[]}function C(e,t,n,r){var i=0,s=e?e.length:i;if(n){n=f(n,r);for(t=n(t);i<s;)r=i+s>>>1,n(e[r])<t?i=r+1:s=r}else for(;i<s;)r=i+
-s>>>1,e[r]<t?i=r+1:s=r;return i}function k(e,t,n,r){var s=-1,o=e?e.length:0,u=[],a=[];"function"==typeof t&&(r=n,n=t,t=i);for(n=f(n,r);++s<o;)if(r=n(e[s],s,e),t?!s||a[a.length-1]!==r:0>T(a,r))a.push(r),u.push(e[s]);return u}function L(e,t){return Ot||it&&2<arguments.length?it.call.apply(it,arguments):a(e,t,nt.call(arguments,2))}function A(e){return e}function O(e){mn(nn(e),function(t){var r=s[t]=e[t];s.prototype[t]=function(){var e=[this.__wrapped__];return arguments.length&&et.apply(e,arguments)
-,e=r.apply(s,e),this.__chain__&&(e=new s(e),e.__chain__=n),e}})}var n=!0,r=null,i=!1,M="object"==typeof exports&&exports&&("object"==typeof global&&global&&global==global.global&&(e=global),exports),_=Array.prototype,D=Object.prototype,P=0,H=30,B=e._,j=/[-?+=!~*%&^<>|{(\/]|\[\D|\b(?:delete|in|instanceof|new|typeof|void)\b/,F=/&(?:amp|lt|gt|quot|#x27);/g,I=/\b__p\+='';/g,q=/\b(__p\+=)''\+/g,R=/(__e\(.*?\)|\b__t\))\+'';/g,U=/\w*$/,z=/(?:__e|__t=)\(\s*(?![\d\s"']|this\.)/g,W=RegExp("^"+(D.valueOf+""
-).replace(/[.*+?^=!:${}()|[\]\/\\]/g,"\\$&").replace(/valueOf|for [^\]]+/g,".+?")+"$"),X=/($^)/,V=/[&<>"']/g,$=/['\n\r\t\u2028\u2029\\]/g,J="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),K=Math.ceil,Q=_.concat,G=Math.floor,Y=W.test(Y=Object.getPrototypeOf)&&Y,Z=D.hasOwnProperty,et=_.push,tt=D.propertyIsEnumerable,nt=_.slice,rt=D.toString,it=W.test(it=nt.bind)&&it,st=W.test(st=Array.isArray)&&st,ot=e.isFinite,ut=W.test(ut=Object.keys)&&ut
-,at=Math.max,ft=Math.min,lt=Math.random,ct="[object Arguments]",ht="[object Array]",pt="[object Boolean]",dt="[object Date]",vt="[object Number]",mt="[object Object]",gt="[object RegExp]",yt="[object String]",bt=e.clearTimeout,wt=e.setTimeout,Et,St,xt,Tt=n;(function(){function e(){this.x=1}var t={0:1,length:1},n=[];e.prototype={valueOf:1,y:1};for(var r in new e)n.push(r);for(r in arguments)Tt=!r;Et=4>(n+"").length,xt="x"!=n[0],St=(n.splice.call(t,0,1),t[0])})(1);var Nt=!v(arguments),Ct="x"!=nt.call("x"
-)[0],kt="xx"!="x"[0]+Object("x")[0];try{var Lt=("[object Object]",rt.call(e.document||0)==mt)}catch(At){}var Ot=it&&/\n|Opera/.test(it+rt.call(e.opera)),Mt=ut&&/^.+$|true/.test(ut+!!e.attachEvent),_t=!Ot,Dt={};Dt[pt]=Dt[dt]=Dt["[object Function]"]=Dt[vt]=Dt[mt]=Dt[gt]=i,Dt[ct]=Dt[ht]=Dt[yt]=n;var Pt={};Pt[ct]=Pt["[object Function]"]=i,Pt[ht]=Pt[pt]=Pt[dt]=Pt[vt]=Pt[mt]=Pt[gt]=Pt[yt]=n;var Ht={"boolean":i,"function":n,object:n,number:i,string:i,"undefined":i,unknown:n},Bt={"\\":"\\","'":"'","\n":"n"
-,"\r":"r"," ":"t","\u2028":"u2028","\u2029":"u2029"};s.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,variable:""};var jt={a:"d,c,x",p:"c=f(c,x)",h:"if(c(A,i,d)===false)return t"},Ft={i:"{}",p:"c=f(c,x)",h:"var p=c(A,i,d);(h.call(t,p)?t[p]++:t[p]=1)"},It={i:"true",h:"if(!c(A,i,d))return!t"},qt={q:i,r:i,a:"m",p:"for(var a=1,b=arguments.length;a<b;a++){if(j=arguments[a]){",h:"t[i]=A",e:"}}"},Rt={i:"[]",h:"c(A,i,d)&&t.push(A)"},Ut={p:"c=f(c,x)"}
-,zt={h:{k:jt.h}},Wt={i:"d||[]",d:{b:"t=Array(k)",k:"t="+(Mt?"Array(k)":"[]")},h:{b:"t[i]=c(A,i,d)",k:"t"+(Mt?"[n]=":".push")+"(c(A,i,d))"}},Xt={q:i,a:"m,c,x",i:"{}",p:"var R=typeof c=='function';if(R)c=f(c,x);else var s=e.apply(E,arguments)",h:"if(R?!c(A,i,m):M(s,i)<0)t[i]=A"},Vt=l({a:"m",i:"{}",h:"t[A]=i"});Nt&&(v=function(e){return e?Z.call(e,"callee"):i});var $t=st||function(e){return rt.call(e)==ht};m(/x/)&&(m=function(e){return"[object Function]"==rt.call(e)});var Jt=Y?function(e){if(!e||"object"!=typeof
-e)return i;var t=e.valueOf,n="function"==typeof t&&(n=Y(t))&&Y(n);return n?e==n||Y(e)==n&&!v(e):g(e)}:g,Kt=l({a:"m",i:"[]",h:"t.push(i)"}),Qt={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;"},Gt=Vt(Qt),Yt=l(qt,{h:"if(t[i]==null)"+qt.h}),Zt=l(qt),en=l(jt,Ut,zt,{q:i}),tn=l(jt,Ut,zt),nn=l({q:i,a:"m",i:"[]",h:"S(A)&&t.push(i)",e:"t.sort()"}),rn=l({a:"A",i:"true",p:"var H=y.call(A),k=A.length;if(D[H]"+(Nt?"||O(A)":"")+"||(H==X&&k===+k&&S(A.splice)))return!k",h:{k:"return false"}}),sn=ut?function(
-e){var t=typeof e;return"function"==t&&tt.call(e,"prototype")?Kt(e):e&&Ht[t]?ut(e):[]}:Kt,on=l(qt,{a:"m,dd,N",p:"var P,C=arguments,a=0;if(N==I){var b=2,ee=C[3],ff=C[4]}else var b=C.length,ee=[],ff=[];while(++a<b){if(j=C[a]){",h:"if((dd=A)&&((P=Q(dd))||T(dd))){var K=false,gg=ee.length;while(gg--)if(K=ee[gg]==dd)break;if(K){t[i]=ff[gg]}else {ee.push(dd);ff.push(A=(A=t[i],P)?(Q(A)?A:[]):(T(A)?A:{}));t[i]=G(A,dd,I,ee,ff)}}else if(dd!=null)t[i]=dd"}),un=l(Xt),an=l({a:"m",i:"[]",h:"t"+(Mt?"[n]=":".push"
-)+"([i,A])"}),fn=l(Xt,{p:"if(typeof c!='function'){var i=0,s=e.apply(E,arguments),k=s.length;while(++i<k){var p=s[i];if(p in m)t[p]=m[p]}}else {c=f(c,x)",h:"if(c(A,i,m))t[i]=A",e:"}"}),ln=l({a:"m",i:"[]",h:"t.push(A)"}),cn=l({a:"d,hh",i:"false",n:i,d:{b:"if(y.call(d)==w)return d.indexOf(hh)>-1"},h:"if(A===hh)return true"}),hn=l(jt,Ft),pn=l(jt,It),dn=l(jt,Rt),vn=l(jt,Ut,{i:"z",h:"if(c(A,i,d))return A"}),mn=l(jt,Ut),gn=l(jt,Ft,{h:"var p=c(A,i,d);(h.call(t,p)?t[p]:t[p]=[]).push(A)"}),yn=l(Wt,{a:"d,U"
-,p:"var C=v.call(arguments,2),R=typeof U=='function'",h:{b:"t[i]=(R?U:A[U]).apply(A,C)",k:"t"+(Mt?"[n]=":".push")+"((R?U:A[U]).apply(A,C))"}}),bn=l(jt,Wt),wn=l(Wt,{a:"d,bb",h:{b:"t[i]=A[bb]",k:"t"+(Mt?"[n]=":".push")+"(A[bb])"}}),En=l({a:"d,c,B,x",i:"B",p:"var V=arguments.length<3;c=f(c,x)",d:{b:"if(V)t=j[++i]"},h:{b:"t=c(t,A,i,d)",k:"t=V?(V=false,A):c(t,A,i,d)"}}),Sn=l(jt,Rt,{h:"!"+Rt.h}),xn=l(jt,It,{i:"false",h:It.h.replace("!","")}),Tn=l(jt,Ft,Wt,{h:{b:"t[i]={a:c(A,i,d),b:i,c:A}",k:"t"+(Mt?"[n]="
-:".push")+"({a:c(A,i,d),b:i,c:A})"},e:"t.sort(I);k=t.length;while(k--)t[k]=t[k].c"}),Nn=l(Rt,{a:"d,aa",p:"var s=[];J(aa,function(A,p){s.push(p)});var cc=s.length",h:"for(var Z=true,r=0;r<cc;r++){var p=s[r];if(!(Z=A[p]===aa[p]))break}Z&&t.push(A)"}),Cn=l({q:i,r:i,a:"m",p:"var L=arguments,i=0,k=L.length;if(k>1){while(++i<k)t[L[i]]=F(t[L[i]],t);return t}",h:"if(S(A))t[i]=F(A,t)"});s.VERSION="0.8.2",s.after=function(e,t){return 1>e?t():function(){if(1>--e)return t.apply(this,arguments)}},s.bind=L,s.bindAll=
-Cn,s.chain=function(e){return e=new s(e),e.__chain__=n,e},s.clone=y,s.compact=function(e){for(var t=-1,n=e?e.length:0,r=[];++t<n;){var i=e[t];i&&r.push(i)}return r},s.compose=function(){var e=arguments;return function(){for(var t=arguments,n=e.length;n--;)t=[e[n].apply(this,t)];return t[0]}},s.contains=cn,s.countBy=hn,s.debounce=function(e,t,n){function i(){a=r,n||(o=e.apply(u,s))}var s,o,u,a;return function(){var r=n&&!a;return s=arguments,u=this,bt(a),a=wt(i,t),r&&(o=e.apply(u,s)),o}},s.defaults=
-Yt,s.defer=function(e){var n=nt.call(arguments,1);return wt(function(){return e.apply(t,n)},1)},s.delay=function(e,n){var r=nt.call(arguments,2);return wt(function(){return e.apply(t,r)},n)},s.difference=function(e){var t=[];if(!e)return t;for(var n=-1,r=e.length,i=Q.apply(_,arguments),i=o(i,r);++n<r;){var s=e[n];i(s)||t.push(s)}return t},s.escape=function(e){return e==r?"":(e+"").replace(V,h)},s.every=pn,s.extend=Zt,s.filter=dn,s.find=vn,s.first=S,s.flatten=x,s.forEach=mn,s.forIn=en,s.forOwn=tn,
-s.functions=nn,s.groupBy=gn,s.has=function(e,t){return e?Z.call(e,t):i},s.identity=A,s.indexOf=T,s.initial=function(e,t,n){return e?nt.call(e,0,-(t==r||n?1:t)):[]},s.intersection=function(e){var t=arguments.length,n=[],r=-1,i=e?e.length:0,s=[];e:for(;++r<i;){var u=e[r];if(0>T(s,u)){for(var a=1;a<t;a++)if(!(n[a]||(n[a]=o(arguments[a])))(u))continue e;s.push(u)}}return s},s.invert=Vt,s.invoke=yn,s.isArguments=v,s.isArray=$t,s.isBoolean=function(e){return e===n||e===i||rt.call(e)==pt},s.isDate=function(
-e){return rt.call(e)==dt},s.isElement=function(e){return e?1===e.nodeType:i},s.isEmpty=rn,s.isEqual=b,s.isFinite=function(e){return ot(e)&&rt.call(e)==vt},s.isFunction=m,s.isNaN=function(e){return rt.call(e)==vt&&e!=+e},s.isNull=function(e){return e===r},s.isNumber=function(e){return rt.call(e)==vt},s.isObject=function(e){return e?Ht[typeof e]:i},s.isPlainObject=Jt,s.isRegExp=function(e){return rt.call(e)==gt},s.isString=function(e){return rt.call(e)==yt},s.isUndefined=function(e){return e===t},s
-.keys=sn,s.last=function(e,t,n){if(e){var i=e.length;return t==r||n?e[i-1]:nt.call(e,-t||i)}},s.lastIndexOf=function(e,t,n){var r=e?e.length:0;for("number"==typeof n&&(r=(0>n?at(0,r+n):ft(n,r-1))+1);r--;)if(e[r]===t)return r;return-1},s.lateBind=function(e,t){return a(t,e,nt.call(arguments,2))},s.map=bn,s.max=w,s.memoize=function(e,t){var n={};return function(){var r=t?t.apply(this,arguments):arguments[0];return Z.call(n,r)?n[r]:n[r]=e.apply(this,arguments)}},s.merge=on,s.min=function(e,t,n){var r=
-Infinity,i=-1,s=e?e.length:0,o=r;if(t||s!==+s)t=f(t,n),mn(e,function(e,n,i){n=t(e,n,i),n<r&&(r=n,o=e)});else for(;++i<s;)e[i]<o&&(o=e[i]);return o},s.mixin=O,s.noConflict=function(){return e._=B,this},s.object=function(e,t){for(var n=-1,r=e?e.length:0,i={};++n<r;){var s=e[n];t?i[s]=t[n]:i[s[0]]=s[1]}return i},s.omit=un,s.once=function(e){var t,s=i;return function(){return s?t:(s=n,t=e.apply(this,arguments),e=r,t)}},s.pairs=an,s.partial=function(e){return a(e,nt.call(arguments,1))},s.pick=fn,s.pluck=
-wn,s.random=function(e,t){return e==r&&t==r&&(t=1),e=+e||0,t==r&&(t=e,e=0),e+G(lt()*((+t||0)-e+1))},s.range=function(e,t,n){e=+e||0,n=+n||1,t==r&&(t=e,e=0);for(var i=-1,t=at(0,K((t-e)/n)),s=Array(t);++i<t;)s[i]=e,e+=n;return s},s.reduce=En,s.reduceRight=E,s.reject=Sn,s.rest=N,s.result=function(e,t){var n=e?e[t]:r;return m(n)?e[t]():n},s.shuffle=function(e){var t=-1,n=Array(e?e.length:0);return mn(e,function(e){var r=G(lt()*(++t+1));n[t]=n[r],n[r]=e}),n},s.size=function(e){var t=e?e.length:0;return t===+
-t?t:sn(e).length},s.some=xn,s.sortBy=Tn,s.sortedIndex=C,s.tap=function(e,t){return t(e),e},s.template=function(e,t,n){e||(e=""),n||(n={});var r,i,o=0,u=s.templateSettings,a="__p += '",f=n.variable||u.variable,l=f;e.replace(RegExp((n.escape||u.escape||X).source+"|"+(n.interpolate||u.interpolate||X).source+"|"+(n.evaluate||u.evaluate||X).source+"|$","g"),function(t,n,i,s,u){a+=e.slice(o,u).replace($,c),a+=n?"'+__e("+n+")+'":s?"';"+s+";__p+='":i?"'+((__t=("+i+"))==null?'':__t)+'":"",r||(r=s||j.test(
-n||i)),o=u+t.length}),a+="';",l||(f="obj",r?a="with("+f+"){"+a+"}":(n=RegExp("(\\(\\s*)"+f+"\\."+f+"\\b","g"),a=a.replace(z,"$&"+f+".").replace(n,"$1__d"))),a=(r?a.replace(I,""):a).replace(q,"$1").replace(R,"$1;"),a="function("+f+"){"+(l?"":f+"||("+f+"={});")+"var __t,__p='',__e=_.escape"+(r?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":(l?"":",__d="+f+"."+f+"||"+f)+";")+a+"return __p}";try{i=Function("_","return "+a)(s)}catch(h){throw h.source=a,h}return t?i(t):(i.source=
-a,i)},s.throttle=function(e,t){function n(){a=new Date,u=r,s=e.apply(o,i)}var i,s,o,u,a=0;return function(){var r=new Date,f=t-(r-a);return i=arguments,o=this,0>=f?(bt(u),a=r,s=e.apply(o,i)):u||(u=wt(n,f)),s}},s.times=function(e,t,n){for(var e=+e||0,r=-1,i=Array(e);++r<e;)i[r]=t.call(n,r);return i},s.toArray=function(e){if(!e)return[];var t=e.length;return t===+t?(Ct?rt.call(e)==yt:"string"==typeof e)?e.split(""):nt.call(e):ln(e)},s.unescape=function(e){return e==r?"":(e+"").replace(F,d)},s.union=
-function(){for(var e=-1,t=Q.apply(_,arguments),n=t.length,r=[];++e<n;){var i=t[e];0>T(r,i)&&r.push(i)}return r},s.uniq=k,s.uniqueId=function(e){var t=P++;return e?e+t:t},s.values=ln,s.where=Nn,s.without=function(e){for(var t=-1,n=e?e.length:0,r=o(arguments,1,20),i=[];++t<n;){var s=e[t];r(s)||i.push(s)}return i},s.wrap=function(e,t){return function(){var n=[e];return arguments.length&&et.apply(n,arguments),t.apply(this,n)}},s.zip=function(e){for(var t=-1,n=e?w(wn(arguments,"length")):0,r=Array(n);++
-t<n;)r[t]=wn(arguments,t);return r},s.all=pn,s.any=xn,s.collect=bn,s.detect=vn,s.drop=N,s.each=mn,s.foldl=En,s.foldr=E,s.head=S,s.include=cn,s.inject=En,s.methods=nn,s.select=dn,s.tail=N,s.take=S,s.unique=k,O(s),s.prototype.chain=function(){return this.__chain__=n,this},s.prototype.value=function(){return this.__wrapped__},mn("pop push reverse shift sort splice unshift".split(" "),function(e){var t=_[e];s.prototype[e]=function(){var e=this.__wrapped__;return t.apply(e,arguments),St&&e.length===0&&delete
-e[0],this.__chain__&&(e=new s(e),e.__chain__=n),e}}),mn(["concat","join","slice"],function(e){var t=_[e];s.prototype[e]=function(){var e=t.apply(this.__wrapped__,arguments);return this.__chain__&&(e=new s(e),e.__chain__=n),e}}),typeof define=="function"&&typeof define.amd=="object"&&define.amd?(e._=s,define(function(){return s})):M?"object"==typeof module&&module&&module.exports==M?(module.exports=s)._=s:M._=s:e._=s})(this);
+;(function(e,t){function s(e){if(e&&e.__wrapped__)return e;if(!(this instanceof s))return new s(e);this.__wrapped__=e}function o(e,t,n){t||(t=0);var r=e.length,i=r-t>=(n||U),s=i?{}:e;if(i)for(n=t-1;++n<r;){var o=e[n]+"";(ot.call(s,o)?s[o]:s[o]=[]).push(e[n])}return function(e){if(i){var n=e+"";return ot.call(s,n)&&-1<M(s[n],e)}return-1<M(s,e,t)}}function u(e,n){var r=e.b,i=n.b,e=e.a,n=n.a;if(e!==n){if(e>n||e===t)return 1;if(e<n||n===t)return-1}return r<i?-1:1}function a(e,t,n){function r(){var u=arguments
+,a=s?this:t;return i||(e=t[o]),n.length&&(u=u.length?n.concat(ft.call(u)):n),this instanceof r?(p.prototype=e.prototype,a=new p,(u=e.apply(a,u))&&Ut[typeof u]?u:a):e.apply(a,u)}var i=m(e),s=!n,o=e;return s&&(n=t),r}function f(e,n){return e?"function"!=typeof e?function(t){return t[e]}:n!==t?function(t,r,i){return e.call(n,t,r,i)}:e:B}function l(){for(var e={e:"",g:Lt,i:"",j:Ft,m:Mt,n:Pt,o:tt,p:"",q:n,r:It,c:{d:""},l:{d:""}},t,i=-1;t=arguments[++i];)for(var s in t){var o=t[s];/d|h/.test(s)?("string"==typeof
+o&&(o={b:o,k:o}),e.c[s]=o.b,e.l[s]=o.k):e[s]=o}t=e.a;if("d"!=(e.f=/^[^,]+/.exec(t)[0])||!e.c.h)e.c=r;i="",e.r&&(i+="'use strict';"),i+="var h,u,i="+e.f+",p="+(e.i||e.f)+";if(!"+e.f+")return p;"+e.p+";",e.c&&(i+="var j=i.length;h=-1;",e.l&&(i+="if(j===+j){"),e.n&&(i+="if(t.call(i)==r){i=i.split('')}"),i+=e.c.d+";while(++h<j){u=i[h];"+e.c.h+"}",e.l&&(i+="}"));if(e.l){e.c?i+="else {":e.m&&(i+="var j=i.length;h=-1;if(j&&x(i)){while(++h<j){u=i[h+=''];"+e.l.h+"}}else {"),e.g||(i+="var q=typeof i=='function'&&o.call(i,'prototype');"
+);if(e.j&&e.q)i+="var m=-1,n=z[typeof i]?k(i):[],j=n.length;"+e.l.d+";while(++m<j){h=n[m];",e.g||(i+="if(!(q&&h=='prototype')){"),i+="u=i[h];"+e.l.h+"",e.g||(i+="}");else{i+=e.l.d+";for(h in i){";if(!e.g||e.q)i+="if(",e.g||(i+="!(q&&h=='prototype')"),!e.g&&e.q&&(i+="&&"),e.q&&(i+="g.call(i,h)"),i+="){";i+="u=i[h];"+e.l.h+";";if(!e.g||e.q)i+="}"}i+="}";if(e.g){i+="var f=i.constructor;";for(s=0;7>s;s++)i+="h='"+e.o[s]+"';if(","constructor"==e.o[s]&&(i+="!(f&&f.prototype===i)&&"),i+="g.call(i,h)){u=i[h];"+
+e.l.h+"}"}if(e.c||e.m)i+="}"}return i+=e.e+";return p",Function("v,e,forIn,g,x,y,z,k,o,r,t","return function("+t+"){"+i+"}")(H,f,sn,ot,v,m,Ut,dt,at,Nt,lt)}function c(e){return"\\"+zt[e]}function h(e){return en[e]}function p(){}function d(e){return tn[e]}function v(e){return lt.call(e)==yt}function m(e){return"function"==typeof e}function g(e){var t=i;if(!e||"object"!=typeof e||v(e))return t;var n=e.constructor;return(!Ht||"function"==typeof e.toString||"string"!=typeof (e+""))&&(!m(n)||n instanceof
+n)?Ot?(sn(e,function(e,n,r){return t=!ot.call(r,n),i}),t===i):(sn(e,function(e,n){t=n}),t===i||ot.call(e,t)):t}function y(e,t,n,s,o){if(e==r)return e;n&&(t=i);if(n=Ut[typeof e]){var u=lt.call(e);if(!Rt[u]||_t&&v(e))return e;var a=u==bt,n=a||(u==xt?Yt(e):n)}if(!n||!t)return n?a?ft.call(e):rn({},e):e;n=e.constructor;switch(u){case wt:case Et:return new n(+e);case St:case Nt:return new n(e);case Tt:return n(e.source,K.exec(e))}s||(s=[]),o||(o=[]);for(u=s.length;u--;)if(s[u]==e)return o[u];var f=a?n(
+e.length):{};return s.push(e),o.push(f),(a?ln:on)(e,function(e,n){f[n]=y(e,t,r,s,o)}),f}function b(e){var t=[];return sn(e,function(e,n){m(e)&&t.push(n)}),t.sort()}function w(e,t,s,o){if(e==r||t==r)return e===t;if(e===t)return 0!==e||1/e==1/t;if(Ut[typeof e]||Ut[typeof t])e=e.__wrapped__||e,t=t.__wrapped__||t;var u=lt.call(e);if(u!=lt.call(t))return i;switch(u){case wt:case Et:return+e==+t;case St:return e!=+e?t!=+t:0==e?1/e==1/t:e==+t;case Tt:case Nt:return e==t+""}var a=qt[u];if(_t&&!a&&(a=v(e)
+)&&!v(t)||!a&&(u!=xt||Ht&&("function"!=typeof e.toString&&"string"==typeof (e+"")||"function"!=typeof t.toString&&"string"==typeof (t+""))))return i;s||(s=[]),o||(o=[]);for(u=s.length;u--;)if(s[u]==e)return o[u]==t;var u=-1,f=n,l=0;s.push(e),o.push(t);if(a){l=e.length;if(f=l==t.length)for(;l--&&(f=w(e[l],t[l],s,o)););return f}a=e.constructor,f=t.constructor;if(a!=f&&(!m(a)||!(a instanceof a&&m(f)&&f instanceof f)))return i;for(var c in e)if(ot.call(e,c)&&(l++,!ot.call(t,c)||!w(e[c],t[c],s,o)))return i
+;for(c in t)if(ot.call(t,c)&&!(l--))return i;if(Lt)for(;7>++u;)if(c=tt[u],ot.call(e,c)&&(!ot.call(t,c)||!w(e[c],t[c],s,o)))return i;return n}function E(e,t,n){var s=arguments,o=0,a=2,f=s[3],l=s[4];n!=u&&(a=s.length,f=[],l=[]);for(;++o<a;)on(s[o],function(t,n){var s,o;if(t&&((s=Gt(t))||Yt(t))){for(var a=i,c=f.length;c--;)if(a=f[c]==t)break;a?e[n]=l[c]:(f.push(t),l.push(o=(o=e[n],s)?Gt(o)?o:[]:Yt(o)?o:{}),e[n]=E(o,t,u,f,l))}else t!=r&&(e[n]=t)});return e}function S(e){var t=[];return on(e,function(
+e){t.push(e)}),t}function x(e,t){return lt.call(e)==Nt?-1<e.indexOf(t):pn(e,function(e){return e===t})}function T(e,t,r){var i,t=f(t,r);return pn(e,function(e,r,s){return t(e,r,s)&&(i=e,n)}),i}function N(e,t,n){var r=-Infinity,i=-1,s=e?e.length:0,o=r;if(t||s!==+s)t=f(t,n),ln(e,function(e,n,i){n=t(e,n,i),n>r&&(r=n,o=e)});else for(;++i<s;)e[i]>o&&(o=e[i]);return o}function C(e,t){var n=[];return ln(e,function(e){n.push(e[t])}),n}function k(e,t,n,r){var s=3>arguments.length,t=f(t,r);return ln(e,function(
+e,r,o){n=s?(s=i,e):t(n,e,r,o)}),n}function L(e,t,n,r){var s=e,o=e?e.length:0,u=3>arguments.length;if(o!==+o)var a=un(e),o=a.length;else Pt&&lt.call(e)==Nt&&(s=e.split(""));return ln(e,function(e,f,l){f=a?a[--o]:--o,n=u?(u=i,s[f]):t.call(r,n,s[f],f,l)}),n}function A(e,t,n){if(e)return t==r||n?e[0]:ft.call(e,0,t)}function O(e,t){for(var n=-1,r=e?e.length:0,i=[];++n<r;){var s=e[n];Gt(s)?ut.apply(i,t?s:O(s)):i.push(s)}return i}function M(e,t,n){var r=-1,i=e?e.length:0;if("number"==typeof n)r=(0>n?vt(0
+,i+n):n||0)-1;else if(n)return r=D(e,t),e[r]===t?r:-1;for(;++r<i;)if(e[r]===t)return r;return-1}function _(e,t,n){return e?ft.call(e,t==r||n?1:t):[]}function D(e,t,n,r){var i=0,s=e?e.length:i;if(n){n=f(n,r);for(t=n(t);i<s;)r=i+s>>>1,n(e[r])<t?i=r+1:s=r}else for(;i<s;)r=i+s>>>1,e[r]<t?i=r+1:s=r;return i}function P(e,t,n,r){var s=-1,o=e?e.length:0,u=[],a=[];"function"==typeof t&&(r=n,n=t,t=i);for(n=f(n,r);++s<o;)if(r=n(e[s],s,e),t?!s||a[a.length-1]!==r:0>M(a,r))a.push(r),u.push(e[s]);return u}function H
+(e,t){return jt||ct&&2<arguments.length?ct.call.apply(ct,arguments):a(e,t,ft.call(arguments,2))}function B(e){return e}function j(e){ln(b(e),function(t){var r=s[t]=e[t];s.prototype[t]=function(){var e=[this.__wrapped__];return arguments.length&&ut.apply(e,arguments),e=r.apply(s,e),this.__chain__&&(e=new s(e),e.__chain__=n),e}})}var n=!0,r=null,i=!1,F="object"==typeof exports&&exports&&("object"==typeof global&&global&&global==global.global&&(e=global),exports),I=Array.prototype,q=Object.prototype
+,R=0,U=30,z=e._,W=/[-?+=!~*%&^<>|{(\/]|\[\D|\b(?:delete|in|instanceof|new|typeof|void)\b/,X=/&(?:amp|lt|gt|quot|#x27);/g,V=/\b__p\+='';/g,$=/\b(__p\+=)''\+/g,J=/(__e\(.*?\)|\b__t\))\+'';/g,K=/\w*$/,Q=/(?:__e|__t=)\(\s*(?![\d\s"']|this\.)/g,G=RegExp("^"+(q.valueOf+"").replace(/[.*+?^=!:${}()|[\]\/\\]/g,"\\$&").replace(/valueOf|for [^\]]+/g,".+?")+"$"),Y=/($^)/,Z=/[&<>"']/g,et=/['\n\r\t\u2028\u2029\\]/g,tt="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf"
+.split(" "),nt=Math.ceil,rt=I.concat,it=Math.floor,st=G.test(st=Object.getPrototypeOf)&&st,ot=q.hasOwnProperty,ut=I.push,at=q.propertyIsEnumerable,ft=I.slice,lt=q.toString,ct=G.test(ct=ft.bind)&&ct,ht=G.test(ht=Array.isArray)&&ht,pt=e.isFinite,dt=G.test(dt=Object.keys)&&dt,vt=Math.max,mt=Math.min,gt=Math.random,yt="[object Arguments]",bt="[object Array]",wt="[object Boolean]",Et="[object Date]",St="[object Number]",xt="[object Object]",Tt="[object RegExp]",Nt="[object String]",Ct=e.clearTimeout,kt=
+e.setTimeout,Lt,At,Ot,Mt=n;(function(){function e(){this.x=1}var t={0:1,length:1},n=[];e.prototype={valueOf:1,y:1};for(var r in new e)n.push(r);for(r in arguments)Mt=!r;Lt=4>(n+"").length,Ot="x"!=n[0],At=(n.splice.call(t,0,1),t[0])})(1);var _t=!v(arguments),Dt="x"!=ft.call("x")[0],Pt="xx"!="x"[0]+Object("x")[0];try{var Ht=("[object Object]",lt.call(e.document||0)==xt)}catch(Bt){}var jt=ct&&/\n|Opera/.test(ct+lt.call(e.opera)),Ft=dt&&/^.+$|true/.test(dt+!!e.attachEvent),It=!jt,qt={};qt[wt]=qt[Et]=qt["[object Function]"
+]=qt[St]=qt[xt]=qt[Tt]=i,qt[yt]=qt[bt]=qt[Nt]=n;var Rt={};Rt[yt]=Rt["[object Function]"]=i,Rt[bt]=Rt[wt]=Rt[Et]=Rt[St]=Rt[xt]=Rt[Tt]=Rt[Nt]=n;var Ut={"boolean":i,"function":n,object:n,number:i,string:i,"undefined":i,unknown:n},zt={"\\":"\\","'":"'","\n":"n","\r":"r"," ":"t","\u2028":"u2028","\u2029":"u2029"};s.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,variable:""};var Wt={a:"d,c,s",p:"c=e(c,s)",h:"if(c(u,h,d)===false)return p"},Xt={i:"true"
+,h:"if(!c(u,h,d))return!p"},Vt={q:i,r:i,a:"l",p:"for(var a=1,b=arguments.length;a<b;a++){if(i=arguments[a]){",h:"p[h]=u",e:"}}"},$t={i:"[]",h:"c(u,h,d)&&p.push(u)"},Jt={p:"c=e(c,s)"},Kt={h:{k:Wt.h}},Qt=l({a:"l",i:"{}",h:"p[u]=h"});_t&&(v=function(e){return e?ot.call(e,"callee"):i});var Gt=ht||function(e){return lt.call(e)==bt};m(/x/)&&(m=function(e){return"[object Function]"==lt.call(e)});var Yt=st?function(e){if(!e||"object"!=typeof e)return i;var t=e.valueOf,n="function"==typeof t&&(n=st(t))&&st
+(n);return n?e==n||st(e)==n&&!v(e):g(e)}:g,Zt=l({a:"l",i:"[]",h:"p.push(h)"}),en={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;"},tn=Qt(en),nn=l(Vt,{h:"if(p[h]==null)"+Vt.h}),rn=l(Vt),sn=l(Wt,Jt,Kt,{q:i}),on=l(Wt,Jt,Kt),un=dt?function(e){var t=typeof e;return"function"==t&&at.call(e,"prototype")?Zt(e):e&&Ut[t]?dt(e):[]}:Zt,an=l(Wt,Xt),fn=l(Wt,$t),ln=l(Wt,Jt),cn=l(Wt,{i:"d||[]",d:{b:"p=Array(j)",k:"p="+(Ft?"Array(j)":"[]")},h:{b:"p[h]=c(u,h,d)",k:"p"+(Ft?"[m]=":".push")+"(c(u,h,d))"}}
+),hn=l(Wt,$t,{h:"!"+$t.h}),pn=l(Wt,Xt,{i:"false",h:Xt.h.replace("!","")}),dn=l({q:i,r:i,a:"l",p:"var w=arguments,h=0,j=w.length;if(j>1){while(++h<j)p[w[h]]=v(p[w[h]],p);return p}",h:"if(y(u))p[h]=v(u,p)"});s.VERSION="0.8.2",s.after=function(e,t){return 1>e?t():function(){if(1>--e)return t.apply(this,arguments)}},s.bind=H,s.bindAll=dn,s.chain=function(e){return e=new s(e),e.__chain__=n,e},s.clone=y,s.compact=function(e){for(var t=-1,n=e?e.length:0,r=[];++t<n;){var i=e[t];i&&r.push(i)}return r},s.compose=
+function(){var e=arguments;return function(){for(var t=arguments,n=e.length;n--;)t=[e[n].apply(this,t)];return t[0]}},s.contains=x,s.countBy=function(e,t,n){var r={},t=f(t,n);return ln(e,function(e,n,i){n=t(e,n,i),ot.call(r,n)?r[n]++:r[n]=1}),r},s.debounce=function(e,t,n){function i(){a=r,n||(o=e.apply(u,s))}var s,o,u,a;return function(){var r=n&&!a;return s=arguments,u=this,Ct(a),a=kt(i,t),r&&(o=e.apply(u,s)),o}},s.defaults=nn,s.defer=function(e){var n=ft.call(arguments,1);return kt(function(){return e
+.apply(t,n)},1)},s.delay=function(e,n){var r=ft.call(arguments,2);return kt(function(){return e.apply(t,r)},n)},s.difference=function(e){var t=[];if(!e)return t;for(var n=-1,r=e.length,i=rt.apply(I,arguments),i=o(i,r);++n<r;){var s=e[n];i(s)||t.push(s)}return t},s.escape=function(e){return e==r?"":(e+"").replace(Z,h)},s.every=an,s.extend=rn,s.filter=fn,s.find=T,s.first=A,s.flatten=O,s.forEach=ln,s.forIn=sn,s.forOwn=on,s.functions=b,s.groupBy=function(e,t,n){var r={},t=f(t,n);return ln(e,function(
+e,n,i){n=t(e,n,i),(ot.call(r,n)?r[n]:r[n]=[]).push(e)}),r},s.has=function(e,t){return e?ot.call(e,t):i},s.identity=B,s.indexOf=M,s.initial=function(e,t,n){return e?ft.call(e,0,-(t==r||n?1:t)):[]},s.intersection=function(e){var t=arguments.length,n=[],r=-1,i=e?e.length:0,s=[];e:for(;++r<i;){var u=e[r];if(0>M(s,u)){for(var a=1;a<t;a++)if(!(n[a]||(n[a]=o(arguments[a])))(u))continue e;s.push(u)}}return s},s.invert=Qt,s.invoke=function(e,t){var n=ft.call(arguments,2),r="function"==typeof t,i=[];return ln
+(e,function(e){i.push((r?t:e[t]).apply(e,n))}),i},s.isArguments=v,s.isArray=Gt,s.isBoolean=function(e){return e===n||e===i||lt.call(e)==wt},s.isDate=function(e){return lt.call(e)==Et},s.isElement=function(e){return e?1===e.nodeType:i},s.isEmpty=function(e){var t=n;if(!e)return t;var r=lt.call(e),s=e.length;return qt[r]||_t&&v(e)||r==xt&&s===+s&&m(e.splice)?!s:(on(e,function(){return t=i}),t)},s.isEqual=w,s.isFinite=function(e){return pt(e)&&lt.call(e)==St},s.isFunction=m,s.isNaN=function(e){return lt
+.call(e)==St&&e!=+e},s.isNull=function(e){return e===r},s.isNumber=function(e){return lt.call(e)==St},s.isObject=function(e){return e?Ut[typeof e]:i},s.isPlainObject=Yt,s.isRegExp=function(e){return lt.call(e)==Tt},s.isString=function(e){return lt.call(e)==Nt},s.isUndefined=function(e){return e===t},s.keys=un,s.last=function(e,t,n){if(e){var i=e.length;return t==r||n?e[i-1]:ft.call(e,-t||i)}},s.lastIndexOf=function(e,t,n){var r=e?e.length:0;for("number"==typeof n&&(r=(0>n?vt(0,r+n):mt(n,r-1))+1);
+r--;)if(e[r]===t)return r;return-1},s.lateBind=function(e,t){return a(t,e,ft.call(arguments,2))},s.map=cn,s.max=N,s.memoize=function(e,t){var n={};return function(){var r=t?t.apply(this,arguments):arguments[0];return ot.call(n,r)?n[r]:n[r]=e.apply(this,arguments)}},s.merge=E,s.min=function(e,t,n){var r=Infinity,i=-1,s=e?e.length:0,o=r;if(t||s!==+s)t=f(t,n),ln(e,function(e,n,i){n=t(e,n,i),n<r&&(r=n,o=e)});else for(;++i<s;)e[i]<o&&(o=e[i]);return o},s.mixin=j,s.noConflict=function(){return e._=z,this
+},s.object=function(e,t){for(var n=-1,r=e?e.length:0,i={};++n<r;){var s=e[n];t?i[s]=t[n]:i[s[0]]=s[1]}return i},s.omit=function(e,t,n){var r="function"==typeof t,i={};if(r)t=f(t,n);else var s=rt.apply(I,arguments);return sn(e,function(e,n,o){if(r?!t(e,n,o):0>M(s,n))i[n]=e}),i},s.once=function(e){var t,s=i;return function(){return s?t:(s=n,t=e.apply(this,arguments),e=r,t)}},s.pairs=function(e){var t=[];return on(e,function(e,n){t.push([n,e])}),t},s.partial=function(e){return a(e,ft.call(arguments,1
+))},s.pick=function(e,t,n){var r={};if("function"!=typeof t)for(var i=0,s=rt.apply(I,arguments),o=s.length;++i<o;){var u=s[i];u in e&&(r[u]=e[u])}else t=f(t,n),sn(e,function(e,n,i){t(e,n,i)&&(r[n]=e)});return r},s.pluck=C,s.random=function(e,t){return e==r&&t==r&&(t=1),e=+e||0,t==r&&(t=e,e=0),e+it(gt()*((+t||0)-e+1))},s.range=function(e,t,n){e=+e||0,n=+n||1,t==r&&(t=e,e=0);for(var i=-1,t=vt(0,nt((t-e)/n)),s=Array(t);++i<t;)s[i]=e,e+=n;return s},s.reduce=k,s.reduceRight=L,s.reject=hn,s.rest=_,s.result=
+function(e,t){var n=e?e[t]:r;return m(n)?e[t]():n},s.shuffle=function(e){var t=-1,n=Array(e?e.length:0);return ln(e,function(e){var r=it(gt()*(++t+1));n[t]=n[r],n[r]=e}),n},s.size=function(e){var t=e?e.length:0;return t===+t?t:un(e).length},s.some=pn,s.sortBy=function(e,t,n){var r=[],t=f(t,n);ln(e,function(e,n,i){r.push({a:t(e,n,i),b:n,c:e})}),e=r.length;for(r.sort(u);e--;)r[e]=r[e].c;return r},s.sortedIndex=D,s.tap=function(e,t){return t(e),e},s.template=function(e,t,n){e||(e=""),n||(n={});var r
+,i,o=0,u=s.templateSettings,a="__p += '",f=n.variable||u.variable,l=f;e.replace(RegExp((n.escape||u.escape||Y).source+"|"+(n.interpolate||u.interpolate||Y).source+"|"+(n.evaluate||u.evaluate||Y).source+"|$","g"),function(t,n,i,s,u){a+=e.slice(o,u).replace(et,c),a+=n?"'+__e("+n+")+'":s?"';"+s+";__p+='":i?"'+((__t=("+i+"))==null?'':__t)+'":"",r||(r=s||W.test(n||i)),o=u+t.length}),a+="';",l||(f="obj",r?a="with("+f+"){"+a+"}":(n=RegExp("(\\(\\s*)"+f+"\\."+f+"\\b","g"),a=a.replace(Q,"$&"+f+".").replace
+(n,"$1__d"))),a=(r?a.replace(V,""):a).replace($,"$1").replace(J,"$1;"),a="function("+f+"){"+(l?"":f+"||("+f+"={});")+"var __t,__p='',__e=_.escape"+(r?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":(l?"":",__d="+f+"."+f+"||"+f)+";")+a+"return __p}";try{i=Function("_","return "+a)(s)}catch(h){throw h.source=a,h}return t?i(t):(i.source=a,i)},s.throttle=function(e,t){function n(){a=new Date,u=r,s=e.apply(o,i)}var i,s,o,u,a=0;return function(){var r=new Date,f=t-(r-a);return i=
+arguments,o=this,0>=f?(Ct(u),a=r,s=e.apply(o,i)):u||(u=kt(n,f)),s}},s.times=function(e,t,n){for(var e=+e||0,r=-1,i=Array(e);++r<e;)i[r]=t.call(n,r);return i},s.toArray=function(e){if(!e)return[];var t=e.length;return t===+t?(Dt?lt.call(e)==Nt:"string"==typeof e)?e.split(""):ft.call(e):S(e)},s.unescape=function(e){return e==r?"":(e+"").replace(X,d)},s.union=function(){for(var e=-1,t=rt.apply(I,arguments),n=t.length,r=[];++e<n;){var i=t[e];0>M(r,i)&&r.push(i)}return r},s.uniq=P,s.uniqueId=function(
+e){var t=R++;return e?e+t:t},s.values=S,s.where=function(e,t){var r=[];sn(t,function(e,t){r.push(t)});var i=r.length,s=[];return ln(e,function(e){for(var o=n,u=0;u<i&&(o=r[u],o=e[o]===t[o]);u++);o&&s.push(e)}),s},s.without=function(e){for(var t=-1,n=e?e.length:0,r=o(arguments,1,20),i=[];++t<n;){var s=e[t];r(s)||i.push(s)}return i},s.wrap=function(e,t){return function(){var n=[e];return arguments.length&&ut.apply(n,arguments),t.apply(this,n)}},s.zip=function(e){for(var t=-1,n=e?N(C(arguments,"length"
+)):0,r=Array(n);++t<n;)r[t]=C(arguments,t);return r},s.all=an,s.any=pn,s.collect=cn,s.detect=T,s.drop=_,s.each=ln,s.foldl=k,s.foldr=L,s.head=A,s.include=x,s.inject=k,s.methods=b,s.select=fn,s.tail=_,s.take=A,s.unique=P,j(s),s.prototype.chain=function(){return this.__chain__=n,this},s.prototype.value=function(){return this.__wrapped__},ln("pop push reverse shift sort splice unshift".split(" "),function(e){var t=I[e];s.prototype[e]=function(){var e=this.__wrapped__;return t.apply(e,arguments),At&&e
+.length===0&&delete e[0],this.__chain__&&(e=new s(e),e.__chain__=n),e}}),ln(["concat","join","slice"],function(e){var t=I[e];s.prototype[e]=function(){var e=t.apply(this.__wrapped__,arguments);return this.__chain__&&(e=new s(e),e.__chain__=n),e}}),typeof define=="function"&&typeof define.amd=="object"&&define.amd?(e._=s,define(function(){return s})):F?"object"==typeof module&&module&&module.exports==F?(module.exports=s)._=s:F._=s:e._=s})(this);
View
61 lodash.underscore.min.js
@@ -2,35 +2,32 @@
Lo-Dash 0.8.2 lodash.com/license
Underscore.js 1.4.2 underscorejs.org/LICENSE
*/
-;(function(e,t){function s(e,t,r){var s;if(!e)return i;var t=x(t,r),o=e.length,r=-1;if(o===+o){for(;++r<o;)if(s=e[r],t(s,r,e))return n}else for(r in e)if(it.call(e,r)&&(s=e[r],t(s,r,e)))return n;return i}function o(e,t,n,r){var s,o,u=n;if(!e)return u;var a=3>arguments.length,t=x(t,r),f=e.length;s=-1;if(f===+f)for(a&&(u=e[++s]);++s<f;)o=e[s],u=t(u,o,s,e);else for(s in e)it.call(e,s)&&(o=e[s],u=a?(a=i,o):t(u,o,s,e));return u}function u(e,t){var n,r,i=e||[];if(!e)return i;var s=e.length;n=-1;if(s===+
-s)for(i=Array(s);++n<s;)r=e[n],i[n]=r[t];else for(n in i=[],e)it.call(e,n)&&(r=e[n],i.push(r[t]));return i}function a(e,t,n){var r,i=e||[];if(!e)return i;var t=x(t,n),s=e.length,n=-1;if(s===+s)for(i=Array(s);++n<s;)r=e[n],i[n]=t(r,n,e);else for(n in i=[],e)it.call(e,n)&&(r=e[n],i.push(t(r,n,e)));return i}function f(e,t,n){var r;if(!e)return e;var t=x(t,n),i=e.length,n=-1;if(i===+i)for(;++n<i;)r=e[n],t(r,n,e);else for(n in e)it.call(e,n)&&(r=e[n],t(r,n,e));return e}function l(e,n,r){var i,s=t;if(!
-e)return s;var n=x(n,r),o=e.length,r=-1;if(o===+o){for(;++r<o;)if(i=e[r],n(i,r,e))return i}else for(r in e)if(it.call(e,r)&&(i=e[r],n(i,r,e)))return i;return s}function c(e,t,n){var r,i=[];if(!e)return i;var t=x(t,n),s=e.length,n=-1;if(s===+s)for(;++n<s;)r=e[n],t(r,n,e)&&i.push(r);else for(n in e)it.call(e,n)&&(r=e[n],t(r,n,e)&&i.push(r));return i}function h(e,t,r){var s;if(!e)return n;var t=x(t,r),o=e.length,r=-1;if(o===+o){for(;++r<o;)if(s=e[r],!t(s,r,e))return i}else for(r in e)if(it.call(e,r)&&
-(s=e[r],!t(s,r,e)))return i;return n}function p(e,t){var r,s;if(!e)return i;var o=e.length;r=-1;if(o===+o){if(ut.call(e)==wt)return-1<e.indexOf(t);for(;++r<o;)if(s=e[r],s===t)return n}else for(r in e)if(it.call(e,r)&&(s=e[r],s===t))return n;return i}function d(e){var t,n,r=[];if(!e)return r;for(t in e)it.call(e,t)&&(n=e[t],r.push(n));return r}function v(e){var t,n,r=[];if(!e)return r;for(t in e)n=e[t],L(n)&&r.push(t);return r.sort(),r}function m(e,t,n){var r;if(!e)return e;t=x(t,n);for(r in e)n=e
-[r],t(n,r,e);return e}function g(e){var t,n,r=e;if(!e)return e;for(var i=1,s=arguments.length;i<s;i++)if(r=arguments[i])for(t in r)n=r[t],e[t]=n;return e}function y(e){var t,n=[];if(!e)return n;for(t in e)it.call(e,t)&&n.push(t);return n}function b(e){var t,n,r={};if(!e)return r;for(t in e)it.call(e,t)&&(n=e[t],r[n]=t);return r}function w(e){if(e&&e.__wrapped__)return e;if(!(this instanceof w))return new w(e);this.__wrapped__=e}function E(e,n){var r=e.b,i=n.b,e=e.a,n=n.a;if(e!==n){if(e>n||e===t)return 1
-;if(e<n||n===t)return-1}return r<i?-1:1}function S(e,t,n){function r(){var i=arguments,s=t;return n.length&&(i=i.length?n.concat(ot.call(i)):n),this instanceof r?(C.prototype=e.prototype,s=new C,(i=e.apply(s,i))&&Tt[typeof i]?i:s):e.apply(s,i)}return r}function x(e,n){return e?"function"!=typeof e?function(t){return t[e]}:n!==t?function(t,r,i){return e.call(n,t,r,i)}:e:q}function T(e){return"\\"+Nt[e]}function N(e){return kt[e]}function C(){}function k(e){return Lt[e]}function L(e){return"function"==typeof
-e}function A(e){var t=i;if(!e||"object"!=typeof e||isArguments(e))return t;var n=e.constructor;return!L(n)||n instanceof n?(m(e,function(e,n){t=n}),t===i||it.call(e,t)):t}function O(e,t,s,o){if(e==r||t==r)return e===t;if(e===t)return 0!==e||1/e==1/t;if(Tt[typeof e]||Tt[typeof t])e=e.__wrapped__||e,t=t.__wrapped__||t;var u=ut.call(e);if(u!=ut.call(t))return i;switch(u){case vt:case mt:return+e==+t;case gt:return e!=+e?t!=+t:0==e?1/e==1/t:e==+t;case bt:case wt:return e==t+""}var a=Ct(e);if(!a&&u!=yt
-)return i;s||(s=[]),o||(o=[]);for(u=s.length;u--;)if(s[u]==e)return o[u]==t;var f=n,u=0;s.push(e),o.push(t);if(a){u=e.length;if(f=u==t.length)for(;u--&&(f=O(e[u],t[u],s,o)););return f}a=e.constructor,f=t.constructor;if(a!=f&&(!L(a)||!(a instanceof a&&L(f)&&f instanceof f)))return i;for(var l in e)if(it.call(e,l)&&(u++,!it.call(t,l)||!O(e[l],t[l],s,o)))return i;for(l in t)if(it.call(t,l)&&!(u--))return i;return n}function M(e,t,n){var r=-Infinity,i=-1,s=e?e.length:0,o=r;if(t||s!==+s)t=x(t,n),f(e,function(
-e,n,i){n=t(e,n,i),n>r&&(r=n,o=e)});else for(;++i<s;)e[i]>o&&(o=e[i]);return o}function _(e,t,n,r){var s=e?e.length:0,o=3>arguments.length;if(s!==+s)var u=At(e),s=u.length;return f(e,function(a,f,l){f=u?u[--s]:--s,n=o?(o=i,e[f]):t.call(r,n,e[f],f,l)}),n}function D(e,t,n){if(e)return t==r||n?e[0]:ot.call(e,0,t)}function P(e,t){for(var n=-1,r=e?e.length:0,i=[];++n<r;){var s=e[n];Ct(s)?st.apply(i,t?s:P(s)):i.push(s)}return i}function H(e,t,n){var r=-1,i=e?e.length:0;if("number"==typeof n)r=(0>n?ht(0,
-i+n):n||0)-1;else if(n)return r=j(e,t),e[r]===t?r:-1;for(;++r<i;)if(e[r]===t)return r;return-1}function B(e,t,n){return e?ot.call(e,t==r||n?1:t):[]}function j(e,t,n,r){var i=0,s=e?e.length:i;if(n){n=x(n,r);for(t=n(t);i<s;)r=i+s>>>1,n(e[r])<t?i=r+1:s=r}else for(;i<s;)r=i+s>>>1,e[r]<t?i=r+1:s=r;return i}function F(e,t,n,r){var s=-1,o=e?e.length:0,u=[],a=[];"function"==typeof t&&(r=n,n=t,t=i);for(n=x(n,r);++s<o;)if(r=n(e[s],s,e),t?!s||a[a.length-1]!==r:0>H(a,r))a.push(r),u.push(e[s]);return u}function I
-(e,t){return xt||at&&2<arguments.length?at.call.apply(at,arguments):S(e,t,ot.call(arguments,2))}function q(e){return e}function R(e){f(v(e),function(t){var r=w[t]=e[t];w.prototype[t]=function(){var e=[this.__wrapped__];return arguments.length&&st.apply(e,arguments),e=r.apply(w,e),this.__chain__&&(e=new w(e),e.__chain__=n),e}})}var n=!0,r=null,i=!1,U="object"==typeof exports&&exports&&("object"==typeof global&&global&&global==global.global&&(e=global),exports),z=Array.prototype,W=Object.prototype,
-X=0,V=e._,$=/[-?+=!~*%&^<>|{(\/]|\[\D|\b(?:delete|in|instanceof|new|typeof|void)\b/,J=/&(?:amp|lt|gt|quot|#x27);/g,K=/(?:__e|__t=)\(\s*(?![\d\s"']|this\.)/g,Q=RegExp("^"+(W.valueOf+"").replace(/[.*+?^=!:${}()|[\]\/\\]/g,"\\$&").replace(/valueOf|for [^\]]+/g,".+?")+"$"),G=/($^)/,Y=/[&<>"']/g,Z=/['\n\r\t\u2028\u2029\\]/g,et=Math.ceil,tt=z.concat,nt=Math.floor,rt=Q.test(rt=Object.getPrototypeOf)&&rt,it=W.hasOwnProperty,st=z.push,ot=z.slice,ut=W.toString,at=Q.test(at=ot.bind)&&at,ft=Q.test(ft=Array.isArray
-)&&ft,lt=e.isFinite,ct=Q.test(ct=Object.keys)&&ct,ht=Math.max,pt=Math.min,dt=Math.random,vt="[object Boolean]",mt="[object Date]",gt="[object Number]",yt="[object Object]",bt="[object RegExp]",wt="[object String]",Et=e.clearTimeout,St=e.setTimeout,xt=at&&/\n|Opera/.test(at+ut.call(e.opera)),Tt={"boolean":i,"function":n,object:n,number:i,string:i,"undefined":i,unknown:n},Nt={"\\":"\\","'":"'","\n":"n","\r":"r"," ":"t","\u2028":"u2028","\u2029":"u2029"};w.templateSettings={escape:/<%-([\s\S]+?)%>/g
-,evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,variable:""},w.isArguments=function(e){return"[object Arguments]"==ut.call(e)},w.isArguments(arguments)||(w.isArguments=function(e){return e?it.call(e,"callee"):i});var Ct=ft||function(e){return"[object Array]"==ut.call(e)};L(/x/)&&(L=function(e){return"[object Function]"==ut.call(e)});var W=rt?function(e){if(!e||"object"!=typeof e)return i;var t=e.valueOf,n="function"==typeof t&&(n=rt(t))&&rt(n);return n?e==n||rt(e)==n&&!isArguments(e):A
-(e)}:A,kt={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;"},Lt=b(kt),At=ct?function(e){return e&&Tt[typeof e]?ct(e):[]}:y;w.VERSION="0.8.2",w.after=function(e,t){return 1>e?t():function(){if(1>--e)return t.apply(this,arguments)}},w.bind=I,w.bindAll=function(e){var t,n,r=e,i=e;if(!e)return i;n=arguments,t=0;var s=n.length;if(1<s){for(;++t<s;)i[n[t]]=I(i[n[t]],i);return i}for(t in r)n=r[t],L(n)&&(i[t]=I(n,i));return i},w.chain=function(e){return e=new w(e),e.__chain__=n,e},w.clone=function(
-e){return e&&Tt[typeof e]?Ct(e)?ot.call(e):g({},e):e},w.compact=function(e){for(var t=-1,n=e?e.length:0,r=[];++t<n;){var i=e[t];i&&r.push(i)}return r},w.compose=function(){var e=arguments;return function(){for(var t=arguments,n=e.length;n--;)t=[e[n].apply(this,t)];return t[0]}},w.contains=p,w.countBy=function(e,t,n){var r,i={};if(!e)return i;var t=x(t,n),s=e.length,n=-1;if(s===+s)for(;++n<s;)r=e[n],r=t(r,n,e),it.call(i,r)?i[r]++:i[r]=1;else for(n in e)it.call(e,n)&&(r=e[n],r=t(r,n,e),it.call(i,r)?
-i[r]++:i[r]=1);return i},w.debounce=function(e,t,n){function i(){a=r,n||(o=e.apply(u,s))}var s,o,u,a;return function(){var r=n&&!a;return s=arguments,u=this,Et(a),a=St(i,t),r&&(o=e.apply(u,s)),o}},w.defaults=function(e){var t,n,i=e;if(!e)return e;for(var s=1,o=arguments.length;s<o;s++)if(i=arguments[s])for(t in i)n=i[t],e[t]==r&&(e[t]=n);return e},w.defer=function(e){var n=ot.call(arguments,1);return St(function(){return e.apply(t,n)},1)},w.delay=function(e,n){var r=ot.call(arguments,2);return St
-(function(){return e.apply(t,r)},n)},w.difference=function(e){for(var t=-1,n=e.length,r=tt.apply(z,arguments),i=[];++t<n;){var s=e[t];0>H(r,s,n)&&i.push(s)}return i},w.escape=function(e){return e==r?"":(e+"").replace(Y,N)},w.every=h,w.extend=g,w.filter=c,w.find=l,w.first=D,w.flatten=P,w.forEach=f,w.forIn=m,w.forOwn=function(e,t,n){var r;if(!e)return e;t=x(t,n);for(r in e)it.call(e,r)&&(n=e[r],t(n,r,e));return e},w.functions=v,w.groupBy=function(e,t,n){var r,i={};if(!e)return i;var t=x(t,n),s=e.length
-,n=-1;if(s===+s)for(;++n<s;){r=e[n];var o=t(r,n,e);(it.call(i,o)?i[o]:i[o]=[]).push(r)}else for(n in e)it.call(e,n)&&(r=e[n],o=t(r,n,e),(it.call(i,o)?i[o]:i[o]=[]).push(r));return i},w.has=function(e,t){return e?it.call(e,t):i},w.identity=q,w.indexOf=H,w.initial=function(e,t,n){return e?ot.call(e,0,-(t==r||n?1:t)):[]},w.intersection=function(e){var t=arguments.length,n=-1,r=e.length,i=[];e:for(;++n<r;){var s=e[n];if(0>H(i,s)){for(var o=1;o<t;o++)if(0>H(arguments[o],s))continue e;i.push(s)}}return i
-},w.invert=b,w.invoke=function(e,t){var n,r,i=e,s=e||[];if(!e)return s;var o=ot.call(arguments,2),u="function"==typeof t,a=i.length;n=-1;if(a===+a)for(s=Array(a);++n<a;)r=i[n],s[n]=(u?t:r[t]).apply(r,o);else for(n in s=[],i)it.call(i,n)&&(r=i[n],s.push((u?t:r[t]).apply(r,o)));return s},w.isArray=Ct,w.isBoolean=function(e){return e===n||e===i||ut.call(e)==vt},w.isDate=function(e){return ut.call(e)==mt},w.isElement=function(e){return e?1===e.nodeType:i},w.isEmpty=function(e){var t;if(!e)return n;var r=
-ut.call(e),s=e.length;if(Ct(e)||r==wt||r==yt&&s===+s&&L(e.splice))return!s;for(t in e)if(it.call(e,t))return i;return n},w.isEqual=O,w.isFinite=function(e){return lt(e)&&ut.call(e)==gt},w.isFunction=L,w.isNaN=function(e){return ut.call(e)==gt&&e!=+e},w.isNull=function(e){return e===r},w.isNumber=function(e){return ut.call(e)==gt},w.isObject=function(e){return e?Tt[typeof e]:i},w.isPlainObject=W,w.isRegExp=function(e){return ut.call(e)==bt},w.isString=function(e){return ut.call(e)==wt},w.isUndefined=
-function(e){return e===t},w.keys=At,w.last=function(e,t,n){if(e){var i=e.length;return t==r||n?e[i-1]:ot.call(e,-t||i)}},w.lastIndexOf=function(e,t,n){var r=e?e.length:0;for("number"==typeof n&&(r=(0>n?ht(0,r+n):pt(n,r-1))+1);r--;)if(e[r]===t)return r;return-1},w.map=a,w.max=M,w.memoize=function(e,t){var n={};return function(){var r=t?t.apply(this,arguments):arguments[0];return it.call(n,r)?n[r]:n[r]=e.apply(this,arguments)}},w.min=function(e,t,n){var r=Infinity,i=-1,s=e?e.length:0,o=r;if(t||s!==+
-s)t=x(t,n),f(e,function(e,n,i){n=t(e,n,i),n<r&&(r=n,o=e)});else for(;++i<s;)e[i]<o&&(o=e[i]);return o},w.mixin=R,w.noConflict=function(){return e._=V,this},w.object=function(e,t){for(var n=-1,r=e?e.length:0,i={};++n<r;){var s=e[n];t?i[s]=t[n]:i[s[0]]=s[1]}return i},w.omit=function(e,t,n){var r,i,s=e,o={};if(!e)return o;var u="function"==typeof t;if(u)t=x(t,n);else var a=tt.apply(z,arguments);for(r in s)if(i=s[r],u?!t(i,r,e):0>H(a,r))o[r]=i;return o},w.once=function(e){var t,s=i;return function(){
-return s?t:(s=n,t=e.apply(this,arguments),e=r,t)}},w.pairs=function(e){var t,n,r=[];if(!e)return r;for(t in e)it.call(e,t)&&(n=e[t],r.push([t,n]));return r},w.pick=function(e,t,n){var r,i,s=e,o={};if(!e)return o;if("function"!=typeof t){r=0,i=tt.apply(z,arguments);for(s=i.length;++r<s;){var u=i[r];u in e&&(o[u]=e[u])}}else for(r in t=x(t,n),s)i=s[r],t(i,r,e)&&(o[r]=i);return o},w.pluck=u,w.random=function(e,t){return e==r&&t==r&&(t=1),e=+e||0,t==r&&(t=e,e=0),e+nt(dt()*((+t||0)-e+1))},w.range=function(
-e,t,n){e=+e||0,n=+n||1,t==r&&(t=e,e=0);for(var i=-1,t=ht(0,et((t-e)/n)),s=Array(t);++i<t;)s[i]=e,e+=n;return s},w.reduce=o,w.reduceRight=_,w.reject=function(e,t,n){var r,i=[];if(!e)return i;var t=x(t,n),s=e.length,n=-1;if(s===+s)for(;++n<s;)r=e[n],!t(r,n,e)&&i.push(r);else for(n in e)it.call(e,n)&&(r=e[n],!t(r,n,e)&&i.push(r));return i},w.rest=B,w.result=function(e,t){var n=e?e[t]:r;return L(n)?e[t]():n},w.shuffle=function(e){var t=-1,n=Array(e?e.length:0);return f(e,function(e){var r=nt(dt()*(++
-t+1));n[t]=n[r],n[r]=e}),n},w.size=function(e){var t=e?e.length:0;return t===+t?t:At(e).length},w.some=s,w.sortBy=function(e,t,n){var r,i=e||[];if(!e)return i;var t=x(t,n),s=e.length,n=-1;if(s===+s)for(i=Array(s);++n<s;)r=e[n],i[n]={a:t(r,n,e),b:n,c:r};else for(n in i=[],e)it.call(e,n)&&(r=e[n],i.push({a:t(r,n,e),b:n,c:r}));i.sort(E);for(s=i.length;s--;)i[s]=i[s].c;return i},w.sortedIndex=j,w.tap=function(e,t){return t(e),e},w.template=function(e,t,n){e||(e=""),n||(n={});var r,i,s=0,o=w.templateSettings
-,u="__p += '",a=n.variable||o.variable,f=a;e.replace(RegExp((n.escape||o.escape||G).source+"|"+(n.interpolate||o.interpolate||G).source+"|"+(n.evaluate||o.evaluate||G).source+"|$","g"),function(t,n,i,o,a){u+=e.slice(s,a).replace(Z,T),u+=n?"'+__e("+n+")+'":o?"';"+o+";__p+='":i?"'+((__t=("+i+"))==null?'':__t)+'":"",r||(r=o||$.test(n||i)),s=a+t.length}),u+="';",f||(a="obj",r?u="with("+a+"){"+u+"}":(n=RegExp("(\\(\\s*)"+a+"\\."+a+"\\b","g"),u=u.replace(K,"$&"+a+".").replace(n,"$1__d"))),u="function("+
-a+"){"+(f?"":a+"||("+a+"={});")+"var __t,__p='',__e=_.escape"+(r?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":(f?"":",__d="+a+"."+a+"||"+a)+";")+u+"return __p}";try{i=Function("_","return "+u)(w)}catch(l){throw l.source=u,l}return t?i(t):(i.source=u,i)},w.throttle=function(e,t){function n(){a=new Date,u=r,s=e.apply(o,i)}var i,s,o,u,a=0;return function(){var r=new Date,f=t-(r-a);return i=arguments,o=this,0>=f?(Et(u),a=r,s=e.apply(o,i)):u||(u=St(n,f)),s}},w.times=function(
-e,t,n){for(var e=+e||0,r=-1,i=Array(e);++r<e;)i[r]=t.call(n,r);return i},w.toArray=function(e){if(!e)return[];var t=e.length;return t===+t?"string"==typeof e?e.split(""):ot.call(e):d(e)},w.unescape=function(e){return e==r?"":(e+"").replace(J,k)},w.union=function(){for(var e=-1,t=tt.apply(z,arguments),n=t.length,r=[];++e<n;){var i=t[e];0>H(r,i)&&r.push(i)}return r},w.uniq=F,w.uniqueId=function(e){var t=X++;return e?e+t:t},w.values=d,w.where=function(e,t){var r,i,s=[];if(!e)return s;var o=[];m(t,function(
-e,t){o.push(t)});var u=o.length,a=e.length;r=-1;if(a===+a)for(;++r<a;){i=e[r];for(var f=n,l=0;l<u&&(f=o[l],f=i[f]===t[f]);l++);f&&s.push(i)}else for(r in e)if(it.call(e,r)){i=e[r],f=n;for(l=0;l<u&&(f=o[l],f=i[f]===t[f]);l++);f&&s.push(i)}return s},w.without=function(e){for(var t=-1,n=e.length,r=[];++t<n;){var i=e[t];0>H(arguments,i,1)&&r.push(i)}return r},w.wrap=function(e,t){return function(){var n=[e];return arguments.length&&st.apply(n,arguments),t.apply(this,n)}},w.zip=function(e){for(var t=-1
-,n=e?M(u(arguments,"length")):0,r=Array(n);++t<n;)r[t]=u(arguments,t);return r},w.all=h,w.any=s,w.collect=a,w.detect=l,w.drop=B,w.each=f,w.foldl=o,w.foldr=_,w.head=D,w.include=p,w.inject=o,w.methods=v,w.select=c,w.tail=B,w.take=D,w.unique=F,R(w),w.prototype.chain=function(){return this.__chain__=n,this},w.prototype.value=function(){return this.__wrapped__},f("pop push reverse shift sort splice unshift".split(" "),function(e){var t=z[e];w.prototype[e]=function(){var e=this.__wrapped__;return t.apply
-(e,arguments),this.__chain__&&(e=new w(e),e.__chain__=n),e}}),f(["concat","join","slice"],function(e){var t=z[e];w.prototype[e]=function(){var e=t.apply(this.__wrapped__,arguments);return this.__chain__&&(e=new w(e),e.__chain__=n),e}}),U?"object"==typeof module&&module&&module.exports==U?(module.exports=w)._=w:U._=w:e._=w})(this);
+;(function(e,t){function s(e,t,r){var s;if(!e)return i;var t=y(t,r),o=e.length,r=-1;if(o===+o){for(;++r<o;)if(s=e[r],t(s,r,e))return n}else for(r in e)if(it.call(e,r)&&(s=e[r],t(s,r,e)))return n;return i}function o(e,t,n){var r,i=e||[];if(!e)return i;var t=y(t,n),s=e.length,n=-1;if(s===+s)for(i=Array(s);++n<s;)r=e[n],i[n]=t(r,n,e);else for(n in i=[],e)it.call(e,n)&&(r=e[n],i.push(t(r,n,e)));return i}function u(e,t,n){var r;if(!e)return e;var t=y(t,n),i=e.length,n=-1;if(i===+i)for(;++n<i;)r=e[n],t(
+r,n,e);else for(n in e)it.call(e,n)&&(r=e[n],t(r,n,e));return e}function a(e,t,n){var r,i=[];if(!e)return i;var t=y(t,n),s=e.length,n=-1;if(s===+s)for(;++n<s;)r=e[n],t(r,n,e)&&i.push(r);else for(n in e)it.call(e,n)&&(r=e[n],t(r,n,e)&&i.push(r));return i}function f(e,t,r){var s;if(!e)return n;var t=y(t,r),o=e.length,r=-1;if(o===+o){for(;++r<o;)if(s=e[r],!t(s,r,e))return i}else for(r in e)if(it.call(e,r)&&(s=e[r],!t(s,r,e)))return i;return n}function l(e,t){var n,r;if(e)for(n in t=y(t,void 0),e)it.
+call(e,n)&&(r=e[n],t(r,n,e))}function c(e,t){var n,r;if(e)for(n in t=y(t,void 0),e)r=e[n],t(r,n,e)}function h(e){var t,n,r=e;if(!e)return e;for(var i=1,s=arguments.length;i<s;i++)if(r=arguments[i])for(t in r)n=r[t],e[t]=n;return e}function p(e){var t,n=[];if(!e)return n;for(t in e)it.call(e,t)&&n.push(t);return n}function d(e){var t,n,r={};if(!e)return r;for(t in e)it.call(e,t)&&(n=e[t],r[n]=t);return r}function v(e){if(e&&e.__wrapped__)return e;if(!(this instanceof v))return new v(e);this.__wrapped__=
+e}function m(e,n){var r=e.b,i=n.b,e=e.a,n=n.a;if(e!==n){if(e>n||e===t)return 1;if(e<n||n===t)return-1}return r<i?-1:1}function g(e,t,n){function r(){var i=arguments,s=t;return n.length&&(i=i.length?n.concat(ot.call(i)):n),this instanceof r?(E.prototype=e.prototype,s=new E,(i=e.apply(s,i))&&Nt[typeof i]?i:s):e.apply(s,i)}return r}function y(e,n){return e?"function"!=typeof e?function(t){return t[e]}:n!==t?function(t,r,i){return e.call(n,t,r,i)}:e:q}function b(e){return"\\"+Ct[e]}function w(e){return Lt
+[e]}function E(){}function S(e){return At[e]}function x(e){return"function"==typeof e}function T(e){var t=[];return c(e,function(e,n){x(e)&&t.push(n)}),t.sort()}function N(e,t,s,o){if(e==r||t==r)return e===t;if(e===t)return 0!==e||1/e==1/t;if(Nt[typeof e]||Nt[typeof t])e=e.__wrapped__||e,t=t.__wrapped__||t;var u=ut.call(e);if(u!=ut.call(t))return i;switch(u){case vt:case mt:return+e==+t;case gt:return e!=+e?t!=+t:0==e?1/e==1/t:e==+t;case bt:case wt:return e==t+""}var a=kt(e);if(!a&&u!=yt)return i
+;s||(s=[]),o||(o=[]);for(u=s.length;u--;)if(s[u]==e)return o[u]==t;var f=n,u=0;s.push(e),o.push(t);if(a){u=e.length;if(f=u==t.length)for(;u--&&(f=N(e[u],t[u],s,o)););return f}a=e.constructor,f=t.constructor;if(a!=f&&(!x(a)||!(a instanceof a&&x(f)&&f instanceof f)))return i;for(var l in e)if(it.call(e,l)&&(u++,!it.call(t,l)||!N(e[l],t[l],s,o)))return i;for(l in t)if(it.call(t,l)&&!(u--))return i;return n}function C(e){var t=[];return l(e,function(e){t.push(e)}),t}function k(e,t){return ut.call(e)==
+wt?-1<e.indexOf(t):s(e,function(e){return e===t})}function L(e,t,r){var i,t=y(t,r);return s(e,function(e,r,s){return t(e,r,s)&&(i=e,n)}),i}function A(e,t,n){var r=-Infinity,i=-1,s=e?e.length:0,o=r;if(t||s!==+s)t=y(t,n),u(e,function(e,n,i){n=t(e,n,i),n>r&&(r=n,o=e)});else for(;++i<s;)e[i]>o&&(o=e[i]);return o}function O(e,t){var n=[];return u(e,function(e){n.push(e[t])}),n}function M(e,t,n,r){var s=3>arguments.length,t=y(t,r);return u(e,function(e,r,o){n=s?(s=i,e):t(n,e,r,o)}),n}function _(e,t,n,r
+){var s=e?e.length:0,o=3>arguments.length;if(s!==+s)var a=Ot(e),s=a.length;return u(e,function(u,f,l){f=a?a[--s]:--s,n=o?(o=i,e[f]):t.call(r,n,e[f],f,l)}),n}function D(e,t,n){if(e)return t==r||n?e[0]:ot.call(e,0,t)}function P(e,t){for(var n=-1,r=e?e.length:0,i=[];++n<r;){var s=e[n];kt(s)?st.apply(i,t?s:P(s)):i.push(s)}return i}function H(e,t,n){var r=-1,i=e?e.length:0;if("number"==typeof n)r=(0>n?ht(0,i+n):n||0)-1;else if(n)return r=j(e,t),e[r]===t?r:-1;for(;++r<i;)if(e[r]===t)return r;return-1}function B
+(e,t,n){return e?ot.call(e,t==r||n?1:t):[]}function j(e,t,n,r){var i=0,s=e?e.length:i;if(n){n=y(n,r);for(t=n(t);i<s;)r=i+s>>>1,n(e[r])<t?i=r+1:s=r}else for(;i<s;)r=i+s>>>1,e[r]<t?i=r+1:s=r;return i}function F(e,t,n,r){var s=-1,o=e?e.length:0,u=[],a=[];"function"==typeof t&&(r=n,n=t,t=i);for(n=y(n,r);++s<o;)if(r=n(e[s],s,e),t?!s||a[a.length-1]!==r:0>H(a,r))a.push(r),u.push(e[s]);return u}function I(e,t){return Tt||at&&2<arguments.length?at.call.apply(at,arguments):g(e,t,ot.call(arguments,2))}function q
+(e){return e}function R(e){u(T(e),function(t){var r=v[t]=e[t];v.prototype[t]=function(){var e=[this.__wrapped__];return arguments.length&&st.apply(e,arguments),e=r.apply(v,e),this.__chain__&&(e=new v(e),e.__chain__=n),e}})}var n=!0,r=null,i=!1,U="object"==typeof exports&&exports&&("object"==typeof global&&global&&global==global.global&&(e=global),exports),z=Array.prototype,W=Object.prototype,X=0,V=e._,$=/[-?+=!~*%&^<>|{(\/]|\[\D|\b(?:delete|in|instanceof|new|typeof|void)\b/,J=/&(?:amp|lt|gt|quot|#x27);/g
+,K=/(?:__e|__t=)\(\s*(?![\d\s"']|this\.)/g,Q=RegExp("^"+(W.valueOf+"").replace(/[.*+?^=!:${}()|[\]\/\\]/g,"\\$&").replace(/valueOf|for [^\]]+/g,".+?")+"$"),G=/($^)/,Y=/[&<>"']/g,Z=/['\n\r\t\u2028\u2029\\]/g,et=Math.ceil,tt=z.concat,nt=Math.floor,rt=Q.test(rt=Object.getPrototypeOf)&&rt,it=W.hasOwnProperty,st=z.push,ot=z.slice,ut=W.toString,at=Q.test(at=ot.bind)&&at,ft=Q.test(ft=Array.isArray)&&ft,lt=e.isFinite,ct=Q.test(ct=Object.keys)&&ct,ht=Math.max,pt=Math.min,dt=Math.random,vt="[object Boolean]"
+,mt="[object Date]",gt="[object Number]",yt="[object Object]",bt="[object RegExp]",wt="[object String]",Et=e.clearTimeout,St=e.setTimeout,xt;(function(){function e(){this.x=1}var t={0:1,length:1},n=[];e.prototype={valueOf:1,y:1};for(var r in new e)n.push(r);xt=(n.splice.call(t,0,1),t[0])})(1);var Tt=at&&/\n|Opera/.test(at+ut.call(e.opera)),Nt={"boolean":i,"function":n,object:n,number:i,string:i,"undefined":i,unknown:n},Ct={"\\":"\\","'":"'","\n":"n","\r":"r"," ":"t","\u2028":"u2028","\u2029":"u2029"}
+;v.templateSettings={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,variable:""},v.isArguments=function(e){return"[object Arguments]"==ut.call(e)},v.isArguments(arguments)||(v.isArguments=function(e){return e?it.call(e,"callee"):i});var kt=ft||function(e){return"[object Array]"==ut.call(e)};x(/x/)&&(x=function(e){return"[object Function]"==ut.call(e)});var Lt={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;"},At=d(Lt),Ot=ct?function(e){return e&&Nt[typeof
+e]?ct(e):[]}:p;v.VERSION="0.8.2",v.after=function(e,t){return 1>e?t():function(){if(1>--e)return t.apply(this,arguments)}},v.bind=I,v.bindAll=function(e){var t,n,r=e,i=e;if(!e)return i;n=arguments,t=0;var s=n.length;if(1<s){for(;++t<s;)i[n[t]]=I(i[n[t]],i);return i}for(t in r)n=r[t],x(n)&&(i[t]=I(n,i));return i},v.chain=function(e){return e=new v(e),e.__chain__=n,e},v.clone=function(e){return e&&Nt[typeof e]?kt(e)?ot.call(e):h({},e):e},v.compact=function(e){for(var t=-1,n=e?e.length:0,r=[];++t<n;
+){var i=e[t];i&&r.push(i)}return r},v.compose=function(){var e=arguments;return function(){for(var t=arguments,n=e.length;n--;)t=[e[n].apply(this,t)];return t[0]}},v.contains=k,v.countBy=function(e,t,n){var r={},t=y(t,n);return u(e,function(e,n,i){n=t(e,n,i),it.call(r,n)?r[n]++:r[n]=1}),r},v.debounce=function(e,t,n){function i(){a=r,n||(o=e.apply(u,s))}var s,o,u,a;return function(){var r=n&&!a;return s=arguments,u=this,Et(a),a=St(i,t),r&&(o=e.apply(u,s)),o}},v.defaults=function(e){var t,n,i=e;if(!
+e)return e;for(var s=1,o=arguments.length;s<o;s++)if(i=arguments[s])for(t in i)n=i[t],e[t]==r&&(e[t]=n);return e},v.defer=function(e){var n=ot.call(arguments,1);return St(function(){return e.apply(t,n)},1)},v.delay=function(e,n){var r=ot.call(arguments,2);return St(function(){return e.apply(t,r)},n)},v.difference=function(e){for(var t=-1,n=e.length,r=tt.apply(z,arguments),i=[];++t<n;){var s=e[t];0>H(r,s,n)&&i.push(s)}return i},v.escape=function(e){return e==r?"":(e+"").replace(Y,w)},v.every=f,v.extend=
+h,v.filter=a,v.find=L,v.first=D,v.flatten=P,v.forEach=u,v.functions=T,v.groupBy=function(e,t,n){var r={},t=y(t,n);return u(e,function(e,n,i){n=t(e,n,i),(it.call(r,n)?r[n]:r[n]=[]).push(e)}),r},v.has=function(e,t){return e?it.call(e,t):i},v.identity=q,v.indexOf=H,v.initial=function(e,t,n){return e?ot.call(e,0,-(t==r||n?1:t)):[]},v.intersection=function(e){var t=arguments.length,n=-1,r=e.length,i=[];e:for(;++n<r;){var s=e[n];if(0>H(i,s)){for(var o=1;o<t;o++)if(0>H(arguments[o],s))continue e;i.push(
+s)}}return i},v.invert=d,v.invoke=function(e,t){var n=ot.call(arguments,2),r="function"==typeof t,i=[];return u(e,function(e){i.push((r?t:e[t]).apply(e,n))}),i},v.isArray=kt,v.isBoolean=function(e){return e===n||e===i||ut.call(e)==vt},v.isDate=function(e){return ut.call(e)==mt},v.isElement=function(e){return e?1===e.nodeType:i},v.isEmpty=function(e){var t=n;if(!e)return t;var r=ut.call(e),s=e.length;return kt(e)||r==wt||r==yt&&s===+s&&x(e.splice)?!s:(l(e,function(){return t=i}),t)},v.isEqual=N,v.
+isFinite=function(e){return lt(e)&&ut.call(e)==gt},v.isFunction=x,v.isNaN=function(e){return ut.call(e)==gt&&e!=+e},v.isNull=function(e){return e===r},v.isNumber=function(e){return ut.call(e)==gt},v.isObject=function(e){return e?Nt[typeof e]:i},v.isRegExp=function(e){return ut.call(e)==bt},v.isString=function(e){return ut.call(e)==wt},v.isUndefined=function(e){return e===t},v.keys=Ot,v.last=function(e,t,n){if(e){var i=e.length;return t==r||n?e[i-1]:ot.call(e,-t||i)}},v.lastIndexOf=function(e,t,n)
+{var r=e?e.length:0;for("number"==typeof n&&(r=(0>n?ht(0,r+n):pt(n,r-1))+1);r--;)if(e[r]===t)return r;return-1},v.map=o,v.max=A,v.memoize=function(e,t){var n={};return function(){var r=t?t.apply(this,arguments):arguments[0];return it.call(n,r)?n[r]:n[r]=e.apply(this,arguments)}},v.min=function(e,t,n){var r=Infinity,i=-1,s=e?e.length:0,o=r;if(t||s!==+s)t=y(t,n),u(e,function(e,n,i){n=t(e,n,i),n<r&&(r=n,o=e)});else for(;++i<s;)e[i]<o&&(o=e[i]);return o},v.mixin=R,v.noConflict=function(){return e._=V
+,this},v.object=function(e,t){for(var n=-1,r=e?e.length:0,i={};++n<r;){var s=e[n];t?i[s]=t[n]:i[s[0]]=s[1]}return i},v.omit=function(e,t,n){var r="function"==typeof t,i={};if(r)t=y(t,n);else var s=tt.apply(z,arguments);return c(e,function(e,n,o){if(r?!t(e,n,o):0>H(s,n))i[n]=e}),i},v.once=function(e){var t,s=i;return function(){return s?t:(s=n,t=e.apply(this,arguments),e=r,t)}},v.pairs=function(e){var t=[];return l(e,function(e,n){t.push([n,e])}),t},v.pick=function(e,t,n){var r={};if("function"!=typeof
+t)for(var i=0,s=tt.apply(z,arguments),o=s.length;++i<o;){var u=s[i];u in e&&(r[u]=e[u])}else t=y(t,n),c(e,function(e,n,i){t(e,n,i)&&(r[n]=e)});return r},v.pluck=O,v.random=function(e,t){return e==r&&t==r&&(t=1),e=+e||0,t==r&&(t=e,e=0),e+nt(dt()*((+t||0)-e+1))},v.range=function(e,t,n){e=+e||0,n=+n||1,t==r&&(t=e,e=0);for(var i=-1,t=ht(0,et((t-e)/n)),s=Array(t);++i<t;)s[i]=e,e+=n;return s},v.reduce=M,v.reduceRight=_,v.reject=function(e,t,n){var r,i=[];if(!e)return i;var t=y(t,n),s=e.length,n=-1;if(s===+
+s)for(;++n<s;)r=e[n],!t(r,n,e)&&i.push(r);else for(n in e)it.call(e,n)&&(r=e[n],!t(r,n,e)&&i.push(r));return i},v.rest=B,v.result=function(e,t){var n=e?e[t]:r;return x(n)?e[t]():n},v.shuffle=function(e){var t=-1,n=Array(e?e.length:0);return u(e,function(e){var r=nt(dt()*(++t+1));n[t]=n[r],n[r]=e}),n},v.size=function(e){var t=e?e.length:0;return t===+t?t:Ot(e).length},v.some=s,v.sortBy=function(e,t,n){var r=[],t=y(t,n);u(e,function(e,n,i){r.push({a:t(e,n,i),b:n,c:e})}),e=r.length;for(r.sort(m);e--
+;)r[e]=r[e].c;return r},v.sortedIndex=j,v.tap=function(e,t){return t(e),e},v.template=function(e,t,n){e||(e=""),n||(n={});var r,i,s=0,o=v.templateSettings,u="__p += '",a=n.variable||o.variable,f=a;e.replace(RegExp((n.escape||o.escape||G).source+"|"+(n.interpolate||o.interpolate||G).source+"|"+(n.evaluate||o.evaluate||G).source+"|$","g"),function(t,n,i,o,a){u+=e.slice(s,a).replace(Z,b),u+=n?"'+__e("+n+")+'":o?"';"+o+";__p+='":i?"'+((__t=("+i+"))==null?'':__t)+'":"",r||(r=o||$.test(n||i)),s=a+t.length
+}),u+="';",f||(a="obj",r?u="with("+a+"){"+u+"}":(n=RegExp("(\\(\\s*)"+a+"\\."+a+"\\b","g"),u=u.replace(K,"$&"+a+".").replace(n,"$1__d"))),u="function("+a+"){"+(f?"":a+"||("+a+"={});")+"var __t,__p='',__e=_.escape"+(r?",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}":(f?"":",__d="+a+"."+a+"||"+a)+";")+u+"return __p}";try{i=Function("_","return "+u)(v)}catch(l){throw l.source=u,l}return t?i(t):(i.source=u,i)},v.throttle=function(e,t){function n(){a=new Date,u=r,s=e.apply(o,i
+)}var i,s,o,u,a=0;return function(){var r=new Date,f=t-(r-a);return i=arguments,o=this,0>=f?(Et(u),a=r,s=e.apply(o,i)):u||(u=St(n,f)),s}},v.times=function(e,t,n){for(var e=+e||0,r=-1,i=Array(e);++r<e;)i[r]=t.call(n,r);return i},v.toArray=function(e){if(!e)return[];var t=e.length;return t===+t?"string"==typeof e?e.split(""):ot.call(e):C(e)},v.unescape=function(e){return e==r?"":(e+"").replace(J,S)},v.union=function(){for(var e=-1,t=tt.apply(z,arguments),n=t.length,r=[];++e<n;){var i=t[e];0>H(r,i)&&
+r.push(i)}return r},v.uniq=F,v.uniqueId=function(e){var t=X++;return e?e+t:t},v.values=C,v.where=function(e,t){var r=[];c(t,function(e,t){r.push(t)});var i=r.length,s=[];return u(e,function(e){for(var o=n,u=0;u<i&&(o=r[u],o=e[o]===t[o]);u++);o&&s.push(e)}),s},v.without=function(e){for(var t=-1,n=e.length,r=[];++t<n;){var i=e[t];0>H(arguments,i,1)&&r.push(i)}return r},v.wrap=function(e,t){return function(){var n=[e];return arguments.length&&st.apply(n,arguments),t.apply(this,n)}},v.zip=function(e)
+{for(var t=-1,n=e?A(O(arguments,"length")):0,r=Array(n);++t<n;)r[t]=O(arguments,t);return r},v.all=f,v.any=s,v.collect=o,v.detect=L,v.drop=B,v.each=u,v.foldl=M,v.foldr=_,v.head=D,v.include=k,v.inject=M,v.methods=T,v.select=a,v.tail=B,v.take=D,v.unique=F,R(v),v.prototype.chain=function(){return this.__chain__=n,this},v.prototype.value=function(){return this.__wrapped__},u("pop push reverse shift sort splice unshift".split(" "),function(e){var t=z[e];v.prototype[e]=function(){var e=this.__wrapped__
+;return t.apply(e,arguments),xt&&e.length===0&&delete e[0],this.__chain__&&(e=new v(e),e.__chain__=n),e}}),u(["concat","join","slice"],function(e){var t=z[e];v.prototype[e]=function(){var e=t.apply(this.__wrapped__,arguments);return this.__chain__&&(e=new v(e),e.__chain__=n),e}}),U?"object"==typeof module&&module&&module.exports==U?(module.exports=v)._=v:U._=v:e._=v})(this);

0 comments on commit 113c944

Please sign in to comment.