{"version":3,"sources":["webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/buffer/node_modules/isarray/index.js","webpack:///./node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/core-util-is/lib/util.js","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack:///./node_modules/string_decoder/node_modules/safe-buffer/index.js","webpack:///./node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/string_decoder/lib/string_decoder.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/process-nextick-args/index.js","webpack:///./node_modules/readable-stream/node_modules/safe-buffer/index.js","webpack:///./node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/util-deprecate/browser.js","webpack:///./node_modules/readable-stream/node_modules/isarray/index.js","webpack:///./node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/events/events.js"],"names":["exports","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","Uint8Array","Array","code","i","len","length","charCodeAt","getLens","b64","Error","validLen","indexOf","placeHoldersLen","lens","_byteLength","tmp","arr","curByte","tripletToBase64","num","encodeChunk","uint8","start","end","output","push","join","extraBytes","parts","maxChunkLength","len2","toString","module","isArray","call","Transform","Duplex","util","Object","create","afterTransform","er","data","ts","this","_transformState","transforming","cb","writecb","emit","writechunk","rs","_readableState","reading","needReadable","highWaterMark","_read","options","bind","needTransform","writeencoding","sync","transform","_transform","flush","_flush","on","prefinish","_this","done","stream","_writableState","inherits","prototype","chunk","encoding","_write","n","_destroy","err","_this2","err2","arg","objectToString","isBoolean","isNull","isNullOrUndefined","isNumber","isString","isSymbol","isUndefined","isRegExp","re","isObject","isDate","d","isError","e","isFunction","isPrimitive","o","isBuffer","Buffer","ctor","superCtor","super_","constructor","value","enumerable","writable","configurable","TempCtor","EventEmitter","pna","destroy","readableDestroyed","destroyed","writableDestroyed","errorEmitted","nextTick","emitErrorNT","undestroy","ended","endEmitted","ending","finalCalled","prefinished","finished","self","_classCallCheck","instance","Constructor","TypeError","copyBuffer","src","target","offset","copy","BufferList","head","tail","v","entry","next","unshift","shift","ret","clear","s","p","concat","alloc","allocUnsafe","inspect","custom","obj","name","buffer","copyProps","dst","key","SafeBuffer","encodingOrOffset","from","allocUnsafeSlow","size","fill","buf","undefined","SlowBuffer","PassThrough","isEncoding","toLowerCase","_normalizeEncoding","enc","retried","normalizeEncoding","nenc","StringDecoder","nb","text","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","write","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","utf8CheckIncomplete","j","utf8CheckExtraBytes","r","utf8Text","total","utf8End","c","slice","read","isLE","mLen","nBytes","m","eLen","eMax","eBias","nBits","NaN","Infinity","Math","pow","rt","abs","isNaN","floor","log","LN2","fn","arg1","arg2","arg3","args","arguments","process","apply","version","Readable","ReadableState","EElistenerCount","emitter","type","listeners","Stream","OurUint8Array","global","window","_uint8ArrayToBuffer","_isUint8Array","debugUtil","debug","debuglog","destroyImpl","kProxyEvents","prependListener","event","_events","isDuplex","objectMode","readableObjectMode","hwm","readableHwm","readableHighWaterMark","defaultHwm","pipes","pipesCount","flowing","emittedReadable","readableListening","resumeScheduled","defaultEncoding","awaitDrain","readingMore","decoder","readable","readableAddChunk","addToFront","skipChunkCheck","state","onEofChunk","chunkInvalid","getPrototypeOf","addChunk","maybeReadMore","needMoreData","emitReadable","defineProperty","get","set","_undestroy","isPaused","setEncoding","MAX_HWM","computeNewHighWaterMark","howMuchToRead","emitReadable_","flow","maybeReadMore_","pipeOnDrain","nReadingNextTick","resume","resume_","fromList","fromListPartial","list","hasStrings","copyFromBufferString","copyFromBuffer","str","endReadable","endReadableNT","xs","x","l","parseInt","nOrig","doRead","pipe","dest","pipeOpts","doEnd","stdout","stderr","endFn","onend","unpipe","onunpipe","unpipeInfo","hasUnpiped","cleanup","once","ondrain","cleanedUp","removeListener","onclose","onfinish","onerror","ondata","needDrain","increasedAwaitDrain","pause","dests","index","splice","ev","res","addListener","wrap","paused","method","_fromList","objectKeys","keys","Writable","allowHalfOpen","onEndNT","base64","ieee754","typedArraySupport","__proto__","foo","subarray","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","ArrayBuffer","fromArrayBuffer","fromString","fromObject","assertSize","checked","string","actual","fromArrayLike","array","byteOffset","isnan","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","b","bidirectionalIndexOf","val","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","String","readUInt16BE","foundIndex","found","hexWrite","Number","remaining","strLen","parsed","substr","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","min","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","decodeCodePointsArray","INSPECT_MAX_BYTES","poolSize","_augment","Symbol","species","_isBuffer","compare","a","y","pos","swap16","swap32","swap64","equals","max","match","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","MAX_ARGUMENTS_LENGTH","codePoints","fromCharCode","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","replace","trim","units","leadSurrogate","byteArray","hi","lo","deprecate","msg","config","warned","deprecated","console","trace","warn","localStorage","_","CorkedRequest","finish","onCorkedFinish","asyncWrite","browser","setImmediate","WritableState","internalUtil","realHasInstance","nop","writableObjectMode","writableHwm","writableHighWaterMark","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","bufferedRequest","lastBufferedRequest","pendingcb","bufferedRequestCount","corkedRequestsFree","writev","_writev","final","_final","writeAfterEnd","validChunk","valid","decodeChunk","writeOrBuffer","isBuf","newChunk","last","callback","doWrite","onwriteError","finishMaybe","onwriteStateUpdate","needFinish","clearBuffer","afterWrite","onwriteDrain","holder","count","allBuffers","callFinal","need","endWritable","corkReq","getBuffer","current","hasInstance","Function","object","cork","uncork","setDefaultEncoding","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","ProcessEmitWarning","warning","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","init","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","_addListener","prepend","events","existing","newListener","w","onceWrapper","fired","wrapFn","_onceWrap","wrapped","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","spliceOne","pop","Promise","resolve","reject","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","addEventListener","wrapListener","removeEventListener","setMaxListeners","getMaxListeners","doError","error","message","context","prependOnceListener","position","originalListener","off","removeAllListeners","rawListeners","eventNames"],"mappings":"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","file":"js/chunk-92c40348.0a31c82b.js","sourcesContent":["'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","module.exports = require('events').EventEmitter;\n","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n pna.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n pna.nextTick(emitErrorNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n pna.nextTick(emitErrorNT, _this, err);\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, { hasUnpiped: false });\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n"],"sourceRoot":""}