-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvendors~ConnectedStandaloneRouting~IHEInvokeImageDisplay~ViewerLocalFileData~ViewerRouting~ZipFileData.bundle.4f2857a659366518aa2e.js.map
1 lines (1 loc) · 170 KB
/
vendors~ConnectedStandaloneRouting~IHEInvokeImageDisplay~ViewerLocalFileData~ViewerRouting~ZipFileData.bundle.4f2857a659366518aa2e.js.map
1
{"version":3,"sources":["webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/readable-stream/lib/_stream_duplex.js","webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/inherits/inherits_browser.js","webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/core-util-is/lib/util.js","webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/process-nextick-args/index.js","webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/safe-buffer/index.js","webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/lodash/values.js","webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/stream-browserify/index.js","webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/events/events.js","webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/readable-stream/readable-browser.js","webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/readable-stream/lib/_stream_writable.js","webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/readable-stream/lib/_stream_readable.js","webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/timers-browserify/main.js","webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/string_decoder/lib/string_decoder.js","webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/readable-stream/lib/_stream_transform.js","webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/lodash/_baseValues.js","webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/setimmediate/setImmediate.js","webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/util-deprecate/browser.js","webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/readable-stream/lib/_stream_passthrough.js","webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/readable-stream/writable-browser.js","webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/readable-stream/duplex-browser.js","webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/readable-stream/transform.js","webpack:////Users/kaiyuhsu/Documents/projects/medervahealth/ohif-source/node_modules/readable-stream/passthrough.js"],"names":["pna","objectKeys","Object","keys","obj","key","push","module","exports","Duplex","util","inherits","Readable","Writable","prototype","v","length","method","options","this","call","readable","writable","allowHalfOpen","once","onend","_writableState","ended","nextTick","onEndNT","self","end","defineProperty","enumerable","get","highWaterMark","undefined","_readableState","destroyed","set","value","_destroy","err","cb","create","ctor","superCtor","super_","constructor","configurable","TempCtor","objectToString","o","toString","isArray","arg","Array","isBoolean","isNull","isNullOrUndefined","isNumber","isString","isSymbol","isUndefined","isRegExp","re","isObject","isDate","d","isError","e","Error","isFunction","isPrimitive","isBuffer","Buffer","process","version","indexOf","fn","arg1","arg2","arg3","TypeError","args","i","len","arguments","apply","buffer","copyProps","src","dst","SafeBuffer","encodingOrOffset","from","alloc","allocUnsafe","allocUnsafeSlow","size","fill","encoding","buf","SlowBuffer","baseValues","object","Stream","EE","EventEmitter","Transform","PassThrough","pipe","dest","source","ondata","chunk","write","pause","ondrain","resume","on","_isStdio","onclose","didOnEnd","destroy","onerror","er","cleanup","listenerCount","removeListener","emit","ReflectOwnKeys","R","Reflect","ReflectApply","target","receiver","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","concat","NumberIsNaN","Number","isNaN","init","_events","_eventsCount","_maxListeners","defaultMaxListeners","$getMaxListeners","that","_addListener","type","listener","prepend","m","events","existing","warning","newListener","unshift","warned","w","String","name","emitter","count","console","warn","onceWrapper","fired","wrapFn","_onceWrap","state","wrapped","bind","_listeners","unwrap","evlistener","arr","ret","unwrapListeners","arrayClone","n","copy","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","error","message","context","handler","listeners","addListener","prependListener","prependOnceListener","list","position","originalListener","shift","index","pop","spliceOne","off","removeAllListeners","rawListeners","eventNames","CorkedRequest","_this","next","entry","finish","corkReq","callback","pendingcb","corkedRequestsFree","onCorkedFinish","asyncWrite","browser","slice","setImmediate","WritableState","internalUtil","deprecate","OurUint8Array","global","Uint8Array","realHasInstance","destroyImpl","nop","stream","isDuplex","objectMode","writableObjectMode","hwm","writableHwm","writableHighWaterMark","defaultHwm","Math","floor","finalCalled","needDrain","ending","finished","noDecode","decodeStrings","defaultEncoding","writing","corked","sync","bufferProcessing","onwrite","writecb","writelen","onwriteStateUpdate","finishMaybe","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","_write","writev","_writev","final","_final","doWrite","onwriteDrain","l","holder","allBuffers","isBuf","callFinal","need","prefinish","getBuffer","current","out","_","Symbol","hasInstance","_uint8ArrayToBuffer","writeAfterEnd","valid","validChunk","newChunk","decodeChunk","last","writeOrBuffer","cork","uncork","setDefaultEncoding","toLowerCase","endWritable","_undestroy","undestroy","ReadableState","EElistenerCount","debugUtil","debug","debuglog","StringDecoder","BufferList","kProxyEvents","readableObjectMode","readableHwm","readableHighWaterMark","pipes","pipesCount","flowing","endEmitted","reading","needReadable","emittedReadable","readableListening","resumeScheduled","awaitDrain","readingMore","decoder","read","_read","readableAddChunk","addToFront","skipChunkCheck","emitReadable","onEofChunk","chunkInvalid","addChunk","maybeReadMore","needMoreData","isPaused","setEncoding","enc","MAX_HWM","howMuchToRead","head","data","computeNewHighWaterMark","emitReadable_","flow","maybeReadMore_","nReadingNextTick","resume_","fromList","join","clear","hasStrings","p","c","str","nb","tail","copyFromBufferString","copyFromBuffer","fromListPartial","endReadable","endReadableNT","xs","x","parseInt","nOrig","doRead","pipeOpts","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","onfinish","cleanedUp","pipeOnDrain","increasedAwaitDrain","event","dests","splice","ev","res","wrap","paused","_fromList","emitErrorNT","readableDestroyed","writableDestroyed","window","Timeout","id","clearFn","_id","_clearFn","setTimeout","scope","clearTimeout","setInterval","clearInterval","timeout","close","unref","ref","enroll","item","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","clearImmediate","isEncoding","nenc","retried","_normalizeEncoding","normalizeEncoding","text","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","r","utf8CheckExtraBytes","charCodeAt","total","j","utf8CheckIncomplete","afterTransform","ts","_transformState","transforming","writechunk","rs","needTransform","writeencoding","transform","_transform","flush","_flush","done","_this2","err2","arrayMap","props","instance","Constructor","_classCallCheck","s","offset","inspect","custom","registerImmediate","html","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","doc","document","attachTo","handle","runIfPresent","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","createElement","documentElement","script","onreadystatechange","removeChild","appendChild","random","addEventListener","attachEvent","task","run","config","localStorage","val","msg","trace"],"mappings":"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","file":"vendors~ConnectedStandaloneRouting~IHEInvokeImageDisplay~ViewerLocalFileData~ViewerRouting~ZipFileData.bundle.4f2857a659366518aa2e.js","sourcesContent":["// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\n/*<replacement>*/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/*</replacement>*/\n\nmodule.exports = Duplex;\n\n/*<replacement>*/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/*</replacement>*/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","var baseValues = require('./_baseValues'),\n keys = require('./keys');\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nmodule.exports = values;\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\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/readable.js');\nStream.Writable = require('readable-stream/writable.js');\nStream.Duplex = require('readable-stream/duplex.js');\nStream.Transform = require('readable-stream/transform.js');\nStream.PassThrough = require('readable-stream/passthrough.js');\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction $getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = $getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) args.push(arguments[i]);\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n ReflectApply(this.listener, this.target, args);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\nmodule.exports = Writable;\n\n/* <replacement> */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* </replacement> */\n\n/*<replacement>*/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/*</replacement>*/\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nWritable.WritableState = WritableState;\n\n/*<replacement>*/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/*</replacement>*/\n\n/*<replacement>*/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/*</replacement>*/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /*<replacement>*/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /*</replacement>*/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\nmodule.exports = Readable;\n\n/*<replacement>*/\nvar isArray = require('isarray');\n/*</replacement>*/\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nReadable.ReadableState = ReadableState;\n\n/*<replacement>*/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/*</replacement>*/\n\n/*<replacement>*/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/*</replacement>*/\n\n/*<replacement>*/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/*</replacement>*/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","module.exports = require('events').EventEmitter;\n","'use strict';\n\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\n/*</replacement>*/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/*<replacement>*/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/*</replacement>*/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","var arrayMap = require('./_arrayMap');\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nmodule.exports = baseValues;\n","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement(\"script\");\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n\n function installSetTimeoutImplementation() {\n registerImmediate = function(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n\n // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n\n // Don't get fooled by e.g. browserify environments.\n if ({}.toString.call(global.process) === \"[object process]\") {\n // For Node.js before 0.9\n installNextTickImplementation();\n\n } else if (canUsePostMessage()) {\n // For non-IE10 modern browsers\n installPostMessageImplementation();\n\n } else if (global.MessageChannel) {\n // For web workers, where supported\n installMessageChannelImplementation();\n\n } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n // For IE 6–8\n installReadyStateChangeImplementation();\n\n } else {\n // For older browsers\n installSetTimeoutImplementation();\n }\n\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n}(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self));\n","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/*<replacement>*/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/*</replacement>*/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","module.exports = require('./lib/_stream_writable.js');\n","module.exports = require('./lib/_stream_duplex.js');\n","module.exports = require('./readable').Transform\n","module.exports = require('./readable').PassThrough\n"],"sourceRoot":""}