(function(e){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=e()}else if(typeof define==="function"&&define.amd){define([],e)}else{var t;if(typeof window!=="undefined"){t=window}else if(typeof global!=="undefined"){t=global}else if(typeof self!=="undefined"){t=self}else{t=this}t.WebTorrent=e()}})(function(){var e,t,r;return function n(e,t,r){function i(s,a){if(!t[s]){if(!e[s]){var f=typeof require=="function"&&require;if(!a&&f)return f(s,!0);if(o)return o(s,!0);var u=new Error("Cannot find module '"+s+"'");throw u.code="MODULE_NOT_FOUND",u}var c=t[s]={exports:{}};e[s][0].call(c.exports,function(t){var r=e[s][1][t];return i(r?r:t)},c,c.exports,n,e,t,r)}return t[s].exports}var o=typeof require=="function"&&require;for(var s=0;s0){return r[Math.random()*r.length|0]}else{return-1}}},{}],4:[function(e,t,r){(function(r,n,i){t.exports=E;var o=e("bitfield");var s=e("block-stream");var a=e("debug")("webtorrent:storage");var f=e("dezalgo");var u=e("end-of-stream");var c=e("events").EventEmitter;var l=e("./file-stream");var h=e("inherits");var d=e("multistream");var p=e("once");var g=e("simple-sha1");var v=16*1024;var m=0;var y=1;var _=2;function w(){}h(b,c);function b(e,t,r,n){var i=this;c.call(i);if(!a.enabled)i.setMaxListeners(0);i.index=e;i.hash=t;i.noVerify=!!n;if(typeof r==="number"){i.buffer=null;i.length=r}else{i.buffer=r;i.length=r.length}i._reset()}b.prototype.readBlock=function(e,t,r){var n=this;r=f(r);if(!n.buffer||!n._verifyOffset(e)){return r(new Error("invalid block offset "+e))}r(null,n.buffer.slice(e,e+t))};b.prototype.writeBlock=function(e,t,r){var n=this;r=f(r);if(!n._verifyOffset(e)||!n._verifyBlock(e,t)){return r(new Error("invalid block "+e+":"+t.length))}n._lazyAllocBuffer();var i=e/v;if(n.blocks[i]===_){return r(null)}t.copy(n.buffer,e);n.blocks[i]=_;n.blocksWritten+=1;if(n.blocksWritten===n.blocks.length){n.verify()}r(null)};b.prototype.reserveBlock=function(e){var t=this;var r=t.blocks.length;for(var n=0;n0){var t=e.pieces[0].index;var r=e.pieces[e.pieces.length-1].index;e.storage.emit("select",t,r,false)}};k.prototype.deselect=function(){var e=this;if(e.pieces.length>0){var t=e.pieces[0].index;var r=e.pieces[e.pieces.length-1].index;e.storage.emit("deselect",t,r,false)}};k.prototype.createReadStream=function(e){var t=this;if(!e)e={};if(e.pieceLength==null)e.pieceLength=t.pieceLength;var r=new l(t,e);t.storage.emit("select",r.startPiece,r.endPiece,true,r.notify.bind(r));u(r,function(){t.storage.emit("deselect",r.startPiece,r.endPiece,true)});return r};k.prototype.getBlobURL=function(e){var t=this;if(n.URL===undefined||n.Blob===undefined){return e(new Error("file.getBlobURL requires window.URL window.Blob support"))}t.getBuffer(function(t,r){if(t)return e(t);var i=n.URL.createObjectURL(new n.Blob([r]));e(null,i)})};k.prototype.getBuffer=function(e){var t=this;var r=new i(t.length);var n=0;t.createReadStream().on("data",function(e){e.copy(r,n);n+=e.length}).on("end",function(){e(null,r)})};k.prototype._checkDone=function(){var e=this;e.done=e.pieces.every(function(e){return e.verified});if(e.done){r.nextTick(function(){e.emit("done")})}};h(E,c);function E(e,t){var r=this;c.call(r);if(!a.enabled)r.setMaxListeners(0);if(!t)t={};r.bitfield=new o(e.pieces.length);r.done=false;r.closed=false;r.readonly=true;if(!t.nobuffer){r.buffer=new i(e.length)}var n=r.pieceLength=e.pieceLength;var s=e.lastPieceLength;var f=e.pieces.length;r.pieces=e.pieces.map(function(e,i){var o=i*n;var a=o+(i===f-1?s:n);var u=r.buffer?r.buffer.slice(o,a):a-o;var c=new b(i,e,u,!!t.noVerify);c.on("done",r._onPieceDone.bind(r,c));return c});r.files=e.files.map(function(e){var t=e.offset;var i=t+e.length-1;var o=t/n|0;var s=i/n|0;var a=r.pieces.slice(o,s+1);var f=new k(r,e,a,n);f.on("done",r._onFileDone.bind(r,f));return f})}E.BLOCK_LENGTH=v;E.prototype.load=function(e,t){var r=this;if(!Array.isArray(e))e=[e];t=p(t||function(){});r.once("done",function(){t(null)});var n=0;new d(e).pipe(new s(r.pieceLength,{nopad:true})).on("data",function(e){var t=n;n+=1;var i=0;var o=new s(v,{nopad:true});o.on("data",function(e){var n=i*v;i+=1;r.writeBlock(t,n,e)});o.end(e)}).on("error",t)};Object.defineProperty(E.prototype,"downloaded",{get:function(){var e=this;return e.pieces.reduce(function(e,t){return e+(t.verified?t.length:t.blocksWritten*v)},0)}});Object.defineProperty(E.prototype,"numMissing",{get:function(){var e=this;var t=e.pieces.length;for(var r=0,n=e.pieces.length;rt||e<0||t>=i.storage.pieces.length){throw new Error("invalid selection ",e,":",t)}r=Number(r)||0;o("select %s-%s (priority %s)",e,t,r);i._selections.push({from:e,to:t,offset:0,priority:r,notify:n||C});i._selections.sort(function(e,t){return t.priority-e.priority});i._updateSelections()};L.prototype.deselect=function(e,t,r){var n=this;r=Number(r)||0;o("deselect %s-%s (priority %s)",e,t,r);for(var i=0;i2*(t.swarm.numConns-t.swarm.numPeers)&&e.amInterested){e.destroy()}else{r=setTimeout(i,n);if(r.unref)r.unref()}}var s=0;function a(){if(e.peerPieces.length!==t.storage.pieces.length)return;for(;sw){o("got invalid block size request %s (from %s)",i,e.remoteAddress+":"+e.remotePort);return e.destroy()}t.storage.readBlock(r,n,i,s)});e.bitfield(t.storage.bitfield);e.interested();r=setTimeout(i,n);if(r.unref)r.unref();e.isSeeder=false;a()};L.prototype._onStorage=function(){var e=this;if(e._destroyed)return;o("on storage");e.storage.readonly=false;e.select(0,e.storage.pieces.length-1,false);e._rechokeIntervalId=setInterval(e._rechoke.bind(e),A);if(e._rechokeIntervalId.unref)e._rechokeIntervalId.unref();r.nextTick(function(){e.ready=true;e.emit("ready")})};L.prototype._onStoragePiece=function(e){var t=this;o("piece done %s",e.index);t._reservations[e.index]=null;t.swarm.wires.forEach(function(t){t.have(e.index)});t._gcSelections()};L.prototype._updateSelections=function(){var e=this;if(!e.swarm||e._destroyed)return;if(!e.metadata)return e.once("metadata",e._updateSelections.bind(e));r.nextTick(e._gcSelections.bind(e));e._updateInterest();e._update()};L.prototype._gcSelections=function(){var e=this;for(var t=0;t=r)return;var n=T(e,S);f(false)||f(true);function i(t,r,n,i){return function(o){return o>=t&&o<=r&&!(o in n)&&e.peerPieces.get(o)&&(!i||i(o))}}function o(){if(e.requests.length)return;for(var r=t._selections.length;r--;){var n=t._selections[r];var o;if(t.strategy==="rarest"){var s=n.from+n.offset;var a=n.to;var f=a-s+1;var u={};var c=0;var l=i(s,a,u);while(c=n.from+n.offset;--o){if(!e.peerPieces.get(o))continue;if(t._request(e,o,false))return}}}}function s(){var r=e.downloadSpeed()||1;if(r>E)return function(){return true};var n=Math.max(1,e.requests.length)*_.BLOCK_LENGTH/r;var i=10;var o=0;return function(e){if(!i||t.storage.bitfield.get(e))return true;var s=t.storage.pieces[e];var a=s.blocks.length-s.blocksWritten;for(;o0)continue;i--;return false}return true}}function a(e){var r=e;for(var n=e;n=n)return true;var o=s();for(var f=0;f0)e._rechokeOptimisticTime-=1;else e._rechokeOptimisticWire=null;var t=[];e.swarm.wires.forEach(function(r){if(!r.isSeeder&&r!==e._rechokeOptimisticWire){t.push({wire:r,downloadSpeed:r.downloadSpeed(),uploadSpeed:r.uploadSpeed(),salt:Math.random(),isChoked:true})}});t.sort(s);var r=0;var n=0;for(;n=E)continue;if(2*u>n||u>o)continue;s=f;o=u}if(!s)return false;for(a=0;a=a)return false;var f=e.requests.length===0&&i.storage.numMissing<30;var u=i.storage.reserveBlock(t,f);if(!u&&!f&&n&&i._hotswap(e,t)){u=i.storage.reserveBlock(t,false)}if(!u)return false;var c=i._reservations[t];if(!c){c=i._reservations[t]=[]}var l=c.indexOf(null);if(l===-1)l=c.length;c[l]=e;function h(n,s){if(!i.ready){i.once("ready",function(){h(n,s)});return}if(c[l]===e)c[l]=null;if(n){o("error getting piece %s (offset: %s length: %s) from %s: %s",t,u.offset,u.length,e.remoteAddress+":"+e.remotePort,n.message);i.storage.cancelBlock(t,u.offset);r.nextTick(i._update.bind(i));return false}else{o("got piece %s (offset: %s length: %s) from %s",t,u.offset,u.length,e.remoteAddress+":"+e.remotePort);i.storage.writeBlock(t,u.offset,s,function(e){if(e){o("error writing block");i.storage.cancelBlock(t,u.offset)}r.nextTick(i._update.bind(i))})}}e.request(t,u.offset,u.length,h);return true};L.prototype.createServer=function(e){var t=this;if(typeof y==="function"){return new y(t,e)}};function T(e,t){return Math.ceil(2+t*e.downloadSpeed()/_.BLOCK_LENGTH)}function B(e){return Math.random()*e|0}function R(e,t){var r=e.map(function(e,t){return t});for(var n=r.length-1;n>0;--n){var i=B(n+1);var o=r[n];r[n]=r[i];r[i]=o}r.forEach(function(r){t(e[r],r,e)})}}).call(this,e("_process"))},{"./rarity-map":3,"./server":34,"./storage":4,_process:42,"addr-to-ip-port":6,"bittorrent-swarm":8,"create-torrent":63,debug:87,events:39,fs:32,inherits:95,"parse-torrent":100,"re-emitter":113,"run-parallel":114,"simple-get":34,"torrent-discovery":121,ut_metadata:160,ut_pex:34}],6:[function(e,t,r){var n=/^\[?([^\]]+)\]?:(\d+)$/;var i={};var o=0;t.exports=function s(e){if(o===1e5)i={};if(!i[e]){var t=n.exec(e);if(!t)throw new Error("invalid addr: "+e);i[e]=[t[1],Number(t[2])];o+=1}return i[e]};t.exports.reset=function a(){i={}}},{}],7:[function(e,t,r){(function(e){var r=typeof e!=="undefined"?e:typeof Int8Array!=="undefined"?Int8Array:function(e){var t=new Array(e);for(var r=0;r>3;if(e%8!==0)t++;return t}n.prototype.get=function(e){var t=e>>3;return t>e%8)};n.prototype.set=function(e,t){var r=e>>3;if(t||arguments.length===1){if(this.buffer.length>e%8}else if(r>e%8)}};n.prototype._grow=function(e){if(this.buffer.length=e.maxConns){return}o("drain (%s queued, %s/%s peers)",e.numQueued,e.numPeers,e.maxConns);var t=e._queue.shift();if(!t)return;o("tcp connect attempt to %s",t.addr);var r=i(t.addr);var n=t.conn=u.connect(r[1],r[0]);n.once("connect",function(){t.onConnect()});n.once("error",function(){t.destroy()});t.setTimeout();n.on("close",function(){if(e.destroyed||t.retries>=p.length){return}function r(){var r=c.createOutgoingTCPPeer(t.addr,e);r.retries=t.retries+1;e._queue.push(r);e._drain()}var n=setTimeout(r,p[t.retries]);if(n.unref)n.unref()})};g.prototype._onError=function(e){var t=this;t.emit("error",e);t.destroy()};g.prototype._validAddr=function(e){var t=this;var r=i(e);var n=r[0];var o=r[1];return o>0&&o<65535&&!(n==="127.0.0.1"&&o===t._port)}}).call(this,e("_process"),e("buffer").Buffer)},{"./lib/peer":9,"./lib/tcp-pool":10,_process:42,"addr-to-ip-port":34,buffer:35,debug:23,dezalgo:26,events:39,inherits:29,net:34,speedometer:30}],9:[function(e,t,r){var n=e("bittorrent-protocol");var i=25e3;r.createWebRTCPeer=function(e,t){var r=new o(e.id);r.conn=e;r.swarm=t;if(r.conn.connected){r.onConnect()}else{r.conn.once("connect",function(){r.onConnect()});r.conn.once("error",function(){r.destroy()});r.setTimeout()}return r};r.createIncomingTCPPeer=function(e,t){var r=new o(t);r.conn=e;r.addr=e.remoteAddress+":"+e.remotePort;r.onConnect();return r};r.createOutgoingTCPPeer=function(e,t){var r=new o(e);r.swarm=t;r.addr=e;return r};function o(e){var t=this;t.id=e;t.addr=null;t.conn=null;t.swarm=null;t.wire=null;t.destroyed=false;t.timeout=null;t.retries=0;t.gotHandshake=false;t.sentHandshake=false}o.prototype.onConnect=function(){var e=this;function t(){e.destroy()}var r=e.conn;r.once("end",t);r.once("close",t);r.once("finish",t);r.once("error",t);var i=e.wire=new n;i.once("end",t);i.once("finish",t);i.once("error",t);i.once("handshake",function(t){e.onHandshake(t)});e.setTimeout();r.pipe(i).pipe(r);if(e.swarm)e.handshake()};o.prototype.onHandshake=function(e){var t=this;if(!t.swarm)return;if(t.swarm.destroyed||e.toString("hex")!==t.swarm.infoHashHex){t.destroy();return}t.clearTimeout();t.gotHandshake=true;t.retries=0;t.wire.on("download",function(e){t.swarm.downloaded+=e;t.swarm.downloadSpeed(e);t.swarm.emit("download",e)});t.wire.on("upload",function(e){t.swarm.uploaded+=e;t.swarm.uploadSpeed(e);t.swarm.emit("upload",e)});if(!t.sentHandshake)t.handshake();t.swarm.wires.push(t.wire);var r=t.addr||t.conn.remoteAddress+":"+t.conn.remotePort;t.swarm.emit("wire",t.wire,r)};o.prototype.handshake=function(){var e=this;e.wire.handshake(e.swarm.infoHash,e.swarm.peerId,e.swarm.handshakeOpts);e.sentHandshake=true};o.prototype.setTimeout=function(){var e=this;if(e.timeout)clearTimeout(e.timeout);e.timeout=setTimeout(function(){e.destroy()},i);if(e.timeout.unref)e.timeout.unref()};o.prototype.clearTimeout=function(){var e=this;if(e.timeout)clearTimeout(e.timeout);e.timeout=null};o.prototype.destroy=function(){var e=this;if(e.destroyed)return;e.destroyed=true;if(e.conn)e.conn.destroy();e.swarm.wires.splice(e.swarm.wires.indexOf(e.wire),1);if(e.wire)e.wire.destroy();if(e.swarm){e.swarm._removePeer(e.id);e.swarm._drain()}if(e.timeout)clearTimeout(e.timeout);e.timeout=null;e.conn=null;e.swarm=null;e.wire=null}},{"bittorrent-protocol":11}],10:[function(e,t,r){(function(r){t.exports=a;var n=e("dezalgo");var i=e("net");var o=e("./peer");var s={};function a(e){var t=this;t.port=e;t.listening=false;t.swarms={};t.pendingConns=[];t.server=i.createServer();t.server.on("connection",function(e){t._onConnection(e)});t.server.on("error",function(e){t._onError(e)});t.server.on("listening",function(){t._onListening()});t.server.listen(t.port)}a.addSwarm=function(e){var t=s[e._port];if(!t)t=s[e._port]=new a(e._port);t.addSwarm(e);return t};a.removeSwarm=function(e){var t=s[e._port];if(!t)return;t.removeSwarm(e);var r=0;for(var n in t.swarms){var i=t.swarms[n];if(i)r+=1}if(r===0)t.destroy()};a.getDefaultListenPort=function(e){for(var t in s){var r=s[t];if(r&&!r.swarms[e])return r.port}return 0};a.prototype.addSwarm=function(e){var t=this;if(t.listening){r.nextTick(function(){e._onListening(t.port)})}if(t.swarms[e.infoHashHex]){r.nextTick(function(){e._onError(new Error("There is already a swarm with info hash "+e.infoHashHex+" "+"listening on port "+e._port))});return}t.swarms[e.infoHashHex]=e};a.prototype.removeSwarm=function(e){var t=this;t.swarms[e.infoHashHex]=null};a.prototype.destroy=function(e){var t=this;if(e)e=n(e);t.listening=false;t.pendingConns.forEach(function(e){e.destroy()});s[t.port]=null;try{t.server.close(e)}catch(r){if(e)e(null)}};a.prototype._onListening=function(){var e=this;var t=e.server.address().port;if(t!==e.port){s[e.port]=null;e.port=t;s[e.port]=e}e.listening=true;for(var r in e.swarms){var n=e.swarms[r];if(n)n._onListening(e.port)}};a.prototype._onConnection=function(e){var t=this;t.pendingConns.push(e);e.once("close",r);function r(){t.pendingConns.splice(t.pendingConns.indexOf(e))}var n=o.createIncomingTCPPeer(e);n.wire.once("handshake",function(i){r();e.removeListener("close",r);var o=t.swarms[i.toString("hex")];if(o){n.swarm=o;o._addIncomingPeer(n);n.onHandshake(i)}else{n.destroy()}})};a.prototype._onError=function(e){var t=this;t.destroy();for(var r in t.swarms){var n=t.swarms[r];if(n){t.removeSwarm(n);n._onError(e)}}}}).call(this,e("_process"))},{"./peer":9,_process:42,dezalgo:26,net:34}],11:[function(e,t,r){(function(r){t.exports=w;var n=e("bitfield");var i=e("bencode");var o=e("debug")("bittorrent-protocol");var s=e("xtend");var a=e("inherits");var f=e("speedometer");var u=e("stream");var c=4e5;var l=new r("BitTorrent protocol");var h=new r([0,0,0,0]);var d=new r([0,0,0,1,0]);var p=new r([0,0,0,1,1]);var g=new r([0,0,0,1,2]);var v=new r([0,0,0,1,3]);var m=[0,0,0,0,0,0,0,0];var y=[0,0,0,3,9,0,0];function _(e,t,r,n){this.piece=e;this.offset=t;this.length=r;this.callback=n}a(w,u.Duplex);function w(){if(!(this instanceof w))return new w;u.Duplex.call(this);o("new wire");this.amChoking=true;this.amInterested=false;this.peerChoking=true;this.peerInterested=false;this.peerPieces=new n(0,{grow:c});this.peerExtensions={};this.requests=[];this.peerRequests=[];this.extendedMapping={};this.peerExtendedMapping={};this.extendedHandshake={};this.peerExtendedHandshake={};this._ext={};this._nextExt=1;this.uploaded=0;this.downloaded=0;this.uploadSpeed=f();this.downloadSpeed=f();this._keepAlive=null;this._timeout=null;this._timeoutMs=0;this.destroyed=false;this._finished=false;this._buffer=[];this._bufferSize=0;this._parser=null;this._parserSize=0;this.on("finish",this._onfinish);this._parseHandshake()}w.prototype.setKeepAlive=function(e){clearInterval(this._keepAlive);if(e===false)return;this._keepAlive=setInterval(this._push.bind(this,h),6e4)};w.prototype.setTimeout=function(e,t){this._clearTimeout();this._timeoutMs=e;this._timeoutUnref=!!t;this._updateTimeout()};w.prototype.destroy=function(){this.destroyed=true;this.end()};w.prototype.end=function(){this._onUninterested();this._onChoke();u.Duplex.prototype.end.apply(this,arguments)};w.prototype.use=function(e){var t=e.prototype.name;if(!t){throw new Error("Extension API requires a named function, e.g. function name() {}")}var r=this._nextExt;var n=new e(this);function i(){}if(typeof n.onHandshake!=="function"){n.onHandshake=i}if(typeof n.onExtendedHandshake!=="function"){n.onExtendedHandshake=i}if(typeof n.onMessage!=="function"){n.onMessage=i}this.extendedMapping[r]=t;this._ext[t]=n;this[t]=n;this._nextExt+=1};w.prototype.handshake=function(e,t,n){if(typeof e==="string")e=new r(e,"hex");if(typeof t==="string")t=new r(t,"hex");if(e.length!==20||t.length!==20){throw new Error("infoHash and peerId MUST have length 20")}var i=new r(m);i[5]|=16;if(n&&n.dht)i[7]|=1;this._push(r.concat([l,i,e,t]));this._handshakeSent=true;if(this.peerExtensions.extended){this._sendExtendedHandshake()}};w.prototype._sendExtendedHandshake=function(){var e=s(this.extendedHandshake);e.m={};for(var t in this.extendedMapping){var r=this.extendedMapping[t];e.m[r]=Number(t)}this.extended(0,i.encode(e))};w.prototype.choke=function(){if(this.amChoking)return;this.amChoking=true;this.peerRequests.splice(0,this.peerRequests.length);this._push(d)};w.prototype.unchoke=function(){if(!this.amChoking)return;this.amChoking=false;this._push(p)};w.prototype.interested=function(){if(this.amInterested)return;this.amInterested=true;this._push(g)};w.prototype.uninterested=function(){if(!this.amInterested)return;this.amInterested=false;this._push(v)};w.prototype.have=function(e){this._message(4,[e],null)};w.prototype.bitfield=function(e){if(!r.isBuffer(e))e=e.buffer;this._message(5,[],e)};w.prototype.request=function(e,t,r,n){if(!n)n=function(){};if(this._finished)return n(new Error("wire is closed"));if(this.peerChoking)return n(new Error("peer is choking"));this.requests.push(new _(e,t,r,n));this._updateTimeout();this._message(6,[e,t,r],null)};w.prototype.piece=function(e,t,r){this.uploaded+=r.length;this.uploadSpeed(r.length);this.emit("upload",r.length);this._message(7,[e,t],r)};w.prototype.cancel=function(e,t,r){this._callback(b(this.requests,e,t,r),new Error("request was cancelled"),null);this._message(8,[e,t,r],null)};w.prototype.port=function(e){var t=new r(y);t.writeUInt16BE(e,5);this._push(t)};w.prototype.extended=function(e,t){if(typeof e==="string"&&this.peerExtendedMapping[e]){e=this.peerExtendedMapping[e]}if(typeof e==="number"){var n=new r([e]);var o=r.isBuffer(t)?t:i.encode(t);this._message(20,[],r.concat([n,o]))}else{throw new Error("Unrecognized extension: "+e)}};w.prototype._onKeepAlive=function(){this.emit("keep-alive")};w.prototype._onHandshake=function(e,t,r){this.peerId=t;this.peerExtensions=r;this.emit("handshake",e,t,r);var n;for(n in this._ext){this._ext[n].onHandshake(e,t,r)}if(r.extended&&this._handshakeSent){this._sendExtendedHandshake()}};w.prototype._onChoke=function(){this.peerChoking=true;this.emit("choke");while(this.requests.length){this._callback(this.requests.shift(),new Error("peer is choking"),null)}};w.prototype._onUnchoke=function(){this.peerChoking=false;this.emit("unchoke")};w.prototype._onInterested=function(){this.peerInterested=true;this.emit("interested")};w.prototype._onUninterested=function(){this.peerInterested=false;this.emit("uninterested")};w.prototype._onHave=function(e){if(this.peerPieces.get(e))return;this.peerPieces.set(e,true);this.emit("have",e)};w.prototype._onBitField=function(e){this.peerPieces=new n(e);this.emit("bitfield",this.peerPieces)};w.prototype._onRequest=function(e,t,r){if(this.amChoking)return;var n=function(n,o){if(i!==b(this.peerRequests,e,t,r))return;if(n)return;this.piece(e,t,o)}.bind(this);var i=new _(e,t,r,n);this.peerRequests.push(i);this.emit("request",e,t,r,n)};w.prototype._onPiece=function(e,t,r){this._callback(b(this.requests,e,t,r.length),null,r);this.downloaded+=r.length;this.downloadSpeed(r.length);this.emit("download",r.length);this.emit("piece",e,t,r)};w.prototype._onCancel=function(e,t,r){b(this.peerRequests,e,t,r);this.emit("cancel",e,t,r)};w.prototype._onPort=function(e){this.emit("port",e)};w.prototype._onExtended=function(e,t){var r,n;if(e===0&&(r=k(t))){this.peerExtendedHandshake=r;if(typeof r.m==="object"){for(n in r.m){this.peerExtendedMapping[n]=Number(r.m[n].toString())}}for(n in this._ext){if(this.peerExtendedMapping[n]){this._ext[n].onExtendedHandshake(this.peerExtendedHandshake)}}this.emit("extended","handshake",this.peerExtendedHandshake)}else{if(this.extendedMapping[e]){e=this.extendedMapping[e];if(this._ext[e]){this._ext[e].onMessage(t)}}this.emit("extended",e,t)}};w.prototype._onTimeout=function(){this._callback(this.requests.shift(),new Error("request has timed out"),null);this.emit("timeout")};w.prototype._push=function(e){if(this._finished)return;return this.push(e)};w.prototype._write=function(e,t,n){this._bufferSize+=e.length;this._buffer.push(e);while(this._bufferSize>=this._parserSize){var i=this._buffer.length===1?this._buffer[0]:r.concat(this._buffer);this._bufferSize-=this._parserSize;this._buffer=this._bufferSize?[i.slice(this._parserSize)]:[];this._parser(i.slice(0,this._parserSize))}n(null)};w.prototype._read=function(){};w.prototype._callback=function(e,t,r){if(!e)return;this._clearTimeout();if(!this.peerChoking&&!this._finished)this._updateTimeout();e.callback(t,r)};w.prototype._clearTimeout=function(){if(!this._timeout)return;clearTimeout(this._timeout);this._timeout=null};w.prototype._updateTimeout=function(){if(!this._timeoutMs||!this.requests.length||this._timeout)return;this._timeout=setTimeout(this._onTimeout.bind(this),this._timeoutMs);if(this._timeoutUnref&&this._timeout.unref)this._timeout.unref()};w.prototype._parse=function(e,t){this._parserSize=e;this._parser=t};w.prototype._message=function(e,t,n){var i=n?n.length:0;var o=new r(5+4*t.length);o.writeUInt32BE(o.length+i-4,0);o[4]=e;for(var s=0;s0){this._parse(t,this._onmessage)}else{this._onKeepAlive();this._parse(4,this._onmessagelength)}};w.prototype._onmessage=function(e){this._parse(4,this._onmessagelength);switch(e[0]){case 0:return this._onChoke();case 1:return this._onUnchoke();case 2:return this._onInterested();case 3:return this._onUninterested();case 4:return this._onHave(e.readUInt32BE(1));case 5:return this._onBitField(e.slice(1));case 6:return this._onRequest(e.readUInt32BE(1),e.readUInt32BE(5),e.readUInt32BE(9));case 7:return this._onPiece(e.readUInt32BE(1),e.readUInt32BE(5),e.slice(9));case 8:return this._onCancel(e.readUInt32BE(1),e.readUInt32BE(5),e.readUInt32BE(9));case 9:return this._onPort(e.readUInt16BE(1));case 20:return this._onExtended(e.readUInt8(1),e.slice(2));default:return this.emit("unknownmessage",e)}};w.prototype._parseHandshake=function(){this._parse(1,function(e){var t=e.readUInt8(0);this._parse(t+48,function(e){var r=e.slice(0,t);if(r.toString()!=="BitTorrent protocol"){o("Error: wire not speaking BitTorrent protocol (%s)",r.toString());this.end();return}e=e.slice(t);this._onHandshake(e.slice(8,28),e.slice(28,48),{dht:!!(e[7]&1),extended:!!(e[5]&16)});this._parse(4,this._onmessagelength)}.bind(this))}.bind(this))};w.prototype._onfinish=function(){this._finished=true;this.push(null);while(this.read()){}clearInterval(this._keepAlive);this._parse(Number.MAX_VALUE,function(){});this.peerRequests=[];while(this.requests.length){this._callback(this.requests.shift(),new Error("wire was closed"),null)}};function b(e,t,r,n){for(var i=0;i=31}r.formatters.j=function(e){return JSON.stringify(e)};function o(){var e=arguments;var t=this.useColors;e[0]=(t?"%c":"")+this.namespace+(t?" %c":" ")+e[0]+(t?"%c ":" ")+"+"+r.humanize(this.diff);if(!t)return e;var n="color: "+this.color;e=[e[0],n,"color: inherit"].concat(Array.prototype.slice.call(e,1));var i=0;var o=0;e[0].replace(/%[a-z%]/g,function(e){if("%%"===e)return;i++;if("%c"===e){o=i}});e.splice(o,0,n);return e}function s(){return"object"===typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function a(e){try{if(null==e){n.removeItem("debug")}else{n.debug=e}}catch(t){}}function f(){var e;try{e=n.debug}catch(t){}return e}r.enable(f());function u(){try{return window.localStorage}catch(e){}}},{"./debug":18}],18:[function(e,t,r){r=t.exports=s;r.coerce=c;r.disable=f;r.enable=a;r.enabled=u;r.humanize=e("ms");r.names=[];r.skips=[];r.formatters={};var n=0;var i;function o(){return r.colors[n++%r.colors.length]}function s(e){function t(){}t.enabled=false;function n(){var e=n;var t=+new Date;var s=t-(i||t);e.diff=s;e.prev=i;e.curr=t;i=t;if(null==e.useColors)e.useColors=r.useColors();if(null==e.color&&e.useColors)e.color=o();var a=Array.prototype.slice.call(arguments);a[0]=r.coerce(a[0]);if("string"!==typeof a[0]){a=["%o"].concat(a)}var f=0;a[0]=a[0].replace(/%([a-z%])/g,function(t,n){if(t==="%%")return t;f++;var i=r.formatters[n];if("function"===typeof i){var o=a[f];t=i.call(e,o);a.splice(f,1);f--}return t});if("function"===typeof r.formatArgs){a=r.formatArgs.apply(e,a)}var u=n.log||r.log||console.log.bind(console);u.apply(e,a)}n.enabled=true;var s=r.enabled(e)?n:t;s.namespace=e;return s}function a(e){r.save(e);var t=(e||"").split(/[\s,]+/);var n=t.length;for(var i=0;i=s)return Math.round(e/s)+"d";if(e>=o)return Math.round(e/o)+"h";if(e>=i)return Math.round(e/i)+"m";if(e>=n)return Math.round(e/n)+"s";return e+"ms"}function c(e){return l(e,s,"day")||l(e,o,"hour")||l(e,i,"minute")||l(e,n,"second")||e+" ms"}function l(e,t,r){if(et)f=t;a=n;while(f--){if(s===t)s=0;r[s]=r[s===0?t-1:s-1];s++}if(e)r[s-1]+=e;var u=r[s-1];var c=r.length=this._chunkSize){if(this._paused){this._needDrain=true;return false}this._emitChunk()}return true};f.prototype.pause=function(){this._paused=true};f.prototype.resume=function(){this._paused=false;return this._emitChunk()};f.prototype.end=function(e){if(typeof e==="function")cb=e,e=null;if(e)this.write(e);this._ended=true;this.flush()};f.prototype.flush=function(){this._emitChunk(true)};f.prototype._emitChunk=function(e){if(e&&this._zeroes){var t=this._bufferLength%this._chunkSize;if(t!==0)t=this._chunkSize-t;if(t>0){this._buffer.push(this._zeroes.slice(0,t));this._bufferLength+=t}}if(this._emitting||this._paused)return;this._emitting=true;var r=0;while(this._bufferLength>=this._chunkSize&&(e||!this._paused)){var i,o=0,a=this._chunkSize;while(a>0&&(e||!this._paused)){var f=this._buffer[r],u=f.length-this._offset;if(i||ua){this._offset+=a;a=0}else{a-=u;o+=u;r++;this._offset=0}}this._bufferLength-=this._chunkSize;s(i.length===this._chunkSize);this.emit("data",i);i=null}this._buffer=this._buffer.slice(r);if(this._paused){this._needsDrain=true;this._emitting=false;return}var c=this._buffer.length;if(e&&!this._zeroes&&c){if(c===1){if(this._offset){this.emit("data",this._buffer[0].slice(this._offset))}else{this.emit("data",this._buffer[0])}}else{var a=this._bufferLength,i=new n(a),o=0;for(var l=0;l=0){var s=n.indexOf("\n",o+1);n=n.substring(s+1)}this.stack=n}}};n.inherits(s.AssertionError,Error);function a(e,t){if(n.isUndefined(t)){return""+t}if(n.isNumber(t)&&!isFinite(t)){return t.toString()}if(n.isFunction(t)||n.isRegExp(t)){return t.toString()}return t}function f(e,t){if(n.isString(e)){return e.length=0;u--){if(s[u]!=a[u])return false}for(u=s.length-1;u>=0;u--){f=s[u];if(!h(e[f],t[f]))return false}return true}s.notDeepEqual=function k(e,t,r){if(h(e,t)){c(e,t,r,"notDeepEqual",s.notDeepEqual)}};s.strictEqual=function E(e,t,r){if(e!==t){c(e,t,r,"===",s.strictEqual)}};s.notStrictEqual=function x(e,t,r){if(e===t){c(e,t,r,"!==",s.notStrictEqual)}};function g(e,t){if(!e||!t){return false}if(Object.prototype.toString.call(t)=="[object RegExp]"){return t.test(e)}else if(e instanceof t){return true}else if(t.call({},e)===true){return true}return false}function v(e,t,r,i){var o;if(n.isString(r)){i=r;r=null}try{t()}catch(s){o=s}i=(r&&r.name?" ("+r.name+").":".")+(i?" "+i:".");if(e&&!o){c(o,r,"Missing expected exception"+i)}if(!e&&g(o,r)){c(o,r,"Got unwanted exception"+i)}if(e&&o&&r&&!g(o,r)||!e&&o){throw o}}s.throws=function(e,t,r){v.apply(this,[true].concat(i.call(arguments)))};s.doesNotThrow=function(e,t){v.apply(this,[false].concat(i.call(arguments)))};s.ifError=function(e){if(e){throw e}};var m=Object.keys||function(e){var t=[];for(var r in e){if(o.call(e,r))t.push(r)}return t}},{"util/":62}],34:[function(e,t,r){arguments[4][32][0].apply(r,arguments)},{dup:32}],35:[function(e,t,r){var n=e("base64-js");var i=e("ieee754");var o=e("is-array");r.Buffer=f;r.SlowBuffer=_;r.INSPECT_MAX_BYTES=50;f.poolSize=8192;var s=1073741823;var a={};f.TYPED_ARRAY_SUPPORT=function(){try{var e=new ArrayBuffer(0);var t=new Uint8Array(e);t.foo=function(){return 42};return t.foo()===42&&typeof t.subarray==="function"&&new Uint8Array(1).subarray(1,1).byteLength===0}catch(r){return false}}();function f(e){if(!(this instanceof f)){if(arguments.length>1)return new f(e,arguments[1]);return new f(e)}this.length=0;this.parent=undefined;if(typeof e==="number"){return u(this,e)}if(typeof e==="string"){return c(this,e,arguments.length>1?arguments[1]:"utf8")}return l(this,e)}function u(e,t){e=m(e,t<0?0:y(t)|0);if(!f.TYPED_ARRAY_SUPPORT){for(var r=0;r>>1;if(r)e.parent=a;return e}function y(e){if(e>=s){throw new RangeError("Attempt to allocate Buffer larger than maximum "+"size: 0x"+s.toString(16)+" bytes")}return e|0}function _(e,t){if(!(this instanceof _))return new _(e,t);var r=new f(e,t);delete r.parent;return r}f.isBuffer=function Z(e){return!!(e!=null&&e._isBuffer)};f.compare=function X(e,t){if(!f.isBuffer(e)||!f.isBuffer(t)){throw new TypeError("Arguments must be Buffers")}if(e===t)return 0;var r=e.length;var n=t.length;var i=0;var o=Math.min(r,n);while(i>>1;case"utf8":case"utf-8":return Y(e).length;case"base64":return $(e).length;default:return e.length}}f.byteLength=w;f.prototype.length=undefined;f.prototype.parent=undefined;f.prototype.toString=function te(e,t,r){var n=false;t=t|0;r=r===undefined||r===Infinity?this.length:r|0;if(!e)e="utf8";if(t<0)t=0;if(r>this.length)r=this.length;if(r<=t)return"";while(true){switch(e){case"hex":return B(this,t,r);case"utf8":case"utf-8":return C(this,t,r);case"ascii":return L(this,t,r);case"binary":return T(this,t,r);case"base64":return I(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase();n=true}}};f.prototype.equals=function re(e){if(!f.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(this===e)return true;return f.compare(this,e)===0};f.prototype.inspect=function ne(){var e="";var t=r.INSPECT_MAX_BYTES;if(this.length>0){e=this.toString("hex",0,t).match(/.{2}/g).join(" ");if(this.length>t)e+=" ... "}return""};f.prototype.compare=function ie(e){if(!f.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(this===e)return 0;return f.compare(this,e)};f.prototype.indexOf=function oe(e,t){if(t>2147483647)t=2147483647;else if(t<-2147483648)t=-2147483648;t>>=0;if(this.length===0)return-1;if(t>=this.length)return-1;if(t<0)t=Math.max(this.length+t,0);if(typeof e==="string"){if(e.length===0)return-1;return String.prototype.indexOf.call(this,e,t)}if(f.isBuffer(e)){return r(this,e,t)}if(typeof e==="number"){if(f.TYPED_ARRAY_SUPPORT&&Uint8Array.prototype.indexOf==="function"){return Uint8Array.prototype.indexOf.call(this,e,t)}return r(this,[e],t)}function r(e,t,r){var n=-1;for(var i=0;r+ii){n=i}}var o=t.length;if(o%2!==0)throw new Error("Invalid hex string");if(n>o/2){n=o/2}for(var s=0;so)r=o;if(e.length>0&&(r<0||t<0)||t>this.length){throw new RangeError("attempt to write outside buffer bounds")}if(!n)n="utf8";var s=false;for(;;){switch(n){case"hex":return b(this,e,t,r);case"utf8":case"utf-8":return k(this,e,t,r);case"ascii":return E(this,e,t,r);case"binary":return x(this,e,t,r);case"base64":return S(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,e,t,r);default:if(s)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase();s=true}}};f.prototype.toJSON=function ue(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function I(e,t,r){if(t===0&&r===e.length){return n.fromByteArray(e)}else{return n.fromByteArray(e.slice(t,r))}}function C(e,t,r){var n="";var i="";r=Math.min(e.length,r);for(var o=t;on)r=n;var i="";for(var o=t;or){e=r}if(t<0){t+=r;if(t<0)t=0}else if(t>r){t=r}if(tr)throw new RangeError("Trying to access beyond buffer length")}f.prototype.readUIntLE=function le(e,t,r){e=e|0;t=t|0;if(!r)P(e,t,this.length);var n=this[e];var i=1;var o=0;while(++o0&&(i*=256)){n+=this[e+--t]*i}return n};f.prototype.readUInt8=function de(e,t){if(!t)P(e,1,this.length);return this[e]};f.prototype.readUInt16LE=function pe(e,t){if(!t)P(e,2,this.length);return this[e]|this[e+1]<<8};f.prototype.readUInt16BE=function ge(e,t){if(!t)P(e,2,this.length);return this[e]<<8|this[e+1]};f.prototype.readUInt32LE=function ve(e,t){if(!t)P(e,4,this.length);return(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};f.prototype.readUInt32BE=function me(e,t){if(!t)P(e,4,this.length);return this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};f.prototype.readIntLE=function ye(e,t,r){e=e|0;t=t|0;if(!r)P(e,t,this.length);var n=this[e];var i=1;var o=0;while(++o=i)n-=Math.pow(2,8*t);return n};f.prototype.readIntBE=function _e(e,t,r){e=e|0;t=t|0;if(!r)P(e,t,this.length);var n=t;var i=1;var o=this[e+--n];while(n>0&&(i*=256)){o+=this[e+--n]*i}i*=128;if(o>=i)o-=Math.pow(2,8*t);return o};f.prototype.readInt8=function we(e,t){if(!t)P(e,1,this.length);if(!(this[e]&128))return this[e];return(255-this[e]+1)*-1};f.prototype.readInt16LE=function be(e,t){if(!t)P(e,2,this.length);var r=this[e]|this[e+1]<<8;return r&32768?r|4294901760:r};f.prototype.readInt16BE=function ke(e,t){if(!t)P(e,2,this.length);var r=this[e+1]|this[e]<<8;return r&32768?r|4294901760:r};f.prototype.readInt32LE=function Ee(e,t){if(!t)P(e,4,this.length);return this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};f.prototype.readInt32BE=function xe(e,t){if(!t)P(e,4,this.length);return this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};f.prototype.readFloatLE=function Se(e,t){if(!t)P(e,4,this.length);return i.read(this,e,true,23,4)};f.prototype.readFloatBE=function Ae(e,t){if(!t)P(e,4,this.length);return i.read(this,e,false,23,4)};f.prototype.readDoubleLE=function Ie(e,t){if(!t)P(e,8,this.length);return i.read(this,e,true,52,8)};f.prototype.readDoubleBE=function Ce(e,t){if(!t)P(e,8,this.length);return i.read(this,e,false,52,8)};function j(e,t,r,n,i,o){if(!f.isBuffer(e))throw new TypeError("buffer must be a Buffer instance");if(t>i||te.length)throw new RangeError("index out of range")}f.prototype.writeUIntLE=function Le(e,t,r,n){e=+e;t=t|0;r=r|0;if(!n)j(this,e,t,r,Math.pow(2,8*r),0);var i=1;var o=0;this[t]=e&255;while(++o=0&&(o*=256)){this[t+i]=e/o&255}return t+r};f.prototype.writeUInt8=function Be(e,t,r){e=+e;t=t|0;if(!r)j(this,e,t,1,255,0);if(!f.TYPED_ARRAY_SUPPORT)e=Math.floor(e);this[t]=e;return t+1};function O(e,t,r,n){if(t<0)t=65535+t+1;for(var i=0,o=Math.min(e.length-r,2);i>>(n?i:1-i)*8}}f.prototype.writeUInt16LE=function Re(e,t,r){e=+e;t=t|0;if(!r)j(this,e,t,2,65535,0);if(f.TYPED_ARRAY_SUPPORT){this[t]=e;this[t+1]=e>>>8}else{O(this,e,t,true)}return t+2};f.prototype.writeUInt16BE=function Pe(e,t,r){e=+e;t=t|0;if(!r)j(this,e,t,2,65535,0);if(f.TYPED_ARRAY_SUPPORT){this[t]=e>>>8;this[t+1]=e}else{O(this,e,t,false)}return t+2};function M(e,t,r,n){if(t<0)t=4294967295+t+1;for(var i=0,o=Math.min(e.length-r,4);i>>(n?i:3-i)*8&255}}f.prototype.writeUInt32LE=function je(e,t,r){e=+e;t=t|0;if(!r)j(this,e,t,4,4294967295,0);if(f.TYPED_ARRAY_SUPPORT){this[t+3]=e>>>24;this[t+2]=e>>>16;this[t+1]=e>>>8;this[t]=e}else{M(this,e,t,true)}return t+4};f.prototype.writeUInt32BE=function Oe(e,t,r){e=+e;t=t|0;if(!r)j(this,e,t,4,4294967295,0);if(f.TYPED_ARRAY_SUPPORT){this[t]=e>>>24;this[t+1]=e>>>16;this[t+2]=e>>>8;this[t+3]=e}else{M(this,e,t,false)}return t+4};f.prototype.writeIntLE=function Me(e,t,r,n){e=+e;t=t|0;if(!n){var i=Math.pow(2,8*r-1);j(this,e,t,r,i-1,-i)}var o=0;var s=1;var a=e<0?1:0;this[t]=e&255;while(++o>0)-a&255}return t+r};f.prototype.writeIntBE=function Ue(e,t,r,n){e=+e;t=t|0;if(!n){var i=Math.pow(2,8*r-1);j(this,e,t,r,i-1,-i)}var o=r-1;var s=1;var a=e<0?1:0;this[t+o]=e&255;while(--o>=0&&(s*=256)){this[t+o]=(e/s>>0)-a&255}return t+r};f.prototype.writeInt8=function De(e,t,r){e=+e;t=t|0;if(!r)j(this,e,t,1,127,-128);if(!f.TYPED_ARRAY_SUPPORT)e=Math.floor(e);if(e<0)e=255+e+1;this[t]=e;return t+1};f.prototype.writeInt16LE=function He(e,t,r){e=+e;t=t|0;if(!r)j(this,e,t,2,32767,-32768);if(f.TYPED_ARRAY_SUPPORT){this[t]=e;this[t+1]=e>>>8}else{O(this,e,t,true)}return t+2};f.prototype.writeInt16BE=function Ne(e,t,r){e=+e;t=t|0;if(!r)j(this,e,t,2,32767,-32768);if(f.TYPED_ARRAY_SUPPORT){this[t]=e>>>8;this[t+1]=e}else{O(this,e,t,false)}return t+2};f.prototype.writeInt32LE=function ze(e,t,r){e=+e;t=t|0;if(!r)j(this,e,t,4,2147483647,-2147483648);if(f.TYPED_ARRAY_SUPPORT){this[t]=e;this[t+1]=e>>>8;this[t+2]=e>>>16;this[t+3]=e>>>24}else{M(this,e,t,true)}return t+4};f.prototype.writeInt32BE=function qe(e,t,r){e=+e;t=t|0;if(!r)j(this,e,t,4,2147483647,-2147483648);if(e<0)e=4294967295+e+1;if(f.TYPED_ARRAY_SUPPORT){this[t]=e>>>24;this[t+1]=e>>>16;this[t+2]=e>>>8;this[t+3]=e}else{M(this,e,t,false)}return t+4};function U(e,t,r,n,i,o){if(t>i||te.length)throw new RangeError("index out of range");if(r<0)throw new RangeError("index out of range")}function D(e,t,r,n,o){if(!o){U(e,t,r,4,3.4028234663852886e38,-3.4028234663852886e38)}i.write(e,t,r,n,23,4);return r+4}f.prototype.writeFloatLE=function We(e,t,r){return D(this,e,t,true,r)};f.prototype.writeFloatBE=function Fe(e,t,r){return D(this,e,t,false,r)};function H(e,t,r,n,o){if(!o){U(e,t,r,8,1.7976931348623157e308,-1.7976931348623157e308)}i.write(e,t,r,n,52,8);return r+8}f.prototype.writeDoubleLE=function Ye(e,t,r){return H(this,e,t,true,r)};f.prototype.writeDoubleBE=function Je(e,t,r){return H(this,e,t,false,r)};f.prototype.copy=function Ve(e,t,r,n){if(!r)r=0;if(!n&&n!==0)n=this.length;if(t>=e.length)t=e.length;if(!t)t=0;if(n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");if(n>this.length)n=this.length;if(e.length-t=this.length)throw new RangeError("start out of bounds");if(r<0||r>this.length)throw new RangeError("end out of bounds");var n;if(typeof e==="number"){for(n=t;n55295&&r<57344){if(i){if(r<56320){if((t-=3)>-1)o.push(239,191,189);i=r;continue}else{r=i-55296<<10|r-56320|65536;i=null}}else{if(r>56319){if((t-=3)>-1)o.push(239,191,189);continue}else if(s+1===n){if((t-=3)>-1)o.push(239,191,189);continue}else{i=r;continue}}}else if(i){if((t-=3)>-1)o.push(239,191,189);i=null}if(r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,r&63|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,r&63|128)}else if(r<2097152){if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128)}else{throw new Error("Invalid code point")}}return o}function J(e){var t=[];for(var r=0;r>8;i=r%256;o.push(i);o.push(n)}return o}function $(e){return n.toByteArray(q(e))}function G(e,t,r,n){for(var i=0;i=t.length||i>=e.length)break;t[i+r]=e[i]}return i}function K(e){try{return decodeURIComponent(e)}catch(t){return String.fromCharCode(65533)}}},{"base64-js":36,ieee754:37,"is-array":38}],36:[function(e,t,r){var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";(function(e){"use strict";var t=typeof Uint8Array!=="undefined"?Uint8Array:Array;var r="+".charCodeAt(0);var i="/".charCodeAt(0);var o="0".charCodeAt(0);var s="a".charCodeAt(0);var a="A".charCodeAt(0);var f="-".charCodeAt(0);var u="_".charCodeAt(0);function c(e){var t=e.charCodeAt(0);if(t===r||t===f)return 62;if(t===i||t===u)return 63;if(t0){throw new Error("Invalid string. Length must be a multiple of 4")}var f=e.length;s="="===e.charAt(f-2)?2:"="===e.charAt(f-1)?1:0;a=new t(e.length*3/4-s);i=s>0?e.length-4:e.length;var u=0;function l(e){a[u++]=e}for(r=0,n=0;r>16);l((o&65280)>>8);l(o&255)}if(s===2){o=c(e.charAt(r))<<2|c(e.charAt(r+1))>>4;l(o&255)}else if(s===1){o=c(e.charAt(r))<<10|c(e.charAt(r+1))<<4|c(e.charAt(r+2))>>2;l(o>>8&255);l(o&255)}return a}function h(e){var t,r=e.length%3,i="",o,s;function a(e){return n.charAt(e)}function f(e){return a(e>>18&63)+a(e>>12&63)+a(e>>6&63)+a(e&63)}for(t=0,s=e.length-r;t>2);i+=a(o<<4&63);i+="==";break;case 2:o=(e[e.length-2]<<8)+e[e.length-1];i+=a(o>>10);i+=a(o>>4&63);i+=a(o<<2&63);i+="=";break}return i}e.toByteArray=l;e.fromByteArray=h})(typeof r==="undefined"?this.base64js={}:r)},{}],37:[function(e,t,r){r.read=function(e,t,r,n,i){var o,s,a=i*8-n-1,f=(1<>1,c=-7,l=r?i-1:0,h=r?-1:1,d=e[t+l];l+=h;o=d&(1<<-c)-1;d>>=-c;c+=a;for(;c>0;o=o*256+e[t+l],l+=h,c-=8){}s=o&(1<<-c)-1;o>>=-c;c+=n;for(;c>0;s=s*256+e[t+l],l+=h,c-=8){}if(o===0){o=1-u}else if(o===f){return s?NaN:(d?-1:1)*Infinity}else{s=s+Math.pow(2,n);o=o-u}return(d?-1:1)*s*Math.pow(2,o-n)};r.write=function(e,t,r,n,i,o){var s,a,f,u=o*8-i-1,c=(1<>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:o-1,p=n?1:-1,g=t<0||t===0&&1/t<0?1:0;t=Math.abs(t);if(isNaN(t)||t===Infinity){a=isNaN(t)?1:0;s=c}else{s=Math.floor(Math.log(t)/Math.LN2);if(t*(f=Math.pow(2,-s))<1){s--;f*=2}if(s+l>=1){t+=h/f}else{t+=h*Math.pow(2,1-l)}if(t*f>=2){s++;f/=2}if(s+l>=c){a=0;s=c}else if(s+l>=1){a=(t*f-1)*Math.pow(2,i);s=s+l}else{a=t*Math.pow(2,l-1)*Math.pow(2,i);s=0}}for(;i>=8;e[r+d]=a&255,d+=p,a/=256,i-=8){}s=s<0;e[r+d]=s&255,d+=p,s/=256,u-=8){}e[r+d-p]|=g*128}},{}],38:[function(e,t,r){var n=Array.isArray;var i=Object.prototype.toString;t.exports=n||function(e){return!!e&&"[object Array]"==i.call(e)}},{}],39:[function(e,t,r){function n(){this._events=this._events||{};this._maxListeners=this._maxListeners||undefined}t.exports=n;n.EventEmitter=n;n.prototype._events=undefined;n.prototype._maxListeners=undefined;n.defaultMaxListeners=10;n.prototype.setMaxListeners=function(e){if(!o(e)||e<0||isNaN(e))throw TypeError("n must be a positive number");this._maxListeners=e;return this};n.prototype.emit=function(e){var t,r,n,o,f,u;if(!this._events)this._events={};if(e==="error"){if(!this._events.error||s(this._events.error)&&!this._events.error.length){t=arguments[1];if(t instanceof Error){throw t}throw TypeError('Uncaught, unspecified "error" event.')}}r=this._events[e];if(a(r))return false;if(i(r)){switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:n=arguments.length;o=new Array(n-1);for(f=1;f0&&this._events[e].length>r){this._events[e].warned=true;console.error("(node) warning: possible EventEmitter memory "+"leak detected. %d listeners added. "+"Use emitter.setMaxListeners() to increase limit.",this._events[e].length);if(typeof console.trace==="function"){console.trace()}}}return this};n.prototype.on=n.prototype.addListener;n.prototype.once=function(e,t){if(!i(t))throw TypeError("listener must be a function");var r=false;function n(){this.removeListener(e,n);if(!r){r=true;t.apply(this,arguments)}}n.listener=t;this.on(e,n);return this};n.prototype.removeListener=function(e,t){var r,n,o,a;if(!i(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;r=this._events[e];o=r.length;n=-1;if(r===t||i(r.listener)&&r.listener===t){delete this._events[e];if(this._events.removeListener)this.emit("removeListener",e,t)}else if(s(r)){for(a=o;a-->0;){if(r[a]===t||r[a].listener&&r[a].listener===t){n=a;break}}if(n<0)return this;if(r.length===1){r.length=0;delete this._events[e]}else{r.splice(n,1)}if(this._events.removeListener)this.emit("removeListener",e,t)}return this};n.prototype.removeAllListeners=function(e){var t,r;if(!this._events)return this;if(!this._events.removeListener){if(arguments.length===0)this._events={};else if(this._events[e])delete this._events[e];return this}if(arguments.length===0){for(t in this._events){if(t==="removeListener")continue;this.removeAllListeners(t)}this.removeAllListeners("removeListener");this._events={};return this}r=this._events[e];if(i(r)){this.removeListener(e,r)}else{while(r.length)this.removeListener(e,r[r.length-1])}delete this._events[e];return this};n.prototype.listeners=function(e){var t;if(!this._events||!this._events[e])t=[];else if(i(this._events[e]))t=[this._events[e]];else t=this._events[e].slice();return t};n.listenerCount=function(e,t){var r;if(!e._events||!e._events[t])r=0;else if(i(e._events[t]))r=1;else r=e._events[t].length;return r};function i(e){return typeof e==="function"}function o(e){return typeof e==="number"}function s(e){return typeof e==="object"&&e!==null}function a(e){return e===void 0}},{}],40:[function(e,t,r){t.exports=Array.isArray||function(e){return Object.prototype.toString.call(e)=="[object Array]"}},{}],41:[function(e,t,r){(function(e){function t(e,t){var r=0;for(var n=e.length-1;n>=0;n--){var i=e[n];if(i==="."){e.splice(n,1)}else if(i===".."){e.splice(n,1);r++}else if(r){e.splice(n,1);r--}}if(t){for(;r--;r){e.unshift("..")}}return e}var n=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;var i=function(e){return n.exec(e).slice(1)};r.resolve=function(){var r="",n=false;for(var i=arguments.length-1;i>=-1&&!n;i--){var s=i>=0?arguments[i]:e.cwd();if(typeof s!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!s){continue}r=s+"/"+r;n=s.charAt(0)==="/"}r=t(o(r.split("/"),function(e){return!!e}),!n).join("/");return(n?"/":"")+r||"."};r.normalize=function(e){var n=r.isAbsolute(e),i=s(e,-1)==="/";e=t(o(e.split("/"),function(e){return!!e}),!n).join("/");if(!e&&!n){e="."}if(e&&i){e+="/"}return(n?"/":"")+e};r.isAbsolute=function(e){return e.charAt(0)==="/"};r.join=function(){var e=Array.prototype.slice.call(arguments,0);return r.normalize(o(e,function(e,t){if(typeof e!=="string"){throw new TypeError("Arguments to path.join must be strings")}return e}).join("/"))};r.relative=function(e,t){e=r.resolve(e).substr(1);t=r.resolve(t).substr(1);function n(e){var t=0;for(;t=0;r--){if(e[r]!=="")break}if(t>r)return[];return e.slice(t,r-t+1)}var i=n(e.split("/"));var o=n(t.split("/"));var s=Math.min(i.length,o.length);var a=s;for(var f=0;f1){for(var r=1;r= 0x80 (not a basic code point)","invalid-input":"Invalid input"},k=c-l,E=Math.floor,x=String.fromCharCode,S;function A(e){throw RangeError(b[e])}function I(e,t){var r=e.length;var n=[];while(r--){n[r]=t(e[r])}return n}function C(e,t){var r=e.split("@");var n="";if(r.length>1){n=r[0]+"@";e=r[1]}e=e.replace(w,".");var i=e.split(".");var o=I(i,t).join(".");return n+o}function L(e){var t=[],r=0,n=e.length,i,o;while(r=55296&&i<=56319&&r65535){e-=65536;t+=x(e>>>10&1023|55296);e=56320|e&1023}t+=x(e);return t}).join("")}function B(e){if(e-48<10){return e-22}if(e-65<26){return e-65}if(e-97<26){return e-97}return c}function R(e,t){return e+22+75*(e<26)-((t!=0)<<5)}function P(e,t,r){var n=0;e=r?E(e/p):e>>1;e+=E(e/t);for(;e>k*h>>1;n+=c){e=E(e/k)}return E(n+(k+1)*e/(e+d))}function j(e){var t=[],r=e.length,n,i=0,o=v,s=g,a,f,d,p,y,_,w,b,k;a=e.lastIndexOf(m);if(a<0){a=0}for(f=0;f=128){A("not-basic")}t.push(e.charCodeAt(f))}for(d=a>0?a+1:0;d=r){A("invalid-input")}w=B(e.charCodeAt(d++));if(w>=c||w>E((u-i)/y)){A("overflow")}i+=w*y;b=_<=s?l:_>=s+h?h:_-s;if(wE(u/k)){A("overflow")}y*=k}n=t.length+1;s=P(i-p,n,p==0);if(E(i/n)>u-o){A("overflow")}o+=E(i/n);i%=n;t.splice(i++,0,o)}return T(t)}function O(e){var t,r,n,i,o,s,a,f,d,p,y,_=[],w,b,k,S;e=L(e);w=e.length;t=v;r=0;o=g;for(s=0;s=t&&yE((u-r)/b)){A("overflow")}r+=(a-t)*b;t=a;for(s=0;su){A("overflow")}if(y==t){for(f=r,d=c;;d+=c){p=d<=o?l:d>=o+h?h:d-o;if(f0&&u>f){u=f}for(var c=0;c=0){d=l.substr(0,h);p=l.substr(h+1)}else{d=l;p=""}g=decodeURIComponent(d);v=decodeURIComponent(p);if(!n(s,g)){s[g]=v}else if(i(s[g])){s[g].push(v)}else{s[g]=[s[g],v]}}return s};var i=Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"}},{}],45:[function(e,t,r){"use strict";var n=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};t.exports=function(e,t,r,a){t=t||"&";r=r||"=";if(e===null){e=undefined}if(typeof e==="object"){return o(s(e),function(s){var a=encodeURIComponent(n(s))+r;if(i(e[s])){return o(e[s],function(e){return a+encodeURIComponent(n(e))}).join(t)}else{return a+encodeURIComponent(n(e[s]))}}).join(t)}if(!a)return"";return encodeURIComponent(n(a))+r+encodeURIComponent(n(e))};var i=Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"};function o(e,t){if(e.map)return e.map(t);var r=[];for(var n=0;n0){if(t.ended&&!i){var s=new Error("stream.push() after EOF");e.emit("error",s)}else if(t.endEmitted&&i){var s=new Error("stream.unshift() after end event");e.emit("error",s)}else{if(t.decoder&&!i&&!n)r=t.decoder.write(r);if(!i)t.reading=false;if(t.flowing&&t.length===0&&!t.sync){e.emit("data",r);e.read(0)}else{t.length+=t.objectMode?1:r.length;if(i)t.buffer.unshift(r);else t.buffer.push(r);if(t.needReadable)_(e)}b(e,t)}}else if(!i){t.reading=false}return d(t)}function d(e){return!e.ended&&(e.needReadable||e.length=p){e=p}else{e--;for(var t=1;t<32;t<<=1)e|=e>>t;e++}return e}function v(e,t){if(t.length===0&&t.ended)return 0;if(t.objectMode)return e===0?0:1;if(isNaN(e)||a.isNull(e)){if(t.flowing&&t.buffer.length)return t.buffer[0].length;else return t.length}if(e<=0)return 0;if(e>t.highWaterMark)t.highWaterMark=g(e);if(e>t.length){if(!t.ended){t.needReadable=true;return 0}else return t.length}return e}l.prototype.read=function(e){u("read",e);var t=this._readableState;var r=e;if(!a.isNumber(e)||e>0)t.emittedReadable=false;if(e===0&&t.needReadable&&(t.length>=t.highWaterMark||t.ended)){u("read: emitReadable",t.length,t.ended);if(t.length===0&&t.ended)C(this);else _(this);return null}e=v(e,t);if(e===0&&t.ended){if(t.length===0)C(this);return null}var n=t.needReadable;u("need readable",n);if(t.length===0||t.length-e0)i=I(e,t);else i=null;if(a.isNull(i)){t.needReadable=true;e=0}t.length-=e;if(t.length===0&&!t.ended)t.needReadable=true;if(r!==e&&t.ended&&t.length===0)C(this);if(!a.isNull(i))this.emit("data",i);return i};function m(e,t){var r=null;if(!a.isBuffer(t)&&!a.isString(t)&&!a.isNullOrUndefined(t)&&!e.objectMode){r=new TypeError("Invalid non-string/buffer chunk")}return r}function y(e,t){if(t.decoder&&!t.ended){var r=t.decoder.end();if(r&&r.length){t.buffer.push(r);t.length+=t.objectMode?1:r.length}}t.ended=true;_(e)}function _(e){var t=e._readableState;t.needReadable=false;if(!t.emittedReadable){u("emitReadable",t.flowing);t.emittedReadable=true;if(t.sync)r.nextTick(function(){w(e)});else w(e)}}function w(e){u("emit readable");e.emit("readable");A(e)}function b(e,t){if(!t.readingMore){t.readingMore=true;r.nextTick(function(){k(e,t)})}}function k(e,t){var r=t.length;while(!t.reading&&!t.flowing&&!t.ended&&t.length=n){if(o)a=r.join("");else a=i.concat(r,n);r.length=0}else{if(e0)throw new Error("endReadable called on non-empty stream");if(!t.endEmitted){t.ended=true;r.nextTick(function(){if(!t.endEmitted&&t.length===0){t.endEmitted=true;e.readable=false;e.emit("end")}})}}function L(e,t){for(var r=0,n=e.length;r1){var r=[];for(var n=0;n=this.charLength-this.charReceived?this.charLength-this.charReceived:e.length;e.copy(this.charBuffer,this.charReceived,0,r);this.charReceived+=r;if(this.charReceived=55296&&n<=56319){this.charLength+=this.surrogateSize;t="";continue}this.charReceived=this.charLength=0;if(e.length===0){return t}break}this.detectIncompleteChar(e);var i=e.length;if(this.charLength){e.copy(this.charBuffer,0,e.length-this.charReceived,i);i-=this.charReceived}t+=e.toString(this.encoding,0,i);var i=t.length-1;var n=t.charCodeAt(i);if(n>=55296&&n<=56319){var o=this.surrogateSize;this.charLength+=o;this.charReceived+=o;this.charBuffer.copy(this.charBuffer,o,0,o);e.copy(this.charBuffer,0,0,o);return t.substring(0,i)}return t};s.prototype.detectIncompleteChar=function(e){var t=e.length>=3?3:e.length;for(;t>0;t--){var r=e[e.length-t];if(t==1&&r>>5==6){this.charLength=2;break}if(t<=2&&r>>4==14){this.charLength=3;break}if(t<=3&&r>>3==30){this.charLength=4;break}}this.charReceived=t};s.prototype.end=function(e){var t="";if(e&&e.length)t=this.write(e);if(this.charReceived){var r=this.charReceived;var n=this.charBuffer;var i=this.encoding;t+=n.slice(0,r).toString(i)}return t};function a(e){return e.toString(this.encoding)}function f(e){this.charReceived=e.length%2;this.charLength=this.charReceived?2:0}function u(e){this.charReceived=e.length%3;this.charLength=this.charReceived?3:0}},{buffer:35}],60:[function(e,t,r){var n=e("punycode");r.parse=_;r.resolve=b;r.resolveObject=k;r.format=w;r.Url=i;function i(){this.protocol=null;this.slashes=null;this.auth=null;this.host=null;this.port=null;this.hostname=null;this.hash=null;this.search=null;this.query=null;this.pathname=null;this.path=null;this.href=null}var o=/^([a-z0-9.+-]+:)/i,s=/:[0-9]*$/,a=["<",">",'"',"`"," ","\r","\n"," "],f=["{","}","|","\\","^","`"].concat(a),u=["'"].concat(f),c=["%","/","?",";","#"].concat(u),l=["/","?","#"],h=255,d=/^[a-z0-9A-Z_-]{0,63}$/,p=/^([a-z0-9A-Z_-]{0,63})(.*)$/,g={javascript:true,"javascript:":true},v={javascript:true,"javascript:":true},m={http:true,https:true,ftp:true,gopher:true,file:true,"http:":true,"https:":true,"ftp:":true,"gopher:":true,"file:":true},y=e("querystring");function _(e,t,r){if(e&&x(e)&&e instanceof i)return e;var n=new i;n.parse(e,t,r);return n}i.prototype.parse=function(e,t,r){if(!E(e)){throw new TypeError("Parameter 'url' must be a string, not "+typeof e)}var i=e;i=i.trim();var s=o.exec(i);if(s){s=s[0];var a=s.toLowerCase();this.protocol=a;i=i.substr(s.length)}if(r||s||i.match(/^\/\/[^@\/]+@[^@\/]+/)){var f=i.substr(0,2)==="//";if(f&&!(s&&v[s])){i=i.substr(2);this.slashes=true}}if(!v[s]&&(f||s&&!m[s])){var _=-1;for(var w=0;w127){L+="x"}else{L+=C[T]}}if(!L.match(d)){var R=A.slice(0,w);var P=A.slice(w+1);var j=C.match(p);if(j){R.push(j[1]);P.unshift(j[2])}if(P.length){i="/"+P.join(".")+i}this.hostname=R.join(".");break}}}}if(this.hostname.length>h){this.hostname=""}else{this.hostname=this.hostname.toLowerCase()}if(!S){var O=this.hostname.split(".");var M=[];for(var w=0;w0?r.host.split("@"):false;if(d){r.auth=d.shift();r.host=r.hostname=d.shift()}}r.search=e.search;r.query=e.query;if(!S(r.pathname)||!S(r.search)){r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")}r.href=r.format();return r}if(!l.length){r.pathname=null;if(r.search){r.path="/"+r.search}else{r.path=null}r.href=r.format();return r}var p=l.slice(-1)[0];var g=(r.host||e.host)&&(p==="."||p==="..")||p==="";var y=0;for(var _=l.length;_>=0;_--){p=l[_];if(p=="."){l.splice(_,1)}else if(p===".."){l.splice(_,1);y++}else if(y){l.splice(_,1);y--}}if(!u&&!c){for(;y--;y){l.unshift("..")}}if(u&&l[0]!==""&&(!l[0]||l[0].charAt(0)!=="/")){l.unshift("")}if(g&&l.join("/").substr(-1)!=="/"){l.push("")}var w=l[0]===""||l[0]&&l[0].charAt(0)==="/";if(h){r.hostname=r.host=w?"":l.length?l.shift():"";var d=r.host&&r.host.indexOf("@")>0?r.host.split("@"):false;if(d){r.auth=d.shift();r.host=r.hostname=d.shift()}}u=u||r.host&&l.length;if(u&&!w){l.unshift("")}if(!l.length){r.pathname=null;r.path=null}else{r.pathname=l.join("/")}if(!S(r.pathname)||!S(r.search)){r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")}r.auth=e.auth||r.auth;r.slashes=r.slashes||e.slashes;r.href=r.format();return r};i.prototype.parseHost=function(){var e=this.host;var t=s.exec(e);if(t){t=t[0];if(t!==":"){this.port=t.substr(1)}e=e.substr(0,e.length-t.length)}if(e)this.hostname=e};function E(e){return typeof e==="string"}function x(e){return typeof e==="object"&&e!==null}function S(e){return e===null}function A(e){return e==null}},{punycode:43,querystring:46}],61:[function(e,t,r){t.exports=function n(e){return e&&typeof e==="object"&&typeof e.copy==="function"&&typeof e.fill==="function"&&typeof e.readUInt8==="function"}},{}],62:[function(e,t,r){(function(t,n){var i=/%[sdj%]/g;r.format=function(e){if(!k(e)){var t=[];for(var r=0;r=o)return e;switch(e){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(t){return"[Circular]"}default:return e}});for(var f=n[r];r=3)n.depth=arguments[2];if(arguments.length>=4)n.colors=arguments[3];if(y(t)){n.showHidden=t}else if(t){r._extend(n,t)}if(x(n.showHidden))n.showHidden=false;if(x(n.depth))n.depth=2;if(x(n.colors))n.colors=false;if(x(n.customInspect))n.customInspect=true;if(n.colors)n.stylize=f;return l(n,e,n.depth)}r.inspect=a;a.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]};a.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"};function f(e,t){var r=a.styles[t];if(r){return"["+a.colors[r][0]+"m"+e+"["+a.colors[r][1]+"m"}else{return e}}function u(e,t){return e}function c(e){var t={};e.forEach(function(e,r){t[e]=true});return t}function l(e,t,n){if(e.customInspect&&t&&L(t.inspect)&&t.inspect!==r.inspect&&!(t.constructor&&t.constructor.prototype===t)){ var i=t.inspect(n,e);if(!k(i)){i=l(e,i,n)}return i}var o=h(e,t);if(o){return o}var s=Object.keys(t);var a=c(s);if(e.showHidden){s=Object.getOwnPropertyNames(t)}if(C(t)&&(s.indexOf("message")>=0||s.indexOf("description")>=0)){return d(t)}if(s.length===0){if(L(t)){var f=t.name?": "+t.name:"";return e.stylize("[Function"+f+"]","special")}if(S(t)){return e.stylize(RegExp.prototype.toString.call(t),"regexp")}if(I(t)){return e.stylize(Date.prototype.toString.call(t),"date")}if(C(t)){return d(t)}}var u="",y=false,_=["{","}"];if(m(t)){y=true;_=["[","]"]}if(L(t)){var w=t.name?": "+t.name:"";u=" [Function"+w+"]"}if(S(t)){u=" "+RegExp.prototype.toString.call(t)}if(I(t)){u=" "+Date.prototype.toUTCString.call(t)}if(C(t)){u=" "+d(t)}if(s.length===0&&(!y||t.length==0)){return _[0]+u+_[1]}if(n<0){if(S(t)){return e.stylize(RegExp.prototype.toString.call(t),"regexp")}else{return e.stylize("[Object]","special")}}e.seen.push(t);var b;if(y){b=p(e,t,n,a,s)}else{b=s.map(function(r){return g(e,t,n,a,r,y)})}e.seen.pop();return v(b,u,_)}function h(e,t){if(x(t))return e.stylize("undefined","undefined");if(k(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}if(b(t))return e.stylize(""+t,"number");if(y(t))return e.stylize(""+t,"boolean");if(_(t))return e.stylize("null","null")}function d(e){return"["+Error.prototype.toString.call(e)+"]"}function p(e,t,r,n,i){var o=[];for(var s=0,a=t.length;s-1){if(o){a=a.split("\n").map(function(e){return" "+e}).join("\n").substr(2)}else{a="\n"+a.split("\n").map(function(e){return" "+e}).join("\n")}}}else{a=e.stylize("[Circular]","special")}}if(x(s)){if(o&&i.match(/^\d+$/)){return a}s=JSON.stringify(""+i);if(s.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)){s=s.substr(1,s.length-2);s=e.stylize(s,"name")}else{s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'");s=e.stylize(s,"string")}}return s+": "+a}function v(e,t,r){var n=0;var i=e.reduce(function(e,t){n++;if(t.indexOf("\n")>=0)n++;return e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0);if(i>60){return r[0]+(t===""?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1]}return r[0]+t+" "+e.join(", ")+" "+r[1]}function m(e){return Array.isArray(e)}r.isArray=m;function y(e){return typeof e==="boolean"}r.isBoolean=y;function _(e){return e===null}r.isNull=_;function w(e){return e==null}r.isNullOrUndefined=w;function b(e){return typeof e==="number"}r.isNumber=b;function k(e){return typeof e==="string"}r.isString=k;function E(e){return typeof e==="symbol"}r.isSymbol=E;function x(e){return e===void 0}r.isUndefined=x;function S(e){return A(e)&&B(e)==="[object RegExp]"}r.isRegExp=S;function A(e){return typeof e==="object"&&e!==null}r.isObject=A;function I(e){return A(e)&&B(e)==="[object Date]"}r.isDate=I;function C(e){return A(e)&&(B(e)==="[object Error]"||e instanceof Error)}r.isError=C;function L(e){return typeof e==="function"}r.isFunction=L;function T(e){return e===null||typeof e==="boolean"||typeof e==="number"||typeof e==="string"||typeof e==="symbol"||typeof e==="undefined"}r.isPrimitive=T;r.isBuffer=e("./support/isBuffer");function B(e){return Object.prototype.toString.call(e)}function R(e){return e<10?"0"+e.toString(10):e.toString(10)}var P=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function j(){var e=new Date;var t=[R(e.getHours()),R(e.getMinutes()),R(e.getSeconds())].join(":");return[e.getDate(),P[e.getMonth()],t].join(" ")}r.log=function(){console.log("%s - %s",j(),r.format.apply(r,arguments))};r.inherits=e("inherits");r._extend=function(e,t){if(!t||!A(t))return e;var r=Object.keys(t);var n=r.length;while(n--){e[r[n]]=t[r[n]]}return e};function O(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}).call(this,e("_process"),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./support/isBuffer":61,_process:42,inherits:95}],63:[function(e,t,r){(function(r){t.exports=g;t.exports.announceList=[["udp://tracker.publicbt.com:80"],["udp://tracker.openbittorrent.com:80"],["udp://open.demonii.com:1337"],["udp://tracker.webtorrent.io:80"],["wss://tracker.webtorrent.io"]];t.exports.parseInput=v;var n=e("bencode");var i=e("block-stream");var o=e("piece-length");var s=e("path");var a=e("filestream/read");var f=e("flatten");var u=e("fs");var c=e("multistream");var l=e("once");var h=e("run-parallel");var d=e("simple-sha1");var p=e("stream");function g(e,t,r){if(typeof t==="function"){r=t;t={}}if(!t)t={};v(e,t,function(e,n){if(e)return r(e);k(n,t,r)})}function v(e,t,n){if(typeof t==="function"){n=t;t={}}if(!t)t={};if(Array.isArray(e)&&e.length===0)throw new Error("invalid input type");if(S(e))e=Array.prototype.slice.call(e);if(!Array.isArray(e))e=[e];if(!t.name)t.name=e[0]&&e[0].name;if(!t.name)t.name=typeof e[0]==="string"&&s.basename(e[0]);if(t.name===undefined){throw new Error("missing option 'name' and unable to infer it from input[0].name")}if(e.length===1&&!e[0].name)e[0].name=t.name;var i=e.reduce(function(e,t){return e+Number(typeof t==="string")},0);h(e.map(function(e){return function(n){var o={};if(x(e)){o.getStream=I(e);o.length=e.size}else if(r.isBuffer(e)){o.getStream=C(e);o.length=e.length}else if(A(e)){if(!t.pieceLength){throw new Error("must specify `pieceLength` option if input is Stream")}o.getStream=T(e,o);o.length=0}else if(typeof e==="string"){var a=i>1;m(e,a,n);return}else{throw new Error("invalid input type in array")}if(!e.name)throw new Error("missing requied `name` property on input");o.path=e.name.split(s.sep);n(null,o)}}),function(e,t){if(e)return n(e);t=f(t);n(null,t)})}function m(e,t,r){_(y,e,function(n,i){if(n)return r(n);if(Array.isArray(i))i=f(i);else i=[i];var o=s.normalize(e);if(t||i.length===1){o=o.slice(0,o.lastIndexOf(s.sep)+1)}else{if(o[o.length-1]!==s.sep)o+=s.sep}i.forEach(function(e){e.getStream=L(e.path);e.path=e.path.replace(o,"").split(s.sep)});r(null,i)})}function y(e,t){t=l(t);u.stat(e,function(r,n){if(r)return t(r);var i={length:n.size,path:e};t(null,i)})}function _(e,t,r){u.readdir(t,function(n,i){if(n&&n.code==="ENOTDIR"){e(t,r)}else if(n){r(n)}else{h(i.filter(w).map(function(r){return function(n){_(e,s.join(t,r),n)}}),r)}})}function w(e){return e[0]!=="."}function b(e,t,n){n=l(n);var o=[];var s=0;var a=e.map(function(e){return e.getStream});var f=0;var u=0;var h=false;new c(a).pipe(new i(t,{nopad:true})).on("data",function(e){s+=e.length;var t=u;d(e,function(e){o[t]=e;f-=1;p()});f+=1;u+=1}).on("end",function(){h=true;p()}).on("error",n);function p(){if(h&&f===0){n(null,new r(o.join(""),"hex"),s)}}}function k(e,r,i){var s=r.announceList!==undefined?r.announceList:r.announce!==undefined?r.announce.map(function(e){return[e]}):t.exports.announceList;var a={info:{name:r.name},announce:s[0][0],"announce-list":s,"creation date":Number(r.creationDate)||Date.now(),encoding:"UTF-8"};if(r.comment!==undefined)a.info.comment=r.comment;if(r.createdBy!==undefined)a.info["created by"]=r.createdBy;if(r.private!==undefined)a.info.private=Number(r.private);if(r.sslCert!==undefined)a.info["ssl-cert"]=r.sslCert;if(r.urlList!==undefined)a["url-list"]=r.urlList;var f=e.length===1;var u=r.pieceLength||o(e.reduce(E,0));a.info["piece length"]=u;b(e,u,function(t,r,o){if(t)return i(t);a.info.pieces=r;e.forEach(function(e){delete e.getStream});if(!f){a.info.files=e}else{a.info.length=o}i(null,n.encode(a))})}function E(e,t){return e+t.length}function x(e){return typeof Blob!=="undefined"&&e instanceof Blob}function S(e){return typeof FileList==="function"&&e instanceof FileList}function A(e){return typeof e==="object"&&typeof e.pipe==="function"}function I(e){return function(){return new a(e)}}function C(e){return function(){var t=new p.PassThrough;t.end(e);return t}}function L(e){return function(){return u.createReadStream(e)}}function T(e,t){return function(){var r=new p.Transform;r._transform=function(e,r,n){t.length+=e.length;this.push(e);n()};e.pipe(r);return r}}}).call(this,e("buffer").Buffer)},{bencode:64,"block-stream":68,buffer:35,"filestream/read":73,flatten:74,fs:32,multistream:75,once:78,path:41,"piece-length":79,"run-parallel":81,"simple-sha1":85,stream:58}],64:[function(e,t,r){arguments[4][12][0].apply(r,arguments)},{"./lib/decode":65,"./lib/encode":67,dup:12}],65:[function(e,t,r){arguments[4][13][0].apply(r,arguments)},{"./dict":66,buffer:35,dup:13}],66:[function(e,t,r){arguments[4][14][0].apply(r,arguments)},{dup:14}],67:[function(e,t,r){arguments[4][15][0].apply(r,arguments)},{buffer:35,dup:15}],68:[function(e,t,r){arguments[4][31][0].apply(r,arguments)},{_process:42,assert:33,buffer:35,dup:31,inherits:69,stream:58}],69:[function(e,t,r){arguments[4][20][0].apply(r,arguments)},{dup:20}],70:[function(e,t,r){arguments[4][20][0].apply(r,arguments)},{dup:20}],71:[function(e,t,r){(function(r){var n=e("is-typedarray").strict;t.exports=function(e){var t=r.TYPED_ARRAY_SUPPORT?r._augment:function(e){return new r(e)};if(e instanceof Uint8Array){return t(e)}else if(e instanceof ArrayBuffer){return t(new Uint8Array(e))}else if(n(e)){return t(new Uint8Array(e.buffer,e.byteOffset,e.byteLength))}else{return new r(e)}}}).call(this,e("buffer").Buffer)},{buffer:35,"is-typedarray":72}],72:[function(e,t,r){t.exports=o;o.strict=s;o.loose=a;var n=Object.prototype.toString;var i={"[object Int8Array]":true,"[object Int16Array]":true,"[object Int32Array]":true,"[object Uint8Array]":true,"[object Uint16Array]":true,"[object Uint32Array]":true,"[object Float32Array]":true,"[object Float64Array]":true};function o(e){return s(e)||a(e)}function s(e){return e instanceof Int8Array||e instanceof Int16Array||e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint16Array||e instanceof Uint32Array||e instanceof Float32Array||e instanceof Float64Array}function a(e){return i[n.call(e)]}},{}],73:[function(e,t,r){var n=e("stream").Readable;var i=e("inherits");var o=/^.*\.(\w+)$/;var s=e("typedarray-to-buffer");function a(e,t){var r=this;if(!(this instanceof a)){return new a(e,t)}t=t||{};n.call(this,t);this._offset=0;this._eof=false;this.reader=new FileReader;this.reader.onprogress=this._handleProgress.bind(this);this.reader.onload=this._handleLoad.bind(this);this._generateHeaderBlocks(e,t,function(t,n){if(t){return r.emit("error",t)}r._headerBlocks=n||[];r.reader.readAsArrayBuffer(e)})}i(a,n);t.exports=a;a.prototype._generateHeaderBlocks=function(e,t,r){r(null,[])};a.prototype._read=function(e){var t=this;var r=this.reader;function n(){var i=t._offset;var o=t._offset+e;var a=r.result&&r.result.byteLength;var f=r.readyState===2&&o>a;var u;if(a&&(f||a>o)){u=s(new Uint8Array(r.result,i,Math.min(e,r.result.byteLength-i)));t._offset=i+u.length;t._eof=u.length===0;return t.push(u.length>0?u:null)}t.once("readable",n)}if(this._headerBlocks.length>0){return this.push(this._headerBlocks.shift())}n()};a.prototype._handleLoad=function(e){this.emit("readable")};a.prototype._handleProgress=function(e){this.emit("readable")}},{inherits:70,stream:58,"typedarray-to-buffer":71}],74:[function(e,t,r){t.exports=function n(e,t){t=typeof t=="number"?t:Infinity;return r(e,1);function r(e,n){return e.reduce(function(e,i){if(Array.isArray(i)&&n=r){break}r=n;i=t[o]}return i}},{}],81:[function(e,t,r){var n=e("dezalgo");t.exports=function(e,t){if(t)t=n(t);var r,i,o;if(Array.isArray(e)){r=[];i=e.length}else{o=Object.keys(e);r={};i=o.length}function s(e,n,o){r[e]=o;if(--i===0||n){if(t)t(n,r);t=null}}if(!i){if(t)t(null,r);t=null}else if(o){o.forEach(function(t){e[t](s.bind(undefined,t))})}else{e.forEach(function(e,t){e(s.bind(undefined,t))})}}},{dezalgo:82}],82:[function(e,t,r){arguments[4][26][0].apply(r,arguments)},{asap:83,dup:26,wrappy:84}],83:[function(e,t,r){arguments[4][27][0].apply(r,arguments)},{_process:42,dup:27}],84:[function(e,t,r){arguments[4][28][0].apply(r,arguments)},{dup:28}],85:[function(e,t,r){var n=e("rusha");var i=new n;var o=window.crypto||window.msCrypto||{};var s=o.subtle||o.webkitSubtle;var a=i.digest.bind(i);try{s.digest({name:"sha-1"},new Uint8Array).catch(function(){s=false})}catch(f){s=false}function u(e,t){if(!s){setTimeout(t,0,a(e));return}if(typeof e==="string"){e=c(e)}s.digest({name:"sha-1"},e).then(function r(e){t(l(new Uint8Array(e)))},function n(r){t(a(e))})}function c(e){var t=e.length;var r=new Uint8Array(t);for(var n=0;n>>4).toString(16));r.push((i&15).toString(16))}return r.join("")}t.exports=u;t.exports.sync=a},{rusha:86}],86:[function(e,t,r){(function(e){(function(){if(typeof t!=="undefined"){t.exports=o}else if(typeof window!=="undefined"){window.Rusha=o}if(typeof FileReaderSync!=="undefined"){var r=new FileReaderSync,n=new o(4*1024*1024);self.onmessage=function a(e){var t,r=e.data.data;try{t=n.digest(r);self.postMessage({id:e.data.id,hash:t})}catch(i){self.postMessage({id:e.data.id,error:i.name})}}}var i={getDataType:function(t){if(typeof t==="string"){return"string"}if(t instanceof Array){return"array"}if(typeof e!=="undefined"&&e.Buffer&&e.Buffer.isBuffer(t)){return"buffer"}if(t instanceof ArrayBuffer){return"arraybuffer"}if(t.buffer instanceof ArrayBuffer){return"view"}if(t instanceof Blob){return"blob"}throw new Error("Unsupported data type.")}};function o(e){"use strict";var t={fill:0};var n=function(e){for(e+=9;e%64>0;e+=1);return e};var o=function(e,t){for(var r=t>>2;r>2]|=128<<24-(t%4<<3);e[((t>>2)+2&~15)+14]=r>>29;e[((t>>2)+2&~15)+15]=r<<3};var f=function(e,t,r,n,i){var o=this,s,a=i%4,f=n%4,u=n-f;if(u>0){switch(a){case 0:e[i+3|0]=o.charCodeAt(r);case 1:e[i+2|0]=o.charCodeAt(r+1);case 2:e[i+1|0]=o.charCodeAt(r+2);case 3:e[i|0]=o.charCodeAt(r+3)}}for(s=a;s>2]=o.charCodeAt(r+s)<<24|o.charCodeAt(r+s+1)<<16|o.charCodeAt(r+s+2)<<8|o.charCodeAt(r+s+3)}switch(f){case 3:e[i+u+1|0]=o.charCodeAt(r+u+2);case 2:e[i+u+2|0]=o.charCodeAt(r+u+1);case 1:e[i+u+3|0]=o.charCodeAt(r+u)}};var u=function(e,t,r,n,i){var o=this,s,a=i%4,f=n%4,u=n-f;if(u>0){switch(a){case 0:e[i+3|0]=o[r];case 1:e[i+2|0]=o[r+1];case 2:e[i+1|0]=o[r+2];case 3:e[i|0]=o[r+3]}}for(s=4-a;s>2]=o[r+s]<<24|o[r+s+1]<<16|o[r+s+2]<<8|o[r+s+3]}switch(f){case 3:e[i+u+1|0]=o[r+u+2];case 2:e[i+u+2|0]=o[r+u+1];case 1:e[i+u+3|0]=o[r+u]}};var c=function(e,t,n,i,o){var s=this,a,f=o%4,u=i%4,c=i-u;var l=new Uint8Array(r.readAsArrayBuffer(s.slice(n,n+i)));if(c>0){switch(f){case 0:e[o+3|0]=l[0];case 1:e[o+2|0]=l[1];case 2:e[o+1|0]=l[2];case 3:e[o|0]=l[3]}}for(a=4-f;a>2]=l[a]<<24|l[a+1]<<16|l[a+2]<<8|l[a+3]}switch(u){case 3:e[o+c+1|0]=l[c+2];case 2:e[o+c+2|0]=l[c+1];case 1:e[o+c+3|0]=l[c]}};var l=function(e){switch(i.getDataType(e)){case"string":return f.bind(e);case"array":return u.bind(e);case"buffer":return u.bind(e);case"arraybuffer":return u.bind(new Uint8Array(e));case"view":return u.bind(new Uint8Array(e.buffer,e.byteOffset,e.byteLength));case"blob":return c.bind(e)}};var h=function(e,t){switch(i.getDataType(e)){case"string":return e.slice(t);case"array":return e.slice(t);case"buffer":return e.slice(t);case"arraybuffer":return e.slice(t);case"view":return e.buffer.slice(t)}};var d=function(e){var t,r,n="0123456789abcdef",i=[],o=new Uint8Array(e);for(t=0;t>4&15)+n.charAt(r>>0&15)}return i.join("")};var p=function(e){var t;if(e<=65536)return 65536;if(e<16777216){for(t=1;t0){throw new Error("Chunk size must be a multiple of 128 bit")}t.maxChunkLen=e;t.padMaxChunkLen=n(e);t.heap=new ArrayBuffer(p(t.padMaxChunkLen+320+20));t.h32=new Int32Array(t.heap);t.h8=new Int8Array(t.heap);t.core=s({Int32Array:Int32Array,DataView:DataView},{},t.heap);t.buffer=null};g(e||64*1024);var v=function(e,t){var r=new Int32Array(e,t+320,5);r[0]=1732584193;r[1]=-271733879;r[2]=-1732584194;r[3]=271733878;r[4]=-1009589776};var m=function(e,r){var i=n(e);var s=new Int32Array(t.heap,0,i>>2);o(s,e);a(s,e,r);return i};var y=function(e,r,n){l(e)(t.h8,t.h32,r,n,0)};var _=function(e,r,n,i,o){var s=n;if(o){s=m(n,i)}y(e,r,n);t.core.hash(s,t.padMaxChunkLen)};var w=function(e,t){var r=new Int32Array(e,t+320,5);var n=new Int32Array(5);var i=new DataView(n.buffer);i.setInt32(0,r[0],false);i.setInt32(4,r[1],false);i.setInt32(8,r[2],false);i.setInt32(12,r[3],false);i.setInt32(16,r[4],false);return n};var b=this.rawDigest=function(e){var r=e.byteLength||e.length||e.size||0;v(t.heap,t.padMaxChunkLen);var n=0,i=t.maxChunkLen,o;for(n=0;r>n+i;n+=i){_(e,n,i,r,false)}_(e,n,r-n,r,true);return w(t.heap,t.padMaxChunkLen)};this.digest=this.digestFromString=this.digestFromBuffer=this.digestFromArrayBuffer=function(e){return d(b(e).buffer)}}function s(e,t,r){"use asm";var n=new e.Int32Array(r);function i(e,t){e=e|0;t=t|0;var r=0,i=0,o=0,s=0,a=0,f=0,u=0,c=0,l=0,h=0,d=0,p=0,g=0,v=0;o=n[t+320>>2]|0;a=n[t+324>>2]|0;u=n[t+328>>2]|0;l=n[t+332>>2]|0;d=n[t+336>>2]|0;for(r=0;(r|0)<(e|0);r=r+64|0){s=o;f=a;c=u;h=l;p=d;for(i=0;(i|0)<64;i=i+4|0){v=n[r+i>>2]|0;g=((o<<5|o>>>27)+(a&u|~a&l)|0)+((v+d|0)+1518500249|0)|0;d=l;l=u;u=a<<30|a>>>2;a=o;o=g;n[e+i>>2]=v}for(i=e+64|0;(i|0)<(e+80|0);i=i+4|0){v=(n[i-12>>2]^n[i-32>>2]^n[i-56>>2]^n[i-64>>2])<<1|(n[i-12>>2]^n[i-32>>2]^n[i-56>>2]^n[i-64>>2])>>>31;g=((o<<5|o>>>27)+(a&u|~a&l)|0)+((v+d|0)+1518500249|0)|0;d=l;l=u;u=a<<30|a>>>2;a=o;o=g;n[i>>2]=v}for(i=e+80|0;(i|0)<(e+160|0);i=i+4|0){v=(n[i-12>>2]^n[i-32>>2]^n[i-56>>2]^n[i-64>>2])<<1|(n[i-12>>2]^n[i-32>>2]^n[i-56>>2]^n[i-64>>2])>>>31;g=((o<<5|o>>>27)+(a^u^l)|0)+((v+d|0)+1859775393|0)|0;d=l;l=u;u=a<<30|a>>>2;a=o;o=g;n[i>>2]=v}for(i=e+160|0;(i|0)<(e+240|0);i=i+4|0){v=(n[i-12>>2]^n[i-32>>2]^n[i-56>>2]^n[i-64>>2])<<1|(n[i-12>>2]^n[i-32>>2]^n[i-56>>2]^n[i-64>>2])>>>31;g=((o<<5|o>>>27)+(a&u|a&l|u&l)|0)+((v+d|0)-1894007588|0)|0;d=l;l=u;u=a<<30|a>>>2;a=o;o=g;n[i>>2]=v}for(i=e+240|0;(i|0)<(e+320|0);i=i+4|0){v=(n[i-12>>2]^n[i-32>>2]^n[i-56>>2]^n[i-64>>2])<<1|(n[i-12>>2]^n[i-32>>2]^n[i-56>>2]^n[i-64>>2])>>>31;g=((o<<5|o>>>27)+(a^u^l)|0)+((v+d|0)-899497514|0)|0;d=l;l=u;u=a<<30|a>>>2;a=o;o=g;n[i>>2]=v}o=o+s|0;a=a+f|0;u=u+c|0;l=l+h|0;d=d+p|0}n[t+320>>2]=o;n[t+324>>2]=a;n[t+328>>2]=u;n[t+332>>2]=l;n[t+336>>2]=d}return{hash:i}}})()}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],87:[function(e,t,r){arguments[4][17][0].apply(r,arguments)},{"./debug":88,dup:17}],88:[function(e,t,r){arguments[4][18][0].apply(r,arguments)},{dup:18,ms:89}],89:[function(e,t,r){arguments[4][19][0].apply(r,arguments)},{dup:19}],90:[function(e,t,r){arguments[4][26][0].apply(r,arguments)},{asap:91,dup:26,wrappy:92}],91:[function(e,t,r){arguments[4][27][0].apply(r,arguments)},{_process:42,dup:27}],92:[function(e,t,r){arguments[4][28][0].apply(r,arguments)},{dup:28}],93:[function(e,t,r){var n=e("once");var i=function(){};var o=function(e){return e.setHeader&&typeof e.abort==="function"};var s=function(e){return e.stdio&&Array.isArray(e.stdio)&&e.stdio.length===3};var a=function(e,t,r){if(typeof t==="function")return a(e,null,t);if(!t)t={};r=n(r||i);var f=e._writableState;var u=e._readableState;var c=t.readable||t.readable!==false&&e.readable;var l=t.writable||t.writable!==false&&e.writable;var h=function(){if(!e.writable)d()};var d=function(){l=false;if(!c)r()};var p=function(){c=false;if(!l)r()};var g=function(e){r(e?new Error("exited with error code: "+e):null)};var v=function(){if(c&&!(u&&u.ended))return r(new Error("premature close"));if(l&&!(f&&f.ended))return r(new Error("premature close"))};var m=function(){e.req.on("finish",d)};if(o(e)){e.on("complete",d);e.on("abort",v);if(e.req)m();else e.on("request",m)}else if(l&&!f){e.on("end",h);e.on("close",h)}if(s(e))e.on("exit",g);e.on("end",p);e.on("finish",d);if(t.error!==false)e.on("error",r);e.on("close",v);return function(){e.removeListener("complete",d);e.removeListener("abort",v);e.removeListener("request",m);if(e.req)e.req.removeListener("finish",d);e.removeListener("end",h);e.removeListener("close",h);e.removeListener("finish",d);e.removeListener("exit",g);e.removeListener("end",p);e.removeListener("error",r);e.removeListener("close",v)}};t.exports=a},{once:99}],94:[function(e,t,r){var n=t.exports=function(e,t){if(!t)t=16;if(e===undefined)e=128;if(e<=0)return"0";var r=Math.log(Math.pow(2,e))/Math.log(t);for(var i=2;r===Infinity;i*=2){r=Math.log(Math.pow(2,e/i))/Math.log(t)*i}var o=r-Math.floor(r);var s="";for(var i=0;i=Math.pow(2,e)){return n(e,t)}else return s};n.rack=function(e,t,r){var i=function(i){var s=0;do{if(s++>10){if(r)e+=r;else throw new Error("too many ID collisions, use more bits")}var a=n(e,t)}while(Object.hasOwnProperty.call(o,a));o[a]=i;return a};var o=i.hats={};i.get=function(e){return i.hats[e]};i.set=function(e,t){i.hats[e]=t;return i};i.bits=e||128;i.base=t||16;return i}},{}],95:[function(e,t,r){arguments[4][20][0].apply(r,arguments)},{dup:20}],96:[function(e,t,r){arguments[4][75][0].apply(r,arguments)},{dup:75,inherits:97,stream:58}],97:[function(e,t,r){arguments[4][20][0].apply(r,arguments)},{dup:20}],98:[function(e,t,r){arguments[4][28][0].apply(r,arguments)},{dup:28}],99:[function(e,t,r){arguments[4][78][0].apply(r,arguments)},{dup:78,wrappy:98}],100:[function(e,t,r){(function(r){var n=e("magnet-uri");var i=e("parse-torrent-file");t.exports=function o(e){var t=e&&e.length;if(typeof e==="string"&&/magnet:/.test(e)){return n(e)}else if(typeof e==="string"&&(t===40||t===32)){return n("magnet:?xt=urn:btih:"+e)}else if(r.isBuffer(e)&&t===20){return n("magnet:?xt=urn:btih:"+e.toString("hex"))}else if(r.isBuffer(e)){return i(e)}else if(e&&e.infoHash){return e}else{throw new Error("Invalid torrent identifier")}};t.exports.toMagnetURI=n.encode;t.exports.toTorrentFile=i.encode}).call(this,e("buffer").Buffer)},{buffer:35,"magnet-uri":101,"parse-torrent-file":106}],101:[function(e,t,r){(function(r){t.exports=s;t.exports.decode=s;t.exports.encode=a;var n=e("thirty-two");var i=e("xtend");var o=e("flatten");function s(e){var t={};var i=e.split("magnet:?")[1];var o=i&&i.length>=0?i.split("&"):[];o.forEach(function(e){var r=e.split("=");if(r.length!==2)return;var n=r[0];var i=r[1];if(n==="dn")i=decodeURIComponent(i).replace(/\+/g," ");if(n==="tr"||n==="xs"||n==="as"||n==="ws"){i=decodeURIComponent(i)}if(n==="kt")i=decodeURIComponent(i).split("+");if(t[n]){if(Array.isArray(t[n])){t[n].push(i)}else{var o=t[n];t[n]=[o,i]}}else{t[n]=i}});var s;if(t.xt){var a=Array.isArray(t.xt)?t.xt:[t.xt];a.forEach(function(e){if(s=e.match(/^urn:btih:(.{40})/)){t.infoHash=new r(s[1],"hex").toString("hex")}else if(s=e.match(/^urn:btih:(.{32})/)){var i=n.decode(s[1]);t.infoHash=new r(i,"binary").toString("hex")}})}if(t.dn)t.name=t.dn;if(t.kt)t.keywords=t.kt;if(typeof t.tr==="string")t.announce=[t.tr];else if(Array.isArray(t.tr))t.announce=t.tr;else t.announce=[];t.announceList=t.announce.map(function(e){return[e]});t.urlList=[];if(typeof t.as==="string"||Array.isArray(t.as)){t.urlList=t.urlList.concat(t.as)}if(typeof t.ws==="string"||Array.isArray(t.ws)){t.urlList=t.urlList.concat(t.ws)}return t}function a(e){e=i(e);if(e.infoHash)e.xt="urn:btih:"+e.infoHash;if(e.name)e.dn=e.name;if(e.keywords)e.kt=e.keywords;if(e.announce)e.tr=e.announce;if(e.announceList)e.tr=o(e.announceList);if(e.urlList){e.ws=o(e.urlList);delete e.as}var t="magnet:?";Object.keys(e).filter(function(e){return e.length===2}).forEach(function(r,n){var i=Array.isArray(e[r])?e[r]:[e[r]];i.forEach(function(e,i){if((n>0||i>0)&&(r!=="kt"||i===0))t+="&";if(r==="dn")e=encodeURIComponent(e).replace(/%20/g,"+");if(r==="tr"||r==="xs"||r==="as"||r==="ws"){e=encodeURIComponent(e)}if(r==="kt")e=encodeURIComponent(e);if(r==="kt"&&i>0)t+="+"+e;else t+=r+"="+e})});return t}}).call(this,e("buffer").Buffer)},{buffer:35,flatten:102,"thirty-two":103,xtend:105}],102:[function(e,t,r){arguments[4][74][0].apply(r,arguments)},{dup:74}],103:[function(e,t,r){var n=e("./thirty-two");r.encode=n.encode;r.decode=n.decode},{"./thirty-two":104}],104:[function(e,t,r){(function(e){var t="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567";var n=[255,255,26,27,28,29,30,31,255,255,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255];function i(e){var t=Math.floor(e.length/5);return e.length%5==0?t:t+1}r.encode=function(r){var n=0;var o=0;var s=0;var a=0;var f=new e(i(r)*8);if(!e.isBuffer(r)){r=new e(r)}while(n3){a=u&255>>s;s=(s+5)%8;a=a<>8-s;n++}else{a=u>>8-(s+5)&31;s=(s+5)%8;if(s==0)n++}f[o]=t.charCodeAt(a);o++}for(n=o;n>>r;a[s]=o;s++;o=255&i<<8-r}}else{throw new Error("Invalid input - it is not base32 encoded string")}}return a.slice(0,s)}}).call(this,e("buffer").Buffer)},{buffer:35}],105:[function(e,t,r){arguments[4][22][0].apply(r,arguments)},{dup:22}],106:[function(e,t,r){(function(r){t.exports=s;t.exports.decode=s;t.exports.encode=a;var n=e("bencode");var i=e("path");var o=e("simple-sha1");function s(e){if(r.isBuffer(e)){e=n.decode(e)}c(e.info,"info");c(e.info.name,"info.name");c(e.info["piece length"],"info['piece length']");c(e.info.pieces,"info.pieces");if(e.info.files){e.info.files.forEach(function(e){c(typeof e.length==="number","info.files[0].length");c(e.path,"info.files[0].path")})}else{c(typeof e.info.length==="number","info.length")}var t={};t.info=e.info;t.infoBuffer=n.encode(e.info);t.infoHash=o.sync(t.infoBuffer);t.name=e.info.name.toString();t.private=!!e.info.private;if(e["creation date"])t.created=new Date(e["creation date"]*1e3);if(r.isBuffer(e.comment))t.comment=e.comment.toString();var s=e["announce-list"];if(!s){if(e.announce){s=[[e.announce]]}else{s=[]}}t.announceList=s.map(function(e){return e.map(function(e){return e.toString()})});t.announce=[].concat.apply([],t.announceList);if(r.isBuffer(e["url-list"])){e["url-list"]=e["url-list"].length>0?[e["url-list"]]:[]}t.urlList=(e["url-list"]||[]).map(function(e){return e.toString()});var a=e.info.files||[e.info];t.files=a.map(function(e,r){var n=[].concat(e.name||t.name,e.path||[]).map(function(e){return e.toString()});return{path:i.join.apply(null,[i.sep].concat(n)).slice(1),name:n[n.length-1],length:e.length,offset:a.slice(0,r).reduce(f,0)}});t.length=a.reduce(f,0);var l=t.files[t.files.length-1];t.pieceLength=e.info["piece length"];t.lastPieceLength=(l.offset+l.length)%t.pieceLength||t.pieceLength;t.pieces=u(e.info.pieces);return t}function a(e){var t={info:e.info};if(e.announce&&e.announce[0]){t.announce=e.announce[0]}if(e.announceList){t["announce-list"]=e.announceList.map(function(e){return e.map(function(e){e=new r(e,"utf8");if(!t.announce){t.announce=e}return e})})}if(e.created){t["creation date"]=e.created.getTime()/1e3|0}return n.encode(t)}function f(e,t){return e+t.length}function u(e){var t=[];for(var r=0;r5)e.numWant=5;t._generateOffers(e.numWant,function(r){e.offers=r;if(t._trackerId){e.trackerid=t._trackerId}t._send(e)})};l.prototype.scrape=function(e){var t=this;t._onSocketError(new Error("scrape not supported "+t._announceUrl))};l.prototype.setInterval=function(e){var t=this;clearInterval(t._interval);t._intervalMs=e;if(e){var r=t.announce.bind(t,t.client._defaultAnnounceOpts());t._interval=setInterval(r,t._intervalMs)}};l.prototype._onSocketError=function(e){var t=this;t.client.emit("error",e)};l.prototype._onSocketData=function(e){var t=this;if(!(typeof e==="object"&&e!==null)){return t.client.emit("warning",new Error("Invalid tracker response"))}if(e.info_hash!==t.client._infoHash.toString("binary")){return t.client.emit("warning",new Error("Invalid tracker response"))}n("received %s from %s",JSON.stringify(e),t._announceUrl);var r=e["failure reason"];if(r)return t.client.emit("warning",new Error(r));var i=e["warning message"];if(i)t.client.emit("warning",new Error(i));var o=e.interval||e["min interval"];if(o&&!t._opts.interval&&t._intervalMs!==0){t.setInterval(o*1e3)}var s=e["tracker id"];if(s){t._trackerId=s}if(e.complete){t.client.emit("update",{announce:t._announceUrl,complete:e.complete,incomplete:e.incomplete})}var f;if(e.offer){f=new a({trickle:false,config:t.client._rtcConfig,wrtc:t.client._wrtc});f.id=u.binaryToHex(e.peer_id);f.once("signal",function(r){var n={info_hash:t.client._infoHash.toString("binary"),peer_id:t.client._peerId.toString("binary"),to_peer_id:e.peer_id,answer:r,offer_id:e.offer_id};if(t._trackerId)n.trackerid=t._trackerId;t._send(n)});f.signal(e.offer);t.client.emit("peer",f)}if(e.answer){f=t._peers[u.binaryToHex(e.offer_id)];if(f){f.id=u.binaryToHex(e.peer_id);f.signal(e.answer);t.client.emit("peer",f)}else{n("got unexpected answer: "+JSON.stringify(e.answer))}}};l.prototype._send=function(e){var t=this;n("send %s",JSON.stringify(e));t._socket.send(e)};l.prototype._generateOffers=function(e,t){var r=this;var i=[];n("generating %s offers",e);for(var s=0;s1)e.sdp=t[0]+"b=AS:1638400"+t[1]}function p(){}}).call(this,e("buffer").Buffer)},{buffer:35,debug:134,hat:137,inherits:138,"is-typedarray":139,once:141,stream:58,"typedarray-to-buffer":142,"xtend/mutable":144}],134:[function(e,t,r){arguments[4][17][0].apply(r,arguments)},{"./debug":135,dup:17}],135:[function(e,t,r){arguments[4][18][0].apply(r,arguments)},{dup:18,ms:136}],136:[function(e,t,r){arguments[4][19][0].apply(r,arguments)},{dup:19}],137:[function(e,t,r){arguments[4][94][0].apply(r,arguments)},{dup:94}],138:[function(e,t,r){arguments[4][20][0].apply(r,arguments)},{dup:20}],139:[function(e,t,r){arguments[4][72][0].apply(r,arguments)},{dup:72}],140:[function(e,t,r){arguments[4][28][0].apply(r,arguments)},{dup:28}],141:[function(e,t,r){arguments[4][78][0].apply(r,arguments)},{dup:78,wrappy:140}],142:[function(e,t,r){arguments[4][71][0].apply(r,arguments)},{buffer:35,dup:71,"is-typedarray":143}],143:[function(e,t,r){arguments[4][72][0].apply(r,arguments)},{dup:72}],144:[function(e,t,r){t.exports=n;function n(e){for(var t=1;tf){return this.emit("warning",new Error("Peer gave maliciously large metadata size"))}this._metadataSize=e.metadata_size;this._numPieces=Math.ceil(this._metadataSize/c);this._remainingRejects=this._numPieces*2;if(this._fetching){this._requestPieces()}};t.prototype.onMessage=function(e){var t,r;try{var i=e.toString();var o=i.indexOf("ee")+2;t=n.decode(i.substring(0,o));r=e.slice(o)}catch(s){return}switch(t.msg_type){case 0:this._onRequest(t.piece);break;case 1:this._onData(t.piece,r,t.total_size);break;case 2:this._onReject(t.piece);break}};t.prototype.fetch=function(){if(this._metadataComplete){return}this._fetching=true;if(this._metadataSize){this._requestPieces()}};t.prototype.cancel=function(){this._fetching=false};t.prototype.setMetadata=function(e){if(this._metadataComplete)return true;try{var t=n.decode(e).info;if(t){e=n.encode(t)}}catch(r){}if(this._infoHashHex&&this._infoHashHex!==a.sync(e)){return false}this.cancel();this.metadata=e;this._metadataComplete=true;this._metadataSize=this.metadata.length;this._wire.extendedHandshake.metadata_size=this._metadataSize;this.emit("metadata",n.encode({info:n.decode(this.metadata)}));return true};t.prototype._send=function(e,t){var i=n.encode(e);if(r.isBuffer(t)){i=r.concat([i,t])}this._wire.extended("ut_metadata",i)};t.prototype._request=function(e){this._send({msg_type:0,piece:e})};t.prototype._data=function(e,t,r){var n={msg_type:1,piece:e};if(typeof r==="number"){n.total_size=r}this._send(n,t)};t.prototype._reject=function(e){this._send({msg_type:2,piece:e})};t.prototype._onRequest=function(e){if(!this._metadataComplete){this._reject(e);return}var t=e*c;var r=t+c;if(r>this._metadataSize){r=this._metadataSize}var n=this.metadata.slice(t,r);this._data(e,n,this._metadataSize)};t.prototype._onData=function(e,t,r){if(t.length>c){return}t.copy(this.metadata,e*c);this._bitfield.set(e);this._checkDone()};t.prototype._onReject=function(e){if(this._remainingRejects>0&&this._fetching){this._request(e);this._remainingRejects-=1}else{this.emit("warning",new Error('Peer sent "reject" too much'))}};t.prototype._requestPieces=function(){this.metadata=new r(this._metadataSize);for(var e=0;e0){this._requestPieces()}else{this.emit("warning",new Error("Peer sent invalid metadata"))}};return t}}).call(this,e("buffer").Buffer)},{bencode:161,bitfield:165,buffer:35,events:39,inherits:166,"simple-sha1":167}],161:[function(e,t,r){arguments[4][12][0].apply(r,arguments)},{"./lib/decode":162,"./lib/encode":164,dup:12}],162:[function(e,t,r){arguments[4][13][0].apply(r,arguments)},{"./dict":163,buffer:35,dup:13}],163:[function(e,t,r){arguments[4][14][0].apply(r,arguments)},{dup:14}],164:[function(e,t,r){arguments[4][15][0].apply(r,arguments)},{buffer:35,dup:15}],165:[function(e,t,r){arguments[4][7][0].apply(r,arguments)},{buffer:35,dup:7}],166:[function(e,t,r){arguments[4][20][0].apply(r,arguments)},{dup:20}],167:[function(e,t,r){arguments[4][85][0].apply(r,arguments)},{dup:85,rusha:168}],168:[function(e,t,r){arguments[4][86][0].apply(r,arguments)},{dup:86}],169:[function(e,t,r){arguments[4][22][0].apply(r,arguments)},{dup:22}],170:[function(e,t,r){t.exports=function n(e,t,r){if(t===undefined){return function(t,r){return n(e,t,r)}}if(r===undefined)r="0";e-=t.toString().length;if(e>0)return new Array(e+(/\./.test(t)?2:1)).join(r)+t;return t+""}},{}],171:[function(e,t,r){t.exports={name:"webtorrent",description:"Streaming torrent client",version:"0.37.1",author:{name:"Feross Aboukhadijeh",email:"feross@feross.org",url:"http://feross.org/"},bin:{webtorrent:"./bin/cmd.js"},browser:{"./lib/fs-storage":false,"./server":false,"bittorrent-dht/client":false,"load-ip-set":false,"simple-get":false,ut_pex:false},bugs:{url:"https://github.com/feross/webtorrent/issues"},dependencies:{"addr-to-ip-port":"^1.0.1",bitfield:"^1.0.2","bittorrent-dht":"^3.0.0","bittorrent-swarm":"^3.0.0","block-stream":"0.0.7",clivas:"^0.2.0","create-torrent":"^3.4.0",debug:"^2.1.0",dezalgo:"^1.0.1","end-of-stream":"^1.0.0",hat:"0.0.3",inherits:"^2.0.1",inquirer:"^0.8.0","load-ip-set":"^1.0.3",mime:"^1.2.11",minimist:"^1.1.0",mkdirp:"^0.5.0",moment:"^2.8.3",multistream:"^1.4.2","network-address":"^1.0.0",once:"^1.3.1","parse-torrent":"^4.0.0","pretty-bytes":"^1.0.1",pump:"^1.0.0","random-access-file":"^0.3.1","range-parser":"^1.0.2","re-emitter":"^1.0.0",rimraf:"^2.2.5","run-parallel":"^1.0.0","simple-get":"^1.0.0","simple-sha1":"^2.0.0",speedometer:"^0.1.2",thunky:"^0.1.0","torrent-discovery":"^3.0.0",ut_metadata:"^2.1.0",ut_pex:"^1.0.1","windows-no-runnable":"0.0.6",xtend:"^4.0.0","zero-fill":"^2.2.0"},devDependencies:{"bittorrent-tracker":"^4.0.0",brfs:"^1.2.0",browserify:"^10.0.0","run-auto":"^1.0.0",standard:"^3.1.1",tape:"^4.0.0","uglify-js":"^2.4.15",zelda:"^2.0.0",zuul:"^3.0.0"},homepage:"http://webtorrent.io",keywords:["torrent","bittorrent","bittorrent client","streaming","download","webrtc","webrtc data","webtorrent","mad science"],license:"MIT",main:"index.js",optionalDependencies:{"airplay-js":"^0.2.3","chromecast-js":"^0.1.4",nodebmc:"0.0.5"},repository:{type:"git",url:"git://github.com/feross/webtorrent.git"},scripts:{build:"browserify -s WebTorrent -e ./ | uglifyjs -m > webtorrent.min.js","build-debug":"browserify -s WebTorrent -e ./ > webtorrent.debug.js",size:"npm run build && cat webtorrent.min.js | gzip | wc -c",test:"standard && node ./bin/test.js","test-browser":"zuul -- test/basic.js","test-browser-local":"zuul --local -- test/basic.js","test-node":"tape test/*.js"}}},{}],172:[function(e,t,r){(function(r,n,i){t.exports=b;var o=e("create-torrent");var s=e("debug")("webtorrent");var a=e("bittorrent-dht/client");var f=e("events").EventEmitter;var u=e("xtend");var c=e("hat");var l=e("inherits");var h=e("load-ip-set");var d=e("run-parallel");var p=e("parse-torrent");var g=e("speedometer");var v=e("zero-fill");var m=e("./lib/fs-storage");var y=e("./lib/storage");var _=e("./lib/torrent");l(b,f);var w=e("./package.json").version.match(/([0-9]+)/g).slice(0,2).map(v(2)).join("");function b(e){var t=this;if(!(t instanceof b))return new b(e);if(!e)e={};f.call(t);if(!s.enabled)t.setMaxListeners(0);t.destroyed=false;t.torrentPort=e.torrentPort||0;t.tracker=e.tracker!==undefined?e.tracker:true;t._rtcConfig=e.rtcConfig;t._wrtc=e.wrtc||n.WRTC;t.torrents=[];t.downloadSpeed=g();t.uploadSpeed=g();t.storage=typeof e.storage==="function"?e.storage:e.storage!==false&&typeof m==="function"?m:y;t.peerId=e.peerId===undefined?new i("-WW"+w+"-"+c(48),"utf8"):typeof e.peerId==="string"?new i(e.peerId,"hex"):e.peerId;t.peerIdHex=t.peerId.toString("hex");t.nodeId=e.nodeId===undefined?new i(c(160),"hex"):typeof e.nodeId==="string"?new i(e.nodeId,"hex"):e.nodeId;t.nodeIdHex=t.nodeId.toString("hex");if(e.dht!==false&&typeof a==="function"){t.dht=new a(u({nodeId:t.nodeId},e.dht));t.dht.listen(e.dhtPort)}s("new webtorrent (peerId %s, nodeId %s)",t.peerIdHex,t.nodeIdHex); if(typeof h==="function"){h(e.blocklist,{headers:{"user-agent":"WebTorrent (http://webtorrent.io)"}},function(e,r){if(e)return t.error("failed to load blocklist: "+e.message);t.blocked=r;o()})}else r.nextTick(o);function o(){if(t.destroyed)return;t.ready=true;t.emit("ready")}}Object.defineProperty(b.prototype,"ratio",{get:function(){var e=this;var t=e.torrents.reduce(function(e,t){return e+t.uploaded},0);var r=e.torrents.reduce(function(e,t){return e+t.downloaded},0)||1;return t/r}});b.prototype.get=function(e){var t=this;var r=p(e);if(!r.infoHash)throw new Error("Invalid torrent identifier");for(var n=0,i=t.torrents.length;n