docs: function Alea() {                                                                                           // 15
    function Mash() {                                                                                                    // 16
      var n = 0xefc8249d;                                                                                                // 17
                                                                                                                         //
      var mash = function mash(data) {                                                                                   // 19
        data = data.toString();                                                                                          // 20
        for (var i = 0; i < data.length; i++) {                                                                          // 21
          n += data.charCodeAt(i);                                                                                       // 22
          var h = 0.02519603282416938 * n;                                                                               // 23
          n = h >>> 0;                                                                                                   // 24
          h -= n;                                                                                                        // 25
          h *= n;                                                                                                        // 26
          n = h >>> 0;                                                                                                   // 27
          h -= n;                                                                                                        // 28
          n += h * 0x100000000; // 2^32                                                                                  // 29
        }                                                                                                                // 30
        return (n >>> 0) * 2.3283064365386963e-10; // 2^-32                                                              // 31
      };                                                                                                                 // 32
                                                                                                                         //
      mash.version = 'Mash 0.9';                                                                                         // 34
      return mash;                                                                                                       // 35
    }                                                                                                                    // 36
                                                                                                                         //
    return function (args) {                                                                                             // 38
      var s0 = 0;                                                                                                        // 39
      var s1 = 0;                                                                                                        // 40
      var s2 = 0;                                                                                                        // 41
      var c = 1;                                                                                                         // 42
                                                                                                                         //
      if (args.length == 0) {                                                                                            // 44
        args = [+new Date()];                                                                                            // 45
      }                                                                                                                  // 46
      var mash = Mash();                                                                                                 // 47
      s0 = mash(' ');                                                                                                    // 48
      s1 = mash(' ');                                                                                                    // 49
      s2 = mash(' ');                                                                                                    // 50
                                                                                                                         //
      for (var i = 0; i < args.length; i++) {                                                                            // 52
        s0 -= mash(args[i]);                                                                                             // 53
        if (s0 < 0) {                                                                                                    // 54
          s0 += 1;                                                                                                       // 55
        }                                                                                                                // 56
        s1 -= mash(args[i]);                                                                                             // 57
        if (s1 < 0) {                                                                                                    // 58
          s1 += 1;                                                                                                       // 59
        }                                                                                                                // 60
        s2 -= mash(args[i]);                                                                                             // 61
        if (s2 < 0) {                                                                                                    // 62
          s2 += 1;                                                                                                       // 63
        }                                                                                                                // 64
      }                                                                                                                  // 65
      mash = null;                                                                                                       // 66
                                                                                                                         //
      var random = function random() {                                                                                   // 68
        var t = 2091639 * s0 + c * 2.3283064365386963e-10; // 2^-32                                                      // 69
        s0 = s1;                                                                                                         // 70
        s1 = s2;                                                                                                         // 71
        return s2 = t - (c = t | 0);                                                                                     // 72
      };                                                                                                                 // 73
      random.uint32 = function () {                                                                                      // 74
        return random() * 0x100000000; // 2^32                                                                           // 75
      };                                                                                                                 // 76
      random.fract53 = function () {                                                                                     // 77
        return random() + (random() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53                                   // 78
      };                                                                                                                 // 80
      random.version = 'Alea 0.9';                                                                                       // 81
      random.args = args;                                                                                                // 82
      return random;                                                                                                     // 83
    }(Array.prototype.slice.call(arguments));                                                                            // 85
  }