docs: function sha1(str) {
  	      var utf8 = utf8Encode(str);
  	      var words32 = stringToWords32(utf8);
  	      var len = utf8.length * 8;
  	      var w = new Array(80);
  	      var _a = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0], a = _a[0], b = _a[1], c = _a[2], d = _a[3], e = _a[4];
  	      words32[len >> 5] |= 0x80 << (24 - len % 32);
  	      words32[((len + 64 >> 9) << 4) + 15] = len;
  	      for (var i = 0; i < words32.length; i += 16) {
  	          var _b = [a, b, c, d, e], h0 = _b[0], h1 = _b[1], h2 = _b[2], h3 = _b[3], h4 = _b[4];
  	          for (var j = 0; j < 80; j++) {
  	              if (j < 16) {
  	                  w[j] = words32[i + j];
  	              }
  	              else {
  	                  w[j] = rol32(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1);
  	              }
  	              var _c = fk(j, b, c, d), f = _c[0], k = _c[1];
  	              var temp = [rol32(a, 5), f, e, k, w[j]].reduce(add32);
  	              _d = [d, c, rol32(b, 30), a, temp], e = _d[0], d = _d[1], c = _d[2], b = _d[3], a = _d[4];
  	          }
  	          _e = [add32(a, h0), add32(b, h1), add32(c, h2), add32(d, h3), add32(e, h4)], a = _e[0], b = _e[1], c = _e[2], d = _e[3], e = _e[4];
  	      }
  	      var sha1 = words32ToString([a, b, c, d, e]);
  	      var hex = '';
  	      for (var i = 0; i < sha1.length; i++) {
  	          var b_1 = sha1.charCodeAt(i);
  	          hex += (b_1 >>> 4 & 0x0f).toString(16) + (b_1 & 0x0f).toString(16);
  	      }
  	      return hex.toLowerCase();
  	      var _d, _e;
  	  }