{"version":3,"sources":["webpack:///./node_modules/readable-stream/duplex-browser.js","webpack:///./node_modules/node-libs-browser/node_modules/buffer/index.js","webpack:///./node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/readable-stream/writable-browser.js","webpack:///./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/node-libs-browser/mock/process.js","webpack:///./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack:///./node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/process-nextick-args/index.js","webpack:///./node_modules/regenerator-runtime/runtime.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/readable-stream/passthrough.js","webpack:///./node_modules/readable-stream/transform.js","webpack:///./node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/path-browserify/index.js","webpack:///./node_modules/readable-stream/readable-browser.js"],"names":["module","exports","base64","ieee754","isArray","typedArraySupport","arr","Uint8Array","__proto__","prototype","foo","subarray","byteLength","e","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","createBuffer","that","length","RangeError","arg","encodingOrOffset","this","Error","allocUnsafe","from","value","TypeError","ArrayBuffer","fromArrayBuffer","fromString","fromObject","assertSize","size","alloc","fill","encoding","undefined","checked","i","string","isEncoding","actual","write","slice","fromArrayLike","array","byteOffset","obj","isBuffer","len","copy","buffer","isnan","type","data","toString","SlowBuffer","isView","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","start","end","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","b","n","m","bidirectionalIndexOf","val","dir","isNaN","arrayIndexOf","indexOf","call","lastIndexOf","indexSize","arrLength","valLength","String","read","buf","readUInt16BE","foundIndex","found","j","hexWrite","offset","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","fromByteArray","Math","min","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","push","decodeCodePointsArray","INSPECT_MAX_BYTES","global","poolSize","_augment","Symbol","species","Object","defineProperty","configurable","allocUnsafeSlow","_isBuffer","compare","a","x","y","concat","list","pos","swap16","swap32","swap64","arguments","apply","equals","inspect","str","max","match","join","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","Array","_arr","MAX_ARGUMENTS_LENGTH","codePoints","fromCharCode","ret","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","floor","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","set","code","charCodeAt","INVALID_BASE64_RE","base64clean","stringtrim","replace","trim","units","Infinity","leadSurrogate","byteArray","c","hi","lo","toByteArray","src","dst","Transform","Duplex","util","create","afterTransform","er","ts","_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","chunk","_write","_destroy","err","_this2","err2","EventEmitter","nextTick","fn","args","shift","setTimeout","platform","arch","execPath","title","pid","browser","env","argv","binding","name","path","cwd","chdir","resolve","exit","kill","umask","dlopen","uptime","memoryUsage","uvCounters","features","pna","destroy","readableDestroyed","destroyed","writableDestroyed","errorEmitted","emitErrorNT","undestroy","ended","endEmitted","ending","finalCalled","prefinished","finished","self","_classCallCheck","instance","Constructor","copyBuffer","BufferList","head","tail","v","entry","next","unshift","clear","s","p","custom","constructor","PassThrough","arg1","arg2","arg3","process","version","runtime","Op","hasOwn","hasOwnProperty","key","desc","$Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","writable","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","state","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","methodName","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","awrap","async","Promise","iter","keys","object","reverse","pop","skipTempReset","prev","charAt","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","Function","copyProps","SafeBuffer","Readable","ReadableState","EElistenerCount","emitter","listeners","Stream","OurUint8Array","window","_uint8ArrayToBuffer","_isUint8Array","debugUtil","debug","debuglog","StringDecoder","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","onEofChunk","chunkInvalid","addChunk","maybeReadMore","needMoreData","emitReadable","get","_undestroy","isPaused","setEncoding","enc","MAX_HWM","computeNewHighWaterMark","howMuchToRead","emitReadable_","flow","maybeReadMore_","pipeOnDrain","nReadingNextTick","resume","resume_","fromList","fromListPartial","hasStrings","copyFromBufferString","copyFromBuffer","nb","endReadable","endReadableNT","xs","l","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","addListener","paused","_fromList","objectKeys","Writable","allowHalfOpen","onEndNT","CorkedRequest","onCorkedFinish","asyncWrite","setImmediate","WritableState","internalUtil","deprecate","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","cork","uncork","setDefaultEncoding","normalizeArray","parts","allowAboveRoot","up","basename","matchedSlash","filter","f","resolvedPath","resolvedAbsolute","split","normalize","isAbsolute","trailingSlash","paths","relative","to","fromParts","toParts","samePartsLength","outputParts","sep","delimiter","dirname","hasRoot","extname","startDot","startPart","preDotState"],"mappings":"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","file":"static/js/chunk-vendors~b58f7129.31230fe3.js","sourcesContent":["module.exports = require('./lib/_stream_duplex.js');\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","// 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}","module.exports = require('./lib/_stream_writable.js');\n","module.exports = require('events').EventEmitter;\n","exports.nextTick = function nextTick(fn) {\n var args = Array.prototype.slice.call(arguments);\n args.shift();\n setTimeout(function () {\n fn.apply(null, args);\n }, 0);\n};\n\nexports.platform = exports.arch = \nexports.execPath = exports.title = 'browser';\nexports.pid = 1;\nexports.browser = true;\nexports.env = {};\nexports.argv = [];\n\nexports.binding = function (name) {\n\tthrow new Error('No such module. (Possibly not yet loaded)')\n};\n\n(function () {\n var cwd = '/';\n var path;\n exports.cwd = function () { return cwd };\n exports.chdir = function (dir) {\n if (!path) path = require('path');\n cwd = path.resolve(dir, cwd);\n };\n})();\n\nexports.exit = exports.kill = \nexports.umask = exports.dlopen = \nexports.uptime = exports.memoryUsage = \nexports.uvCounters = function() {};\nexports.features = {};\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}","// 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};","'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","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; };\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n defineProperty(generator, \"_invoke\", { value: makeInvokeMethod(innerFn, self, context) });\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: true });\n defineProperty(\n GeneratorFunctionPrototype,\n \"constructor\",\n { value: GeneratorFunction, configurable: true }\n );\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n defineProperty(this, \"_invoke\", { value: enqueue });\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method;\n var method = delegate.iterator[methodName];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method, or a missing .next mehtod, always terminate the\n // yield* loop.\n context.delegate = null;\n\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (methodName === \"throw\" && delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n if (methodName !== \"return\") {\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a '\" + methodName + \"' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(val) {\n var object = Object(val);\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\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};","module.exports = require('./readable').PassThrough\n","module.exports = require('./readable').Transform\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};","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\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// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\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"],"sourceRoot":""}