diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index de5d5626f..e133ebea1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,9 +1,9 @@ ## How to contribute to Underscore.js -* Before you open a ticket or send a pull request, [search](https://github.com/documentcloud/underscore/issues) for previous discussions about the same feature or issue. Add to the earlier ticket if you find one. +* Before you open a ticket or send a pull request, [search](https://github.com/jashkenas/underscore/issues) for previous discussions about the same feature or issue. Add to the earlier ticket if you find one. * Before sending a pull request for a feature, be sure to have [tests](http://underscorejs.org/test/). -* Use the same coding style as the rest of the [codebase](https://github.com/documentcloud/underscore/blob/master/underscore.js). +* Use the same coding style as the rest of the [codebase](https://github.com/jashkenas/underscore/blob/master/underscore.js). * In your pull request, do not add documentation or re-build the minified `underscore-min.js` file. We'll do those things before cutting a new release. diff --git a/LICENSE b/LICENSE index 0d8dbe40b..3acf90838 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,5 @@ -Copyright (c) 2009-2013 Jeremy Ashkenas, DocumentCloud +Copyright (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative +Reporters & Editors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation diff --git a/README.md b/README.md index b1f3e50a8..c2ba2590c 100644 --- a/README.md +++ b/README.md @@ -15,5 +15,8 @@ without extending any core JavaScript objects. For Docs, License, Tests, and pre-packed downloads, see: http://underscorejs.org +Underscore is an open-sourced component of DocumentCloud: +https://github.com/documentcloud + Many thanks to our contributors: -https://github.com/documentcloud/underscore/contributors +https://github.com/jashkenas/underscore/contributors diff --git a/docs/underscore.html b/docs/underscore.html index 8c5ecc7fb..00c07a54a 100644 --- a/docs/underscore.html +++ b/docs/underscore.html @@ -27,10 +27,9 @@

underscore.js

-
Underscore.js 1.5.0
+              
Underscore.js 1.5.1
 http://underscorejs.org
-(c) 2009-2011 Jeremy Ashkenas, DocumentCloud Inc.
-(c) 2011-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+(c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
 Underscore may be freely distributed under the MIT license.
@@ -237,7 +236,7 @@

Baseline setup

-
  _.VERSION = '1.5.0';
+
  _.VERSION = '1.5.1';
@@ -1204,29 +1203,6 @@

Array Functions

  _.zip = function() {
-    return _.unzip.apply(_, slice.call(arguments));
-  };
- - - - -
  • -
    - -
    - -
    -

    The inverse operation to _.zip. If given an array of pairs it -returns an array of the paired elements split into two left and -right element arrays, if given an array of triples it returns a -three element array and so on. For example, _.unzip given -[['a',1],['b',2],['c',3]] returns the array -[['a','b','c'],[1,2,3]]. -

    - -
    - -
      _.unzip = function() {
         var length = _.max(_.pluck(arguments, "length").concat(0));
         var results = new Array(length);
         for (var i = 0; i < length; i++) {
    @@ -1238,11 +1214,11 @@ 

    Array Functions

  • -
  • +
  • - +

    Converts lists into objects. Pass either a single array of [key, value] pairs, or two parallel arrays of the same length -- one of keys, and one of @@ -1267,11 +1243,11 @@

    Array Functions

  • -
  • +
  • - +

    If the browser doesn't supply us with indexOf (I'm looking at you, MSIE), we need this function. Return the position of the first occurrence of an @@ -1302,11 +1278,11 @@

    Array Functions

  • -
  • +
  • - +

    Delegates to ECMAScript 5's native lastIndexOf if available.

    @@ -1327,11 +1303,11 @@

    Array Functions

  • -
  • +
  • - +

    Generate an integer Array containing an arithmetic progression. A port of the native Python range() function. See @@ -1362,11 +1338,11 @@

    Array Functions

  • -
  • +
  • - +

    Function (ahem) Functions

    @@ -1375,11 +1351,11 @@

    Function (ahem) Functions

  • -
  • +
  • - +
    @@ -1387,11 +1363,11 @@

    Function (ahem) Functions

  • -
  • +
  • - +

    Reusable constructor function for prototype setting.

    @@ -1403,11 +1379,11 @@

    Function (ahem) Functions

  • -
  • +
  • - +

    Create a function bound to a given object (assigning this, and arguments, optionally). Delegates to ECMAScript 5's native Function.bind if @@ -1435,11 +1411,11 @@

    Function (ahem) Functions

  • -
  • +
  • - +

    Partially apply a function by creating a version that has had some of its arguments pre-filled, without changing its dynamic this context. @@ -1457,11 +1433,11 @@

    Function (ahem) Functions

  • -
  • +
  • - +

    Bind all of an object's methods to that object. Useful for ensuring that all callbacks defined on an object belong to it. @@ -1479,11 +1455,11 @@

    Function (ahem) Functions

  • -
  • +
  • - +

    Memoize an expensive function by storing its results.

    @@ -1502,11 +1478,11 @@

    Function (ahem) Functions

  • -
  • +
  • - +

    Delays a function for the given number of milliseconds, and then calls it with the arguments supplied. @@ -1522,11 +1498,11 @@

    Function (ahem) Functions

  • -
  • +
  • - +

    Defers a function, scheduling it to run after the current call stack has cleared. @@ -1541,11 +1517,11 @@

    Function (ahem) Functions

  • -
  • +
  • - +

    Returns a function, that, when invoked, will only be triggered at most once during a given window of time. Normally, the throttled function will run @@ -1562,7 +1538,7 @@

    Function (ahem) Functions

    var previous = 0; options || (options = {}); var later = function() { - previous = new Date; + previous = options.leading === false ? 0 : new Date; timeout = null; result = func.apply(context, args); }; @@ -1587,11 +1563,11 @@

    Function (ahem) Functions

  • -
  • +
  • - +

    Returns a function, that, as long as it continues to be invoked, will not be triggered. The function will be called after it stops being called for @@ -1621,11 +1597,11 @@

    Function (ahem) Functions

  • -
  • +
  • - +

    Returns a function that will be executed at most one time, no matter how often you call it. Useful for lazy initialization. @@ -1647,11 +1623,11 @@

    Function (ahem) Functions

  • -
  • +
  • - +

    Returns the first function passed as an argument to the second, allowing you to adjust arguments, run code before and after, and @@ -1671,11 +1647,11 @@

    Function (ahem) Functions

  • -
  • +
  • - +

    Returns a function that is the composition of a list of functions, each consuming the return value of the function that follows. @@ -1697,11 +1673,11 @@

    Function (ahem) Functions

  • -
  • +
  • - +

    Returns a function that will only be executed after being called N times.

    @@ -1719,11 +1695,11 @@

    Function (ahem) Functions

  • -
  • +
  • - +

    Object Functions

    @@ -1732,11 +1708,11 @@

    Object Functions

  • -
  • +
  • - +
    @@ -1744,11 +1720,11 @@

    Object Functions

  • -
  • +
  • - +

    Retrieve the names of an object's properties. Delegates to ECMAScript 5's native Object.keys @@ -1766,11 +1742,11 @@

    Object Functions

  • -
  • +
  • - +

    Retrieve the values of an object's properties.

    @@ -1786,11 +1762,11 @@

    Object Functions

  • -
  • +
  • - +

    Convert an object into a list of [key, value] pairs.

    @@ -1806,11 +1782,11 @@

    Object Functions

  • -
  • +
  • - +

    Invert the keys and values of an object. The values must be serializable.

    @@ -1826,11 +1802,11 @@

    Object Functions

  • -
  • +
  • - +

    Return a sorted list of the function names available on the object. Aliased as methods @@ -1849,11 +1825,11 @@

    Object Functions

  • -
  • +
  • - +

    Extend a given object with all the properties in passed-in object(s).

    @@ -1874,11 +1850,11 @@

    Object Functions

  • -
  • +
  • - +

    Return a copy of the object only containing the whitelisted properties.

    @@ -1897,11 +1873,11 @@

    Object Functions

  • -
  • +
  • - +

    Return a copy of the object without the blacklisted properties.

    @@ -1920,11 +1896,11 @@

    Object Functions

  • -
  • +
  • - +

    Fill in a given object with default properties.

    @@ -1945,11 +1921,11 @@

    Object Functions

  • -
  • +
  • - +

    Create a (shallow-cloned) duplicate of an object.

    @@ -1964,11 +1940,11 @@

    Object Functions

  • -
  • +
  • - +

    Invokes interceptor with the obj, and then returns obj. The primary purpose of this method is to "tap into" a method chain, in @@ -1985,11 +1961,11 @@

    Object Functions

  • -
  • +
  • - +

    Internal recursive comparison function for isEqual.

    @@ -2001,11 +1977,11 @@

    Object Functions

  • -
  • +
  • - +

    Identical objects are equal. 0 === -0, but they aren't identical. See the Harmony egal proposal. @@ -2018,11 +1994,11 @@

    Object Functions

  • -
  • +
  • - +

    A strict comparison is necessary because null == undefined.

    @@ -2034,11 +2010,11 @@

    Object Functions

  • -
  • +
  • - +

    Unwrap any wrapped objects.

    @@ -2051,11 +2027,11 @@

    Object Functions

  • -
  • +
  • - +

    Compare [[Class]] names.

    @@ -2069,11 +2045,11 @@

    Object Functions

  • -
  • +
  • - +

    Strings, numbers, dates, and booleans are compared by value.

    @@ -2085,11 +2061,11 @@

    Object Functions

  • -
  • +
  • - +

    Primitives and their corresponding object wrappers are equivalent; thus, "5" is equivalent to new String("5"). @@ -2103,11 +2079,11 @@

    Object Functions

  • -
  • +
  • - +

    NaNs are equivalent, but non-reflexive. An egal comparison is performed for other numeric values. @@ -2122,11 +2098,11 @@

    Object Functions

  • -
  • +
  • - +

    Coerce dates and booleans to numeric primitive values. Dates are compared by their millisecond representations. Note that invalid dates with millisecond representations @@ -2140,11 +2116,11 @@

    Object Functions

  • -
  • +
  • - +

    RegExps are compared by their source patterns and flags.

    @@ -2162,11 +2138,11 @@

    Object Functions

  • -
  • +
  • - +

    Assume equality for cyclic structures. The algorithm for detecting cyclic structures is adapted from ES 5.1 section 15.12.3, abstract operation JO. @@ -2180,11 +2156,11 @@

    Object Functions

  • -
  • +
  • - +

    Linear search. Performance is inversely proportional to the number of unique nested structures. @@ -2198,11 +2174,11 @@

    Object Functions

  • -
  • +
  • - +

    Objects with different constructors are not equivalent, but Objects from different frames are. @@ -2219,11 +2195,11 @@

    Object Functions

  • -
  • +
  • - +

    Add the first object to the stack of traversed objects.

    @@ -2237,11 +2213,11 @@

    Object Functions

  • -
  • +
  • - +

    Recursively compare objects and arrays.

    @@ -2253,11 +2229,11 @@

    Object Functions

  • -
  • +
  • - +

    Compare array lengths to determine if a deep comparison is necessary.

    @@ -2271,11 +2247,11 @@

    Object Functions

  • -
  • +
  • - +

    Deep compare the contents, ignoring non-numeric properties.

    @@ -2291,11 +2267,11 @@

    Object Functions

  • -
  • +
  • - +

    Deep compare objects.

    @@ -2308,11 +2284,11 @@

    Object Functions

  • -
  • +
  • - +

    Count the expected number of properties.

    @@ -2324,11 +2300,11 @@

    Object Functions

  • -
  • +
  • - +

    Deep compare each member.

    @@ -2342,11 +2318,11 @@

    Object Functions

  • -
  • +
  • - +

    Ensure that both objects contain the same number of properties.

    @@ -2364,11 +2340,11 @@

    Object Functions

  • -
  • +
  • - +

    Remove the first object from the stack of traversed objects.

    @@ -2383,11 +2359,11 @@

    Object Functions

  • -
  • +
  • - +

    Perform a deep comparison to check if two objects are equal.

    @@ -2401,11 +2377,11 @@

    Object Functions

  • -
  • +
  • - +

    Is a given array, string, or object empty? An "empty" object has no enumerable own-properties. @@ -2423,11 +2399,11 @@

    Object Functions

  • -
  • +
  • - +

    Is a given value a DOM element?

    @@ -2441,11 +2417,11 @@

    Object Functions

  • -
  • +
  • - +

    Is a given value an array? Delegates to ECMA5's native Array.isArray @@ -2460,11 +2436,11 @@

    Object Functions

  • -
  • +
  • - +

    Is a given variable an object?

    @@ -2478,11 +2454,11 @@

    Object Functions

  • -
  • +
  • - +

    Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp.

    @@ -2498,11 +2474,11 @@

    Object Functions

  • -
  • +
  • - +

    Define a fallback version of the method in browsers (ahem, IE), where there isn't any inspectable "Arguments" type. @@ -2519,11 +2495,11 @@

    Object Functions

  • -
  • +
  • - +

    Optimize isFunction if appropriate.

    @@ -2539,11 +2515,11 @@

    Object Functions

  • -
  • +
  • - +

    Is a given object a finite number?

    @@ -2557,11 +2533,11 @@

    Object Functions

  • -
  • +
  • - +

    Is the given value NaN? (NaN is the only number which does not equal itself).

    @@ -2575,11 +2551,11 @@

    Object Functions

  • -
  • +
  • - +

    Is a given value a boolean?

    @@ -2593,11 +2569,11 @@

    Object Functions

  • -
  • +
  • - +

    Is a given value equal to null?

    @@ -2611,11 +2587,11 @@

    Object Functions

  • -
  • +
  • - +

    Is a given variable undefined?

    @@ -2629,11 +2605,11 @@

    Object Functions

  • -
  • +
  • - +

    Shortcut function for checking if an object has a given property directly on itself (in other words, not on a prototype). @@ -2648,11 +2624,11 @@

    Object Functions

  • -
  • +
  • - +

    Utility Functions

    @@ -2661,11 +2637,11 @@

    Utility Functions

  • -
  • +
  • - +
    @@ -2673,11 +2649,11 @@

    Utility Functions

  • -
  • +
  • - +

    Run Underscore.js in noConflict mode, returning the _ variable to its previous owner. Returns a reference to the Underscore object. @@ -2693,11 +2669,11 @@

    Utility Functions

  • -
  • +
  • - +

    Keep the identity function around for default iterators.

    @@ -2711,11 +2687,11 @@

    Utility Functions

  • -
  • +
  • - +

    Run a function n times.

    @@ -2731,11 +2707,11 @@

    Utility Functions

  • -
  • +
  • - +

    Return a random integer between min and max (inclusive).

    @@ -2753,11 +2729,11 @@

    Utility Functions

  • -
  • +
  • - +

    List of HTML entities for escaping.

    @@ -2779,11 +2755,11 @@

    Utility Functions

  • -
  • +
  • - +

    Regexes containing the keys and values listed immediately above.

    @@ -2798,11 +2774,11 @@

    Utility Functions

  • -
  • +
  • - +

    Functions for escaping and unescaping strings to/from HTML interpolation.

    @@ -2821,11 +2797,11 @@

    Utility Functions

  • -
  • +
  • - +

    If the value of the named property is a function then invoke it with the object as context; otherwise, return it. @@ -2842,11 +2818,11 @@

    Utility Functions

  • -
  • +
  • - +

    Add your own custom functions to the Underscore object.

    @@ -2867,11 +2843,11 @@

    Utility Functions

  • -
  • +
  • - +

    Generate a unique integer id (unique within the entire client session). Useful for temporary DOM ids. @@ -2888,11 +2864,11 @@

    Utility Functions

  • -
  • +
  • - +

    By default, Underscore uses ERB-style template delimiters, change the following template settings to use alternative delimiters. @@ -2909,11 +2885,11 @@

    Utility Functions

  • -
  • +
  • - +

    When customizing templateSettings, if you don't want to define an interpolation, evaluation or escaping regex, we need one that is @@ -2927,11 +2903,11 @@

    Utility Functions

  • -
  • +
  • - +

    Certain characters need to be escaped so that they can be put into a string literal. @@ -2954,11 +2930,11 @@

    Utility Functions

  • -
  • +
  • - +

    JavaScript micro-templating, similar to John Resig's implementation. Underscore templating handles arbitrary delimiters, preserves whitespace, @@ -2974,11 +2950,11 @@

    Utility Functions

  • -
  • +
  • - +

    Combine delimiters into one regular expression via alternation.

    @@ -2994,11 +2970,11 @@

    Utility Functions

  • -
  • +
  • - +

    Compile the template source, escaping string literals appropriately.

    @@ -3028,11 +3004,11 @@

    Utility Functions

  • -
  • +
  • - +

    If a variable is not specified, place data values in local scope.

    @@ -3060,11 +3036,11 @@

    Utility Functions

  • -
  • +
  • - +

    Provide the compiled function source as a convenience for precompilation.

    @@ -3079,11 +3055,11 @@

    Utility Functions

  • -
  • +
  • - +

    Add a "chain" function, which will delegate to the wrapper.

    @@ -3097,11 +3073,11 @@

    Utility Functions

  • -
  • +
  • - +

    OOP

    @@ -3110,11 +3086,11 @@

    OOP

  • -
  • +
  • - +

    If Underscore is called as a function, it returns a wrapped object that can be used OO-style. This wrapper holds altered versions of all the @@ -3126,11 +3102,11 @@

    OOP

  • -
  • +
  • - +

    Helper function to continue chaining intermediate results.

    @@ -3144,11 +3120,11 @@

    OOP

  • -
  • +
  • - +

    Add all of the Underscore functions to the wrapper object.

    @@ -3160,11 +3136,11 @@

    OOP

  • -
  • +
  • - +

    Add all mutator Array functions to the wrapper.

    @@ -3184,11 +3160,11 @@

    OOP

  • -
  • +
  • - +

    Add all accessor Array functions to the wrapper.

    @@ -3207,11 +3183,11 @@

    OOP

  • -
  • +
  • - +

    Start chaining a wrapped Underscore object.

    @@ -3226,11 +3202,11 @@

    OOP

  • -
  • +
  • - +

    Extracts the result from a wrapped and chained object.

    diff --git a/index.html b/index.html index ab9119708..0845ce55f 100644 --- a/index.html +++ b/index.html @@ -181,10 +181,10 @@
  • - difference
  • - uniq
  • - zip
  • -
  • - unzip
  • - object
  • - indexOf
  • - lastIndexOf
  • @@ -337,7 +336,7 @@

    - Underscore is a + Underscore is a utility-belt library for JavaScript that provides a lot of the functional programming support that you would expect in Prototype.js @@ -368,9 +367,9 @@

    The project is - hosted on GitHub. + hosted on GitHub. You can report bugs and discuss features on the - issues page, + issues page, on Freenode in the #documentcloud channel, or send tweets to @documentcloud.

    @@ -383,11 +382,11 @@

    Downloads (Right-click, and u - - + + - + - +
    Development Version (1.5.0)42kb, Uncompressed with Plentiful CommentsDevelopment Version (1.5.1)41kb, Uncompressed with Plentiful Comments
    Production Version (1.5.0)Production Version (1.5.1) 5kb, Minified and Gzipped  (Source Map) @@ -397,7 +396,7 @@

    Downloads (Right-click, and u

    Edge VersionEdge Version Unreleased, current master, use at your own risk
    @@ -860,19 +859,9 @@

    Array Functions

     _.zip(['moe', 'larry', 'curly'], [30, 40, 50], [true, false, false]);
     => [["moe", 30, true], ["larry", 40, false], ["curly", 50, false]]
    -
    -

    - unzip_.unzip(*arrays) -
    - The opposite of zip. Given a number of arrays, returns a - series of new arrays, the first of which contains all of the first elements - in the input arrays, the second of which contains all of the second elements, - and so on. Use with apply to pass in an array of arrays. -

    -
    -_.unzip(["moe", 30, true], ["larry", 40, false], ["curly", 50, false]);
    -=> [['moe', 'larry', 'curly'], [30, 40, 50], [true, false, false]]
    +_.zip.apply(_, arrayOfRowsOfData);
    +=> arrayOfColumnsOfData
     

    @@ -1843,7 +1832,18 @@

    Change Log

    - 1.5.0Jul. 6, 2013Diff
    + 1.5.1Jul. 8, 2013Diff
    +

      +
    • + Removed unzip, as it's simply the application of zip + to an array of arguments. Use _.zip.apply(_, list) to + transpose instead. +
    • +
    +

    + +

    + 1.5.0Jul. 6, 2013Diff

    • Added a new unzip function, as the inverse of _.zip. @@ -1874,7 +1874,7 @@

      Change Log

      - 1.4.4Jan. 30, 2013Diff
      + 1.4.4Jan. 30, 2013Diff

      • Added _.findWhere, for finding the first element in a list @@ -1900,7 +1900,7 @@

        Change Log

        - 1.4.3Dec. 4, 2012Diff
        + 1.4.3Dec. 4, 2012Diff

        • Improved Underscore compatibility with Adobe's JS engine that can be @@ -1925,7 +1925,7 @@

          Change Log

          - 1.4.2Oct. 1, 2012Diff
          + 1.4.2Oct. 1, 2012Diff

          • For backwards compatibility, returned to pre-1.4.0 behavior when @@ -1936,7 +1936,7 @@

            Change Log

            - 1.4.1Oct. 1, 2012Diff
            + 1.4.1Oct. 1, 2012Diff

            • Fixed a 1.4.0 regression in the lastIndexOf function. @@ -1945,7 +1945,7 @@

              Change Log

              - 1.4.0Sept. 27, 2012Diff
              + 1.4.0Sept. 27, 2012Diff

              • Added a pairs function, for turning a JavaScript object @@ -2002,7 +2002,7 @@

                Change Log

              • A number of edge-cases fixes and tweaks, which you can spot in the - diff. + diff. Depending on how you're using Underscore, 1.4.0 may be more backwards-incompatible than usual — please test when you upgrade.
              • diff --git a/package.json b/package.json index a4118ac7b..b0f3cf487 100644 --- a/package.json +++ b/package.json @@ -4,9 +4,9 @@ "homepage" : "http://underscorejs.org", "keywords" : ["util", "functional", "server", "client", "browser"], "author" : "Jeremy Ashkenas ", - "repository" : {"type": "git", "url": "git://github.com/documentcloud/underscore.git"}, + "repository" : {"type": "git", "url": "git://github.com/jashkenas/underscore.git"}, "main" : "underscore.js", - "version" : "1.5.0", + "version" : "1.5.1", "devDependencies": { "phantomjs": "1.9.0-1" }, diff --git a/test/arrays.js b/test/arrays.js index 11e5ca7bf..294086523 100644 --- a/test/arrays.js +++ b/test/arrays.js @@ -120,6 +120,9 @@ $(document).ready(function() { (function(){ args = arguments; })(1, 2, 3); result = _.union(args, [2, 30, 1], [1, 40]); equal(result.join(' '), '1 2 3 30 40', 'takes the union of a list of arrays'); + + result = _.union(null, [1, 2, 3]); + deepEqual(result, [null, 1, 2, 3]); }); test("difference", function() { @@ -134,19 +137,17 @@ $(document).ready(function() { var names = ['moe', 'larry', 'curly'], ages = [30, 40, 50], leaders = [true]; var stooges = _.zip(names, ages, leaders); equal(String(stooges), 'moe,30,true,larry,40,,curly,50,', 'zipped together arrays of different lengths'); - }); - test('unzip', function() { - var stoogesUnzipped = _.unzip(['moe',30, 'stooge 1'],['larry',40, 'stooge 2'],['curly',50, 'stooge 3']); - deepEqual(stoogesUnzipped, [['moe','larry','curly'],[30,40,50], ['stooge 1', 'stooge 2', 'stooge 3']], 'unzipped pairs'); + stooges = _.zip(['moe',30, 'stooge 1'],['larry',40, 'stooge 2'],['curly',50, 'stooge 3']); + deepEqual(stooges, [['moe','larry','curly'],[30,40,50], ['stooge 1', 'stooge 2', 'stooge 3']], 'zipped pairs'); // In the case of difference lengths of the tuples undefineds // should be used as placeholder - stoogesUnzipped = _.unzip(['moe',30],['larry',40],['curly',50, 'extra data']); - deepEqual(stoogesUnzipped, [['moe','larry','curly'],[30,40,50], [undefined, undefined, 'extra data']], 'unzipped pairs'); + stooges = _.zip(['moe',30],['larry',40],['curly',50, 'extra data']); + deepEqual(stooges, [['moe','larry','curly'],[30,40,50], [undefined, undefined, 'extra data']], 'zipped pairs with empties'); - var emptyUnzipped = _.unzip([]); - deepEqual(emptyUnzipped, [], 'unzipped empty'); + var empty = _.zip([]); + deepEqual(empty, [], 'unzipped empty'); }); test('object', function() { diff --git a/test/functions.js b/test/functions.js index 69011f8bd..90843afa1 100644 --- a/test/functions.js +++ b/test/functions.js @@ -142,6 +142,20 @@ $(document).ready(function() { _.delay(function(){ equal(counter, 2, "incr was called twice"); start(); }, 64); }); + asyncTest("more throttling", 3, function() { + var counter = 0; + var incr = function(){ counter++; }; + var throttledIncr = _.throttle(incr, 30); + throttledIncr(); throttledIncr(); + ok(counter == 1); + _.delay(function(){ + ok(counter == 2); + throttledIncr(); + ok(counter == 3); + start(); + }, 85); + }); + asyncTest("throttle repeatedly with results", 6, function() { var counter = 0; var incr = function(){ return ++counter; }; @@ -197,6 +211,42 @@ $(document).ready(function() { }, 96); }); + asyncTest("more throttle does not trigger leading call when leading is set to false", 3, function() { + var counter = 0; + var incr = function(){ counter++; }; + var throttledIncr = _.throttle(incr, 100, {leading: false}); + + throttledIncr(); + _.delay(throttledIncr, 50); + _.delay(throttledIncr, 60); + _.delay(throttledIncr, 200); + ok(counter === 0); + + _.delay(function() { + ok(counter == 1); + }, 250); + + _.delay(function() { + ok(counter == 2); + start(); + }, 350); + }); + + asyncTest("one more throttle with leading: false test", 2, function() { + var counter = 0; + var incr = function(){ counter++; }; + var throttledIncr = _.throttle(incr, 100, {leading: false}); + + var time = new Date; + while (new Date - time < 350) throttledIncr(); + ok(counter === 3); + + _.delay(function() { + equal(counter, 4); + start(); + }, 200); + }); + asyncTest("throttle does not trigger trailing call when trailing is set to false", 4, function() { var counter = 0; var incr = function(){ counter++; }; diff --git a/underscore-min.js b/underscore-min.js index 4db972999..ef9ef9f40 100644 --- a/underscore-min.js +++ b/underscore-min.js @@ -1,7 +1,6 @@ -// Underscore.js 1.5.0 +// Underscore.js 1.5.1 // http://underscorejs.org -// (c) 2009-2011 Jeremy Ashkenas, DocumentCloud Inc. -// (c) 2011-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors +// (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors // Underscore may be freely distributed under the MIT license. -!function(){var n=this,t=n._,r={},e=Array.prototype,u=Object.prototype,i=Function.prototype,a=e.push,o=e.slice,c=e.concat,l=u.toString,f=u.hasOwnProperty,s=e.forEach,p=e.map,v=e.reduce,h=e.reduceRight,d=e.filter,g=e.every,m=e.some,y=e.indexOf,b=e.lastIndexOf,x=Array.isArray,_=Object.keys,w=i.bind,j=function(n){return n instanceof j?n:this instanceof j?(this._wrapped=n,void 0):new j(n)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=j),exports._=j):n._=j,j.VERSION="1.5.0";var A=j.each=j.forEach=function(n,t,e){if(null!=n)if(s&&n.forEach===s)n.forEach(t,e);else if(n.length===+n.length){for(var u=0,i=n.length;i>u;u++)if(t.call(e,n[u],u,n)===r)return}else for(var a in n)if(j.has(n,a)&&t.call(e,n[a],a,n)===r)return};j.map=j.collect=function(n,t,r){var e=[];return null==n?e:p&&n.map===p?n.map(t,r):(A(n,function(n,u,i){e.push(t.call(r,n,u,i))}),e)};var E="Reduce of empty array with no initial value";j.reduce=j.foldl=j.inject=function(n,t,r,e){var u=arguments.length>2;if(null==n&&(n=[]),v&&n.reduce===v)return e&&(t=j.bind(t,e)),u?n.reduce(t,r):n.reduce(t);if(A(n,function(n,i,a){u?r=t.call(e,r,n,i,a):(r=n,u=!0)}),!u)throw new TypeError(E);return r},j.reduceRight=j.foldr=function(n,t,r,e){var u=arguments.length>2;if(null==n&&(n=[]),h&&n.reduceRight===h)return e&&(t=j.bind(t,e)),u?n.reduceRight(t,r):n.reduceRight(t);var i=n.length;if(i!==+i){var a=j.keys(n);i=a.length}if(A(n,function(o,c,l){c=a?a[--i]:--i,u?r=t.call(e,r,n[c],c,l):(r=n[c],u=!0)}),!u)throw new TypeError(E);return r},j.find=j.detect=function(n,t,r){var e;return O(n,function(n,u,i){return t.call(r,n,u,i)?(e=n,!0):void 0}),e},j.filter=j.select=function(n,t,r){var e=[];return null==n?e:d&&n.filter===d?n.filter(t,r):(A(n,function(n,u,i){t.call(r,n,u,i)&&e.push(n)}),e)},j.reject=function(n,t,r){return j.filter(n,function(n,e,u){return!t.call(r,n,e,u)},r)},j.every=j.all=function(n,t,e){t||(t=j.identity);var u=!0;return null==n?u:g&&n.every===g?n.every(t,e):(A(n,function(n,i,a){return(u=u&&t.call(e,n,i,a))?void 0:r}),!!u)};var O=j.some=j.any=function(n,t,e){t||(t=j.identity);var u=!1;return null==n?u:m&&n.some===m?n.some(t,e):(A(n,function(n,i,a){return u||(u=t.call(e,n,i,a))?r:void 0}),!!u)};j.contains=j.include=function(n,t){return null==n?!1:y&&n.indexOf===y?n.indexOf(t)!=-1:O(n,function(n){return n===t})},j.invoke=function(n,t){var r=o.call(arguments,2),e=j.isFunction(t);return j.map(n,function(n){return(e?t:n[t]).apply(n,r)})},j.pluck=function(n,t){return j.map(n,function(n){return n[t]})},j.where=function(n,t,r){return j.isEmpty(t)?r?void 0:[]:j[r?"find":"filter"](n,function(n){for(var r in t)if(t[r]!==n[r])return!1;return!0})},j.findWhere=function(n,t){return j.where(n,t,!0)},j.max=function(n,t,r){if(!t&&j.isArray(n)&&n[0]===+n[0]&&n.length<65535)return Math.max.apply(Math,n);if(!t&&j.isEmpty(n))return-1/0;var e={computed:-1/0,value:-1/0};return A(n,function(n,u,i){var a=t?t.call(r,n,u,i):n;a>e.computed&&(e={value:n,computed:a})}),e.value},j.min=function(n,t,r){if(!t&&j.isArray(n)&&n[0]===+n[0]&&n.length<65535)return Math.min.apply(Math,n);if(!t&&j.isEmpty(n))return 1/0;var e={computed:1/0,value:1/0};return A(n,function(n,u,i){var a=t?t.call(r,n,u,i):n;ae||r===void 0)return 1;if(e>r||e===void 0)return-1}return n.indexi;){var o=i+a>>>1;r.call(e,n[o])=0})})},j.difference=function(n){var t=c.apply(e,o.call(arguments,1));return j.filter(n,function(n){return!j.contains(t,n)})},j.zip=function(){return j.unzip.apply(j,o.call(arguments))},j.unzip=function(){for(var n=j.max(j.pluck(arguments,"length").concat(0)),t=new Array(n),r=0;n>r;r++)t[r]=j.pluck(arguments,""+r);return t},j.object=function(n,t){if(null==n)return{};for(var r={},e=0,u=n.length;u>e;e++)t?r[n[e]]=t[e]:r[n[e][0]]=n[e][1];return r},j.indexOf=function(n,t,r){if(null==n)return-1;var e=0,u=n.length;if(r){if("number"!=typeof r)return e=j.sortedIndex(n,t),n[e]===t?e:-1;e=0>r?Math.max(0,u+r):r}if(y&&n.indexOf===y)return n.indexOf(t,r);for(;u>e;e++)if(n[e]===t)return e;return-1},j.lastIndexOf=function(n,t,r){if(null==n)return-1;var e=null!=r;if(b&&n.lastIndexOf===b)return e?n.lastIndexOf(t,r):n.lastIndexOf(t);for(var u=e?r:n.length;u--;)if(n[u]===t)return u;return-1},j.range=function(n,t,r){arguments.length<=1&&(t=n||0,n=0),r=arguments[2]||1;for(var e=Math.max(Math.ceil((t-n)/r),0),u=0,i=new Array(e);e>u;)i[u++]=n,n+=r;return i};var M=function(){};j.bind=function(n,t){var r,e;if(w&&n.bind===w)return w.apply(n,o.call(arguments,1));if(!j.isFunction(n))throw new TypeError;return r=o.call(arguments,2),e=function(){if(!(this instanceof e))return n.apply(t,r.concat(o.call(arguments)));M.prototype=n.prototype;var u=new M;M.prototype=null;var i=n.apply(u,r.concat(o.call(arguments)));return Object(i)===i?i:u}},j.partial=function(n){var t=o.call(arguments,1);return function(){return n.apply(this,t.concat(o.call(arguments)))}},j.bindAll=function(n){var t=o.call(arguments,1);if(0===t.length)throw new Error("bindAll must be passed function names");return A(t,function(t){n[t]=j.bind(n[t],n)}),n},j.memoize=function(n,t){var r={};return t||(t=j.identity),function(){var e=t.apply(this,arguments);return j.has(r,e)?r[e]:r[e]=n.apply(this,arguments)}},j.delay=function(n,t){var r=o.call(arguments,2);return setTimeout(function(){return n.apply(null,r)},t)},j.defer=function(n){return j.delay.apply(j,[n,1].concat(o.call(arguments,1)))},j.throttle=function(n,t,r){var e,u,i,a=null,o=0;r||(r={});var c=function(){o=new Date,a=null,i=n.apply(e,u)};return function(){var l=new Date;o||r.leading!==!1||(o=l);var f=t-(l-o);return e=this,u=arguments,0>=f?(clearTimeout(a),a=null,o=l,i=n.apply(e,u)):a||r.trailing===!1||(a=setTimeout(c,f)),i}},j.debounce=function(n,t,r){var e,u=null;return function(){var i=this,a=arguments,o=function(){u=null,r||(e=n.apply(i,a))},c=r&&!u;return clearTimeout(u),u=setTimeout(o,t),c&&(e=n.apply(i,a)),e}},j.once=function(n){var t,r=!1;return function(){return r?t:(r=!0,t=n.apply(this,arguments),n=null,t)}},j.wrap=function(n,t){return function(){var r=[n];return a.apply(r,arguments),t.apply(this,r)}},j.compose=function(){var n=arguments;return function(){for(var t=arguments,r=n.length-1;r>=0;r--)t=[n[r].apply(this,t)];return t[0]}},j.after=function(n,t){return function(){return--n<1?t.apply(this,arguments):void 0}},j.keys=_||function(n){if(n!==Object(n))throw new TypeError("Invalid object");var t=[];for(var r in n)j.has(n,r)&&t.push(r);return t},j.values=function(n){var t=[];for(var r in n)j.has(n,r)&&t.push(n[r]);return t},j.pairs=function(n){var t=[];for(var r in n)j.has(n,r)&&t.push([r,n[r]]);return t},j.invert=function(n){var t={};for(var r in n)j.has(n,r)&&(t[n[r]]=r);return t},j.functions=j.methods=function(n){var t=[];for(var r in n)j.isFunction(n[r])&&t.push(r);return t.sort()},j.extend=function(n){return A(o.call(arguments,1),function(t){if(t)for(var r in t)n[r]=t[r]}),n},j.pick=function(n){var t={},r=c.apply(e,o.call(arguments,1));return A(r,function(r){r in n&&(t[r]=n[r])}),t},j.omit=function(n){var t={},r=c.apply(e,o.call(arguments,1));for(var u in n)j.contains(r,u)||(t[u]=n[u]);return t},j.defaults=function(n){return A(o.call(arguments,1),function(t){if(t)for(var r in t)n[r]===void 0&&(n[r]=t[r])}),n},j.clone=function(n){return j.isObject(n)?j.isArray(n)?n.slice():j.extend({},n):n},j.tap=function(n,t){return t(n),n};var S=function(n,t,r,e){if(n===t)return 0!==n||1/n==1/t;if(null==n||null==t)return n===t;n instanceof j&&(n=n._wrapped),t instanceof j&&(t=t._wrapped);var u=l.call(n);if(u!=l.call(t))return!1;switch(u){case"[object String]":return n==String(t);case"[object Number]":return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case"[object Date]":case"[object Boolean]":return+n==+t;case"[object RegExp]":return n.source==t.source&&n.global==t.global&&n.multiline==t.multiline&&n.ignoreCase==t.ignoreCase}if("object"!=typeof n||"object"!=typeof t)return!1;for(var i=r.length;i--;)if(r[i]==n)return e[i]==t;var a=n.constructor,o=t.constructor;if(a!==o&&!(j.isFunction(a)&&a instanceof a&&j.isFunction(o)&&o instanceof o))return!1;r.push(n),e.push(t);var c=0,f=!0;if("[object Array]"==u){if(c=n.length,f=c==t.length)for(;c--&&(f=S(n[c],t[c],r,e)););}else{for(var s in n)if(j.has(n,s)&&(c++,!(f=j.has(t,s)&&S(n[s],t[s],r,e))))break;if(f){for(s in t)if(j.has(t,s)&&!c--)break;f=!c}}return r.pop(),e.pop(),f};j.isEqual=function(n,t){return S(n,t,[],[])},j.isEmpty=function(n){if(null==n)return!0;if(j.isArray(n)||j.isString(n))return 0===n.length;for(var t in n)if(j.has(n,t))return!1;return!0},j.isElement=function(n){return!(!n||1!==n.nodeType)},j.isArray=x||function(n){return"[object Array]"==l.call(n)},j.isObject=function(n){return n===Object(n)},A(["Arguments","Function","String","Number","Date","RegExp"],function(n){j["is"+n]=function(t){return l.call(t)=="[object "+n+"]"}}),j.isArguments(arguments)||(j.isArguments=function(n){return!(!n||!j.has(n,"callee"))}),"function"!=typeof/./&&(j.isFunction=function(n){return"function"==typeof n}),j.isFinite=function(n){return isFinite(n)&&!isNaN(parseFloat(n))},j.isNaN=function(n){return j.isNumber(n)&&n!=+n},j.isBoolean=function(n){return n===!0||n===!1||"[object Boolean]"==l.call(n)},j.isNull=function(n){return null===n},j.isUndefined=function(n){return n===void 0},j.has=function(n,t){return f.call(n,t)},j.noConflict=function(){return n._=t,this},j.identity=function(n){return n},j.times=function(n,t,r){for(var e=Array(Math.max(0,n)),u=0;n>u;u++)e[u]=t.call(r,u);return e},j.random=function(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))};var I={escape:{"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"}};I.unescape=j.invert(I.escape);var T={escape:new RegExp("["+j.keys(I.escape).join("")+"]","g"),unescape:new RegExp("("+j.keys(I.unescape).join("|")+")","g")};j.each(["escape","unescape"],function(n){j[n]=function(t){return null==t?"":(""+t).replace(T[n],function(t){return I[n][t]})}}),j.result=function(n,t){if(null==n)return void 0;var r=n[t];return j.isFunction(r)?r.call(n):r},j.mixin=function(n){A(j.functions(n),function(t){var r=j[t]=n[t];j.prototype[t]=function(){var n=[this._wrapped];return a.apply(n,arguments),D.call(this,r.apply(j,n))}})};var N=0;j.uniqueId=function(n){var t=++N+"";return n?n+t:t},j.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var q=/(.)^/,B={"'":"'","\\":"\\","\r":"r","\n":"n"," ":"t","\u2028":"u2028","\u2029":"u2029"},z=/\\|'|\r|\n|\t|\u2028|\u2029/g;j.template=function(n,t,r){var e;r=j.defaults({},r,j.templateSettings);var u=new RegExp([(r.escape||q).source,(r.interpolate||q).source,(r.evaluate||q).source].join("|")+"|$","g"),i=0,a="__p+='";n.replace(u,function(t,r,e,u,o){return a+=n.slice(i,o).replace(z,function(n){return"\\"+B[n]}),r&&(a+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'"),e&&(a+="'+\n((__t=("+e+"))==null?'':__t)+\n'"),u&&(a+="';\n"+u+"\n__p+='"),i=o+t.length,t}),a+="';\n",r.variable||(a="with(obj||{}){\n"+a+"}\n"),a="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+a+"return __p;\n";try{e=new Function(r.variable||"obj","_",a)}catch(o){throw o.source=a,o}if(t)return e(t,j);var c=function(n){return e.call(this,n,j)};return c.source="function("+(r.variable||"obj")+"){\n"+a+"}",c},j.chain=function(n){return j(n).chain()};var D=function(n){return this._chain?j(n).chain():n};j.mixin(j),A(["pop","push","reverse","shift","sort","splice","unshift"],function(n){var t=e[n];j.prototype[n]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!=n&&"splice"!=n||0!==r.length||delete r[0],D.call(this,r)}}),A(["concat","join","slice"],function(n){var t=e[n];j.prototype[n]=function(){return D.call(this,t.apply(this._wrapped,arguments))}}),j.extend(j.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}})}.call(this); +!function(){var n=this,t=n._,r={},e=Array.prototype,u=Object.prototype,i=Function.prototype,a=e.push,o=e.slice,c=e.concat,l=u.toString,f=u.hasOwnProperty,s=e.forEach,p=e.map,v=e.reduce,h=e.reduceRight,d=e.filter,g=e.every,m=e.some,y=e.indexOf,b=e.lastIndexOf,x=Array.isArray,_=Object.keys,w=i.bind,j=function(n){return n instanceof j?n:this instanceof j?(this._wrapped=n,void 0):new j(n)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=j),exports._=j):n._=j,j.VERSION="1.5.1";var A=j.each=j.forEach=function(n,t,e){if(null!=n)if(s&&n.forEach===s)n.forEach(t,e);else if(n.length===+n.length){for(var u=0,i=n.length;i>u;u++)if(t.call(e,n[u],u,n)===r)return}else for(var a in n)if(j.has(n,a)&&t.call(e,n[a],a,n)===r)return};j.map=j.collect=function(n,t,r){var e=[];return null==n?e:p&&n.map===p?n.map(t,r):(A(n,function(n,u,i){e.push(t.call(r,n,u,i))}),e)};var E="Reduce of empty array with no initial value";j.reduce=j.foldl=j.inject=function(n,t,r,e){var u=arguments.length>2;if(null==n&&(n=[]),v&&n.reduce===v)return e&&(t=j.bind(t,e)),u?n.reduce(t,r):n.reduce(t);if(A(n,function(n,i,a){u?r=t.call(e,r,n,i,a):(r=n,u=!0)}),!u)throw new TypeError(E);return r},j.reduceRight=j.foldr=function(n,t,r,e){var u=arguments.length>2;if(null==n&&(n=[]),h&&n.reduceRight===h)return e&&(t=j.bind(t,e)),u?n.reduceRight(t,r):n.reduceRight(t);var i=n.length;if(i!==+i){var a=j.keys(n);i=a.length}if(A(n,function(o,c,l){c=a?a[--i]:--i,u?r=t.call(e,r,n[c],c,l):(r=n[c],u=!0)}),!u)throw new TypeError(E);return r},j.find=j.detect=function(n,t,r){var e;return O(n,function(n,u,i){return t.call(r,n,u,i)?(e=n,!0):void 0}),e},j.filter=j.select=function(n,t,r){var e=[];return null==n?e:d&&n.filter===d?n.filter(t,r):(A(n,function(n,u,i){t.call(r,n,u,i)&&e.push(n)}),e)},j.reject=function(n,t,r){return j.filter(n,function(n,e,u){return!t.call(r,n,e,u)},r)},j.every=j.all=function(n,t,e){t||(t=j.identity);var u=!0;return null==n?u:g&&n.every===g?n.every(t,e):(A(n,function(n,i,a){return(u=u&&t.call(e,n,i,a))?void 0:r}),!!u)};var O=j.some=j.any=function(n,t,e){t||(t=j.identity);var u=!1;return null==n?u:m&&n.some===m?n.some(t,e):(A(n,function(n,i,a){return u||(u=t.call(e,n,i,a))?r:void 0}),!!u)};j.contains=j.include=function(n,t){return null==n?!1:y&&n.indexOf===y?n.indexOf(t)!=-1:O(n,function(n){return n===t})},j.invoke=function(n,t){var r=o.call(arguments,2),e=j.isFunction(t);return j.map(n,function(n){return(e?t:n[t]).apply(n,r)})},j.pluck=function(n,t){return j.map(n,function(n){return n[t]})},j.where=function(n,t,r){return j.isEmpty(t)?r?void 0:[]:j[r?"find":"filter"](n,function(n){for(var r in t)if(t[r]!==n[r])return!1;return!0})},j.findWhere=function(n,t){return j.where(n,t,!0)},j.max=function(n,t,r){if(!t&&j.isArray(n)&&n[0]===+n[0]&&n.length<65535)return Math.max.apply(Math,n);if(!t&&j.isEmpty(n))return-1/0;var e={computed:-1/0,value:-1/0};return A(n,function(n,u,i){var a=t?t.call(r,n,u,i):n;a>e.computed&&(e={value:n,computed:a})}),e.value},j.min=function(n,t,r){if(!t&&j.isArray(n)&&n[0]===+n[0]&&n.length<65535)return Math.min.apply(Math,n);if(!t&&j.isEmpty(n))return 1/0;var e={computed:1/0,value:1/0};return A(n,function(n,u,i){var a=t?t.call(r,n,u,i):n;ae||r===void 0)return 1;if(e>r||e===void 0)return-1}return n.indexi;){var o=i+a>>>1;r.call(e,n[o])=0})})},j.difference=function(n){var t=c.apply(e,o.call(arguments,1));return j.filter(n,function(n){return!j.contains(t,n)})},j.zip=function(){for(var n=j.max(j.pluck(arguments,"length").concat(0)),t=new Array(n),r=0;n>r;r++)t[r]=j.pluck(arguments,""+r);return t},j.object=function(n,t){if(null==n)return{};for(var r={},e=0,u=n.length;u>e;e++)t?r[n[e]]=t[e]:r[n[e][0]]=n[e][1];return r},j.indexOf=function(n,t,r){if(null==n)return-1;var e=0,u=n.length;if(r){if("number"!=typeof r)return e=j.sortedIndex(n,t),n[e]===t?e:-1;e=0>r?Math.max(0,u+r):r}if(y&&n.indexOf===y)return n.indexOf(t,r);for(;u>e;e++)if(n[e]===t)return e;return-1},j.lastIndexOf=function(n,t,r){if(null==n)return-1;var e=null!=r;if(b&&n.lastIndexOf===b)return e?n.lastIndexOf(t,r):n.lastIndexOf(t);for(var u=e?r:n.length;u--;)if(n[u]===t)return u;return-1},j.range=function(n,t,r){arguments.length<=1&&(t=n||0,n=0),r=arguments[2]||1;for(var e=Math.max(Math.ceil((t-n)/r),0),u=0,i=new Array(e);e>u;)i[u++]=n,n+=r;return i};var M=function(){};j.bind=function(n,t){var r,e;if(w&&n.bind===w)return w.apply(n,o.call(arguments,1));if(!j.isFunction(n))throw new TypeError;return r=o.call(arguments,2),e=function(){if(!(this instanceof e))return n.apply(t,r.concat(o.call(arguments)));M.prototype=n.prototype;var u=new M;M.prototype=null;var i=n.apply(u,r.concat(o.call(arguments)));return Object(i)===i?i:u}},j.partial=function(n){var t=o.call(arguments,1);return function(){return n.apply(this,t.concat(o.call(arguments)))}},j.bindAll=function(n){var t=o.call(arguments,1);if(0===t.length)throw new Error("bindAll must be passed function names");return A(t,function(t){n[t]=j.bind(n[t],n)}),n},j.memoize=function(n,t){var r={};return t||(t=j.identity),function(){var e=t.apply(this,arguments);return j.has(r,e)?r[e]:r[e]=n.apply(this,arguments)}},j.delay=function(n,t){var r=o.call(arguments,2);return setTimeout(function(){return n.apply(null,r)},t)},j.defer=function(n){return j.delay.apply(j,[n,1].concat(o.call(arguments,1)))},j.throttle=function(n,t,r){var e,u,i,a=null,o=0;r||(r={});var c=function(){o=r.leading===!1?0:new Date,a=null,i=n.apply(e,u)};return function(){var l=new Date;o||r.leading!==!1||(o=l);var f=t-(l-o);return e=this,u=arguments,0>=f?(clearTimeout(a),a=null,o=l,i=n.apply(e,u)):a||r.trailing===!1||(a=setTimeout(c,f)),i}},j.debounce=function(n,t,r){var e,u=null;return function(){var i=this,a=arguments,o=function(){u=null,r||(e=n.apply(i,a))},c=r&&!u;return clearTimeout(u),u=setTimeout(o,t),c&&(e=n.apply(i,a)),e}},j.once=function(n){var t,r=!1;return function(){return r?t:(r=!0,t=n.apply(this,arguments),n=null,t)}},j.wrap=function(n,t){return function(){var r=[n];return a.apply(r,arguments),t.apply(this,r)}},j.compose=function(){var n=arguments;return function(){for(var t=arguments,r=n.length-1;r>=0;r--)t=[n[r].apply(this,t)];return t[0]}},j.after=function(n,t){return function(){return--n<1?t.apply(this,arguments):void 0}},j.keys=_||function(n){if(n!==Object(n))throw new TypeError("Invalid object");var t=[];for(var r in n)j.has(n,r)&&t.push(r);return t},j.values=function(n){var t=[];for(var r in n)j.has(n,r)&&t.push(n[r]);return t},j.pairs=function(n){var t=[];for(var r in n)j.has(n,r)&&t.push([r,n[r]]);return t},j.invert=function(n){var t={};for(var r in n)j.has(n,r)&&(t[n[r]]=r);return t},j.functions=j.methods=function(n){var t=[];for(var r in n)j.isFunction(n[r])&&t.push(r);return t.sort()},j.extend=function(n){return A(o.call(arguments,1),function(t){if(t)for(var r in t)n[r]=t[r]}),n},j.pick=function(n){var t={},r=c.apply(e,o.call(arguments,1));return A(r,function(r){r in n&&(t[r]=n[r])}),t},j.omit=function(n){var t={},r=c.apply(e,o.call(arguments,1));for(var u in n)j.contains(r,u)||(t[u]=n[u]);return t},j.defaults=function(n){return A(o.call(arguments,1),function(t){if(t)for(var r in t)n[r]===void 0&&(n[r]=t[r])}),n},j.clone=function(n){return j.isObject(n)?j.isArray(n)?n.slice():j.extend({},n):n},j.tap=function(n,t){return t(n),n};var S=function(n,t,r,e){if(n===t)return 0!==n||1/n==1/t;if(null==n||null==t)return n===t;n instanceof j&&(n=n._wrapped),t instanceof j&&(t=t._wrapped);var u=l.call(n);if(u!=l.call(t))return!1;switch(u){case"[object String]":return n==String(t);case"[object Number]":return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case"[object Date]":case"[object Boolean]":return+n==+t;case"[object RegExp]":return n.source==t.source&&n.global==t.global&&n.multiline==t.multiline&&n.ignoreCase==t.ignoreCase}if("object"!=typeof n||"object"!=typeof t)return!1;for(var i=r.length;i--;)if(r[i]==n)return e[i]==t;var a=n.constructor,o=t.constructor;if(a!==o&&!(j.isFunction(a)&&a instanceof a&&j.isFunction(o)&&o instanceof o))return!1;r.push(n),e.push(t);var c=0,f=!0;if("[object Array]"==u){if(c=n.length,f=c==t.length)for(;c--&&(f=S(n[c],t[c],r,e)););}else{for(var s in n)if(j.has(n,s)&&(c++,!(f=j.has(t,s)&&S(n[s],t[s],r,e))))break;if(f){for(s in t)if(j.has(t,s)&&!c--)break;f=!c}}return r.pop(),e.pop(),f};j.isEqual=function(n,t){return S(n,t,[],[])},j.isEmpty=function(n){if(null==n)return!0;if(j.isArray(n)||j.isString(n))return 0===n.length;for(var t in n)if(j.has(n,t))return!1;return!0},j.isElement=function(n){return!(!n||1!==n.nodeType)},j.isArray=x||function(n){return"[object Array]"==l.call(n)},j.isObject=function(n){return n===Object(n)},A(["Arguments","Function","String","Number","Date","RegExp"],function(n){j["is"+n]=function(t){return l.call(t)=="[object "+n+"]"}}),j.isArguments(arguments)||(j.isArguments=function(n){return!(!n||!j.has(n,"callee"))}),"function"!=typeof/./&&(j.isFunction=function(n){return"function"==typeof n}),j.isFinite=function(n){return isFinite(n)&&!isNaN(parseFloat(n))},j.isNaN=function(n){return j.isNumber(n)&&n!=+n},j.isBoolean=function(n){return n===!0||n===!1||"[object Boolean]"==l.call(n)},j.isNull=function(n){return null===n},j.isUndefined=function(n){return n===void 0},j.has=function(n,t){return f.call(n,t)},j.noConflict=function(){return n._=t,this},j.identity=function(n){return n},j.times=function(n,t,r){for(var e=Array(Math.max(0,n)),u=0;n>u;u++)e[u]=t.call(r,u);return e},j.random=function(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))};var I={escape:{"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"}};I.unescape=j.invert(I.escape);var T={escape:new RegExp("["+j.keys(I.escape).join("")+"]","g"),unescape:new RegExp("("+j.keys(I.unescape).join("|")+")","g")};j.each(["escape","unescape"],function(n){j[n]=function(t){return null==t?"":(""+t).replace(T[n],function(t){return I[n][t]})}}),j.result=function(n,t){if(null==n)return void 0;var r=n[t];return j.isFunction(r)?r.call(n):r},j.mixin=function(n){A(j.functions(n),function(t){var r=j[t]=n[t];j.prototype[t]=function(){var n=[this._wrapped];return a.apply(n,arguments),z.call(this,r.apply(j,n))}})};var N=0;j.uniqueId=function(n){var t=++N+"";return n?n+t:t},j.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var q=/(.)^/,B={"'":"'","\\":"\\","\r":"r","\n":"n"," ":"t","\u2028":"u2028","\u2029":"u2029"},D=/\\|'|\r|\n|\t|\u2028|\u2029/g;j.template=function(n,t,r){var e;r=j.defaults({},r,j.templateSettings);var u=new RegExp([(r.escape||q).source,(r.interpolate||q).source,(r.evaluate||q).source].join("|")+"|$","g"),i=0,a="__p+='";n.replace(u,function(t,r,e,u,o){return a+=n.slice(i,o).replace(D,function(n){return"\\"+B[n]}),r&&(a+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'"),e&&(a+="'+\n((__t=("+e+"))==null?'':__t)+\n'"),u&&(a+="';\n"+u+"\n__p+='"),i=o+t.length,t}),a+="';\n",r.variable||(a="with(obj||{}){\n"+a+"}\n"),a="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+a+"return __p;\n";try{e=new Function(r.variable||"obj","_",a)}catch(o){throw o.source=a,o}if(t)return e(t,j);var c=function(n){return e.call(this,n,j)};return c.source="function("+(r.variable||"obj")+"){\n"+a+"}",c},j.chain=function(n){return j(n).chain()};var z=function(n){return this._chain?j(n).chain():n};j.mixin(j),A(["pop","push","reverse","shift","sort","splice","unshift"],function(n){var t=e[n];j.prototype[n]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!=n&&"splice"!=n||0!==r.length||delete r[0],z.call(this,r)}}),A(["concat","join","slice"],function(n){var t=e[n];j.prototype[n]=function(){return z.call(this,t.apply(this._wrapped,arguments))}}),j.extend(j.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}})}.call(this); //# sourceMappingURL=underscore-min.map \ No newline at end of file diff --git a/underscore-min.map b/underscore-min.map index 6ae388bd9..fee224f11 100644 --- a/underscore-min.map +++ b/underscore-min.map @@ -1 +1 @@ -{"version":3,"file":"underscore-min.js","sources":["underscore.js"],"names":["root","this","previousUnderscore","_","breaker","ArrayProto","Array","prototype","ObjProto","Object","FuncProto","Function","push","slice","concat","toString","hasOwnProperty","nativeForEach","forEach","nativeMap","map","nativeReduce","reduce","nativeReduceRight","reduceRight","nativeFilter","filter","nativeEvery","every","nativeSome","some","nativeIndexOf","indexOf","nativeLastIndexOf","lastIndexOf","nativeIsArray","isArray","nativeKeys","keys","nativeBind","bind","obj","_wrapped","exports","module","VERSION","each","iterator","context","length","i","l","call","key","has","collect","results","value","index","list","reduceError","foldl","inject","memo","initial","arguments","TypeError","foldr","find","detect","result","any","select","reject","all","identity","contains","include","target","invoke","method","args","isFunc","isFunction","apply","pluck","where","attrs","first","isEmpty","findWhere","max","Math","Infinity","computed","min","shuffle","rand","shuffled","random","lookupIterator","sortBy","criteria","sort","left","right","a","b","group","behavior","groupBy","countBy","sortedIndex","array","low","high","mid","toArray","values","size","head","take","n","guard","last","rest","tail","drop","compact","flatten","input","shallow","output","isArguments","without","difference","uniq","unique","isSorted","seen","union","intersection","item","other","zip","unzip","object","from","hasIndex","range","start","stop","step","len","ceil","idx","ctor","func","bound","self","partial","bindAll","funcs","Error","f","memoize","hasher","delay","wait","setTimeout","defer","throttle","options","timeout","previous","later","Date","now","leading","remaining","clearTimeout","trailing","debounce","immediate","callNow","once","ran","wrap","wrapper","compose","after","times","pairs","invert","functions","methods","names","extend","source","prop","pick","copy","omit","defaults","clone","isObject","tap","interceptor","eq","aStack","bStack","className","String","global","multiline","ignoreCase","aCtor","constructor","bCtor","pop","isEqual","isString","isElement","nodeType","name","isFinite","isNaN","parseFloat","isNumber","isBoolean","isNull","isUndefined","noConflict","accum","floor","entityMap","escape","&","<",">","\"","'","/","unescape","entityRegexes","RegExp","join","string","replace","match","property","mixin","idCounter","uniqueId","prefix","id","templateSettings","evaluate","interpolate","noMatch","escapes","\\","\r","\n","\t","
","
","escaper","template","text","data","settings","render","matcher","offset","variable","e","chain","_chain"],"mappings":";;;;;CAMA,WAME,GAAIA,GAAOC,KAGPC,EAAqBF,EAAKG,EAG1BC,KAGAC,EAAaC,MAAMC,UAAWC,EAAWC,OAAOF,UAAWG,EAAYC,SAASJ,UAIlFK,EAAmBP,EAAWO,KAC9BC,EAAmBR,EAAWQ,MAC9BC,EAAmBT,EAAWS,OAC9BC,EAAmBP,EAASO,SAC5BC,EAAmBR,EAASQ,eAK5BC,EAAqBZ,EAAWa,QAChCC,EAAqBd,EAAWe,IAChCC,EAAqBhB,EAAWiB,OAChCC,EAAqBlB,EAAWmB,YAChCC,EAAqBpB,EAAWqB,OAChCC,EAAqBtB,EAAWuB,MAChCC,EAAqBxB,EAAWyB,KAChCC,EAAqB1B,EAAW2B,QAChCC,EAAqB5B,EAAW6B,YAChCC,EAAqB7B,MAAM8B,QAC3BC,EAAqB5B,OAAO6B,KAC5BC,EAAqB7B,EAAU8B,KAG7BrC,EAAI,SAASsC,GACf,MAAIA,aAAetC,GAAUsC,EACvBxC,eAAgBE,IACtBF,KAAKyC,SAAWD,EAAhBxC,QADiC,GAAIE,GAAEsC,GAQlB,oBAAZE,UACa,mBAAXC,SAA0BA,OAAOD,UAC1CA,QAAUC,OAAOD,QAAUxC,GAE7BwC,QAAQxC,EAAIA,GAEZH,EAAKG,EAAIA,EAIXA,EAAE0C,QAAU,OAQZ,IAAIC,GAAO3C,EAAE2C,KAAO3C,EAAEe,QAAU,SAASuB,EAAKM,EAAUC,GACtD,GAAW,MAAPP,EACJ,GAAIxB,GAAiBwB,EAAIvB,UAAYD,EACnCwB,EAAIvB,QAAQ6B,EAAUC,OACjB,IAAIP,EAAIQ,UAAYR,EAAIQ,QAC7B,IAAK,GAAIC,GAAI,EAAGC,EAAIV,EAAIQ,OAAYE,EAAJD,EAAOA,IACrC,GAAIH,EAASK,KAAKJ,EAASP,EAAIS,GAAIA,EAAGT,KAASrC,EAAS,WAG1D,KAAK,GAAIiD,KAAOZ,GACd,GAAItC,EAAEmD,IAAIb,EAAKY,IACTN,EAASK,KAAKJ,EAASP,EAAIY,GAAMA,EAAKZ,KAASrC,EAAS,OAQpED,GAAEiB,IAAMjB,EAAEoD,QAAU,SAASd,EAAKM,EAAUC,GAC1C,GAAIQ,KACJ,OAAW,OAAPf,EAAoBe,EACpBrC,GAAasB,EAAIrB,MAAQD,EAAkBsB,EAAIrB,IAAI2B,EAAUC,IACjEF,EAAKL,EAAK,SAASgB,EAAOC,EAAOC,GAC/BH,EAAQ5C,KAAKmC,EAASK,KAAKJ,EAASS,EAAOC,EAAOC,MAE7CH,GAGT,IAAII,GAAc,6CAIlBzD,GAAEmB,OAASnB,EAAE0D,MAAQ1D,EAAE2D,OAAS,SAASrB,EAAKM,EAAUgB,EAAMf,GAC5D,GAAIgB,GAAUC,UAAUhB,OAAS,CAEjC,IADW,MAAPR,IAAaA,MACbpB,GAAgBoB,EAAInB,SAAWD,EAEjC,MADI2B,KAASD,EAAW5C,EAAEqC,KAAKO,EAAUC,IAClCgB,EAAUvB,EAAInB,OAAOyB,EAAUgB,GAAQtB,EAAInB,OAAOyB,EAU3D,IARAD,EAAKL,EAAK,SAASgB,EAAOC,EAAOC,GAC1BK,EAIHD,EAAOhB,EAASK,KAAKJ,EAASe,EAAMN,EAAOC,EAAOC,IAHlDI,EAAON,EACPO,GAAU,MAKTA,EAAS,KAAM,IAAIE,WAAUN,EAClC,OAAOG,IAKT5D,EAAEqB,YAAcrB,EAAEgE,MAAQ,SAAS1B,EAAKM,EAAUgB,EAAMf,GACtD,GAAIgB,GAAUC,UAAUhB,OAAS,CAEjC,IADW,MAAPR,IAAaA,MACblB,GAAqBkB,EAAIjB,cAAgBD,EAE3C,MADIyB,KAASD,EAAW5C,EAAEqC,KAAKO,EAAUC,IAClCgB,EAAUvB,EAAIjB,YAAYuB,EAAUgB,GAAQtB,EAAIjB,YAAYuB,EAErE,IAAIE,GAASR,EAAIQ,MACjB,IAAIA,KAAYA,EAAQ,CACtB,GAAIX,GAAOnC,EAAEmC,KAAKG,EAClBQ,GAASX,EAAKW,OAWhB,GATAH,EAAKL,EAAK,SAASgB,EAAOC,EAAOC,GAC/BD,EAAQpB,EAAOA,IAAOW,KAAYA,EAC7Be,EAIHD,EAAOhB,EAASK,KAAKJ,EAASe,EAAMtB,EAAIiB,GAAQA,EAAOC,IAHvDI,EAAOtB,EAAIiB,GACXM,GAAU,MAKTA,EAAS,KAAM,IAAIE,WAAUN,EAClC,OAAOG,IAIT5D,EAAEiE,KAAOjE,EAAEkE,OAAS,SAAS5B,EAAKM,EAAUC,GAC1C,GAAIsB,EAOJ,OANAC,GAAI9B,EAAK,SAASgB,EAAOC,EAAOC,GAC9B,MAAIZ,GAASK,KAAKJ,EAASS,EAAOC,EAAOC,IACvCW,EAASb,GACF,GAFT,SAKKa,GAMTnE,EAAEuB,OAASvB,EAAEqE,OAAS,SAAS/B,EAAKM,EAAUC,GAC5C,GAAIQ,KACJ,OAAW,OAAPf,EAAoBe,EACpB/B,GAAgBgB,EAAIf,SAAWD,EAAqBgB,EAAIf,OAAOqB,EAAUC,IAC7EF,EAAKL,EAAK,SAASgB,EAAOC,EAAOC,GAC3BZ,EAASK,KAAKJ,EAASS,EAAOC,EAAOC,IAAOH,EAAQ5C,KAAK6C,KAExDD,IAITrD,EAAEsE,OAAS,SAAShC,EAAKM,EAAUC,GACjC,MAAO7C,GAAEuB,OAAOe,EAAK,SAASgB,EAAOC,EAAOC,GAC1C,OAAQZ,EAASK,KAAKJ,EAASS,EAAOC,EAAOC,IAC5CX,IAML7C,EAAEyB,MAAQzB,EAAEuE,IAAM,SAASjC,EAAKM,EAAUC,GACxCD,IAAaA,EAAW5C,EAAEwE,SAC1B,IAAIL,IAAS,CACb,OAAW,OAAP7B,EAAoB6B,EACpB3C,GAAec,EAAIb,QAAUD,EAAoBc,EAAIb,MAAMmB,EAAUC,IACzEF,EAAKL,EAAK,SAASgB,EAAOC,EAAOC,GAC/B,OAAMW,EAASA,GAAUvB,EAASK,KAAKJ,EAASS,EAAOC,EAAOC,IAA9D,OAA6EvD,MAEtEkE,GAMX,IAAIC,GAAMpE,EAAE2B,KAAO3B,EAAEoE,IAAM,SAAS9B,EAAKM,EAAUC,GACjDD,IAAaA,EAAW5C,EAAEwE,SAC1B,IAAIL,IAAS,CACb,OAAW,OAAP7B,EAAoB6B,EACpBzC,GAAcY,EAAIX,OAASD,EAAmBY,EAAIX,KAAKiB,EAAUC,IACrEF,EAAKL,EAAK,SAASgB,EAAOC,EAAOC,GAC/B,MAAIW,KAAWA,EAASvB,EAASK,KAAKJ,EAASS,EAAOC,EAAOC,IAAevD,EAA5E,WAEOkE,GAKXnE,GAAEyE,SAAWzE,EAAE0E,QAAU,SAASpC,EAAKqC,GACrC,MAAW,OAAPrC,GAAoB,EACpBV,GAAiBU,EAAIT,UAAYD,EAAsBU,EAAIT,QAAQ8C,KAAY,EAC5EP,EAAI9B,EAAK,SAASgB,GACvB,MAAOA,KAAUqB,KAKrB3E,EAAE4E,OAAS,SAAStC,EAAKuC,GACvB,GAAIC,GAAOpE,EAAMuC,KAAKa,UAAW,GAC7BiB,EAAS/E,EAAEgF,WAAWH,EAC1B,OAAO7E,GAAEiB,IAAIqB,EAAK,SAASgB,GACzB,OAAQyB,EAASF,EAASvB,EAAMuB,IAASI,MAAM3B,EAAOwB,MAK1D9E,EAAEkF,MAAQ,SAAS5C,EAAKY,GACtB,MAAOlD,GAAEiB,IAAIqB,EAAK,SAASgB,GAAQ,MAAOA,GAAMJ,MAKlDlD,EAAEmF,MAAQ,SAAS7C,EAAK8C,EAAOC,GAC7B,MAAIrF,GAAEsF,QAAQF,GAAeC,MAAa,MACnCrF,EAAEqF,EAAQ,OAAS,UAAU/C,EAAK,SAASgB,GAChD,IAAK,GAAIJ,KAAOkC,GACd,GAAIA,EAAMlC,KAASI,EAAMJ,GAAM,OAAO,CAExC,QAAO,KAMXlD,EAAEuF,UAAY,SAASjD,EAAK8C,GAC1B,MAAOpF,GAAEmF,MAAM7C,EAAK8C,GAAO,IAM7BpF,EAAEwF,IAAM,SAASlD,EAAKM,EAAUC,GAC9B,IAAKD,GAAY5C,EAAEiC,QAAQK,IAAQA,EAAI,MAAQA,EAAI,IAAMA,EAAIQ,OAAS,MACpE,MAAO2C,MAAKD,IAAIP,MAAMQ,KAAMnD,EAE9B,KAAKM,GAAY5C,EAAEsF,QAAQhD,GAAM,OAAQoD,GACzC,IAAIvB,IAAUwB,UAAYD,IAAUpC,OAAQoC,IAK5C,OAJA/C,GAAKL,EAAK,SAASgB,EAAOC,EAAOC,GAC/B,GAAImC,GAAW/C,EAAWA,EAASK,KAAKJ,EAASS,EAAOC,EAAOC,GAAQF,CACvEqC,GAAWxB,EAAOwB,WAAaxB,GAAUb,MAAQA,EAAOqC,SAAWA,MAE9DxB,EAAOb,OAIhBtD,EAAE4F,IAAM,SAAStD,EAAKM,EAAUC,GAC9B,IAAKD,GAAY5C,EAAEiC,QAAQK,IAAQA,EAAI,MAAQA,EAAI,IAAMA,EAAIQ,OAAS,MACpE,MAAO2C,MAAKG,IAAIX,MAAMQ,KAAMnD,EAE9B,KAAKM,GAAY5C,EAAEsF,QAAQhD,GAAM,MAAOoD,IACxC,IAAIvB,IAAUwB,SAAWD,IAAUpC,MAAOoC,IAK1C,OAJA/C,GAAKL,EAAK,SAASgB,EAAOC,EAAOC,GAC/B,GAAImC,GAAW/C,EAAWA,EAASK,KAAKJ,EAASS,EAAOC,EAAOC,GAAQF,CACvEqC,GAAWxB,EAAOwB,WAAaxB,GAAUb,MAAQA,EAAOqC,SAAWA,MAE9DxB,EAAOb,OAIhBtD,EAAE6F,QAAU,SAASvD,GACnB,GAAIwD,GACAvC,EAAQ,EACRwC,IAMJ,OALApD,GAAKL,EAAK,SAASgB,GACjBwC,EAAO9F,EAAEgG,OAAOzC,KAChBwC,EAASxC,EAAQ,GAAKwC,EAASD,GAC/BC,EAASD,GAAQxC,IAEZyC,EAIT,IAAIE,GAAiB,SAAS3C,GAC5B,MAAOtD,GAAEgF,WAAW1B,GAASA,EAAQ,SAAShB,GAAM,MAAOA,GAAIgB,IAIjEtD,GAAEkG,OAAS,SAAS5D,EAAKgB,EAAOT,GAC9B,GAAID,GAAWqD,EAAe3C,EAC9B,OAAOtD,GAAEkF,MAAMlF,EAAEiB,IAAIqB,EAAK,SAASgB,EAAOC,EAAOC,GAC/C,OACEF,MAAQA,EACRC,MAAQA,EACR4C,SAAWvD,EAASK,KAAKJ,EAASS,EAAOC,EAAOC,MAEjD4C,KAAK,SAASC,EAAMC,GACrB,GAAIC,GAAIF,EAAKF,SACTK,EAAIF,EAAMH,QACd,IAAII,IAAMC,EAAG,CACX,GAAID,EAAIC,GAAKD,QAAW,GAAG,MAAO,EAClC,IAAQC,EAAJD,GAASC,QAAW,GAAG,OAAQ,EAErC,MAAOH,GAAK9C,MAAQ+C,EAAM/C,OAAS,EAAI,IACrC,SAIN,IAAIkD,GAAQ,SAASnE,EAAKgB,EAAOT,EAAS6D,GACxC,GAAIvC,MACAvB,EAAWqD,EAAwB,MAAT3C,EAAgBtD,EAAEwE,SAAWlB,EAK3D,OAJAX,GAAKL,EAAK,SAASgB,EAAOC,GACxB,GAAIL,GAAMN,EAASK,KAAKJ,EAASS,EAAOC,EAAOjB,EAC/CoE,GAASvC,EAAQjB,EAAKI,KAEjBa,EAKTnE,GAAE2G,QAAU,SAASrE,EAAKgB,EAAOT,GAC/B,MAAO4D,GAAMnE,EAAKgB,EAAOT,EAAS,SAASsB,EAAQjB,EAAKI,IACrDtD,EAAEmD,IAAIgB,EAAQjB,GAAOiB,EAAOjB,GAAQiB,EAAOjB,OAAYzC,KAAK6C,MAOjEtD,EAAE4G,QAAU,SAAStE,EAAKgB,EAAOT,GAC/B,MAAO4D,GAAMnE,EAAKgB,EAAOT,EAAS,SAASsB,EAAQjB,GAC5ClD,EAAEmD,IAAIgB,EAAQjB,KAAMiB,EAAOjB,GAAO,GACvCiB,EAAOjB,QAMXlD,EAAE6G,YAAc,SAASC,EAAOxE,EAAKM,EAAUC,GAC7CD,EAAuB,MAAZA,EAAmB5C,EAAEwE,SAAWyB,EAAerD,EAG1D,KAFA,GAAIU,GAAQV,EAASK,KAAKJ,EAASP,GAC/ByE,EAAM,EAAGC,EAAOF,EAAMhE,OACbkE,EAAND,GAAY,CACjB,GAAIE,GAAOF,EAAMC,IAAU,CAC3BpE,GAASK,KAAKJ,EAASiE,EAAMG,IAAQ3D,EAAQyD,EAAME,EAAM,EAAID,EAAOC,EAEtE,MAAOF,IAIT/G,EAAEkH,QAAU,SAAS5E,GACnB,MAAKA,GACDtC,EAAEiC,QAAQK,GAAa5B,EAAMuC,KAAKX,GAClCA,EAAIQ,UAAYR,EAAIQ,OAAe9C,EAAEiB,IAAIqB,EAAKtC,EAAEwE,UAC7CxE,EAAEmH,OAAO7E,OAIlBtC,EAAEoH,KAAO,SAAS9E,GAChB,MAAW,OAAPA,EAAoB,EAChBA,EAAIQ,UAAYR,EAAIQ,OAAUR,EAAIQ,OAAS9C,EAAEmC,KAAKG,GAAKQ,QASjE9C,EAAEqF,MAAQrF,EAAEqH,KAAOrH,EAAEsH,KAAO,SAASR,EAAOS,EAAGC,GAC7C,MAAa,OAATV,MAA2B,GAClB,MAALS,GAAeC,EAAkCV,EAAM,GAAhCpG,EAAMuC,KAAK6D,EAAO,EAAGS,IAOtDvH,EAAE6D,QAAU,SAASiD,EAAOS,EAAGC,GAC7B,MAAO9G,GAAMuC,KAAK6D,EAAO,EAAGA,EAAMhE,QAAgB,MAALyE,GAAcC,EAAQ,EAAID,KAKzEvH,EAAEyH,KAAO,SAASX,EAAOS,EAAGC,GAC1B,MAAa,OAATV,MAA2B,GACrB,MAALS,GAAeC,EAGXV,EAAMA,EAAMhE,OAAS,GAFrBpC,EAAMuC,KAAK6D,EAAOrB,KAAKD,IAAIsB,EAAMhE,OAASyE,EAAG,KAUxDvH,EAAE0H,KAAO1H,EAAE2H,KAAO3H,EAAE4H,KAAO,SAASd,EAAOS,EAAGC,GAC5C,MAAO9G,GAAMuC,KAAK6D,EAAa,MAALS,GAAcC,EAAQ,EAAID,IAItDvH,EAAE6H,QAAU,SAASf,GACnB,MAAO9G,GAAEuB,OAAOuF,EAAO9G,EAAEwE,UAI3B,IAAIsD,GAAU,SAASC,EAAOC,EAASC,GACrC,MAAID,IAAWhI,EAAEyB,MAAMsG,EAAO/H,EAAEiC,SACvBtB,EAAOsE,MAAMgD,EAAQF,IAE9BpF,EAAKoF,EAAO,SAASzE,GACftD,EAAEiC,QAAQqB,IAAUtD,EAAEkI,YAAY5E,GACpC0E,EAAUvH,EAAKwE,MAAMgD,EAAQ3E,GAASwE,EAAQxE,EAAO0E,EAASC,GAE9DA,EAAOxH,KAAK6C,KAGT2E,GAITjI,GAAE8H,QAAU,SAAShB,EAAOkB,GAC1B,MAAOF,GAAQhB,EAAOkB,OAIxBhI,EAAEmI,QAAU,SAASrB,GACnB,MAAO9G,GAAEoI,WAAWtB,EAAOpG,EAAMuC,KAAKa,UAAW,KAMnD9D,EAAEqI,KAAOrI,EAAEsI,OAAS,SAASxB,EAAOyB,EAAU3F,EAAUC,GAClD7C,EAAEgF,WAAWuD,KACf1F,EAAUD,EACVA,EAAW2F,EACXA,GAAW,EAEb,IAAI1E,GAAUjB,EAAW5C,EAAEiB,IAAI6F,EAAOlE,EAAUC,GAAWiE,EACvDzD,KACAmF,IAOJ,OANA7F,GAAKkB,EAAS,SAASP,EAAOC,IACxBgF,EAAahF,GAASiF,EAAKA,EAAK1F,OAAS,KAAOQ,EAAUtD,EAAEyE,SAAS+D,EAAMlF,MAC7EkF,EAAK/H,KAAK6C,GACVD,EAAQ5C,KAAKqG,EAAMvD,OAGhBF,GAKTrD,EAAEyI,MAAQ,WACR,MAAOzI,GAAEqI,KAAKrI,EAAE8H,QAAQhE,WAAW,KAKrC9D,EAAE0I,aAAe,SAAS5B,GACxB,GAAIY,GAAOhH,EAAMuC,KAAKa,UAAW,EACjC,OAAO9D,GAAEuB,OAAOvB,EAAEqI,KAAKvB,GAAQ,SAAS6B,GACtC,MAAO3I,GAAEyB,MAAMiG,EAAM,SAASkB,GAC5B,MAAO5I,GAAE6B,QAAQ+G,EAAOD,IAAS,OAOvC3I,EAAEoI,WAAa,SAAStB,GACtB,GAAIY,GAAO/G,EAAOsE,MAAM/E,EAAYQ,EAAMuC,KAAKa,UAAW,GAC1D,OAAO9D,GAAEuB,OAAOuF,EAAO,SAASxD,GAAQ,OAAQtD,EAAEyE,SAASiD,EAAMpE,MAKnEtD,EAAE6I,IAAM,WACN,MAAO7I,GAAE8I,MAAM7D,MAAMjF,EAAGU,EAAMuC,KAAKa,aASrC9D,EAAE8I,MAAQ,WAGR,IAAK,GAFDhG,GAAS9C,EAAEwF,IAAIxF,EAAEkF,MAAMpB,UAAW,UAAUnD,OAAO,IACnD0C,EAAU,GAAIlD,OAAM2C,GACfC,EAAI,EAAOD,EAAJC,EAAYA,IAC1BM,EAAQN,GAAK/C,EAAEkF,MAAMpB,UAAW,GAAKf,EAEvC,OAAOM,IAMTrD,EAAE+I,OAAS,SAASvF,EAAM2D,GACxB,GAAY,MAAR3D,EAAc,QAElB,KAAK,GADDW,MACKpB,EAAI,EAAGC,EAAIQ,EAAKV,OAAYE,EAAJD,EAAOA,IAClCoE,EACFhD,EAAOX,EAAKT,IAAMoE,EAAOpE,GAEzBoB,EAAOX,EAAKT,GAAG,IAAMS,EAAKT,GAAG,EAGjC,OAAOoB,IASTnE,EAAE6B,QAAU,SAASiF,EAAO6B,EAAMJ,GAChC,GAAa,MAATzB,EAAe,OAAQ,CAC3B,IAAI/D,GAAI,EAAGC,EAAI8D,EAAMhE,MACrB,IAAIyF,EAAU,CACZ,GAAuB,gBAAZA,GAIT,MADAxF,GAAI/C,EAAE6G,YAAYC,EAAO6B,GAClB7B,EAAM/D,KAAO4F,EAAO5F,GAAK,CAHhCA,GAAgB,EAAXwF,EAAe9C,KAAKD,IAAI,EAAGxC,EAAIuF,GAAYA,EAMpD,GAAI3G,GAAiBkF,EAAMjF,UAAYD,EAAe,MAAOkF,GAAMjF,QAAQ8G,EAAMJ,EACjF,MAAWvF,EAAJD,EAAOA,IAAK,GAAI+D,EAAM/D,KAAO4F,EAAM,MAAO5F,EACjD,QAAQ,GAIV/C,EAAE+B,YAAc,SAAS+E,EAAO6B,EAAMK,GACpC,GAAa,MAATlC,EAAe,OAAQ,CAC3B,IAAImC,GAAmB,MAARD,CACf,IAAIlH,GAAqBgF,EAAM/E,cAAgBD,EAC7C,MAAOmH,GAAWnC,EAAM/E,YAAY4G,EAAMK,GAAQlC,EAAM/E,YAAY4G,EAGtE,KADA,GAAI5F,GAAKkG,EAAWD,EAAOlC,EAAMhE,OAC1BC,KAAK,GAAI+D,EAAM/D,KAAO4F,EAAM,MAAO5F,EAC1C,QAAQ,GAMV/C,EAAEkJ,MAAQ,SAASC,EAAOC,EAAMC,GAC1BvF,UAAUhB,QAAU,IACtBsG,EAAOD,GAAS,EAChBA,EAAQ,GAEVE,EAAOvF,UAAU,IAAM,CAMvB,KAJA,GAAIwF,GAAM7D,KAAKD,IAAIC,KAAK8D,MAAMH,EAAOD,GAASE,GAAO,GACjDG,EAAM,EACNN,EAAQ,GAAI/I,OAAMmJ,GAEVA,EAANE,GACJN,EAAMM,KAASL,EACfA,GAASE,CAGX,OAAOH,GAOT,IAAIO,GAAO,YAKXzJ,GAAEqC,KAAO,SAASqH,EAAM7G,GACtB,GAAIiC,GAAM6E,CACV,IAAIvH,GAAcsH,EAAKrH,OAASD,EAAY,MAAOA,GAAW6C,MAAMyE,EAAMhJ,EAAMuC,KAAKa,UAAW,GAChG,KAAK9D,EAAEgF,WAAW0E,GAAO,KAAM,IAAI3F,UAEnC,OADAe,GAAOpE,EAAMuC,KAAKa,UAAW,GACtB6F,EAAQ,WACb,KAAM7J,eAAgB6J,IAAQ,MAAOD,GAAKzE,MAAMpC,EAASiC,EAAKnE,OAAOD,EAAMuC,KAAKa,YAChF2F,GAAKrJ,UAAYsJ,EAAKtJ,SACtB,IAAIwJ,GAAO,GAAIH,EACfA,GAAKrJ,UAAY,IACjB,IAAI+D,GAASuF,EAAKzE,MAAM2E,EAAM9E,EAAKnE,OAAOD,EAAMuC,KAAKa,YACrD,OAAIxD,QAAO6D,KAAYA,EAAeA,EAC/ByF,IAMX5J,EAAE6J,QAAU,SAASH,GACnB,GAAI5E,GAAOpE,EAAMuC,KAAKa,UAAW,EACjC,OAAO,YACL,MAAO4F,GAAKzE,MAAMnF,KAAMgF,EAAKnE,OAAOD,EAAMuC,KAAKa,eAMnD9D,EAAE8J,QAAU,SAASxH,GACnB,GAAIyH,GAAQrJ,EAAMuC,KAAKa,UAAW,EAClC,IAAqB,IAAjBiG,EAAMjH,OAAc,KAAM,IAAIkH,OAAM,wCAExC,OADArH,GAAKoH,EAAO,SAASE,GAAK3H,EAAI2H,GAAKjK,EAAEqC,KAAKC,EAAI2H,GAAI3H,KAC3CA,GAITtC,EAAEkK,QAAU,SAASR,EAAMS,GACzB,GAAIvG,KAEJ,OADAuG,KAAWA,EAASnK,EAAEwE,UACf,WACL,GAAItB,GAAMiH,EAAOlF,MAAMnF,KAAMgE,UAC7B,OAAO9D,GAAEmD,IAAIS,EAAMV,GAAOU,EAAKV,GAAQU,EAAKV,GAAOwG,EAAKzE,MAAMnF,KAAMgE,aAMxE9D,EAAEoK,MAAQ,SAASV,EAAMW,GACvB,GAAIvF,GAAOpE,EAAMuC,KAAKa,UAAW,EACjC,OAAOwG,YAAW,WAAY,MAAOZ,GAAKzE,MAAM,KAAMH,IAAUuF,IAKlErK,EAAEuK,MAAQ,SAASb,GACjB,MAAO1J,GAAEoK,MAAMnF,MAAMjF,GAAI0J,EAAM,GAAG/I,OAAOD,EAAMuC,KAAKa,UAAW,MAQjE9D,EAAEwK,SAAW,SAASd,EAAMW,EAAMI,GAChC,GAAI5H,GAASiC,EAAMX,EACfuG,EAAU,KACVC,EAAW,CACfF,KAAYA,KACZ,IAAIG,GAAQ,WACVD,EAAW,GAAIE,MACfH,EAAU,KACVvG,EAASuF,EAAKzE,MAAMpC,EAASiC,GAE/B,OAAO,YACL,GAAIgG,GAAM,GAAID,KACTF,IAAYF,EAAQM,WAAY,IAAOJ,EAAWG,EACvD,IAAIE,GAAYX,GAAQS,EAAMH,EAW9B,OAVA9H,GAAU/C,KACVgF,EAAOhB,UACU,GAAbkH,GACFC,aAAaP,GACbA,EAAU,KACVC,EAAWG,EACX3G,EAASuF,EAAKzE,MAAMpC,EAASiC,IACnB4F,GAAWD,EAAQS,YAAa,IAC1CR,EAAUJ,WAAWM,EAAOI,IAEvB7G,IAQXnE,EAAEmL,SAAW,SAASzB,EAAMW,EAAMe,GAChC,GAAIjH,GACAuG,EAAU,IACd,OAAO,YACL,GAAI7H,GAAU/C,KAAMgF,EAAOhB,UACvB8G,EAAQ,WACVF,EAAU,KACLU,IAAWjH,EAASuF,EAAKzE,MAAMpC,EAASiC,KAE3CuG,EAAUD,IAAcV,CAI5B,OAHAO,cAAaP,GACbA,EAAUJ,WAAWM,EAAOP,GACxBgB,IAASlH,EAASuF,EAAKzE,MAAMpC,EAASiC,IACnCX,IAMXnE,EAAEsL,KAAO,SAAS5B,GAChB,GAAiB9F,GAAb2H,GAAM,CACV,OAAO,YACL,MAAIA,GAAY3H,GAChB2H,GAAM,EACN3H,EAAO8F,EAAKzE,MAAMnF,KAAMgE,WACxB4F,EAAO,KACA9F,KAOX5D,EAAEwL,KAAO,SAAS9B,EAAM+B,GACtB,MAAO,YACL,GAAI3G,IAAQ4E,EAEZ,OADAjJ,GAAKwE,MAAMH,EAAMhB,WACV2H,EAAQxG,MAAMnF,KAAMgF,KAM/B9E,EAAE0L,QAAU,WACV,GAAI3B,GAAQjG,SACZ,OAAO,YAEL,IAAK,GADDgB,GAAOhB,UACFf,EAAIgH,EAAMjH,OAAS,EAAGC,GAAK,EAAGA,IACrC+B,GAAQiF,EAAMhH,GAAGkC,MAAMnF,KAAMgF,GAE/B,OAAOA,GAAK,KAKhB9E,EAAE2L,MAAQ,SAASC,EAAOlC,GACxB,MAAO,YACL,QAAMkC,EAAQ,EACLlC,EAAKzE,MAAMnF,KAAMgE,WAD1B,SAWJ9D,EAAEmC,KAAOD,GAAc,SAASI,GAC9B,GAAIA,IAAQhC,OAAOgC,GAAM,KAAM,IAAIyB,WAAU,iBAC7C,IAAI5B,KACJ,KAAK,GAAIe,KAAOZ,GAAStC,EAAEmD,IAAIb,EAAKY,IAAMf,EAAK1B,KAAKyC,EACpD,OAAOf,IAITnC,EAAEmH,OAAS,SAAS7E,GAClB,GAAI6E,KACJ,KAAK,GAAIjE,KAAOZ,GAAStC,EAAEmD,IAAIb,EAAKY,IAAMiE,EAAO1G,KAAK6B,EAAIY,GAC1D,OAAOiE,IAITnH,EAAE6L,MAAQ,SAASvJ,GACjB,GAAIuJ,KACJ,KAAK,GAAI3I,KAAOZ,GAAStC,EAAEmD,IAAIb,EAAKY,IAAM2I,EAAMpL,MAAMyC,EAAKZ,EAAIY,IAC/D,OAAO2I,IAIT7L,EAAE8L,OAAS,SAASxJ,GAClB,GAAI6B,KACJ,KAAK,GAAIjB,KAAOZ,GAAStC,EAAEmD,IAAIb,EAAKY,KAAMiB,EAAO7B,EAAIY,IAAQA,EAC7D,OAAOiB,IAKTnE,EAAE+L,UAAY/L,EAAEgM,QAAU,SAAS1J,GACjC,GAAI2J,KACJ,KAAK,GAAI/I,KAAOZ,GACVtC,EAAEgF,WAAW1C,EAAIY,KAAO+I,EAAMxL,KAAKyC,EAEzC,OAAO+I,GAAM7F,QAIfpG,EAAEkM,OAAS,SAAS5J,GAQlB,MAPAK,GAAKjC,EAAMuC,KAAKa,UAAW,GAAI,SAASqI,GACtC,GAAIA,EACF,IAAK,GAAIC,KAAQD,GACf7J,EAAI8J,GAAQD,EAAOC,KAIlB9J,GAITtC,EAAEqM,KAAO,SAAS/J,GAChB,GAAIgK,MACAnK,EAAOxB,EAAOsE,MAAM/E,EAAYQ,EAAMuC,KAAKa,UAAW,GAI1D,OAHAnB,GAAKR,EAAM,SAASe,GACdA,IAAOZ,KAAKgK,EAAKpJ,GAAOZ,EAAIY,MAE3BoJ,GAITtM,EAAEuM,KAAO,SAASjK,GAChB,GAAIgK,MACAnK,EAAOxB,EAAOsE,MAAM/E,EAAYQ,EAAMuC,KAAKa,UAAW,GAC1D,KAAK,GAAIZ,KAAOZ,GACTtC,EAAEyE,SAAStC,EAAMe,KAAMoJ,EAAKpJ,GAAOZ,EAAIY,GAE9C,OAAOoJ,IAITtM,EAAEwM,SAAW,SAASlK,GAQpB,MAPAK,GAAKjC,EAAMuC,KAAKa,UAAW,GAAI,SAASqI,GACtC,GAAIA,EACF,IAAK,GAAIC,KAAQD,GACX7J,EAAI8J,SAAe,KAAG9J,EAAI8J,GAAQD,EAAOC,MAI5C9J,GAITtC,EAAEyM,MAAQ,SAASnK,GACjB,MAAKtC,GAAE0M,SAASpK,GACTtC,EAAEiC,QAAQK,GAAOA,EAAI5B,QAAUV,EAAEkM,UAAW5J,GADtBA,GAO/BtC,EAAE2M,IAAM,SAASrK,EAAKsK,GAEpB,MADAA,GAAYtK,GACLA,EAIT,IAAIuK,GAAK,SAAStG,EAAGC,EAAGsG,EAAQC,GAG9B,GAAIxG,IAAMC,EAAG,MAAa,KAAND,GAAW,EAAIA,GAAK,EAAIC,CAE5C,IAAS,MAALD,GAAkB,MAALC,EAAW,MAAOD,KAAMC,CAErCD,aAAavG,KAAGuG,EAAIA,EAAEhE,UACtBiE,YAAaxG,KAAGwG,EAAIA,EAAEjE,SAE1B,IAAIyK,GAAYpM,EAASqC,KAAKsD,EAC9B,IAAIyG,GAAapM,EAASqC,KAAKuD,GAAI,OAAO,CAC1C,QAAQwG,GAEN,IAAK,kBAGH,MAAOzG,IAAK0G,OAAOzG,EACrB,KAAK,kBAGH,MAAOD,KAAMA,EAAIC,IAAMA,EAAU,GAALD,EAAS,EAAIA,GAAK,EAAIC,EAAID,IAAMC,CAC9D,KAAK,gBACL,IAAK,mBAIH,OAAQD,IAAMC,CAEhB,KAAK,kBACH,MAAOD,GAAE4F,QAAU3F,EAAE2F,QACd5F,EAAE2G,QAAU1G,EAAE0G,QACd3G,EAAE4G,WAAa3G,EAAE2G,WACjB5G,EAAE6G,YAAc5G,EAAE4G,WAE7B,GAAgB,gBAAL7G,IAA6B,gBAALC,GAAe,OAAO,CAIzD,KADA,GAAI1D,GAASgK,EAAOhK,OACbA,KAGL,GAAIgK,EAAOhK,IAAWyD,EAAG,MAAOwG,GAAOjK,IAAW0D,CAIpD,IAAI6G,GAAQ9G,EAAE+G,YAAaC,EAAQ/G,EAAE8G,WACrC,IAAID,IAAUE,KAAWvN,EAAEgF,WAAWqI,IAAWA,YAAiBA,IACzCrN,EAAEgF,WAAWuI,IAAWA,YAAiBA,IAChE,OAAO,CAGTT,GAAOrM,KAAK8F,GACZwG,EAAOtM,KAAK+F,EACZ,IAAIY,GAAO,EAAGjD,GAAS,CAEvB,IAAiB,kBAAb6I,GAIF,GAFA5F,EAAOb,EAAEzD,OACTqB,EAASiD,GAAQZ,EAAE1D,OAGjB,KAAOsE,MACCjD,EAAS0I,EAAGtG,EAAEa,GAAOZ,EAAEY,GAAO0F,EAAQC,WAG3C,CAEL,IAAK,GAAI7J,KAAOqD,GACd,GAAIvG,EAAEmD,IAAIoD,EAAGrD,KAEXkE,MAEMjD,EAASnE,EAAEmD,IAAIqD,EAAGtD,IAAQ2J,EAAGtG,EAAErD,GAAMsD,EAAEtD,GAAM4J,EAAQC,KAAU,KAIzE,IAAI5I,EAAQ,CACV,IAAKjB,IAAOsD,GACV,GAAIxG,EAAEmD,IAAIqD,EAAGtD,KAAUkE,IAAS,KAElCjD,IAAUiD,GAMd,MAFA0F,GAAOU,MACPT,EAAOS,MACArJ,EAITnE,GAAEyN,QAAU,SAASlH,EAAGC,GACtB,MAAOqG,GAAGtG,EAAGC,UAKfxG,EAAEsF,QAAU,SAAShD,GACnB,GAAW,MAAPA,EAAa,OAAO,CACxB,IAAItC,EAAEiC,QAAQK,IAAQtC,EAAE0N,SAASpL,GAAM,MAAsB,KAAfA,EAAIQ,MAClD,KAAK,GAAII,KAAOZ,GAAK,GAAItC,EAAEmD,IAAIb,EAAKY,GAAM,OAAO,CACjD,QAAO,GAITlD,EAAE2N,UAAY,SAASrL,GACrB,SAAUA,GAAwB,IAAjBA,EAAIsL,WAKvB5N,EAAEiC,QAAUD,GAAiB,SAASM,GACpC,MAA6B,kBAAtB1B,EAASqC,KAAKX,IAIvBtC,EAAE0M,SAAW,SAASpK,GACpB,MAAOA,KAAQhC,OAAOgC,IAIxBK,GAAM,YAAa,WAAY,SAAU,SAAU,OAAQ,UAAW,SAASkL,GAC7E7N,EAAE,KAAO6N,GAAQ,SAASvL,GACxB,MAAO1B,GAASqC,KAAKX,IAAQ,WAAauL,EAAO,OAMhD7N,EAAEkI,YAAYpE,aACjB9D,EAAEkI,YAAc,SAAS5F,GACvB,SAAUA,IAAOtC,EAAEmD,IAAIb,EAAK,aAKX,kBAAV,MACTtC,EAAEgF,WAAa,SAAS1C,GACtB,MAAsB,kBAARA,KAKlBtC,EAAE8N,SAAW,SAASxL,GACpB,MAAOwL,UAASxL,KAASyL,MAAMC,WAAW1L,KAI5CtC,EAAE+N,MAAQ,SAASzL,GACjB,MAAOtC,GAAEiO,SAAS3L,IAAQA,IAAQA,GAIpCtC,EAAEkO,UAAY,SAAS5L,GACrB,MAAOA,MAAQ,GAAQA,KAAQ,GAA+B,oBAAtB1B,EAASqC,KAAKX,IAIxDtC,EAAEmO,OAAS,SAAS7L,GAClB,MAAe,QAARA,GAITtC,EAAEoO,YAAc,SAAS9L,GACvB,MAAOA,SAAa,IAKtBtC,EAAEmD,IAAM,SAASb,EAAKY,GACpB,MAAOrC,GAAeoC,KAAKX,EAAKY,IAQlClD,EAAEqO,WAAa,WAEb,MADAxO,GAAKG,EAAID,EACFD,MAITE,EAAEwE,SAAW,SAASlB,GACpB,MAAOA,IAITtD,EAAE4L,MAAQ,SAASrE,EAAG3E,EAAUC,GAE9B,IAAK,GADDyL,GAAQnO,MAAMsF,KAAKD,IAAI,EAAG+B,IACrBxE,EAAI,EAAOwE,EAAJxE,EAAOA,IAAKuL,EAAMvL,GAAKH,EAASK,KAAKJ,EAASE,EAC9D,OAAOuL,IAITtO,EAAEgG,OAAS,SAASJ,EAAKJ,GAKvB,MAJW,OAAPA,IACFA,EAAMI,EACNA,EAAM,GAEDA,EAAMH,KAAK8I,MAAM9I,KAAKO,UAAYR,EAAMI,EAAM,IAIvD,IAAI4I,IACFC,QACEC,IAAK,QACLC,IAAK,OACLC,IAAK,OACLC,IAAK,SACLC,IAAK,SACLC,IAAK,UAGTP,GAAUQ,SAAWhP,EAAE8L,OAAO0C,EAAUC,OAGxC,IAAIQ,IACFR,OAAU,GAAIS,QAAO,IAAMlP,EAAEmC,KAAKqM,EAAUC,QAAQU,KAAK,IAAM,IAAK,KACpEH,SAAU,GAAIE,QAAO,IAAMlP,EAAEmC,KAAKqM,EAAUQ,UAAUG,KAAK,KAAO,IAAK,KAIzEnP,GAAE2C,MAAM,SAAU,YAAa,SAASkC,GACtC7E,EAAE6E,GAAU,SAASuK,GACnB,MAAc,OAAVA,EAAuB,IACnB,GAAKA,GAAQC,QAAQJ,EAAcpK,GAAS,SAASyK,GAC3D,MAAOd,GAAU3J,GAAQyK,QAO/BtP,EAAEmE,OAAS,SAAS4E,EAAQwG,GAC1B,GAAc,MAAVxG,EAAgB,WAAY,EAChC,IAAIzF,GAAQyF,EAAOwG,EACnB,OAAOvP,GAAEgF,WAAW1B,GAASA,EAAML,KAAK8F,GAAUzF,GAIpDtD,EAAEwP,MAAQ,SAASlN,GACjBK,EAAK3C,EAAE+L,UAAUzJ,GAAM,SAASuL,GAC9B,GAAInE,GAAO1J,EAAE6N,GAAQvL,EAAIuL,EACzB7N,GAAEI,UAAUyN,GAAQ,WAClB,GAAI/I,IAAQhF,KAAKyC,SAEjB,OADA9B,GAAKwE,MAAMH,EAAMhB,WACVK,EAAOlB,KAAKnD,KAAM4J,EAAKzE,MAAMjF,EAAG8E,OAO7C,IAAI2K,GAAY,CAChBzP,GAAE0P,SAAW,SAASC,GACpB,GAAIC,KAAOH,EAAY,EACvB,OAAOE,GAASA,EAASC,EAAKA,GAKhC5P,EAAE6P,kBACAC,SAAc,kBACdC,YAAc,mBACdtB,OAAc,mBAMhB,IAAIuB,GAAU,OAIVC,GACFnB,IAAU,IACVoB,KAAU,KACVC,KAAU,IACVC,KAAU,IACVC,IAAU,IACVC,SAAU,QACVC,SAAU,SAGRC,EAAU,8BAKdxQ,GAAEyQ,SAAW,SAASC,EAAMC,EAAMC,GAChC,GAAIC,EACJD,GAAW5Q,EAAEwM,YAAaoE,EAAU5Q,EAAE6P,iBAGtC,IAAIiB,GAAU,GAAI5B,UACf0B,EAASnC,QAAUuB,GAAS7D,QAC5ByE,EAASb,aAAeC,GAAS7D,QACjCyE,EAASd,UAAYE,GAAS7D,QAC/BgD,KAAK,KAAO,KAAM,KAGhB5L,EAAQ,EACR4I,EAAS,QACbuE,GAAKrB,QAAQyB,EAAS,SAASxB,EAAOb,EAAQsB,EAAaD,EAAUiB,GAcnE,MAbA5E,IAAUuE,EAAKhQ,MAAM6C,EAAOwN,GACzB1B,QAAQmB,EAAS,SAASlB,GAAS,MAAO,KAAOW,EAAQX,KAExDb,IACFtC,GAAU,cAAgBsC,EAAS,kCAEjCsB,IACF5D,GAAU,cAAgB4D,EAAc,wBAEtCD,IACF3D,GAAU,OAAS2D,EAAW,YAEhCvM,EAAQwN,EAASzB,EAAMxM,OAChBwM,IAETnD,GAAU,OAGLyE,EAASI,WAAU7E,EAAS,mBAAqBA,EAAS,OAE/DA,EAAS,2CACP,oDACAA,EAAS,eAEX,KACE0E,EAAS,GAAIrQ,UAASoQ,EAASI,UAAY,MAAO,IAAK7E,GACvD,MAAO8E,GAEP,KADAA,GAAE9E,OAASA,EACL8E,EAGR,GAAIN,EAAM,MAAOE,GAAOF,EAAM3Q,EAC9B,IAAIyQ,GAAW,SAASE,GACtB,MAAOE,GAAO5N,KAAKnD,KAAM6Q,EAAM3Q,GAMjC,OAFAyQ,GAAStE,OAAS,aAAeyE,EAASI,UAAY,OAAS,OAAS7E,EAAS,IAE1EsE,GAITzQ,EAAEkR,MAAQ,SAAS5O,GACjB,MAAOtC,GAAEsC,GAAK4O,QAUhB,IAAI/M,GAAS,SAAS7B,GACpB,MAAOxC,MAAKqR,OAASnR,EAAEsC,GAAK4O,QAAU5O,EAIxCtC,GAAEwP,MAAMxP,GAGR2C,GAAM,MAAO,OAAQ,UAAW,QAAS,OAAQ,SAAU,WAAY,SAASkL,GAC9E,GAAIhJ,GAAS3E,EAAW2N,EACxB7N,GAAEI,UAAUyN,GAAQ,WAClB,GAAIvL,GAAMxC,KAAKyC,QAGf,OAFAsC,GAAOI,MAAM3C,EAAKwB,WACL,SAAR+J,GAA2B,UAARA,GAAoC,IAAfvL,EAAIQ,cAAqBR,GAAI,GACnE6B,EAAOlB,KAAKnD,KAAMwC,MAK7BK,GAAM,SAAU,OAAQ,SAAU,SAASkL,GACzC,GAAIhJ,GAAS3E,EAAW2N,EACxB7N,GAAEI,UAAUyN,GAAQ,WAClB,MAAO1J,GAAOlB,KAAKnD,KAAM+E,EAAOI,MAAMnF,KAAKyC,SAAUuB,eAIzD9D,EAAEkM,OAAOlM,EAAEI,WAGT8Q,MAAO,WAEL,MADApR,MAAKqR,QAAS,EACPrR,MAITwD,MAAO,WACL,MAAOxD,MAAKyC,aAKfU,KAAKnD"} \ No newline at end of file +{"version":3,"file":"underscore-min.js","sources":["underscore.js"],"names":["root","this","previousUnderscore","_","breaker","ArrayProto","Array","prototype","ObjProto","Object","FuncProto","Function","push","slice","concat","toString","hasOwnProperty","nativeForEach","forEach","nativeMap","map","nativeReduce","reduce","nativeReduceRight","reduceRight","nativeFilter","filter","nativeEvery","every","nativeSome","some","nativeIndexOf","indexOf","nativeLastIndexOf","lastIndexOf","nativeIsArray","isArray","nativeKeys","keys","nativeBind","bind","obj","_wrapped","exports","module","VERSION","each","iterator","context","length","i","l","call","key","has","collect","results","value","index","list","reduceError","foldl","inject","memo","initial","arguments","TypeError","foldr","find","detect","result","any","select","reject","all","identity","contains","include","target","invoke","method","args","isFunc","isFunction","apply","pluck","where","attrs","first","isEmpty","findWhere","max","Math","Infinity","computed","min","shuffle","rand","shuffled","random","lookupIterator","sortBy","criteria","sort","left","right","a","b","group","behavior","groupBy","countBy","sortedIndex","array","low","high","mid","toArray","values","size","head","take","n","guard","last","rest","tail","drop","compact","flatten","input","shallow","output","isArguments","without","difference","uniq","unique","isSorted","seen","union","intersection","item","other","zip","object","from","hasIndex","range","start","stop","step","len","ceil","idx","ctor","func","bound","self","partial","bindAll","funcs","Error","f","memoize","hasher","delay","wait","setTimeout","defer","throttle","options","timeout","previous","later","leading","Date","now","remaining","clearTimeout","trailing","debounce","immediate","callNow","once","ran","wrap","wrapper","compose","after","times","pairs","invert","functions","methods","names","extend","source","prop","pick","copy","omit","defaults","clone","isObject","tap","interceptor","eq","aStack","bStack","className","String","global","multiline","ignoreCase","aCtor","constructor","bCtor","pop","isEqual","isString","isElement","nodeType","name","isFinite","isNaN","parseFloat","isNumber","isBoolean","isNull","isUndefined","noConflict","accum","floor","entityMap","escape","&","<",">","\"","'","/","unescape","entityRegexes","RegExp","join","string","replace","match","property","mixin","idCounter","uniqueId","prefix","id","templateSettings","evaluate","interpolate","noMatch","escapes","\\","\r","\n","\t","
","
","escaper","template","text","data","settings","render","matcher","offset","variable","e","chain","_chain"],"mappings":"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"} \ No newline at end of file diff --git a/underscore.js b/underscore.js index 70fae3f69..7d4ee27c7 100644 --- a/underscore.js +++ b/underscore.js @@ -1,7 +1,6 @@ -// Underscore.js 1.5.0 +// Underscore.js 1.5.1 // http://underscorejs.org -// (c) 2009-2011 Jeremy Ashkenas, DocumentCloud Inc. -// (c) 2011-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors +// (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors // Underscore may be freely distributed under the MIT license. (function() { @@ -66,7 +65,7 @@ } // Current version. - _.VERSION = '1.5.0'; + _.VERSION = '1.5.1'; // Collection Functions // -------------------- @@ -495,16 +494,6 @@ // Zip together multiple lists into a single array -- elements that share // an index go together. _.zip = function() { - return _.unzip.apply(_, slice.call(arguments)); - }; - - // The inverse operation to `_.zip`. If given an array of pairs it - // returns an array of the paired elements split into two left and - // right element arrays, if given an array of triples it returns a - // three element array and so on. For example, `_.unzip` given - // `[['a',1],['b',2],['c',3]]` returns the array - // [['a','b','c'],[1,2,3]]. - _.unzip = function() { var length = _.max(_.pluck(arguments, "length").concat(0)); var results = new Array(length); for (var i = 0; i < length; i++) { @@ -662,7 +651,7 @@ var previous = 0; options || (options = {}); var later = function() { - previous = new Date; + previous = options.leading === false ? 0 : new Date; timeout = null; result = func.apply(context, args); };