{"version":3,"sources":["webpack:///./node_modules/mqtt/node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/mqtt/node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/node-libs-browser/node_modules/punycode/punycode.js","webpack:///./node_modules/mqtt/node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack:///./node_modules/object-inspect/index.js","webpack:///./node_modules/mqtt/node_modules/duplexify/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack:///./node_modules/mqtt/node_modules/readable-stream/lib/internal/streams/state.js","webpack:///./node_modules/mqtt/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack:///./node_modules/mqtt/node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/node-libs-browser/mock/process.js","webpack:///./node_modules/mqtt/node_modules/duplexify/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack:///./node_modules/mqtt/node_modules/duplexify/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack:///./node_modules/number-allocator/lib/number-allocator.js","webpack:///./node_modules/mqtt/node_modules/duplexify/node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/number-allocator/index.js","webpack:///./node_modules/mqtt/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack:///./node_modules/mqtt/node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/mqtt/node_modules/duplexify/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/mqtt/node_modules/duplexify/node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack:///./node_modules/mqtt/node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/mqtt/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/mqtt/node_modules/ws/browser.js","webpack:///./node_modules/mqtt/node_modules/duplexify/node_modules/readable-stream/lib/internal/streams/state.js","webpack:///./node_modules/mqtt/node_modules/duplexify/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack:///./node_modules/mqtt/node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/mqtt/node_modules/duplexify/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/mqtt/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack:///./node_modules/mqtt/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/mqtt/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack:///./node_modules/mqtt/node_modules/readable-stream/errors-browser.js"],"names":["exports","module","Stream","Readable","Writable","Duplex","Transform","PassThrough","finished","pipeline","CorkedRequest","state","_this","this","next","entry","finish","onCorkedFinish","WritableState","internalUtil","deprecate","Buffer","OurUint8Array","global","Uint8Array","_uint8ArrayToBuffer","chunk","from","_isUint8Array","obj","isBuffer","realHasInstance","destroyImpl","_require","getHighWaterMark","_require$codes","codes","ERR_INVALID_ARG_TYPE","ERR_METHOD_NOT_IMPLEMENTED","ERR_MULTIPLE_CALLBACK","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","errorOrDestroy","nop","options","stream","isDuplex","objectMode","writableObjectMode","highWaterMark","finalCalled","needDrain","ending","ended","destroyed","noDecode","decodeStrings","defaultEncoding","length","writing","corked","sync","bufferProcessing","onwrite","er","writecb","writelen","bufferedRequest","lastBufferedRequest","pendingcb","prefinished","errorEmitted","emitClose","autoDestroy","bufferedRequestCount","corkedRequestsFree","call","_writableState","writable","write","_write","writev","_writev","destroy","_destroy","final","_final","writeAfterEnd","cb","process","nextTick","validChunk","decodeChunk","encoding","writeOrBuffer","isBuf","newChunk","len","ret","last","callback","doWrite","onwriteError","finishMaybe","onwriteStateUpdate","needFinish","clearBuffer","afterWrite","onwriteDrain","emit","l","buffer","Array","holder","count","allBuffers","callFinal","err","prefinish","need","rState","_readableState","endEmitted","endWritable","once","corkReq","prototype","getBuffer","current","out","push","Object","defineProperty","get","_","Symbol","hasInstance","Function","value","object","pipe","cork","uncork","setDefaultEncoding","toLowerCase","indexOf","enumerable","end","undefined","set","_undestroy","undestroy","root","nodeType","freeGlobal","window","self","punycode","maxInt","base","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","errors","baseMinusTMin","floor","Math","stringFromCharCode","String","fromCharCode","error","type","RangeError","map","array","fn","result","mapDomain","string","parts","split","replace","labels","encoded","join","ucs2decode","extra","output","counter","charCodeAt","ucs2encode","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","decode","input","basic","j","index","oldi","w","t","baseMinusT","inputLength","i","n","bias","lastIndexOf","splice","encode","handledCPCount","basicLength","m","q","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","test","slice","toASCII","Error","hasMap","Map","mapSizeDescriptor","getOwnPropertyDescriptor","mapSize","mapForEach","forEach","hasSet","Set","setSizeDescriptor","setSize","setForEach","hasWeakMap","WeakMap","weakMapHas","has","hasWeakSet","WeakSet","weakSetHas","hasWeakRef","WeakRef","weakRefDeref","deref","booleanValueOf","Boolean","valueOf","objectToString","toString","functionToString","$match","match","$slice","$replace","$toUpperCase","toUpperCase","$toLowerCase","$test","RegExp","$concat","concat","$join","$arrSlice","$floor","bigIntValueOf","BigInt","gOPS","getOwnPropertySymbols","symToString","iterator","hasShammedSymbols","toStringTag","isEnumerable","propertyIsEnumerable","gPO","Reflect","getPrototypeOf","__proto__","O","addNumericSeparator","num","str","Infinity","sepRegex","int","intStr","dec","utilInspect","inspectCustom","custom","inspectSymbol","isSymbol","wrapQuotes","s","defaultStyle","opts","quoteChar","quoteStyle","quote","isArray","toStr","isDate","isRegExp","isError","isString","isNumber","isBoolean","e","isBigInt","inspect_","depth","seen","TypeError","maxStringLength","customInspect","indent","parseInt","numericSeparator","inspectString","bigIntStr","maxDepth","getIndent","inspect","noIndent","newOpts","name","nameOf","keys","arrObjKeys","symString","markBoxed","isElement","nodeName","attrs","attributes","childNodes","xs","singleLineValues","indentedJoin","cause","isMap","mapParts","key","collectionOf","isSet","setParts","isWeakMap","weakCollectionOf","isWeakSet","isWeakRef","Number","ys","isPlainObject","constructor","protoTag","stringTag","constructorTag","tag","hasOwn","hasOwnProperty","f","x","HTMLElement","getAttribute","remaining","trailer","lowbyte","c","8","9","10","12","13","size","entries","joinedEntries","baseIndent","prev","lineJoiner","isArr","symMap","syms","eos","called","apply","arguments","ERR_MISSING_ARGS","noop","isRequest","setHeader","abort","destroyer","reading","closed","on","readable","to","popCallback","streams","pop","_len","_key","destroys","reduce","ERR_INVALID_OPT_VALUE","highWaterMarkFrom","duplexKey","hwm","isFinite","_Object$setPrototypeO","_defineProperty","configurable","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","done","readAndResolve","iter","resolve","data","read","onReadable","wrapForNext","lastPromise","reject","then","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","setPrototypeOf","Promise","promise","asyncIterator","_this2","createReadableStreamAsyncIterator","_Object$create","create","code","bind","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","ts","_transformState","transforming","writechunk","rs","needReadable","_read","needTransform","writeencoding","transform","_transform","flush","_flush","err2","args","shift","setTimeout","platform","arch","execPath","title","pid","browser","env","argv","binding","path","cwd","chdir","dir","exit","kill","umask","dlopen","uptime","memoryUsage","uvCounters","features","_toPropertyKey","arg","_toPrimitive","hint","prim","toPrimitive","res","ERR_STREAM_PREMATURE_CLOSE","onlegacyfinish","onfinish","writableEnded","readableEnded","onend","onerror","onclose","onrequest","req","removeListener","SortedSet","OrderedSet","debugTrace","debugError","Interval","low","high","NumberAllocator","min","max","ss","lhs","rhs","compare","clear","equals","other","firstVacant","front","alloc","it","begin","pointer","updateKeyByIterator","eraseElementByPos","use","lowerBound","eraseElementByIterator","insert","free","upperBound","pre","rLow","rHigh","lLow","lHigh","intervalCount","dump","console","log","element","readableDestroyed","writableDestroyed","emitErrorNT","emitCloseNT","emitErrorAndCloseNT","wState","ReadableState","EventEmitter","EElistenerCount","emitter","listeners","debug","debugUtil","debuglog","StringDecoder","BufferList","ERR_STREAM_PUSH_AFTER_EOF","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","kProxyEvents","prependListener","event","_events","unshift","readableObjectMode","pipes","pipesCount","flowing","emittedReadable","readableListening","resumeScheduled","paused","awaitDrain","readingMore","decoder","readableAddChunk","addToFront","skipChunkCheck","onEofChunk","chunkInvalid","addChunk","maybeReadMore","emitReadable","isPaused","setEncoding","enc","p","head","content","MAX_HWM","computeNewHighWaterMark","howMuchToRead","emitReadable_","flow","maybeReadMore_","pipeOnDrain","src","updateReadableListening","listenerCount","resume","nReadingNextTick","resume_","fromList","first","consume","endReadable","endReadableNT","nOrig","doRead","dest","pipeOpts","doEnd","stdout","stderr","endFn","unpipe","onunpipe","unpipeInfo","hasUnpiped","cleanup","ondrain","cleanedUp","ondata","pause","dests","ev","addListener","removeAllListeners","wrap","method","_fromList","iterable","ownKeys","enumerableOnly","symbols","filter","sym","_objectSpread","target","source","getOwnPropertyDescriptors","defineProperties","_classCallCheck","instance","Constructor","_defineProperties","props","descriptor","_createClass","protoProps","staticProps","_require2","copyBuffer","offset","copy","tail","v","allocUnsafe","hasStrings","_getString","_getBuffer","nb","buf","objectKeys","allowHalfOpen","onEndNT","_inheritsLoose","subClass","superClass","createErrorType","message","Base","getMessage","arg1","arg2","arg3","NodeError","_Base","oneOf","expected","thing","startsWith","search","pos","substr","endsWith","this_len","substring","includes","start","actual","determiner","msg"],"mappings":"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","file":"js/chunk-vendors~9c5b28f6.7e191c94.js","sourcesContent":["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');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// 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'use strict';\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} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // 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 // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // 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\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // 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\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // 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\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // 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\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // 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\n this.sync = true; // 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\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\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 value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // 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 // 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 // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\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.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\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 if (typeof cb !== 'function') cb = nop;\n if (state.ending) 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 return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\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 ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\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 get() {\n return this._writableState && this._writableState.getBuffer();\n }\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\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 get() {\n return this._writableState.highWaterMark;\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.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\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\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\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 (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else 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 process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, 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 errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\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 if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\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) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\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} // 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.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\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 var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\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 doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // 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\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 ERR_METHOD_NOT_IMPLEMENTED('_write()'));\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); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\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 get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.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\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\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\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\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 get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n ? Symbol.toStringTag\n : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nfunction addNumericSeparator(num, str) {\n if (\n num === Infinity\n || num === -Infinity\n || num !== num\n || (num && num > -1000 && num < 1000)\n || $test.call(/e/, str)\n ) {\n return str;\n }\n var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n if (typeof num === 'number') {\n var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n if (int !== num) {\n var intStr = String(int);\n var dec = $slice.call(str, intStr.length + 1);\n return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n }\n }\n return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = require('./util.inspect');\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n }\n var numericSeparator = opts.numericSeparator;\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n var str = String(obj);\n return numericSeparator ? addNumericSeparator(obj, str) : str;\n }\n if (typeof obj === 'bigint') {\n var bigIntStr = String(obj) + 'n';\n return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = $arrSlice.call(seen);\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + $toLowerCase.call(String(obj.nodeName));\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '' + $toLowerCase.call(String(obj.nodeName)) + '>';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + $join.call(xs, ', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n }\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n return utilInspect(obj, { depth: maxDepth - depth });\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + $join.call(ys, ', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return $replace.call(String(s), /\"/g, '"');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = $replace.call($replace.call(str, /(['\\\\])/g, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = $join.call(Array(opts.indent + 1), ' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: $join.call(Array(depth + 1), baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ($test.call(/[^\\w$]/, key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar eos;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true;\n\n // request.destroy just do .end - .abort is what we want\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\nfunction call(fn) {\n fn();\n}\nfunction pipe(from, to) {\n return from.pipe(to);\n}\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\nmodule.exports = pipeline;","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","// 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// 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'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\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 Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // 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\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\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}; // 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.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\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\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}; // 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.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\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 Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\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\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = require('./end-of-stream');\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n }\n\n // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\nmodule.exports = eos;","// Copyright Takatoshi Kondo 2021\n//\n// Distributed under the MIT License\n\n'use strict'\n\nconst SortedSet = require('js-sdsl').OrderedSet\nconst debugTrace = require('debug')('number-allocator:trace')\nconst debugError = require('debug')('number-allocator:error')\n/**\n * Interval constructor\n * @constructor\n * @param {Number} low - The lowest value of the interval\n * @param {Number} high - The highest value of the interval\n */\nfunction Interval (low, high) {\n this.low = low\n this.high = high\n}\n\nInterval.prototype.equals = function (other) {\n return this.low === other.low && this.high === other.high\n}\n\nInterval.prototype.compare = function (other) {\n if (this.low < other.low && this.high < other.low) return -1\n if (other.low < this.low && other.high < this.low) return 1\n return 0\n}\n\n/**\n * NumberAllocator constructor.\n * The all numbers are set to vacant status.\n * Time Complexity O(1)\n * @constructor\n * @param {Number} min - The maximum number of allocatable. The number must be integer.\n * @param {Number} maxh - The minimum number of allocatable. The number must be integer.\n */\nfunction NumberAllocator (min, max) {\n if (!(this instanceof NumberAllocator)) {\n return new NumberAllocator(min, max)\n }\n\n this.min = min\n this.max = max\n\n this.ss = new SortedSet(\n [],\n (lhs, rhs) => {\n return lhs.compare(rhs)\n }\n )\n debugTrace('Create')\n this.clear()\n}\n\n/**\n * Get the first vacant number. The status of the number is not updated.\n * Time Complexity O(1)\n * @return {Number} - The first vacant number. If all numbers are occupied, return null.\n * When alloc() is called then the same value will be allocated.\n */\nNumberAllocator.prototype.firstVacant = function () {\n if (this.ss.size() === 0) return null\n return this.ss.front().low\n}\n\n/**\n * Allocate the first vacant number. The number become occupied status.\n * Time Complexity O(1)\n * @return {Number} - The first vacant number. If all numbers are occupied, return null.\n */\nNumberAllocator.prototype.alloc = function () {\n if (this.ss.size() === 0) {\n debugTrace('alloc():empty')\n return null\n }\n const it = this.ss.begin()\n const low = it.pointer.low\n const high = it.pointer.high\n const num = low\n if (num + 1 <= high) {\n // x|----|\n this.ss.updateKeyByIterator(it, new Interval(low + 1, high))\n } else {\n this.ss.eraseElementByPos(0)\n }\n debugTrace('alloc():' + num)\n return num\n}\n\n/**\n * Use the number. The number become occupied status.\n * If the number has already been occupied, then return false.\n * Time Complexity O(logN) : N is the number of intervals (not numbers)\n * @param {Number} num - The number to request use.\n * @return {Boolean} - If `num` was not occupied, then return true, otherwise return false.\n */\nNumberAllocator.prototype.use = function (num) {\n const key = new Interval(num, num)\n const it = this.ss.lowerBound(key)\n if (!it.equals(this.ss.end())) {\n const low = it.pointer.low\n const high = it.pointer.high\n if (it.pointer.equals(key)) {\n // |x|\n this.ss.eraseElementByIterator(it)\n debugTrace('use():' + num)\n return true\n }\n\n // x |-----|\n if (low > num) return false\n\n // |x----|\n if (low === num) {\n // x|----|\n this.ss.updateKeyByIterator(it, new Interval(low + 1, high))\n debugTrace('use():' + num)\n return true\n }\n\n // |----x|\n if (high === num) {\n // |----|x\n this.ss.updateKeyByIterator(it, new Interval(low, high - 1))\n debugTrace('use():' + num)\n return true\n }\n\n // |--x--|\n // x|--|\n this.ss.updateKeyByIterator(it, new Interval(num + 1, high))\n // |--|x|--|\n this.ss.insert(new Interval(low, num - 1))\n debugTrace('use():' + num)\n return true\n }\n\n debugTrace('use():failed')\n return false\n}\n\n/**\n * Deallocate the number. The number become vacant status.\n * Time Complexity O(logN) : N is the number of intervals (not numbers)\n * @param {Number} num - The number to deallocate. The number must be occupied status.\n * In other words, the number must be allocated by alloc() or occupied be use().\n */\nNumberAllocator.prototype.free = function (num) {\n if (num < this.min || num > this.max) {\n debugError('free():' + num + ' is out of range')\n return\n }\n const key = new Interval(num, num)\n const it = this.ss.upperBound(key)\n if (it.equals(this.ss.end())) {\n // ....v\n if (it.equals(this.ss.begin())) {\n // Insert new interval\n this.ss.insert(key)\n return\n }\n it.pre()\n const low = it.pointer.high\n const high = it.pointer.high\n if (high + 1 === num) {\n // Concat to left\n this.ss.updateKeyByIterator(it, new Interval(low, num))\n } else {\n // Insert new interval\n this.ss.insert(key)\n }\n } else {\n if (it.equals(this.ss.begin())) {\n // v....\n if (num + 1 === it.pointer.low) {\n // Concat to right\n const high = it.pointer.high\n this.ss.updateKeyByIterator(it, new Interval(num, high))\n } else {\n // Insert new interval\n this.ss.insert(key)\n }\n } else {\n // ..v..\n const rLow = it.pointer.low\n const rHigh = it.pointer.high\n it.pre()\n const lLow = it.pointer.low\n const lHigh = it.pointer.high\n if (lHigh + 1 === num) {\n if (num + 1 === rLow) {\n // Concat to left and right\n this.ss.eraseElementByIterator(it)\n this.ss.updateKeyByIterator(it, new Interval(lLow, rHigh))\n } else {\n // Concat to left\n this.ss.updateKeyByIterator(it, new Interval(lLow, num))\n }\n } else {\n if (num + 1 === rLow) {\n // Concat to right\n this.ss.eraseElementByIterator(it.next())\n this.ss.insert(new Interval(num, rHigh))\n } else {\n // Insert new interval\n this.ss.insert(key)\n }\n }\n }\n }\n debugTrace('free():' + num)\n}\n\n/**\n * Clear all occupied numbers.\n * The all numbers are set to vacant status.\n * Time Complexity O(1)\n */\nNumberAllocator.prototype.clear = function () {\n debugTrace('clear()')\n this.ss.clear()\n this.ss.insert(new Interval(this.min, this.max))\n}\n\n/**\n * Get the number of intervals. Interval is internal structure of this library.\n * This function is for debugging.\n * Time Complexity O(1)\n * @return {Number} - The number of intervals.\n */\nNumberAllocator.prototype.intervalCount = function () {\n return this.ss.size()\n}\n\n/**\n * Dump the internal structor of the library.\n * This function is for debugging.\n * Time Complexity O(N) : N is the number of intervals (not numbers)\n */\nNumberAllocator.prototype.dump = function () {\n console.log('length:' + this.ss.size())\n for (const element of this.ss) {\n console.log(element)\n }\n}\n\nmodule.exports = NumberAllocator\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');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","// Copyright Takatoshi Kondo 2021\n//\n// Distributed under the MIT License\n\nconst NumberAllocator = require('./lib/number-allocator.js')\n\nmodule.exports.NumberAllocator = NumberAllocator\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","// 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// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\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 this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\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 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}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\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'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\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); // 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\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // 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\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // 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\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // 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\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; // 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\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // 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\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\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 if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\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 get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\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.\n\n\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\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\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\n if (er) {\n errorOrDestroy(stream, 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) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\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 maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\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 if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\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\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\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 } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // 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\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || 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); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\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 // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\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; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // 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\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 = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\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; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\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.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\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.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\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.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\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\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\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 } // 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\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\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 cleanedUp = true; // 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\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\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 }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\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 = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\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 if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\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, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\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\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\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.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\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 stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\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\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\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 get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\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 get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\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 get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\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 get() {\n return this._readableState.length;\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.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\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.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\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\n return -1;\n}","module.exports = require('events').EventEmitter;\n","'use strict';\n\nmodule.exports = function () {\n throw new Error(\n 'ws does not work in the browser. Browser clients must use the native ' +\n 'WebSocket object'\n );\n};\n","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n\n // Default value\n return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\nvar _require2 = require('util'),\n inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: 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 key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) ret += s + p.data;\n return ret;\n }\n }, {\n key: \"concat\",\n value: 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 // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.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) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.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) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\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// 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'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\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 Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\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 get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\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 get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\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 get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\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 get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(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 } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","module.exports = require('events').EventEmitter;\n","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","'use strict'; // undocumented cb() API, needed for core, not for public API\n\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 process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\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\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\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 process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\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\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: 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 key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: 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\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\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\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\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\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n"],"sourceRoot":""}