{"id":"node_modules/elliptic/lib/elliptic/ec/signature.js","dependencies":[{"name":"/www/ml-classifier/example/package.json","includedInParent":true,"mtime":1551949031632},{"name":"/www/ml-classifier/example/.babelrc","includedInParent":true,"mtime":1551703756168},{"name":"/www/ml-classifier/example/node_modules/elliptic/package.json","includedInParent":true,"mtime":1542583799903},{"name":"bn.js","loc":{"line":3,"column":17},"parent":"/www/ml-classifier/example/node_modules/elliptic/lib/elliptic/ec/signature.js","resolved":"/www/ml-classifier/example/node_modules/bn.js/lib/bn.js"},{"name":"../../elliptic","loc":{"line":5,"column":23},"parent":"/www/ml-classifier/example/node_modules/elliptic/lib/elliptic/ec/signature.js","resolved":"/www/ml-classifier/example/node_modules/elliptic/lib/elliptic.js"}],"generated":{"js":"'use strict';\n\nvar BN = require('bn.js');\n\nvar elliptic = require('../../elliptic');\nvar utils = elliptic.utils;\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n  if (options instanceof Signature)\n    return options;\n\n  if (this._importDER(options, enc))\n    return;\n\n  assert(options.r && options.s, 'Signature without r or s');\n  this.r = new BN(options.r, 16);\n  this.s = new BN(options.s, 16);\n  if (options.recoveryParam === undefined)\n    this.recoveryParam = null;\n  else\n    this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n  this.place = 0;\n}\n\nfunction getLength(buf, p) {\n  var initial = buf[p.place++];\n  if (!(initial & 0x80)) {\n    return initial;\n  }\n  var octetLen = initial & 0xf;\n  var val = 0;\n  for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n    val <<= 8;\n    val |= buf[off];\n  }\n  p.place = off;\n  return val;\n}\n\nfunction rmPadding(buf) {\n  var i = 0;\n  var len = buf.length - 1;\n  while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n    i++;\n  }\n  if (i === 0) {\n    return buf;\n  }\n  return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n  data = utils.toArray(data, enc);\n  var p = new Position();\n  if (data[p.place++] !== 0x30) {\n    return false;\n  }\n  var len = getLength(data, p);\n  if ((len + p.place) !== data.length) {\n    return false;\n  }\n  if (data[p.place++] !== 0x02) {\n    return false;\n  }\n  var rlen = getLength(data, p);\n  var r = data.slice(p.place, rlen + p.place);\n  p.place += rlen;\n  if (data[p.place++] !== 0x02) {\n    return false;\n  }\n  var slen = getLength(data, p);\n  if (data.length !== slen + p.place) {\n    return false;\n  }\n  var s = data.slice(p.place, slen + p.place);\n  if (r[0] === 0 && (r[1] & 0x80)) {\n    r = r.slice(1);\n  }\n  if (s[0] === 0 && (s[1] & 0x80)) {\n    s = s.slice(1);\n  }\n\n  this.r = new BN(r);\n  this.s = new BN(s);\n  this.recoveryParam = null;\n\n  return true;\n};\n\nfunction constructLength(arr, len) {\n  if (len < 0x80) {\n    arr.push(len);\n    return;\n  }\n  var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n  arr.push(octets | 0x80);\n  while (--octets) {\n    arr.push((len >>> (octets << 3)) & 0xff);\n  }\n  arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n  var r = this.r.toArray();\n  var s = this.s.toArray();\n\n  // Pad values\n  if (r[0] & 0x80)\n    r = [ 0 ].concat(r);\n  // Pad values\n  if (s[0] & 0x80)\n    s = [ 0 ].concat(s);\n\n  r = rmPadding(r);\n  s = rmPadding(s);\n\n  while (!s[0] && !(s[1] & 0x80)) {\n    s = s.slice(1);\n  }\n  var arr = [ 0x02 ];\n  constructLength(arr, r.length);\n  arr = arr.concat(r);\n  arr.push(0x02);\n  constructLength(arr, s.length);\n  var backHalf = arr.concat(s);\n  var res = [ 0x30 ];\n  constructLength(res, backHalf.length);\n  res = res.concat(backHalf);\n  return utils.encode(res, enc);\n};\n","map":{"mappings":[{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":1,"column":0},"generated":{"line":1,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":2,"column":0},"generated":{"line":2,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":3,"column":0},"generated":{"line":3,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":4,"column":0},"generated":{"line":4,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":5,"column":0},"generated":{"line":5,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":6,"column":0},"generated":{"line":6,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":7,"column":0},"generated":{"line":7,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":8,"column":0},"generated":{"line":8,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":9,"column":0},"generated":{"line":9,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":10,"column":0},"generated":{"line":10,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":11,"column":0},"generated":{"line":11,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":12,"column":0},"generated":{"line":12,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":13,"column":0},"generated":{"line":13,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":14,"column":0},"generated":{"line":14,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":15,"column":0},"generated":{"line":15,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":16,"column":0},"generated":{"line":16,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":17,"column":0},"generated":{"line":17,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":18,"column":0},"generated":{"line":18,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":19,"column":0},"generated":{"line":19,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":20,"column":0},"generated":{"line":20,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":21,"column":0},"generated":{"line":21,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":22,"column":0},"generated":{"line":22,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":23,"column":0},"generated":{"line":23,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":24,"column":0},"generated":{"line":24,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":25,"column":0},"generated":{"line":25,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":26,"column":0},"generated":{"line":26,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":27,"column":0},"generated":{"line":27,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":28,"column":0},"generated":{"line":28,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":29,"column":0},"generated":{"line":29,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":30,"column":0},"generated":{"line":30,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":31,"column":0},"generated":{"line":31,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":32,"column":0},"generated":{"line":32,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":33,"column":0},"generated":{"line":33,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":34,"column":0},"generated":{"line":34,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":35,"column":0},"generated":{"line":35,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":36,"column":0},"generated":{"line":36,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":37,"column":0},"generated":{"line":37,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":38,"column":0},"generated":{"line":38,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":39,"column":0},"generated":{"line":39,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":40,"column":0},"generated":{"line":40,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":41,"column":0},"generated":{"line":41,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":42,"column":0},"generated":{"line":42,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":43,"column":0},"generated":{"line":43,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":44,"column":0},"generated":{"line":44,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":45,"column":0},"generated":{"line":45,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":46,"column":0},"generated":{"line":46,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":47,"column":0},"generated":{"line":47,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":48,"column":0},"generated":{"line":48,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":49,"column":0},"generated":{"line":49,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":50,"column":0},"generated":{"line":50,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":51,"column":0},"generated":{"line":51,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":52,"column":0},"generated":{"line":52,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":53,"column":0},"generated":{"line":53,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":54,"column":0},"generated":{"line":54,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":55,"column":0},"generated":{"line":55,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":56,"column":0},"generated":{"line":56,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":57,"column":0},"generated":{"line":57,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":58,"column":0},"generated":{"line":58,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":59,"column":0},"generated":{"line":59,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":60,"column":0},"generated":{"line":60,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":61,"column":0},"generated":{"line":61,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":62,"column":0},"generated":{"line":62,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":63,"column":0},"generated":{"line":63,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":64,"column":0},"generated":{"line":64,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":65,"column":0},"generated":{"line":65,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":66,"column":0},"generated":{"line":66,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":67,"column":0},"generated":{"line":67,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":68,"column":0},"generated":{"line":68,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":69,"column":0},"generated":{"line":69,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":70,"column":0},"generated":{"line":70,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":71,"column":0},"generated":{"line":71,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":72,"column":0},"generated":{"line":72,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":73,"column":0},"generated":{"line":73,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":74,"column":0},"generated":{"line":74,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":75,"column":0},"generated":{"line":75,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":76,"column":0},"generated":{"line":76,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":77,"column":0},"generated":{"line":77,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":78,"column":0},"generated":{"line":78,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":79,"column":0},"generated":{"line":79,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":80,"column":0},"generated":{"line":80,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":81,"column":0},"generated":{"line":81,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":82,"column":0},"generated":{"line":82,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":83,"column":0},"generated":{"line":83,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":84,"column":0},"generated":{"line":84,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":85,"column":0},"generated":{"line":85,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":86,"column":0},"generated":{"line":86,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":87,"column":0},"generated":{"line":87,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":88,"column":0},"generated":{"line":88,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":89,"column":0},"generated":{"line":89,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":90,"column":0},"generated":{"line":90,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":91,"column":0},"generated":{"line":91,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":92,"column":0},"generated":{"line":92,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":93,"column":0},"generated":{"line":93,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":94,"column":0},"generated":{"line":94,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":95,"column":0},"generated":{"line":95,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":96,"column":0},"generated":{"line":96,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":97,"column":0},"generated":{"line":97,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":98,"column":0},"generated":{"line":98,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":99,"column":0},"generated":{"line":99,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":100,"column":0},"generated":{"line":100,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":101,"column":0},"generated":{"line":101,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":102,"column":0},"generated":{"line":102,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":103,"column":0},"generated":{"line":103,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":104,"column":0},"generated":{"line":104,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":105,"column":0},"generated":{"line":105,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":106,"column":0},"generated":{"line":106,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":107,"column":0},"generated":{"line":107,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":108,"column":0},"generated":{"line":108,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":109,"column":0},"generated":{"line":109,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":110,"column":0},"generated":{"line":110,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":111,"column":0},"generated":{"line":111,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":112,"column":0},"generated":{"line":112,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":113,"column":0},"generated":{"line":113,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":114,"column":0},"generated":{"line":114,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":115,"column":0},"generated":{"line":115,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":116,"column":0},"generated":{"line":116,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":117,"column":0},"generated":{"line":117,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":118,"column":0},"generated":{"line":118,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":119,"column":0},"generated":{"line":119,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":120,"column":0},"generated":{"line":120,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":121,"column":0},"generated":{"line":121,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":122,"column":0},"generated":{"line":122,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":123,"column":0},"generated":{"line":123,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":124,"column":0},"generated":{"line":124,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":125,"column":0},"generated":{"line":125,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":126,"column":0},"generated":{"line":126,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":127,"column":0},"generated":{"line":127,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":128,"column":0},"generated":{"line":128,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":129,"column":0},"generated":{"line":129,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":130,"column":0},"generated":{"line":130,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":131,"column":0},"generated":{"line":131,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":132,"column":0},"generated":{"line":132,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":133,"column":0},"generated":{"line":133,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":134,"column":0},"generated":{"line":134,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":135,"column":0},"generated":{"line":135,"column":0}},{"source":"node_modules/elliptic/lib/elliptic/ec/signature.js","original":{"line":136,"column":0},"generated":{"line":136,"column":0}}],"sources":{"node_modules/elliptic/lib/elliptic/ec/signature.js":"'use strict';\n\nvar BN = require('bn.js');\n\nvar elliptic = require('../../elliptic');\nvar utils = elliptic.utils;\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n  if (options instanceof Signature)\n    return options;\n\n  if (this._importDER(options, enc))\n    return;\n\n  assert(options.r && options.s, 'Signature without r or s');\n  this.r = new BN(options.r, 16);\n  this.s = new BN(options.s, 16);\n  if (options.recoveryParam === undefined)\n    this.recoveryParam = null;\n  else\n    this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n  this.place = 0;\n}\n\nfunction getLength(buf, p) {\n  var initial = buf[p.place++];\n  if (!(initial & 0x80)) {\n    return initial;\n  }\n  var octetLen = initial & 0xf;\n  var val = 0;\n  for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n    val <<= 8;\n    val |= buf[off];\n  }\n  p.place = off;\n  return val;\n}\n\nfunction rmPadding(buf) {\n  var i = 0;\n  var len = buf.length - 1;\n  while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n    i++;\n  }\n  if (i === 0) {\n    return buf;\n  }\n  return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n  data = utils.toArray(data, enc);\n  var p = new Position();\n  if (data[p.place++] !== 0x30) {\n    return false;\n  }\n  var len = getLength(data, p);\n  if ((len + p.place) !== data.length) {\n    return false;\n  }\n  if (data[p.place++] !== 0x02) {\n    return false;\n  }\n  var rlen = getLength(data, p);\n  var r = data.slice(p.place, rlen + p.place);\n  p.place += rlen;\n  if (data[p.place++] !== 0x02) {\n    return false;\n  }\n  var slen = getLength(data, p);\n  if (data.length !== slen + p.place) {\n    return false;\n  }\n  var s = data.slice(p.place, slen + p.place);\n  if (r[0] === 0 && (r[1] & 0x80)) {\n    r = r.slice(1);\n  }\n  if (s[0] === 0 && (s[1] & 0x80)) {\n    s = s.slice(1);\n  }\n\n  this.r = new BN(r);\n  this.s = new BN(s);\n  this.recoveryParam = null;\n\n  return true;\n};\n\nfunction constructLength(arr, len) {\n  if (len < 0x80) {\n    arr.push(len);\n    return;\n  }\n  var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n  arr.push(octets | 0x80);\n  while (--octets) {\n    arr.push((len >>> (octets << 3)) & 0xff);\n  }\n  arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n  var r = this.r.toArray();\n  var s = this.s.toArray();\n\n  // Pad values\n  if (r[0] & 0x80)\n    r = [ 0 ].concat(r);\n  // Pad values\n  if (s[0] & 0x80)\n    s = [ 0 ].concat(s);\n\n  r = rmPadding(r);\n  s = rmPadding(s);\n\n  while (!s[0] && !(s[1] & 0x80)) {\n    s = s.slice(1);\n  }\n  var arr = [ 0x02 ];\n  constructLength(arr, r.length);\n  arr = arr.concat(r);\n  arr.push(0x02);\n  constructLength(arr, s.length);\n  var backHalf = arr.concat(s);\n  var res = [ 0x30 ];\n  constructLength(res, backHalf.length);\n  res = res.concat(backHalf);\n  return utils.encode(res, enc);\n};\n"},"lineCount":136}},"hash":"65ac01208a897f94a2f66044e1fcef0a","cacheData":{"env":{}}}