{"version":3,"sources":["webpack:///./node_modules/url/url.js","webpack:///./node_modules/node-libs-browser/node_modules/punycode/punycode.js","webpack:///./node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/url/util.js","webpack:///./node_modules/core-util-is/lib/util.js","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/xtend/immutable.js","webpack:///./node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack:///./node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/string_decoder/lib/string_decoder.js","webpack:///./node_modules/node-libs-browser/node_modules/events/events.js","webpack:///./node_modules/safe-buffer/index.js","webpack:///./node_modules/builtin-status-codes/browser.js","webpack:///./node_modules/querystring-es3/decode.js","webpack:///./node_modules/stream-http/lib/request.js","webpack:///./node_modules/stream-http/index.js","webpack:///./node_modules/process-nextick-args/index.js","webpack:///./node_modules/stream-http/lib/capability.js","webpack:///./node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/querystring-es3/index.js","webpack:///./node_modules/util-deprecate/browser.js","webpack:///./node_modules/stream-http/lib/response.js","webpack:///./node_modules/to-arraybuffer/index.js","webpack:///./node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/querystring-es3/encode.js","webpack:///./node_modules/readable-stream/readable-browser.js","webpack:///./src/views/PrintNotification.vue?bf76","webpack:///src/views/PrintNotification.vue","webpack:///./src/views/PrintNotification.vue?36b7","webpack:///./src/views/PrintNotification.vue"],"names":["punycode","util","Url","this","protocol","slashes","auth","host","port","hostname","hash","search","query","pathname","path","href","exports","parse","urlParse","resolve","urlResolve","resolveObject","urlResolveObject","format","urlFormat","protocolPattern","portPattern","simplePathPattern","delims","unwise","concat","autoEscape","nonHostChars","hostEndingChars","hostnameMaxLen","hostnamePartPattern","hostnamePartStart","unsafeProtocol","hostlessProtocol","slashedProtocol","querystring","url","parseQueryString","slashesDenoteHost","isObject","u","obj","isString","prototype","call","source","relative","TypeError","queryIndex","indexOf","splitter","uSplit","split","slashRegex","replace","join","rest","trim","length","simplePath","exec","substr","proto","lowerProto","toLowerCase","match","atSign","hostEnd","i","hec","lastIndexOf","slice","decodeURIComponent","parseHost","ipv6Hostname","hostparts","l","part","newpart","j","k","charCodeAt","validParts","notHost","bit","push","unshift","toASCII","p","h","ae","esc","encodeURIComponent","escape","qm","s","Object","keys","stringify","charAt","rel","result","tkeys","tk","tkey","rkeys","rk","rkey","v","relPath","shift","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","pop","isNullOrUndefined","authInHost","isNull","last","hasTrailingSlash","up","splice","isAbsolute","root","nodeType","module","freeGlobal","global","window","self","maxInt","base","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","errors","baseMinusTMin","floor","Math","stringFromCharCode","String","fromCharCode","error","type","RangeError","map","array","fn","mapDomain","string","parts","labels","encoded","ucs2decode","value","extra","output","counter","ucs2encode","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","decode","input","out","basic","index","oldi","w","t","baseMinusT","inputLength","n","bias","encode","handledCPCount","basicLength","m","q","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","test","Transform","Duplex","create","afterTransform","er","data","ts","_transformState","transforming","cb","writecb","emit","Error","writechunk","rs","_readableState","reading","needReadable","highWaterMark","_read","options","bind","needTransform","writeencoding","sync","transform","_transform","flush","_flush","on","prefinish","_this","done","stream","_writableState","inherits","chunk","encoding","_write","_destroy","err","_this2","err2","arg","isArray","Array","objectToString","isBoolean","isNumber","isSymbol","isUndefined","isRegExp","re","isDate","d","isError","e","isFunction","isPrimitive","o","toString","isBuffer","Buffer","ctor","superCtor","super_","constructor","enumerable","writable","configurable","TempCtor","EventEmitter","pna","destroy","readableDestroyed","destroyed","writableDestroyed","errorEmitted","nextTick","emitErrorNT","undestroy","ended","endEmitted","ending","finished","extend","hasOwnProperty","target","arguments","key","_classCallCheck","instance","Constructor","copyBuffer","src","offset","copy","BufferList","head","tail","entry","next","ret","clear","alloc","allocUnsafe","inspect","custom","name","PassThrough","isEncoding","_normalizeEncoding","enc","retried","normalizeEncoding","nenc","StringDecoder","nb","text","utf16Text","end","utf16End","fillLast","utf8FillLast","base64Text","base64End","write","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","utf8CheckIncomplete","buf","utf8CheckExtraBytes","r","undefined","utf8Text","total","utf8End","c","ReflectOwnKeys","R","Reflect","ReflectApply","apply","receiver","args","Function","ProcessEmitWarning","warning","console","warn","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","Number","isNaN","init","once","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","that","_addListener","prepend","events","existing","newListener","warned","emitter","count","onceWrapper","fired","removeListener","wrapFn","_onceWrap","state","wrapped","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","arr","spliceOne","list","Promise","reject","eventListener","errorListener","defineProperty","get","set","getPrototypeOf","setMaxListeners","getMaxListeners","doError","message","context","handler","len","listeners","addListener","prependListener","prependOnceListener","position","originalListener","off","removeAllListeners","rawListeners","eventNames","buffer","copyProps","dst","SafeBuffer","encodingOrOffset","from","allocUnsafeSlow","size","fill","SlowBuffer","prop","qs","sep","eq","regexp","maxKeys","kstr","vstr","x","idx","xs","response","toArrayBuffer","IncomingMessage","rStates","readyStates","decideMode","preferBinary","useFetch","capability","fetch","mozchunkedarraybuffer","msstream","arraybuffer","vbArray","ClientRequest","opts","Writable","_opts","_body","_headers","setHeader","headers","forEach","mode","abortController","overrideMimeType","_mode","_fetchTimer","_onFinish","statusValid","xhr","status","lowerName","unsafeHeaders","getHeader","header","removeHeader","_destroyed","headersObj","body","method","blobConstructor","Blob","headersList","keyName","signal","controller","AbortController","_fetchAbortController","requestTimeout","setTimeout","abort","credentials","withCredentials","then","_fetchResponse","_connect","reason","clearTimeout","_xhr","XMLHttpRequest","open","process","responseType","timeout","ontimeout","setRequestHeader","_response","onreadystatechange","readyState","LOADING","DONE","_onXHRProgress","onprogress","onerror","send","flushHeaders","setNoDelay","setSocketKeepAlive","statusCodes","http","request","defaultProtocol","location","toUpperCase","req","Agent","defaultMaxSockets","globalAgent","STATUS_CODES","METHODS","arg1","arg2","arg3","version","writableStream","WritableStream","ArrayBuffer","getXHR","XDomainRequest","checkTypeSupport","haveArrayBuffer","haveSlice","VBArray","Readable","ReadableState","EElistenerCount","Stream","OurUint8Array","Uint8Array","_uint8ArrayToBuffer","_isUint8Array","debugUtil","debug","debuglog","destroyImpl","kProxyEvents","event","isDuplex","objectMode","readableObjectMode","hwm","readableHwm","readableHighWaterMark","defaultHwm","pipes","pipesCount","flowing","emittedReadable","readableListening","resumeScheduled","defaultEncoding","awaitDrain","readingMore","decoder","readable","read","readableAddChunk","addToFront","skipChunkCheck","onEofChunk","chunkInvalid","addChunk","maybeReadMore","needMoreData","emitReadable","_undestroy","isPaused","setEncoding","MAX_HWM","computeNewHighWaterMark","howMuchToRead","emitReadable_","flow","maybeReadMore_","pipeOnDrain","nReadingNextTick","resume","resume_","fromList","fromListPartial","hasStrings","copyFromBufferString","copyFromBuffer","str","endReadable","endReadableNT","parseInt","nOrig","doRead","pipe","dest","pipeOpts","doEnd","stdout","stderr","endFn","onend","unpipe","onunpipe","unpipeInfo","hasUnpiped","cleanup","ondrain","cleanedUp","onclose","onfinish","ondata","needDrain","increasedAwaitDrain","pause","dests","ev","res","wrap","paused","_fromList","objectKeys","allowHalfOpen","onEndNT","deprecate","msg","config","deprecated","trace","localStorage","_","val","UNSENT","OPENED","HEADERS_RECEIVED","fetchTimer","rawHeaders","trailers","rawTrailers","statusCode","statusMessage","statusText","_resumeFetch","close","pipeTo","catch","reader","getReader","_pos","responseURL","getAllResponseHeaders","matches","_charset","mimeType","charsetMatch","responseBody","toArray","responseText","newData","MSStreamReader","byteLength","onload","readAsArrayBuffer","byteOffset","arrayCopy","CorkedRequest","finish","onCorkedFinish","asyncWrite","browser","setImmediate","WritableState","internalUtil","realHasInstance","nop","writableObjectMode","writableHwm","writableHighWaterMark","finalCalled","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","bufferedRequest","lastBufferedRequest","pendingcb","prefinished","bufferedRequestCount","corkedRequestsFree","writev","_writev","final","_final","writeAfterEnd","validChunk","valid","decodeChunk","writeOrBuffer","isBuf","newChunk","callback","doWrite","onwriteError","finishMaybe","onwriteStateUpdate","needFinish","clearBuffer","afterWrite","onwriteDrain","holder","allBuffers","callFinal","need","endWritable","corkReq","getBuffer","current","Symbol","hasInstance","object","cork","uncork","setDefaultEncoding","stringifyPrimitive","isFinite","ks","f","render","_vm","_h","$createElement","_c","_self","domProps","_s","detailPrintNotification","staticRenderFns","computed","created","getHtmlPrintNotification","watch","getVesselTripId","isEqual","newValue","oldValue","log","loading","$vs","methods","component"],"mappings":"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","file":"js/chunk-7f0ae5a8.8a1774b5.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'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n util.isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","'use strict';\n\nmodule.exports = {\n isString: function(arg) {\n return typeof(arg) === 'string';\n },\n isObject: function(arg) {\n return typeof(arg) === 'object' && arg !== null;\n },\n isNull: function(arg) {\n return arg === null;\n },\n isNullOrUndefined: function(arg) {\n return arg == null;\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","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","module.exports = require('events').EventEmitter;\n","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!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};","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\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}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function eventListener() {\n if (errorListener !== undefined) {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n var errorListener;\n\n // Adding an error listener is not optional because\n // if an error is thrown on an event emitter we cannot\n // guarantee that the actual event we are waiting will\n // be fired. The result could be a silent way to create\n // memory or file descriptor leaks, which is something\n // we should avoid.\n if (name !== 'error') {\n errorListener = function errorListener(err) {\n emitter.removeListener(name, eventListener);\n reject(err);\n };\n\n emitter.once('error', errorListener);\n }\n\n emitter.once(name, eventListener);\n });\n}\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","module.exports = {\n \"100\": \"Continue\",\n \"101\": \"Switching Protocols\",\n \"102\": \"Processing\",\n \"200\": \"OK\",\n \"201\": \"Created\",\n \"202\": \"Accepted\",\n \"203\": \"Non-Authoritative Information\",\n \"204\": \"No Content\",\n \"205\": \"Reset Content\",\n \"206\": \"Partial Content\",\n \"207\": \"Multi-Status\",\n \"208\": \"Already Reported\",\n \"226\": \"IM Used\",\n \"300\": \"Multiple Choices\",\n \"301\": \"Moved Permanently\",\n \"302\": \"Found\",\n \"303\": \"See Other\",\n \"304\": \"Not Modified\",\n \"305\": \"Use Proxy\",\n \"307\": \"Temporary Redirect\",\n \"308\": \"Permanent Redirect\",\n \"400\": \"Bad Request\",\n \"401\": \"Unauthorized\",\n \"402\": \"Payment Required\",\n \"403\": \"Forbidden\",\n \"404\": \"Not Found\",\n \"405\": \"Method Not Allowed\",\n \"406\": \"Not Acceptable\",\n \"407\": \"Proxy Authentication Required\",\n \"408\": \"Request Timeout\",\n \"409\": \"Conflict\",\n \"410\": \"Gone\",\n \"411\": \"Length Required\",\n \"412\": \"Precondition Failed\",\n \"413\": \"Payload Too Large\",\n \"414\": \"URI Too Long\",\n \"415\": \"Unsupported Media Type\",\n \"416\": \"Range Not Satisfiable\",\n \"417\": \"Expectation Failed\",\n \"418\": \"I'm a teapot\",\n \"421\": \"Misdirected Request\",\n \"422\": \"Unprocessable Entity\",\n \"423\": \"Locked\",\n \"424\": \"Failed Dependency\",\n \"425\": \"Unordered Collection\",\n \"426\": \"Upgrade Required\",\n \"428\": \"Precondition Required\",\n \"429\": \"Too Many Requests\",\n \"431\": \"Request Header Fields Too Large\",\n \"451\": \"Unavailable For Legal Reasons\",\n \"500\": \"Internal Server Error\",\n \"501\": \"Not Implemented\",\n \"502\": \"Bad Gateway\",\n \"503\": \"Service Unavailable\",\n \"504\": \"Gateway Timeout\",\n \"505\": \"HTTP Version Not Supported\",\n \"506\": \"Variant Also Negotiates\",\n \"507\": \"Insufficient Storage\",\n \"508\": \"Loop Detected\",\n \"509\": \"Bandwidth Limit Exceeded\",\n \"510\": \"Not Extended\",\n \"511\": \"Network Authentication Required\"\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n","var capability = require('./capability')\nvar inherits = require('inherits')\nvar response = require('./response')\nvar stream = require('readable-stream')\nvar toArrayBuffer = require('to-arraybuffer')\n\nvar IncomingMessage = response.IncomingMessage\nvar rStates = response.readyStates\n\nfunction decideMode (preferBinary, useFetch) {\n\tif (capability.fetch && useFetch) {\n\t\treturn 'fetch'\n\t} else if (capability.mozchunkedarraybuffer) {\n\t\treturn 'moz-chunked-arraybuffer'\n\t} else if (capability.msstream) {\n\t\treturn 'ms-stream'\n\t} else if (capability.arraybuffer && preferBinary) {\n\t\treturn 'arraybuffer'\n\t} else if (capability.vbArray && preferBinary) {\n\t\treturn 'text:vbarray'\n\t} else {\n\t\treturn 'text'\n\t}\n}\n\nvar ClientRequest = module.exports = function (opts) {\n\tvar self = this\n\tstream.Writable.call(self)\n\n\tself._opts = opts\n\tself._body = []\n\tself._headers = {}\n\tif (opts.auth)\n\t\tself.setHeader('Authorization', 'Basic ' + new Buffer(opts.auth).toString('base64'))\n\tObject.keys(opts.headers).forEach(function (name) {\n\t\tself.setHeader(name, opts.headers[name])\n\t})\n\n\tvar preferBinary\n\tvar useFetch = true\n\tif (opts.mode === 'disable-fetch' || ('requestTimeout' in opts && !capability.abortController)) {\n\t\t// If the use of XHR should be preferred. Not typically needed.\n\t\tuseFetch = false\n\t\tpreferBinary = true\n\t} else if (opts.mode === 'prefer-streaming') {\n\t\t// If streaming is a high priority but binary compatibility and\n\t\t// the accuracy of the 'content-type' header aren't\n\t\tpreferBinary = false\n\t} else if (opts.mode === 'allow-wrong-content-type') {\n\t\t// If streaming is more important than preserving the 'content-type' header\n\t\tpreferBinary = !capability.overrideMimeType\n\t} else if (!opts.mode || opts.mode === 'default' || opts.mode === 'prefer-fast') {\n\t\t// Use binary if text streaming may corrupt data or the content-type header, or for speed\n\t\tpreferBinary = true\n\t} else {\n\t\tthrow new Error('Invalid value for opts.mode')\n\t}\n\tself._mode = decideMode(preferBinary, useFetch)\n\tself._fetchTimer = null\n\n\tself.on('finish', function () {\n\t\tself._onFinish()\n\t})\n}\n\ninherits(ClientRequest, stream.Writable)\n\nClientRequest.prototype.setHeader = function (name, value) {\n\tvar self = this\n\tvar lowerName = name.toLowerCase()\n\t// This check is not necessary, but it prevents warnings from browsers about setting unsafe\n\t// headers. To be honest I'm not entirely sure hiding these warnings is a good thing, but\n\t// http-browserify did it, so I will too.\n\tif (unsafeHeaders.indexOf(lowerName) !== -1)\n\t\treturn\n\n\tself._headers[lowerName] = {\n\t\tname: name,\n\t\tvalue: value\n\t}\n}\n\nClientRequest.prototype.getHeader = function (name) {\n\tvar header = this._headers[name.toLowerCase()]\n\tif (header)\n\t\treturn header.value\n\treturn null\n}\n\nClientRequest.prototype.removeHeader = function (name) {\n\tvar self = this\n\tdelete self._headers[name.toLowerCase()]\n}\n\nClientRequest.prototype._onFinish = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\tvar opts = self._opts\n\n\tvar headersObj = self._headers\n\tvar body = null\n\tif (opts.method !== 'GET' && opts.method !== 'HEAD') {\n\t\tif (capability.arraybuffer) {\n\t\t\tbody = toArrayBuffer(Buffer.concat(self._body))\n\t\t} else if (capability.blobConstructor) {\n\t\t\tbody = new global.Blob(self._body.map(function (buffer) {\n\t\t\t\treturn toArrayBuffer(buffer)\n\t\t\t}), {\n\t\t\t\ttype: (headersObj['content-type'] || {}).value || ''\n\t\t\t})\n\t\t} else {\n\t\t\t// get utf8 string\n\t\t\tbody = Buffer.concat(self._body).toString()\n\t\t}\n\t}\n\n\t// create flattened list of headers\n\tvar headersList = []\n\tObject.keys(headersObj).forEach(function (keyName) {\n\t\tvar name = headersObj[keyName].name\n\t\tvar value = headersObj[keyName].value\n\t\tif (Array.isArray(value)) {\n\t\t\tvalue.forEach(function (v) {\n\t\t\t\theadersList.push([name, v])\n\t\t\t})\n\t\t} else {\n\t\t\theadersList.push([name, value])\n\t\t}\n\t})\n\n\tif (self._mode === 'fetch') {\n\t\tvar signal = null\n\t\tvar fetchTimer = null\n\t\tif (capability.abortController) {\n\t\t\tvar controller = new AbortController()\n\t\t\tsignal = controller.signal\n\t\t\tself._fetchAbortController = controller\n\n\t\t\tif ('requestTimeout' in opts && opts.requestTimeout !== 0) {\n\t\t\t\tself._fetchTimer = global.setTimeout(function () {\n\t\t\t\t\tself.emit('requestTimeout')\n\t\t\t\t\tif (self._fetchAbortController)\n\t\t\t\t\t\tself._fetchAbortController.abort()\n\t\t\t\t}, opts.requestTimeout)\n\t\t\t}\n\t\t}\n\n\t\tglobal.fetch(self._opts.url, {\n\t\t\tmethod: self._opts.method,\n\t\t\theaders: headersList,\n\t\t\tbody: body || undefined,\n\t\t\tmode: 'cors',\n\t\t\tcredentials: opts.withCredentials ? 'include' : 'same-origin',\n\t\t\tsignal: signal\n\t\t}).then(function (response) {\n\t\t\tself._fetchResponse = response\n\t\t\tself._connect()\n\t\t}, function (reason) {\n\t\t\tglobal.clearTimeout(self._fetchTimer)\n\t\t\tif (!self._destroyed)\n\t\t\t\tself.emit('error', reason)\n\t\t})\n\t} else {\n\t\tvar xhr = self._xhr = new global.XMLHttpRequest()\n\t\ttry {\n\t\t\txhr.open(self._opts.method, self._opts.url, true)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\t// Can't set responseType on really old browsers\n\t\tif ('responseType' in xhr)\n\t\t\txhr.responseType = self._mode.split(':')[0]\n\n\t\tif ('withCredentials' in xhr)\n\t\t\txhr.withCredentials = !!opts.withCredentials\n\n\t\tif (self._mode === 'text' && 'overrideMimeType' in xhr)\n\t\t\txhr.overrideMimeType('text/plain; charset=x-user-defined')\n\n\t\tif ('requestTimeout' in opts) {\n\t\t\txhr.timeout = opts.requestTimeout\n\t\t\txhr.ontimeout = function () {\n\t\t\t\tself.emit('requestTimeout')\n\t\t\t}\n\t\t}\n\n\t\theadersList.forEach(function (header) {\n\t\t\txhr.setRequestHeader(header[0], header[1])\n\t\t})\n\n\t\tself._response = null\n\t\txhr.onreadystatechange = function () {\n\t\t\tswitch (xhr.readyState) {\n\t\t\t\tcase rStates.LOADING:\n\t\t\t\tcase rStates.DONE:\n\t\t\t\t\tself._onXHRProgress()\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Necessary for streaming in Firefox, since xhr.response is ONLY defined\n\t\t// in onprogress, not in onreadystatechange with xhr.readyState = 3\n\t\tif (self._mode === 'moz-chunked-arraybuffer') {\n\t\t\txhr.onprogress = function () {\n\t\t\t\tself._onXHRProgress()\n\t\t\t}\n\t\t}\n\n\t\txhr.onerror = function () {\n\t\t\tif (self._destroyed)\n\t\t\t\treturn\n\t\t\tself.emit('error', new Error('XHR error'))\n\t\t}\n\n\t\ttry {\n\t\t\txhr.send(body)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\t}\n}\n\n/**\n * Checks if xhr.status is readable and non-zero, indicating no error.\n * Even though the spec says it should be available in readyState 3,\n * accessing it throws an exception in IE8\n */\nfunction statusValid (xhr) {\n\ttry {\n\t\tvar status = xhr.status\n\t\treturn (status !== null && status !== 0)\n\t} catch (e) {\n\t\treturn false\n\t}\n}\n\nClientRequest.prototype._onXHRProgress = function () {\n\tvar self = this\n\n\tif (!statusValid(self._xhr) || self._destroyed)\n\t\treturn\n\n\tif (!self._response)\n\t\tself._connect()\n\n\tself._response._onXHRProgress()\n}\n\nClientRequest.prototype._connect = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\n\tself._response = new IncomingMessage(self._xhr, self._fetchResponse, self._mode, self._fetchTimer)\n\tself._response.on('error', function(err) {\n\t\tself.emit('error', err)\n\t})\n\n\tself.emit('response', self._response)\n}\n\nClientRequest.prototype._write = function (chunk, encoding, cb) {\n\tvar self = this\n\n\tself._body.push(chunk)\n\tcb()\n}\n\nClientRequest.prototype.abort = ClientRequest.prototype.destroy = function () {\n\tvar self = this\n\tself._destroyed = true\n\tglobal.clearTimeout(self._fetchTimer)\n\tif (self._response)\n\t\tself._response._destroyed = true\n\tif (self._xhr)\n\t\tself._xhr.abort()\n\telse if (self._fetchAbortController)\n\t\tself._fetchAbortController.abort()\n}\n\nClientRequest.prototype.end = function (data, encoding, cb) {\n\tvar self = this\n\tif (typeof data === 'function') {\n\t\tcb = data\n\t\tdata = undefined\n\t}\n\n\tstream.Writable.prototype.end.call(self, data, encoding, cb)\n}\n\nClientRequest.prototype.flushHeaders = function () {}\nClientRequest.prototype.setTimeout = function () {}\nClientRequest.prototype.setNoDelay = function () {}\nClientRequest.prototype.setSocketKeepAlive = function () {}\n\n// Taken from http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader%28%29-method\nvar unsafeHeaders = [\n\t'accept-charset',\n\t'accept-encoding',\n\t'access-control-request-headers',\n\t'access-control-request-method',\n\t'connection',\n\t'content-length',\n\t'cookie',\n\t'cookie2',\n\t'date',\n\t'dnt',\n\t'expect',\n\t'host',\n\t'keep-alive',\n\t'origin',\n\t'referer',\n\t'te',\n\t'trailer',\n\t'transfer-encoding',\n\t'upgrade',\n\t'via'\n]\n","var ClientRequest = require('./lib/request')\nvar response = require('./lib/response')\nvar extend = require('xtend')\nvar statusCodes = require('builtin-status-codes')\nvar url = require('url')\n\nvar http = exports\n\nhttp.request = function (opts, cb) {\n\tif (typeof opts === 'string')\n\t\topts = url.parse(opts)\n\telse\n\t\topts = extend(opts)\n\n\t// Normally, the page is loaded from http or https, so not specifying a protocol\n\t// will result in a (valid) protocol-relative url. However, this won't work if\n\t// the protocol is something else, like 'file:'\n\tvar defaultProtocol = global.location.protocol.search(/^https?:$/) === -1 ? 'http:' : ''\n\n\tvar protocol = opts.protocol || defaultProtocol\n\tvar host = opts.hostname || opts.host\n\tvar port = opts.port\n\tvar path = opts.path || '/'\n\n\t// Necessary for IPv6 addresses\n\tif (host && host.indexOf(':') !== -1)\n\t\thost = '[' + host + ']'\n\n\t// This may be a relative url. The browser should always be able to interpret it correctly.\n\topts.url = (host ? (protocol + '//' + host) : '') + (port ? ':' + port : '') + path\n\topts.method = (opts.method || 'GET').toUpperCase()\n\topts.headers = opts.headers || {}\n\n\t// Also valid opts.auth, opts.mode\n\n\tvar req = new ClientRequest(opts)\n\tif (cb)\n\t\treq.on('response', cb)\n\treturn req\n}\n\nhttp.get = function get (opts, cb) {\n\tvar req = http.request(opts, cb)\n\treq.end()\n\treturn req\n}\n\nhttp.ClientRequest = ClientRequest\nhttp.IncomingMessage = response.IncomingMessage\n\nhttp.Agent = function () {}\nhttp.Agent.defaultMaxSockets = 4\n\nhttp.globalAgent = new http.Agent()\n\nhttp.STATUS_CODES = statusCodes\n\nhttp.METHODS = [\n\t'CHECKOUT',\n\t'CONNECT',\n\t'COPY',\n\t'DELETE',\n\t'GET',\n\t'HEAD',\n\t'LOCK',\n\t'M-SEARCH',\n\t'MERGE',\n\t'MKACTIVITY',\n\t'MKCOL',\n\t'MOVE',\n\t'NOTIFY',\n\t'OPTIONS',\n\t'PATCH',\n\t'POST',\n\t'PROPFIND',\n\t'PROPPATCH',\n\t'PURGE',\n\t'PUT',\n\t'REPORT',\n\t'SEARCH',\n\t'SUBSCRIBE',\n\t'TRACE',\n\t'UNLOCK',\n\t'UNSUBSCRIBE'\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","exports.fetch = isFunction(global.fetch) && isFunction(global.ReadableStream)\n\nexports.writableStream = isFunction(global.WritableStream)\n\nexports.abortController = isFunction(global.AbortController)\n\nexports.blobConstructor = false\ntry {\n\tnew Blob([new ArrayBuffer(1)])\n\texports.blobConstructor = true\n} catch (e) {}\n\n// The xhr request to example.com may violate some restrictive CSP configurations,\n// so if we're running in a browser that supports `fetch`, avoid calling getXHR()\n// and assume support for certain features below.\nvar xhr\nfunction getXHR () {\n\t// Cache the xhr value\n\tif (xhr !== undefined) return xhr\n\n\tif (global.XMLHttpRequest) {\n\t\txhr = new global.XMLHttpRequest()\n\t\t// If XDomainRequest is available (ie only, where xhr might not work\n\t\t// cross domain), use the page location. Otherwise use example.com\n\t\t// Note: this doesn't actually make an http request.\n\t\ttry {\n\t\t\txhr.open('GET', global.XDomainRequest ? '/' : 'https://example.com')\n\t\t} catch(e) {\n\t\t\txhr = null\n\t\t}\n\t} else {\n\t\t// Service workers don't have XHR\n\t\txhr = null\n\t}\n\treturn xhr\n}\n\nfunction checkTypeSupport (type) {\n\tvar xhr = getXHR()\n\tif (!xhr) return false\n\ttry {\n\t\txhr.responseType = type\n\t\treturn xhr.responseType === type\n\t} catch (e) {}\n\treturn false\n}\n\n// For some strange reason, Safari 7.0 reports typeof global.ArrayBuffer === 'object'.\n// Safari 7.1 appears to have fixed this bug.\nvar haveArrayBuffer = typeof global.ArrayBuffer !== 'undefined'\nvar haveSlice = haveArrayBuffer && isFunction(global.ArrayBuffer.prototype.slice)\n\n// If fetch is supported, then arraybuffer will be supported too. Skip calling\n// checkTypeSupport(), since that calls getXHR().\nexports.arraybuffer = exports.fetch || (haveArrayBuffer && checkTypeSupport('arraybuffer'))\n\n// These next two tests unavoidably show warnings in Chrome. Since fetch will always\n// be used if it's available, just return false for these to avoid the warnings.\nexports.msstream = !exports.fetch && haveSlice && checkTypeSupport('ms-stream')\nexports.mozchunkedarraybuffer = !exports.fetch && haveArrayBuffer &&\n\tcheckTypeSupport('moz-chunked-arraybuffer')\n\n// If fetch is supported, then overrideMimeType will be supported too. Skip calling\n// getXHR().\nexports.overrideMimeType = exports.fetch || (getXHR() ? isFunction(getXHR().overrideMimeType) : false)\n\nexports.vbArray = isFunction(global.VBArray)\n\nfunction isFunction (value) {\n\treturn typeof value === 'function'\n}\n\nxhr = null // Help gc\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = 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/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', 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}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","var capability = require('./capability')\nvar inherits = require('inherits')\nvar stream = require('readable-stream')\n\nvar rStates = exports.readyStates = {\n\tUNSENT: 0,\n\tOPENED: 1,\n\tHEADERS_RECEIVED: 2,\n\tLOADING: 3,\n\tDONE: 4\n}\n\nvar IncomingMessage = exports.IncomingMessage = function (xhr, response, mode, fetchTimer) {\n\tvar self = this\n\tstream.Readable.call(self)\n\n\tself._mode = mode\n\tself.headers = {}\n\tself.rawHeaders = []\n\tself.trailers = {}\n\tself.rawTrailers = []\n\n\t// Fake the 'close' event, but only once 'end' fires\n\tself.on('end', function () {\n\t\t// The nextTick is necessary to prevent the 'request' module from causing an infinite loop\n\t\tprocess.nextTick(function () {\n\t\t\tself.emit('close')\n\t\t})\n\t})\n\n\tif (mode === 'fetch') {\n\t\tself._fetchResponse = response\n\n\t\tself.url = response.url\n\t\tself.statusCode = response.status\n\t\tself.statusMessage = response.statusText\n\t\t\n\t\tresponse.headers.forEach(function (header, key){\n\t\t\tself.headers[key.toLowerCase()] = header\n\t\t\tself.rawHeaders.push(key, header)\n\t\t})\n\n\t\tif (capability.writableStream) {\n\t\t\tvar writable = new WritableStream({\n\t\t\t\twrite: function (chunk) {\n\t\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\t\tif (self._destroyed) {\n\t\t\t\t\t\t\treject()\n\t\t\t\t\t\t} else if(self.push(new Buffer(chunk))) {\n\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself._resumeFetch = resolve\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\tclose: function () {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.push(null)\n\t\t\t\t},\n\t\t\t\tabort: function (err) {\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\ttry {\n\t\t\t\tresponse.body.pipeTo(writable).catch(function (err) {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t})\n\t\t\t\treturn\n\t\t\t} catch (e) {} // pipeTo method isn't defined. Can't find a better way to feature test this\n\t\t}\n\t\t// fallback for when writableStream or pipeTo aren't available\n\t\tvar reader = response.body.getReader()\n\t\tfunction read () {\n\t\t\treader.read().then(function (result) {\n\t\t\t\tif (self._destroyed)\n\t\t\t\t\treturn\n\t\t\t\tif (result.done) {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tself.push(null)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tself.push(new Buffer(result.value))\n\t\t\t\tread()\n\t\t\t}).catch(function (err) {\n\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\tif (!self._destroyed)\n\t\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t}\n\t\tread()\n\t} else {\n\t\tself._xhr = xhr\n\t\tself._pos = 0\n\n\t\tself.url = xhr.responseURL\n\t\tself.statusCode = xhr.status\n\t\tself.statusMessage = xhr.statusText\n\t\tvar headers = xhr.getAllResponseHeaders().split(/\\r?\\n/)\n\t\theaders.forEach(function (header) {\n\t\t\tvar matches = header.match(/^([^:]+):\\s*(.*)/)\n\t\t\tif (matches) {\n\t\t\t\tvar key = matches[1].toLowerCase()\n\t\t\t\tif (key === 'set-cookie') {\n\t\t\t\t\tif (self.headers[key] === undefined) {\n\t\t\t\t\t\tself.headers[key] = []\n\t\t\t\t\t}\n\t\t\t\t\tself.headers[key].push(matches[2])\n\t\t\t\t} else if (self.headers[key] !== undefined) {\n\t\t\t\t\tself.headers[key] += ', ' + matches[2]\n\t\t\t\t} else {\n\t\t\t\t\tself.headers[key] = matches[2]\n\t\t\t\t}\n\t\t\t\tself.rawHeaders.push(matches[1], matches[2])\n\t\t\t}\n\t\t})\n\n\t\tself._charset = 'x-user-defined'\n\t\tif (!capability.overrideMimeType) {\n\t\t\tvar mimeType = self.rawHeaders['mime-type']\n\t\t\tif (mimeType) {\n\t\t\t\tvar charsetMatch = mimeType.match(/;\\s*charset=([^;])(;|$)/)\n\t\t\t\tif (charsetMatch) {\n\t\t\t\t\tself._charset = charsetMatch[1].toLowerCase()\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!self._charset)\n\t\t\t\tself._charset = 'utf-8' // best guess\n\t\t}\n\t}\n}\n\ninherits(IncomingMessage, stream.Readable)\n\nIncomingMessage.prototype._read = function () {\n\tvar self = this\n\n\tvar resolve = self._resumeFetch\n\tif (resolve) {\n\t\tself._resumeFetch = null\n\t\tresolve()\n\t}\n}\n\nIncomingMessage.prototype._onXHRProgress = function () {\n\tvar self = this\n\n\tvar xhr = self._xhr\n\n\tvar response = null\n\tswitch (self._mode) {\n\t\tcase 'text:vbarray': // For IE9\n\t\t\tif (xhr.readyState !== rStates.DONE)\n\t\t\t\tbreak\n\t\t\ttry {\n\t\t\t\t// This fails in IE8\n\t\t\t\tresponse = new global.VBArray(xhr.responseBody).toArray()\n\t\t\t} catch (e) {}\n\t\t\tif (response !== null) {\n\t\t\t\tself.push(new Buffer(response))\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// Falls through in IE8\t\n\t\tcase 'text':\n\t\t\ttry { // This will fail when readyState = 3 in IE9. Switch mode and wait for readyState = 4\n\t\t\t\tresponse = xhr.responseText\n\t\t\t} catch (e) {\n\t\t\t\tself._mode = 'text:vbarray'\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif (response.length > self._pos) {\n\t\t\t\tvar newData = response.substr(self._pos)\n\t\t\t\tif (self._charset === 'x-user-defined') {\n\t\t\t\t\tvar buffer = new Buffer(newData.length)\n\t\t\t\t\tfor (var i = 0; i < newData.length; i++)\n\t\t\t\t\t\tbuffer[i] = newData.charCodeAt(i) & 0xff\n\n\t\t\t\t\tself.push(buffer)\n\t\t\t\t} else {\n\t\t\t\t\tself.push(newData, self._charset)\n\t\t\t\t}\n\t\t\t\tself._pos = response.length\n\t\t\t}\n\t\t\tbreak\n\t\tcase 'arraybuffer':\n\t\t\tif (xhr.readyState !== rStates.DONE || !xhr.response)\n\t\t\t\tbreak\n\t\t\tresponse = xhr.response\n\t\t\tself.push(new Buffer(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'moz-chunked-arraybuffer': // take whole\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING || !response)\n\t\t\t\tbreak\n\t\t\tself.push(new Buffer(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'ms-stream':\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING)\n\t\t\t\tbreak\n\t\t\tvar reader = new global.MSStreamReader()\n\t\t\treader.onprogress = function () {\n\t\t\t\tif (reader.result.byteLength > self._pos) {\n\t\t\t\t\tself.push(new Buffer(new Uint8Array(reader.result.slice(self._pos))))\n\t\t\t\t\tself._pos = reader.result.byteLength\n\t\t\t\t}\n\t\t\t}\n\t\t\treader.onload = function () {\n\t\t\t\tself.push(null)\n\t\t\t}\n\t\t\t// reader.onerror = ??? // TODO: this\n\t\t\treader.readAsArrayBuffer(response)\n\t\t\tbreak\n\t}\n\n\t// The ms-stream case handles end separately in reader.onload()\n\tif (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') {\n\t\tself.push(null)\n\t}\n}\n","var Buffer = require('buffer').Buffer\n\nmodule.exports = function (buf) {\n\t// If the buffer is backed by a Uint8Array, a faster version will work\n\tif (buf instanceof Uint8Array) {\n\t\t// If the buffer isn't a subarray, return the underlying ArrayBuffer\n\t\tif (buf.byteOffset === 0 && buf.byteLength === buf.buffer.byteLength) {\n\t\t\treturn buf.buffer\n\t\t} else if (typeof buf.buffer.slice === 'function') {\n\t\t\t// Otherwise we need to get a proper copy\n\t\t\treturn buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength)\n\t\t}\n\t}\n\n\tif (Buffer.isBuffer(buf)) {\n\t\t// This is the slow version that will work with any Buffer\n\t\t// implementation (even in old browsers)\n\t\tvar arrayCopy = new Uint8Array(buf.length)\n\t\tvar len = buf.length\n\t\tfor (var i = 0; i < len; i++) {\n\t\t\tarrayCopy[i] = buf[i]\n\t\t}\n\t\treturn arrayCopy.buffer\n\t} else {\n\t\tthrow new Error('Argument must be a Buffer')\n\t}\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = 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/**/\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 /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !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\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return map(objectKeys(obj), function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (isArray(obj[k])) {\n return map(obj[k], function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\nfunction map (xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n return res;\n}\n\nvar objectKeys = Object.keys || function (obj) {\n var res = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);\n }\n return res;\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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{domProps:{\"innerHTML\":_vm._s(_vm.detailPrintNotification)}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PrintNotification.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PrintNotification.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PrintNotification.vue?vue&type=template&id=860a0988&\"\nimport script from \"./PrintNotification.vue?vue&type=script&lang=js&\"\nexport * from \"./PrintNotification.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}