{"version":3,"sources":["webpack:///./node_modules/hash-base/node_modules/readable-stream/errors-browser.js","webpack:///./node_modules/hash-base/node_modules/inherits/inherits_browser.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack:///./node_modules/hash-base/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/hash-base/node_modules/safe-buffer/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js"],"names":["codes","createErrorType","code","message","Base","Error","NodeError","_Base","subClass","superClass","arg1","arg2","arg3","call","this","getMessage","prototype","Object","create","constructor","__proto__","name","oneOf","expected","thing","Array","isArray","len","length","map","i","String","concat","slice","join","value","TypeError","actual","determiner","search","pos","msg","substr","replace","str","this_len","undefined","substring","endsWith","type","start","indexOf","includes","arg","module","exports","ctor","superCtor","super_","enumerable","writable","configurable","TempCtor","objectKeys","keys","obj","key","push","Duplex","Readable","Writable","v","method","options","allowHalfOpen","readable","once","onend","_writableState","ended","process","nextTick","onEndNT","self","end","defineProperty","get","highWaterMark","getBuffer","_readableState","destroyed","set","ERR_STREAM_PREMATURE_CLOSE","noop","eos","stream","opts","callback","called","_len","arguments","args","_key","apply","onlegacyfinish","onfinish","writableEnded","finished","readableEnded","endEmitted","onerror","err","onclose","onrequest","req","on","setHeader","abort","isRequest","error","removeListener","Buffer","Transform","HashBase","blockSize","_block","allocUnsafe","_blockSize","_blockOffset","_length","_finalized","inherits","_transform","chunk","encoding","update","_flush","digest","data","val","prefix","isBuffer","throwIfNotStringOrBuffer","from","block","offset","_update","j","carry","_digest","toString","fill","ReadableState","EventEmitter","EElistenerCount","emitter","listeners","Stream","OurUint8Array","global","Uint8Array","debug","debugUtil","debuglog","StringDecoder","createReadableStreamAsyncIterator","BufferList","destroyImpl","getHighWaterMark","_require$codes","ERR_INVALID_ARG_TYPE","ERR_STREAM_PUSH_AFTER_EOF","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","errorOrDestroy","kProxyEvents","isDuplex","objectMode","readableObjectMode","buffer","pipes","pipesCount","flowing","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","paused","emitClose","autoDestroy","defaultEncoding","awaitDrain","readingMore","decoder","read","_read","destroy","_destroy","readableAddChunk","addToFront","skipChunkCheck","er","state","emitReadable","emitReadable_","onEofChunk","chunkInvalid","getPrototypeOf","_uint8ArrayToBuffer","addChunk","write","maybeReadMore","emit","unshift","_undestroy","undestroy","cb","isPaused","setEncoding","enc","p","head","content","next","clear","howMuchToRead","n","computeNewHighWaterMark","flow","maybeReadMore_","updateReadableListening","listenerCount","resume","nReadingNextTick","resume_","fromList","ret","shift","first","consume","endReadable","endReadableNT","wState","xs","x","l","parseInt","nOrig","doRead","pipe","dest","pipeOpts","src","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","ondrain","ondata","cleanedUp","needDrain","pipeOnDrain","pause","event","fn","prependListener","_events","dests","index","splice","ev","res","addListener","removeAllListeners","wrap","_this","bind","Symbol","asyncIterator","_fromList","iterable","emitErrorAndCloseNT","emitErrorNT","emitCloseNT","readableDestroyed","writableDestroyed","errorEmitted","ending","finalCalled","prefinished","rState","ERR_INVALID_OPT_VALUE","duplexKey","hwm","highWaterMarkFrom","isFinite","Math","floor","CorkedRequest","entry","finish","corkReq","pendingcb","corkedRequestsFree","onCorkedFinish","WritableState","internalUtil","deprecate","realHasInstance","ERR_MULTIPLE_CALLBACK","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","nop","writableObjectMode","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writecb","writelen","onwriteStateUpdate","finishMaybe","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","bufferedRequestCount","_write","writev","_writev","final","_final","doWrite","onwriteDrain","holder","count","allBuffers","isBuf","callFinal","need","prefinish","current","out","_","hasInstance","Function","object","writeAfterEnd","validChunk","newChunk","decodeChunk","last","writeOrBuffer","cork","uncork","setDefaultEncoding","toLowerCase","endWritable","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","ts","_transformState","transforming","writechunk","rs","needTransform","writeencoding","transform","flush","done","err2","copyProps","dst","SafeBuffer","encodingOrOffset","alloc","allocUnsafeSlow","size","buf","SlowBuffer","PassThrough","pipeline","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","_defineProperty","_defineProperties","target","props","descriptor","inspect","custom","instance","Constructor","_classCallCheck","tail","protoProps","staticProps","s","copy","hasStrings","_getString","_getBuffer","c","nb","source","forEach","getOwnPropertyDescriptors","defineProperties","_objectSpread","depth","customInspect","_Object$setPrototypeO","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","iter","resolve","onReadable","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","setPrototypeOf","Promise","reject","promise","lastPromise","then","wrapForNext","_this2","_Object$create","iterator","ERR_MISSING_ARGS","destroyer","closed","to","popCallback","streams","pop","destroys","reduce"],"mappings":"2FAIA,IAAIA,EAAQ,GAEZ,SAASC,EAAgBC,EAAMC,EAASC,GACjCA,IACHA,EAAOC,OAWT,IAAIC,EAEJ,SAAUC,GAnBZ,IAAwBC,EAAUC,EAsB9B,SAASH,EAAUI,EAAMC,EAAMC,GAC7B,OAAOL,EAAMM,KAAKC,KAdtB,SAAoBJ,EAAMC,EAAMC,GAC9B,MAAuB,iBAAZT,EACFA,EAEAA,EAAQO,EAAMC,EAAMC,GAUHG,CAAWL,EAAMC,EAAMC,KAAUE,KAG3D,OA1B8BL,EAoBJF,GApBNC,EAoBLF,GApBsCU,UAAYC,OAAOC,OAAOT,EAAWO,WAAYR,EAASQ,UAAUG,YAAcX,EAAUA,EAASY,UAAYX,EA0B/JH,EAPT,CAQEF,GAEFE,EAAUU,UAAUK,KAAOjB,EAAKiB,KAChCf,EAAUU,UAAUd,KAAOA,EAC3BF,EAAME,GAAQI,EAIhB,SAASgB,EAAMC,EAAUC,GACvB,GAAIC,MAAMC,QAAQH,GAAW,CAC3B,IAAII,EAAMJ,EAASK,OAKnB,OAJAL,EAAWA,EAASM,KAAI,SAAUC,GAChC,OAAOC,OAAOD,MAGZH,EAAM,EACD,UAAUK,OAAOR,EAAO,KAAKQ,OAAOT,EAASU,MAAM,EAAGN,EAAM,GAAGO,KAAK,MAAO,SAAWX,EAASI,EAAM,GAC3F,IAARA,EACF,UAAUK,OAAOR,EAAO,KAAKQ,OAAOT,EAAS,GAAI,QAAQS,OAAOT,EAAS,IAEzE,MAAMS,OAAOR,EAAO,KAAKQ,OAAOT,EAAS,IAGlD,MAAO,MAAMS,OAAOR,EAAO,KAAKQ,OAAOD,OAAOR,IA+BlDtB,EAAgB,yBAAyB,SAAUoB,EAAMc,GACvD,MAAO,cAAgBA,EAAQ,4BAA8Bd,EAAO,MACnEe,WACHnC,EAAgB,wBAAwB,SAAUoB,EAAME,EAAUc,GAEhE,IAAIC,EA/BmBC,EAAQC,EAwC3BC,EAEJ,GATwB,iBAAblB,IAjCYgB,EAiCkC,OAAVhB,EAhCpCmB,QAAQF,GAAOA,EAAM,EAAI,GAAKA,EAAKD,EAAOX,UAAYW,IAiC/DD,EAAa,cACbf,EAAWA,EAASoB,QAAQ,QAAS,KAErCL,EAAa,UAhCjB,SAAkBM,EAAKL,EAAQM,GAK7B,YAJiBC,IAAbD,GAA0BA,EAAWD,EAAIhB,UAC3CiB,EAAWD,EAAIhB,QAGVgB,EAAIG,UAAUF,EAAWN,EAAOX,OAAQiB,KAAcN,EAgCzDS,CAAS3B,EAAM,aAEjBoB,EAAM,OAAOT,OAAOX,EAAM,KAAKW,OAAOM,EAAY,KAAKN,OAAOV,EAAMC,EAAU,aACzE,CACL,IAAI0B,EAhCR,SAAkBL,EAAKL,EAAQW,GAK7B,MAJqB,iBAAVA,IACTA,EAAQ,KAGNA,EAAQX,EAAOX,OAASgB,EAAIhB,UAGS,IAAhCgB,EAAIO,QAAQZ,EAAQW,GAwBhBE,CAAS/B,EAAM,KAAO,WAAa,WAC9CoB,EAAM,QAAST,OAAOX,EAAM,MAAOW,OAAOiB,EAAM,KAAKjB,OAAOM,EAAY,KAAKN,OAAOV,EAAMC,EAAU,SAItG,OADAkB,GAAO,mBAAmBT,cAAcK,KAEvCD,WACHnC,EAAgB,4BAA6B,2BAC7CA,EAAgB,8BAA8B,SAAUoB,GACtD,MAAO,OAASA,EAAO,gCAEzBpB,EAAgB,6BAA8B,mBAC9CA,EAAgB,wBAAwB,SAAUoB,GAChD,MAAO,eAAiBA,EAAO,mCAEjCpB,EAAgB,wBAAyB,kCACzCA,EAAgB,yBAA0B,6BAC1CA,EAAgB,6BAA8B,mBAC9CA,EAAgB,yBAA0B,sCAAuCmC,WACjFnC,EAAgB,wBAAwB,SAAUoD,GAChD,MAAO,qBAAuBA,IAC7BjB,WACHnC,EAAgB,qCAAsC,oCACtDqD,EAAOC,QAAQvD,MAAQA,G,kBC9HM,mBAAlBiB,OAAOC,OAEhBoC,EAAOC,QAAU,SAAkBC,EAAMC,GACnCA,IACFD,EAAKE,OAASD,EACdD,EAAKxC,UAAYC,OAAOC,OAAOuC,EAAUzC,UAAW,CAClDG,YAAa,CACXgB,MAAOqB,EACPG,YAAY,EACZC,UAAU,EACVC,cAAc,OAOtBP,EAAOC,QAAU,SAAkBC,EAAMC,GACvC,GAAIA,EAAW,CACbD,EAAKE,OAASD,EACd,IAAIK,EAAW,aACfA,EAAS9C,UAAYyC,EAAUzC,UAC/BwC,EAAKxC,UAAY,IAAI8C,EACrBN,EAAKxC,UAAUG,YAAcqC,K,kCCvBnC,YA2BA,IAAIO,EAAa9C,OAAO+C,MAAQ,SAAUC,GACxC,IAAID,EAAO,GAEX,IAAK,IAAIE,KAAOD,EACdD,EAAKG,KAAKD,GAGZ,OAAOF,GAKTV,EAAOC,QAAUa,EAEjB,IAAIC,EAAW,EAAQ,KAEnBC,EAAW,EAAQ,KAEvB,EAAQ,IAAR,CAAoBF,EAAQC,GAM1B,IAFA,IAAIL,EAAOD,EAAWO,EAAStD,WAEtBuD,EAAI,EAAGA,EAAIP,EAAKpC,OAAQ2C,IAAK,CACpC,IAAIC,EAASR,EAAKO,GACbH,EAAOpD,UAAUwD,KAASJ,EAAOpD,UAAUwD,GAAUF,EAAStD,UAAUwD,IAIjF,SAASJ,EAAOK,GACd,KAAM3D,gBAAgBsD,GAAS,OAAO,IAAIA,EAAOK,GACjDJ,EAASxD,KAAKC,KAAM2D,GACpBH,EAASzD,KAAKC,KAAM2D,GACpB3D,KAAK4D,eAAgB,EAEjBD,KACuB,IAArBA,EAAQE,WAAoB7D,KAAK6D,UAAW,IACvB,IAArBF,EAAQb,WAAoB9C,KAAK8C,UAAW,IAElB,IAA1Ba,EAAQC,gBACV5D,KAAK4D,eAAgB,EACrB5D,KAAK8D,KAAK,MAAOC,KAiCvB,SAASA,IAEH/D,KAAKgE,eAAeC,OAGxBC,EAAQC,SAASC,EAASpE,MAG5B,SAASoE,EAAQC,GACfA,EAAKC,MArCPnE,OAAOoE,eAAejB,EAAOpD,UAAW,wBAAyB,CAI/D2C,YAAY,EACZ2B,IAAK,WACH,OAAOxE,KAAKgE,eAAeS,iBAG/BtE,OAAOoE,eAAejB,EAAOpD,UAAW,iBAAkB,CAIxD2C,YAAY,EACZ2B,IAAK,WACH,OAAOxE,KAAKgE,gBAAkBhE,KAAKgE,eAAeU,eAGtDvE,OAAOoE,eAAejB,EAAOpD,UAAW,iBAAkB,CAIxD2C,YAAY,EACZ2B,IAAK,WACH,OAAOxE,KAAKgE,eAAelD,UAgB/BX,OAAOoE,eAAejB,EAAOpD,UAAW,YAAa,CAInD2C,YAAY,EACZ2B,IAAK,WACH,YAA4BxC,IAAxBhC,KAAK2E,qBAAwD3C,IAAxBhC,KAAKgE,iBAIvChE,KAAK2E,eAAeC,WAAa5E,KAAKgE,eAAeY,YAE9DC,IAAK,SAAaxD,QAGYW,IAAxBhC,KAAK2E,qBAAwD3C,IAAxBhC,KAAKgE,iBAM9ChE,KAAK2E,eAAeC,UAAYvD,EAChCrB,KAAKgE,eAAeY,UAAYvD,Q,mDCpIpC,IAAIyD,EAA6B,EAAQ,KAAmB5F,MAAM4F,2BAgBlE,SAASC,KAmFTvC,EAAOC,QA7EP,SAASuC,EAAIC,EAAQC,EAAMC,GACzB,GAAoB,mBAATD,EAAqB,OAAOF,EAAIC,EAAQ,KAAMC,GACpDA,IAAMA,EAAO,IAClBC,EAvBF,SAAcA,GACZ,IAAIC,GAAS,EACb,OAAO,WACL,IAAIA,EAAJ,CACAA,GAAS,EAET,IAAK,IAAIC,EAAOC,UAAUxE,OAAQyE,EAAO,IAAI5E,MAAM0E,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAC/ED,EAAKC,GAAQF,UAAUE,GAGzBL,EAASM,MAAMzF,KAAMuF,KAaZzB,CAAKqB,GAAYJ,GAC5B,IAAIlB,EAAWqB,EAAKrB,WAA8B,IAAlBqB,EAAKrB,UAAsBoB,EAAOpB,SAC9Df,EAAWoC,EAAKpC,WAA8B,IAAlBoC,EAAKpC,UAAsBmC,EAAOnC,SAE9D4C,EAAiB,WACdT,EAAOnC,UAAU6C,KAGpBC,EAAgBX,EAAOjB,gBAAkBiB,EAAOjB,eAAe6B,SAE/DF,EAAW,WACb7C,GAAW,EACX8C,GAAgB,EACX/B,GAAUsB,EAASpF,KAAKkF,IAG3Ba,EAAgBb,EAAON,gBAAkBM,EAAON,eAAeoB,WAE/DhC,EAAQ,WACVF,GAAW,EACXiC,GAAgB,EACXhD,GAAUqC,EAASpF,KAAKkF,IAG3Be,EAAU,SAAiBC,GAC7Bd,EAASpF,KAAKkF,EAAQgB,IAGpBC,EAAU,WACZ,IAAID,EAEJ,OAAIpC,IAAaiC,GACVb,EAAON,gBAAmBM,EAAON,eAAeV,QAAOgC,EAAM,IAAInB,GAC/DK,EAASpF,KAAKkF,EAAQgB,IAG3BnD,IAAa8C,GACVX,EAAOjB,gBAAmBiB,EAAOjB,eAAeC,QAAOgC,EAAM,IAAInB,GAC/DK,EAASpF,KAAKkF,EAAQgB,SAF/B,GAMEE,EAAY,WACdlB,EAAOmB,IAAIC,GAAG,SAAUV,IAiB1B,OAnEF,SAAmBV,GACjB,OAAOA,EAAOqB,WAAqC,mBAAjBrB,EAAOsB,MAoDrCC,CAAUvB,GAIHnC,IAAamC,EAAOjB,iBAE7BiB,EAAOoB,GAAG,MAAOX,GACjBT,EAAOoB,GAAG,QAASX,KANnBT,EAAOoB,GAAG,WAAYV,GACtBV,EAAOoB,GAAG,QAASH,GACfjB,EAAOmB,IAAKD,IAAiBlB,EAAOoB,GAAG,UAAWF,IAOxDlB,EAAOoB,GAAG,MAAOtC,GACjBkB,EAAOoB,GAAG,SAAUV,IACD,IAAfT,EAAKuB,OAAiBxB,EAAOoB,GAAG,QAASL,GAC7Cf,EAAOoB,GAAG,QAASH,GACZ,WACLjB,EAAOyB,eAAe,WAAYf,GAClCV,EAAOyB,eAAe,QAASR,GAC/BjB,EAAOyB,eAAe,UAAWP,GAC7BlB,EAAOmB,KAAKnB,EAAOmB,IAAIM,eAAe,SAAUf,GACpDV,EAAOyB,eAAe,MAAOhB,GAC7BT,EAAOyB,eAAe,QAAShB,GAC/BT,EAAOyB,eAAe,SAAUf,GAChCV,EAAOyB,eAAe,MAAO3C,GAC7BkB,EAAOyB,eAAe,QAASV,GAC/Bf,EAAOyB,eAAe,QAASR,M,iCClGnC,IAAIS,EAAS,EAAQ,KAAeA,OAChCC,EAAY,EAAQ,KAAmBA,UAS3C,SAASC,EAAUC,GACjBF,EAAU7G,KAAKC,MAEfA,KAAK+G,OAASJ,EAAOK,YAAYF,GACjC9G,KAAKiH,WAAaH,EAClB9G,KAAKkH,aAAe,EACpBlH,KAAKmH,QAAU,CAAC,EAAG,EAAG,EAAG,GAEzBnH,KAAKoH,YAAa,EAhBL,EAAQ,IAmBvBC,CAASR,EAAUD,GAEnBC,EAAS3G,UAAUoH,WAAa,SAAUC,EAAOC,EAAUrC,GACzD,IAAIsB,EAAQ,KACZ,IACEzG,KAAKyH,OAAOF,EAAOC,GACnB,MAAOvB,GACPQ,EAAQR,EAGVd,EAASsB,IAGXI,EAAS3G,UAAUwH,OAAS,SAAUvC,GACpC,IAAIsB,EAAQ,KACZ,IACEzG,KAAKqD,KAAKrD,KAAK2H,UACf,MAAO1B,GACPQ,EAAQR,EAGVd,EAASsB,IAGXI,EAAS3G,UAAUuH,OAAS,SAAUG,EAAMJ,GAE1C,GA3CF,SAAmCK,EAAKC,GACtC,IAAKnB,EAAOoB,SAASF,IAAuB,iBAARA,EAClC,MAAM,IAAIvG,UAAUwG,EAAS,iCAwC/BE,CAAyBJ,EAAM,QAC3B5H,KAAKoH,WAAY,MAAM,IAAI7H,MAAM,yBAChCoH,EAAOoB,SAASH,KAAOA,EAAOjB,EAAOsB,KAAKL,EAAMJ,IAKrD,IAFA,IAAIU,EAAQlI,KAAK+G,OACboB,EAAS,EACNnI,KAAKkH,aAAeU,EAAK9G,OAASqH,GAAUnI,KAAKiH,YAAY,CAClE,IAAK,IAAIjG,EAAIhB,KAAKkH,aAAclG,EAAIhB,KAAKiH,YAAaiB,EAAMlH,KAAO4G,EAAKO,KACxEnI,KAAKoI,UACLpI,KAAKkH,aAAe,EAEtB,KAAOiB,EAASP,EAAK9G,QAAQoH,EAAMlI,KAAKkH,gBAAkBU,EAAKO,KAG/D,IAAK,IAAIE,EAAI,EAAGC,EAAsB,EAAdV,EAAK9G,OAAYwH,EAAQ,IAAKD,EACpDrI,KAAKmH,QAAQkB,IAAMC,GACnBA,EAAStI,KAAKmH,QAAQkB,GAAK,WAAgB,GAC/B,IAAGrI,KAAKmH,QAAQkB,IAAM,WAAeC,GAGnD,OAAOtI,MAGT6G,EAAS3G,UAAUkI,QAAU,WAC3B,MAAM,IAAI7I,MAAM,+BAGlBsH,EAAS3G,UAAUyH,OAAS,SAAUH,GACpC,GAAIxH,KAAKoH,WAAY,MAAM,IAAI7H,MAAM,yBACrCS,KAAKoH,YAAa,EAElB,IAAIO,EAAS3H,KAAKuI,eACDvG,IAAbwF,IAAwBG,EAASA,EAAOa,SAAShB,IAGrDxH,KAAK+G,OAAO0B,KAAK,GACjBzI,KAAKkH,aAAe,EACpB,IAAK,IAAIlG,EAAI,EAAGA,EAAI,IAAKA,EAAGhB,KAAKmH,QAAQnG,GAAK,EAE9C,OAAO2G,GAGTd,EAAS3G,UAAUqI,QAAU,WAC3B,MAAM,IAAIhJ,MAAM,+BAGlBiD,EAAOC,QAAUoE,G,kCC9FjB,cAyBA,IAAIvD,EAHJd,EAAOC,QAAUc,EAMjBA,EAASmF,cAAgBA,EAGhB,EAAQ,KAAUC,aAA3B,IAEIC,EAAkB,SAAyBC,EAAS1G,GACtD,OAAO0G,EAAQC,UAAU3G,GAAMrB,QAO7BiI,EAAS,EAAQ,KAIjBpC,EAAS,EAAQ,IAAUA,OAE3BqC,EAAgBC,EAAOC,YAAc,aAYzC,IAEIC,EAFAC,EAAY,EAAQ,KAKtBD,EADEC,GAAaA,EAAUC,SACjBD,EAAUC,SAAS,UAEnB,aAKV,IAcIC,EACAC,EACAtB,EAhBAuB,EAAa,EAAQ,KAErBC,EAAc,EAAQ,KAGtBC,EADW,EAAQ,KACSA,iBAE5BC,EAAiB,EAAQ,KAAazK,MACtC0K,EAAuBD,EAAeC,qBACtCC,EAA4BF,EAAeE,0BAC3CC,EAA6BH,EAAeG,2BAC5CC,EAAqCJ,EAAeI,mCAOxD,EAAQ,IAAR,CAAoBxG,EAAUwF,GAE9B,IAAIiB,EAAiBP,EAAYO,eAC7BC,EAAe,CAAC,QAAS,QAAS,UAAW,QAAS,UAa1D,SAASvB,EAAc/E,EAASsB,EAAQiF,GACtC5G,EAASA,GAAU,EAAQ,KAC3BK,EAAUA,GAAW,GAMG,kBAAbuG,IAAwBA,EAAWjF,aAAkB3B,GAGhEtD,KAAKmK,aAAexG,EAAQwG,WACxBD,IAAUlK,KAAKmK,WAAanK,KAAKmK,cAAgBxG,EAAQyG,oBAG7DpK,KAAKyE,cAAgBiF,EAAiB1J,KAAM2D,EAAS,wBAAyBuG,GAI9ElK,KAAKqK,OAAS,IAAIb,EAClBxJ,KAAKc,OAAS,EACdd,KAAKsK,MAAQ,KACbtK,KAAKuK,WAAa,EAClBvK,KAAKwK,QAAU,KACfxK,KAAKiE,OAAQ,EACbjE,KAAK+F,YAAa,EAClB/F,KAAKyK,SAAU,EAKfzK,KAAK0K,MAAO,EAGZ1K,KAAK2K,cAAe,EACpB3K,KAAK4K,iBAAkB,EACvB5K,KAAK6K,mBAAoB,EACzB7K,KAAK8K,iBAAkB,EACvB9K,KAAK+K,QAAS,EAEd/K,KAAKgL,WAAkC,IAAtBrH,EAAQqH,UAEzBhL,KAAKiL,cAAgBtH,EAAQsH,YAE7BjL,KAAK4E,WAAY,EAIjB5E,KAAKkL,gBAAkBvH,EAAQuH,iBAAmB,OAElDlL,KAAKmL,WAAa,EAElBnL,KAAKoL,aAAc,EACnBpL,KAAKqL,QAAU,KACfrL,KAAKwH,SAAW,KAEZ7D,EAAQ6D,WACL8B,IAAeA,EAAgB,EAAQ,KAAmBA,eAC/DtJ,KAAKqL,QAAU,IAAI/B,EAAc3F,EAAQ6D,UACzCxH,KAAKwH,SAAW7D,EAAQ6D,UAI5B,SAASjE,EAASI,GAEhB,GADAL,EAASA,GAAU,EAAQ,OACrBtD,gBAAgBuD,GAAW,OAAO,IAAIA,EAASI,GAGrD,IAAIuG,EAAWlK,gBAAgBsD,EAC/BtD,KAAK2E,eAAiB,IAAI+D,EAAc/E,EAAS3D,KAAMkK,GAEvDlK,KAAK6D,UAAW,EAEZF,IAC0B,mBAAjBA,EAAQ2H,OAAqBtL,KAAKuL,MAAQ5H,EAAQ2H,MAC9B,mBAApB3H,EAAQ6H,UAAwBxL,KAAKyL,SAAW9H,EAAQ6H,UAGrEzC,EAAOhJ,KAAKC,MAiEd,SAAS0L,EAAiBzG,EAAQsC,EAAOC,EAAUmE,EAAYC,GAC7DzC,EAAM,mBAAoB5B,GAC1B,IAMMsE,EANFC,EAAQ7G,EAAON,eAEnB,GAAc,OAAV4C,EACFuE,EAAMrB,SAAU,EAyOpB,SAAoBxF,EAAQ6G,GAE1B,GADA3C,EAAM,cACF2C,EAAM7H,MAAO,OAEjB,GAAI6H,EAAMT,QAAS,CACjB,IAAI9D,EAAQuE,EAAMT,QAAQ/G,MAEtBiD,GAASA,EAAMzG,SACjBgL,EAAMzB,OAAOhH,KAAKkE,GAClBuE,EAAMhL,QAAUgL,EAAM3B,WAAa,EAAI5C,EAAMzG,QAIjDgL,EAAM7H,OAAQ,EAEV6H,EAAMpB,KAIRqB,EAAa9G,IAGb6G,EAAMnB,cAAe,EAEhBmB,EAAMlB,kBACTkB,EAAMlB,iBAAkB,EACxBoB,EAAc/G,KAlQhBgH,CAAWhH,EAAQ6G,QAKnB,GAFKF,IAAgBC,EAmDzB,SAAsBC,EAAOvE,GAC3B,IAAIsE,EAhQiB1I,EAkQFoE,EAjQZZ,EAAOoB,SAAS5E,IAAQA,aAAe6F,GAiQA,iBAAVzB,QAAgCvF,IAAVuF,GAAwBuE,EAAM3B,aACtF0B,EAAK,IAAIjC,EAAqB,QAAS,CAAC,SAAU,SAAU,cAAerC,IAnQ/E,IAAuBpE,EAsQrB,OAAO0I,EA1DqBK,CAAaJ,EAAOvE,IAE1CsE,EACF7B,EAAe/E,EAAQ4G,QAClB,GAAIC,EAAM3B,YAAc5C,GAASA,EAAMzG,OAAS,EAKrD,GAJqB,iBAAVyG,GAAuBuE,EAAM3B,YAAchK,OAAOgM,eAAe5E,KAAWZ,EAAOzG,YAC5FqH,EAtNR,SAA6BA,GAC3B,OAAOZ,EAAOsB,KAAKV,GAqNL6E,CAAoB7E,IAG1BoE,EACEG,EAAM/F,WAAYiE,EAAe/E,EAAQ,IAAI8E,GAA2CsC,EAASpH,EAAQ6G,EAAOvE,GAAO,QACtH,GAAIuE,EAAM7H,MACf+F,EAAe/E,EAAQ,IAAI4E,OACtB,IAAIiC,EAAMlH,UACf,OAAO,EAEPkH,EAAMrB,SAAU,EAEZqB,EAAMT,UAAY7D,GACpBD,EAAQuE,EAAMT,QAAQiB,MAAM/E,GACxBuE,EAAM3B,YAA+B,IAAjB5C,EAAMzG,OAAcuL,EAASpH,EAAQ6G,EAAOvE,GAAO,GAAYgF,EAActH,EAAQ6G,IAE7GO,EAASpH,EAAQ6G,EAAOvE,GAAO,QAGzBoE,IACVG,EAAMrB,SAAU,EAChB8B,EAActH,EAAQ6G,IAO1B,OAAQA,EAAM7H,QAAU6H,EAAMhL,OAASgL,EAAMrH,eAAkC,IAAjBqH,EAAMhL,QAGtE,SAASuL,EAASpH,EAAQ6G,EAAOvE,EAAOoE,GAClCG,EAAMtB,SAA4B,IAAjBsB,EAAMhL,SAAiBgL,EAAMpB,MAChDoB,EAAMX,WAAa,EACnBlG,EAAOuH,KAAK,OAAQjF,KAGpBuE,EAAMhL,QAAUgL,EAAM3B,WAAa,EAAI5C,EAAMzG,OACzC6K,EAAYG,EAAMzB,OAAOoC,QAAQlF,GAAYuE,EAAMzB,OAAOhH,KAAKkE,GAC/DuE,EAAMnB,cAAcoB,EAAa9G,IAGvCsH,EAActH,EAAQ6G,GAvHxB3L,OAAOoE,eAAehB,EAASrD,UAAW,YAAa,CAIrD2C,YAAY,EACZ2B,IAAK,WACH,YAA4BxC,IAAxBhC,KAAK2E,gBAIF3E,KAAK2E,eAAeC,WAE7BC,IAAK,SAAaxD,GAGXrB,KAAK2E,iBAMV3E,KAAK2E,eAAeC,UAAYvD,MAGpCkC,EAASrD,UAAUsL,QAAU/B,EAAY+B,QACzCjI,EAASrD,UAAUwM,WAAajD,EAAYkD,UAE5CpJ,EAASrD,UAAUuL,SAAW,SAAUxF,EAAK2G,GAC3CA,EAAG3G,IAOL1C,EAASrD,UAAUmD,KAAO,SAAUkE,EAAOC,GACzC,IACIoE,EADAE,EAAQ9L,KAAK2E,eAkBjB,OAfKmH,EAAM3B,WAYTyB,GAAiB,EAXI,iBAAVrE,KACTC,EAAWA,GAAYsE,EAAMZ,mBAEZY,EAAMtE,WACrBD,EAAQZ,EAAOsB,KAAKV,EAAOC,GAC3BA,EAAW,IAGboE,GAAiB,GAMdF,EAAiB1L,KAAMuH,EAAOC,GAAU,EAAOoE,IAIxDrI,EAASrD,UAAUuM,QAAU,SAAUlF,GACrC,OAAOmE,EAAiB1L,KAAMuH,EAAO,MAAM,GAAM,IAyEnDhE,EAASrD,UAAU2M,SAAW,WAC5B,OAAuC,IAAhC7M,KAAK2E,eAAe6F,SAI7BjH,EAASrD,UAAU4M,YAAc,SAAUC,GACpCzD,IAAeA,EAAgB,EAAQ,KAAmBA,eAC/D,IAAI+B,EAAU,IAAI/B,EAAcyD,GAChC/M,KAAK2E,eAAe0G,QAAUA,EAE9BrL,KAAK2E,eAAe6C,SAAWxH,KAAK2E,eAAe0G,QAAQ7D,SAK3D,IAHA,IAAIwF,EAAIhN,KAAK2E,eAAe0F,OAAO4C,KAC/BC,EAAU,GAED,OAANF,GACLE,GAAW7B,EAAQiB,MAAMU,EAAEpF,MAC3BoF,EAAIA,EAAEG,KAOR,OAJAnN,KAAK2E,eAAe0F,OAAO+C,QAEX,KAAZF,GAAgBlN,KAAK2E,eAAe0F,OAAOhH,KAAK6J,GACpDlN,KAAK2E,eAAe7D,OAASoM,EAAQpM,OAC9Bd,MA2BT,SAASqN,EAAcC,EAAGxB,GACxB,OAAIwB,GAAK,GAAsB,IAAjBxB,EAAMhL,QAAgBgL,EAAM7H,MAAc,EACpD6H,EAAM3B,WAAmB,EAEzBmD,GAAMA,EAEJxB,EAAMtB,SAAWsB,EAAMhL,OAAegL,EAAMzB,OAAO4C,KAAKrF,KAAK9G,OAAmBgL,EAAMhL,QAIxFwM,EAAIxB,EAAMrH,gBAAeqH,EAAMrH,cA/BrC,SAAiC6I,GAgB/B,OAfIA,GAHQ,WAKVA,EALU,YASVA,IACAA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,GACXA,KAGKA,EAe4CC,CAAwBD,IACvEA,GAAKxB,EAAMhL,OAAewM,EAEzBxB,EAAM7H,MAKJ6H,EAAMhL,QAJXgL,EAAMnB,cAAe,EACd,IAwIX,SAASoB,EAAa9G,GACpB,IAAI6G,EAAQ7G,EAAON,eACnBwE,EAAM,eAAgB2C,EAAMnB,aAAcmB,EAAMlB,iBAChDkB,EAAMnB,cAAe,EAEhBmB,EAAMlB,kBACTzB,EAAM,eAAgB2C,EAAMtB,SAC5BsB,EAAMlB,iBAAkB,EACxB1G,EAAQC,SAAS6H,EAAe/G,IAIpC,SAAS+G,EAAc/G,GACrB,IAAI6G,EAAQ7G,EAAON,eACnBwE,EAAM,gBAAiB2C,EAAMlH,UAAWkH,EAAMhL,OAAQgL,EAAM7H,OAEvD6H,EAAMlH,YAAckH,EAAMhL,SAAUgL,EAAM7H,QAC7CgB,EAAOuH,KAAK,YACZV,EAAMlB,iBAAkB,GAS1BkB,EAAMnB,cAAgBmB,EAAMtB,UAAYsB,EAAM7H,OAAS6H,EAAMhL,QAAUgL,EAAMrH,cAC7E+I,EAAKvI,GASP,SAASsH,EAActH,EAAQ6G,GACxBA,EAAMV,cACTU,EAAMV,aAAc,EACpBlH,EAAQC,SAASsJ,EAAgBxI,EAAQ6G,IAI7C,SAAS2B,EAAexI,EAAQ6G,GAwB9B,MAAQA,EAAMrB,UAAYqB,EAAM7H,QAAU6H,EAAMhL,OAASgL,EAAMrH,eAAiBqH,EAAMtB,SAA4B,IAAjBsB,EAAMhL,SAAe,CACpH,IAAID,EAAMiL,EAAMhL,OAGhB,GAFAqI,EAAM,wBACNlE,EAAOqG,KAAK,GACRzK,IAAQiL,EAAMhL,OAChB,MAGJgL,EAAMV,aAAc,EA6QtB,SAASsC,EAAwBrJ,GAC/B,IAAIyH,EAAQzH,EAAKM,eACjBmH,EAAMjB,kBAAoBxG,EAAKsJ,cAAc,YAAc,EAEvD7B,EAAMhB,kBAAoBgB,EAAMf,OAGlCe,EAAMtB,SAAU,EACPnG,EAAKsJ,cAAc,QAAU,GACtCtJ,EAAKuJ,SAIT,SAASC,EAAiBxJ,GACxB8E,EAAM,4BACN9E,EAAKiH,KAAK,GA4BZ,SAASwC,EAAQ7I,EAAQ6G,GACvB3C,EAAM,SAAU2C,EAAMrB,SAEjBqB,EAAMrB,SACTxF,EAAOqG,KAAK,GAGdQ,EAAMhB,iBAAkB,EACxB7F,EAAOuH,KAAK,UACZgB,EAAKvI,GACD6G,EAAMtB,UAAYsB,EAAMrB,SAASxF,EAAOqG,KAAK,GAgBnD,SAASkC,EAAKvI,GACZ,IAAI6G,EAAQ7G,EAAON,eAGnB,IAFAwE,EAAM,OAAQ2C,EAAMtB,SAEbsB,EAAMtB,SAA6B,OAAlBvF,EAAOqG,UA4HjC,SAASyC,EAAST,EAAGxB,GAEnB,OAAqB,IAAjBA,EAAMhL,OAAqB,MAE3BgL,EAAM3B,WAAY6D,EAAMlC,EAAMzB,OAAO4D,SAAkBX,GAAKA,GAAKxB,EAAMhL,QAEtDkN,EAAflC,EAAMT,QAAeS,EAAMzB,OAAOjJ,KAAK,IAAqC,IAAxB0K,EAAMzB,OAAOvJ,OAAoBgL,EAAMzB,OAAO6D,QAAmBpC,EAAMzB,OAAOnJ,OAAO4K,EAAMhL,QACnJgL,EAAMzB,OAAO+C,SAGbY,EAAMlC,EAAMzB,OAAO8D,QAAQb,EAAGxB,EAAMT,SAE/B2C,GATP,IAAIA,EAYN,SAASI,EAAYnJ,GACnB,IAAI6G,EAAQ7G,EAAON,eACnBwE,EAAM,cAAe2C,EAAM/F,YAEtB+F,EAAM/F,aACT+F,EAAM7H,OAAQ,EACdC,EAAQC,SAASkK,EAAevC,EAAO7G,IAI3C,SAASoJ,EAAcvC,EAAO7G,GAG5B,GAFAkE,EAAM,gBAAiB2C,EAAM/F,WAAY+F,EAAMhL,SAE1CgL,EAAM/F,YAA+B,IAAjB+F,EAAMhL,SAC7BgL,EAAM/F,YAAa,EACnBd,EAAOpB,UAAW,EAClBoB,EAAOuH,KAAK,OAERV,EAAMb,aAAa,CAGrB,IAAIqD,EAASrJ,EAAOjB,iBAEfsK,GAAUA,EAAOrD,aAAeqD,EAAOzI,WAC1CZ,EAAOuG,WAgBf,SAASnJ,EAAQkM,EAAIC,GACnB,IAAK,IAAIxN,EAAI,EAAGyN,EAAIF,EAAGzN,OAAQE,EAAIyN,EAAGzN,IACpC,GAAIuN,EAAGvN,KAAOwN,EAAG,OAAOxN,EAG1B,OAAQ,EA3tBVuC,EAASrD,UAAUoL,KAAO,SAAUgC,GAClCnE,EAAM,OAAQmE,GACdA,EAAIoB,SAASpB,EAAG,IAChB,IAAIxB,EAAQ9L,KAAK2E,eACbgK,EAAQrB,EAKZ,GAJU,IAANA,IAASxB,EAAMlB,iBAAkB,GAI3B,IAAN0C,GAAWxB,EAAMnB,gBAA0C,IAAxBmB,EAAMrH,cAAsBqH,EAAMhL,QAAUgL,EAAMrH,cAAgBqH,EAAMhL,OAAS,IAAMgL,EAAM7H,OAGlI,OAFAkF,EAAM,qBAAsB2C,EAAMhL,OAAQgL,EAAM7H,OAC3B,IAAjB6H,EAAMhL,QAAgBgL,EAAM7H,MAAOmK,EAAYpO,MAAW+L,EAAa/L,MACpE,KAKT,GAAU,KAFVsN,EAAID,EAAcC,EAAGxB,KAENA,EAAM7H,MAEnB,OADqB,IAAjB6H,EAAMhL,QAAcsN,EAAYpO,MAC7B,KAyBT,IA4BIgO,EA5BAY,EAAS9C,EAAMnB,aAgDnB,OA/CAxB,EAAM,gBAAiByF,IAEF,IAAjB9C,EAAMhL,QAAgBgL,EAAMhL,OAASwM,EAAIxB,EAAMrH,gBAEjD0E,EAAM,6BADNyF,GAAS,GAMP9C,EAAM7H,OAAS6H,EAAMrB,QAEvBtB,EAAM,mBADNyF,GAAS,GAEAA,IACTzF,EAAM,WACN2C,EAAMrB,SAAU,EAChBqB,EAAMpB,MAAO,EAEQ,IAAjBoB,EAAMhL,SAAcgL,EAAMnB,cAAe,GAE7C3K,KAAKuL,MAAMO,EAAMrH,eAEjBqH,EAAMpB,MAAO,EAGRoB,EAAMrB,UAAS6C,EAAID,EAAcsB,EAAO7C,KAMnC,QAFDkC,EAAPV,EAAI,EAASS,EAAST,EAAGxB,GAAkB,OAG7CA,EAAMnB,aAAemB,EAAMhL,QAAUgL,EAAMrH,cAC3C6I,EAAI,IAEJxB,EAAMhL,QAAUwM,EAChBxB,EAAMX,WAAa,GAGA,IAAjBW,EAAMhL,SAGHgL,EAAM7H,QAAO6H,EAAMnB,cAAe,GAEnCgE,IAAUrB,GAAKxB,EAAM7H,OAAOmK,EAAYpO,OAGlC,OAARgO,GAAchO,KAAKwM,KAAK,OAAQwB,GAC7BA,GAwHTzK,EAASrD,UAAUqL,MAAQ,SAAU+B,GACnCtD,EAAehK,KAAM,IAAI8J,EAA2B,aAGtDvG,EAASrD,UAAU2O,KAAO,SAAUC,EAAMC,GACxC,IAAIC,EAAMhP,KACN8L,EAAQ9L,KAAK2E,eAEjB,OAAQmH,EAAMvB,YACZ,KAAK,EACHuB,EAAMxB,MAAQwE,EACd,MAEF,KAAK,EACHhD,EAAMxB,MAAQ,CAACwB,EAAMxB,MAAOwE,GAC5B,MAEF,QACEhD,EAAMxB,MAAMjH,KAAKyL,GAIrBhD,EAAMvB,YAAc,EACpBpB,EAAM,wBAAyB2C,EAAMvB,WAAYwE,GACjD,IACIE,IADUF,IAA6B,IAAjBA,EAASzK,MAAkBwK,IAAS5K,EAAQgL,QAAUJ,IAAS5K,EAAQiL,OAC7EpL,EAAQqL,EAI5B,SAASC,EAASxL,EAAUyL,GAC1BnG,EAAM,YAEFtF,IAAamL,GACXM,IAAwC,IAA1BA,EAAWC,aAC3BD,EAAWC,YAAa,EAoB5BpG,EAAM,WAEN2F,EAAKpI,eAAe,QAASR,GAC7B4I,EAAKpI,eAAe,SAAUf,GAC9BmJ,EAAKpI,eAAe,QAAS8I,GAC7BV,EAAKpI,eAAe,QAASV,GAC7B8I,EAAKpI,eAAe,SAAU2I,GAC9BL,EAAItI,eAAe,MAAO3C,GAC1BiL,EAAItI,eAAe,MAAO0I,GAC1BJ,EAAItI,eAAe,OAAQ+I,GAC3BC,GAAY,GAMR5D,EAAMX,YAAgB2D,EAAK9K,iBAAkB8K,EAAK9K,eAAe2L,WAAYH,KA9BnF,SAASzL,IACPoF,EAAM,SACN2F,EAAKxK,MAhBHwH,EAAM/F,WAAY7B,EAAQC,SAAS8K,GAAYD,EAAIlL,KAAK,MAAOmL,GACnEH,EAAKzI,GAAG,SAAUgJ,GAsBlB,IAAIG,EAwFN,SAAqBR,GACnB,OAAO,WACL,IAAIlD,EAAQkD,EAAIrK,eAChBwE,EAAM,cAAe2C,EAAMX,YACvBW,EAAMX,YAAYW,EAAMX,aAEH,IAArBW,EAAMX,YAAoBvC,EAAgBoG,EAAK,UACjDlD,EAAMtB,SAAU,EAChBgD,EAAKwB,KAhGKY,CAAYZ,GAC1BF,EAAKzI,GAAG,QAASmJ,GACjB,IAAIE,GAAY,EAwBhB,SAASD,EAAOlI,GACd4B,EAAM,UACN,IAAI6E,EAAMc,EAAKxC,MAAM/E,GACrB4B,EAAM,aAAc6E,IAER,IAARA,KAKwB,IAArBlC,EAAMvB,YAAoBuB,EAAMxB,QAAUwE,GAAQhD,EAAMvB,WAAa,IAAqC,IAAhClI,EAAQyJ,EAAMxB,MAAOwE,MAAkBY,IACpHvG,EAAM,8BAA+B2C,EAAMX,YAC3CW,EAAMX,cAGR6D,EAAIa,SAMR,SAAS7J,EAAQ6F,GACf1C,EAAM,UAAW0C,GACjBuD,IACAN,EAAKpI,eAAe,QAASV,GACU,IAAnC4C,EAAgBkG,EAAM,UAAgB9E,EAAe8E,EAAMjD,GAMjE,SAAS3F,IACP4I,EAAKpI,eAAe,SAAUf,GAC9ByJ,IAKF,SAASzJ,IACPwD,EAAM,YACN2F,EAAKpI,eAAe,QAASR,GAC7BkJ,IAKF,SAASA,IACPjG,EAAM,UACN6F,EAAII,OAAON,GAWb,OA7DAE,EAAI3I,GAAG,OAAQoJ,GAtkBjB,SAAyB5G,EAASiH,EAAOC,GAGvC,GAAuC,mBAA5BlH,EAAQmH,gBAAgC,OAAOnH,EAAQmH,gBAAgBF,EAAOC,GAKpFlH,EAAQoH,SAAYpH,EAAQoH,QAAQH,GAAuCnP,MAAMC,QAAQiI,EAAQoH,QAAQH,IAASjH,EAAQoH,QAAQH,GAAOrD,QAAQsD,GAASlH,EAAQoH,QAAQH,GAAS,CAACC,EAAIlH,EAAQoH,QAAQH,IAA5JjH,EAAQxC,GAAGyJ,EAAOC,GA6lBnEC,CAAgBlB,EAAM,QAAS9I,GAO/B8I,EAAKhL,KAAK,QAASoC,GAQnB4I,EAAKhL,KAAK,SAAU6B,GAQpBmJ,EAAKtC,KAAK,OAAQwC,GAEblD,EAAMtB,UACTrB,EAAM,eACN6F,EAAIpB,UAGCkB,GAgBTvL,EAASrD,UAAUkP,OAAS,SAAUN,GACpC,IAAIhD,EAAQ9L,KAAK2E,eACb2K,EAAa,CACfC,YAAY,GAGd,GAAyB,IAArBzD,EAAMvB,WAAkB,OAAOvK,KAEnC,GAAyB,IAArB8L,EAAMvB,WAER,OAAIuE,GAAQA,IAAShD,EAAMxB,QACtBwE,IAAMA,EAAOhD,EAAMxB,OAExBwB,EAAMxB,MAAQ,KACdwB,EAAMvB,WAAa,EACnBuB,EAAMtB,SAAU,EACZsE,GAAMA,EAAKtC,KAAK,SAAUxM,KAAMsP,IANKtP,KAW3C,IAAK8O,EAAM,CAET,IAAIoB,EAAQpE,EAAMxB,MACdzJ,EAAMiL,EAAMvB,WAChBuB,EAAMxB,MAAQ,KACdwB,EAAMvB,WAAa,EACnBuB,EAAMtB,SAAU,EAEhB,IAAK,IAAIxJ,EAAI,EAAGA,EAAIH,EAAKG,IACvBkP,EAAMlP,GAAGwL,KAAK,SAAUxM,KAAM,CAC5BuP,YAAY,IAIhB,OAAOvP,KAIT,IAAImQ,EAAQ9N,EAAQyJ,EAAMxB,MAAOwE,GACjC,OAAe,IAAXqB,IACJrE,EAAMxB,MAAM8F,OAAOD,EAAO,GAC1BrE,EAAMvB,YAAc,EACK,IAArBuB,EAAMvB,aAAkBuB,EAAMxB,MAAQwB,EAAMxB,MAAM,IACtDwE,EAAKtC,KAAK,SAAUxM,KAAMsP,IAJDtP,MAU3BuD,EAASrD,UAAUmG,GAAK,SAAUgK,EAAIN,GACpC,IAAIO,EAAMvH,EAAO7I,UAAUmG,GAAGtG,KAAKC,KAAMqQ,EAAIN,GACzCjE,EAAQ9L,KAAK2E,eAuBjB,MArBW,SAAP0L,GAGFvE,EAAMjB,kBAAoB7K,KAAK2N,cAAc,YAAc,GAErC,IAAlB7B,EAAMtB,SAAmBxK,KAAK4N,UAClB,aAAPyC,IACJvE,EAAM/F,YAAe+F,EAAMjB,oBAC9BiB,EAAMjB,kBAAoBiB,EAAMnB,cAAe,EAC/CmB,EAAMtB,SAAU,EAChBsB,EAAMlB,iBAAkB,EACxBzB,EAAM,cAAe2C,EAAMhL,OAAQgL,EAAMrB,SAErCqB,EAAMhL,OACRiL,EAAa/L,MACH8L,EAAMrB,SAChBvG,EAAQC,SAAS0J,EAAkB7N,QAKlCsQ,GAGT/M,EAASrD,UAAUqQ,YAAchN,EAASrD,UAAUmG,GAEpD9C,EAASrD,UAAUwG,eAAiB,SAAU2J,EAAIN,GAChD,IAAIO,EAAMvH,EAAO7I,UAAUwG,eAAe3G,KAAKC,KAAMqQ,EAAIN,GAYzD,MAVW,aAAPM,GAOFnM,EAAQC,SAASuJ,EAAyB1N,MAGrCsQ,GAGT/M,EAASrD,UAAUsQ,mBAAqB,SAAUH,GAChD,IAAIC,EAAMvH,EAAO7I,UAAUsQ,mBAAmB/K,MAAMzF,KAAMsF,WAY1D,MAVW,aAAP+K,QAA4BrO,IAAPqO,GAOvBnM,EAAQC,SAASuJ,EAAyB1N,MAGrCsQ,GAuBT/M,EAASrD,UAAU0N,OAAS,WAC1B,IAAI9B,EAAQ9L,KAAK2E,eAYjB,OAVKmH,EAAMtB,UACTrB,EAAM,UAIN2C,EAAMtB,SAAWsB,EAAMjB,kBAQ3B,SAAgB5F,EAAQ6G,GACjBA,EAAMhB,kBACTgB,EAAMhB,iBAAkB,EACxB5G,EAAQC,SAAS2J,EAAS7I,EAAQ6G,IAVlC8B,CAAO5N,KAAM8L,IAGfA,EAAMf,QAAS,EACR/K,MAuBTuD,EAASrD,UAAU2P,MAAQ,WAUzB,OATA1G,EAAM,wBAAyBnJ,KAAK2E,eAAe6F,UAEf,IAAhCxK,KAAK2E,eAAe6F,UACtBrB,EAAM,SACNnJ,KAAK2E,eAAe6F,SAAU,EAC9BxK,KAAKwM,KAAK,UAGZxM,KAAK2E,eAAeoG,QAAS,EACtB/K,MAeTuD,EAASrD,UAAUuQ,KAAO,SAAUxL,GAClC,IAAIyL,EAAQ1Q,KAER8L,EAAQ9L,KAAK2E,eACboG,GAAS,EA0Bb,IAAK,IAAI/J,KAzBTiE,EAAOoB,GAAG,OAAO,WAGf,GAFA8C,EAAM,eAEF2C,EAAMT,UAAYS,EAAM7H,MAAO,CACjC,IAAIsD,EAAQuE,EAAMT,QAAQ/G,MACtBiD,GAASA,EAAMzG,QAAQ4P,EAAMrN,KAAKkE,GAGxCmJ,EAAMrN,KAAK,SAEb4B,EAAOoB,GAAG,QAAQ,SAAUkB,IAC1B4B,EAAM,gBACF2C,EAAMT,UAAS9D,EAAQuE,EAAMT,QAAQiB,MAAM/E,IAE3CuE,EAAM3B,YAAc,MAAC5C,KAAyDuE,EAAM3B,YAAgB5C,GAAUA,EAAMzG,UAE9G4P,EAAMrN,KAAKkE,KAGnBwD,GAAS,EACT9F,EAAO4K,aAKG5K,OACIjD,IAAZhC,KAAKgB,IAAyC,mBAAdiE,EAAOjE,KACzChB,KAAKgB,GAAK,SAAoB0C,GAC5B,OAAO,WACL,OAAOuB,EAAOvB,GAAQ+B,MAAMR,EAAQK,YAF9B,CAIRtE,IAKN,IAAK,IAAIsM,EAAI,EAAGA,EAAIrD,EAAanJ,OAAQwM,IACvCrI,EAAOoB,GAAG4D,EAAaqD,GAAItN,KAAKwM,KAAKmE,KAAK3Q,KAAMiK,EAAaqD,KAc/D,OATAtN,KAAKuL,MAAQ,SAAU+B,GACrBnE,EAAM,gBAAiBmE,GAEnBvC,IACFA,GAAS,EACT9F,EAAO2I,WAIJ5N,MAGa,mBAAX4Q,SACTrN,EAASrD,UAAU0Q,OAAOC,eAAiB,WAKzC,YAJ0C7O,IAAtCuH,IACFA,EAAoC,EAAQ,MAGvCA,EAAkCvJ,QAI7CG,OAAOoE,eAAehB,EAASrD,UAAW,wBAAyB,CAIjE2C,YAAY,EACZ2B,IAAK,WACH,OAAOxE,KAAK2E,eAAeF,iBAG/BtE,OAAOoE,eAAehB,EAASrD,UAAW,iBAAkB,CAI1D2C,YAAY,EACZ2B,IAAK,WACH,OAAOxE,KAAK2E,gBAAkB3E,KAAK2E,eAAe0F,UAGtDlK,OAAOoE,eAAehB,EAASrD,UAAW,kBAAmB,CAI3D2C,YAAY,EACZ2B,IAAK,WACH,OAAOxE,KAAK2E,eAAe6F,SAE7B3F,IAAK,SAAaiH,GACZ9L,KAAK2E,iBACP3E,KAAK2E,eAAe6F,QAAUsB,MAKpCvI,EAASuN,UAAY/C,EACrB5N,OAAOoE,eAAehB,EAASrD,UAAW,iBAAkB,CAI1D2C,YAAY,EACZ2B,IAAK,WACH,OAAOxE,KAAK2E,eAAe7D,UAoDT,mBAAX8P,SACTrN,EAAS0E,KAAO,SAAU8I,EAAU7L,GAKlC,YAJalD,IAATiG,IACFA,EAAO,EAAQ,MAGVA,EAAK1E,EAAUwN,EAAU7L,O,4CCzlCpC1C,EAAOC,QAAU,EAAQ,KAAUkG,c,kCCAnC,YAuDA,SAASqI,EAAoB3M,EAAM4B,GACjCgL,EAAY5M,EAAM4B,GAClBiL,EAAY7M,GAGd,SAAS6M,EAAY7M,GACfA,EAAKL,iBAAmBK,EAAKL,eAAegH,WAC5C3G,EAAKM,iBAAmBN,EAAKM,eAAeqG,WAChD3G,EAAKmI,KAAK,SAsBZ,SAASyE,EAAY5M,EAAM4B,GACzB5B,EAAKmI,KAAK,QAASvG,GAcrBzD,EAAOC,QAAU,CACf+I,QAnGF,SAAiBvF,EAAK2G,GACpB,IAAI8D,EAAQ1Q,KAERmR,EAAoBnR,KAAK2E,gBAAkB3E,KAAK2E,eAAeC,UAC/DwM,EAAoBpR,KAAKgE,gBAAkBhE,KAAKgE,eAAeY,UAEnE,OAAIuM,GAAqBC,GACnBxE,EACFA,EAAG3G,GACMA,IACJjG,KAAKgE,eAEEhE,KAAKgE,eAAeqN,eAC9BrR,KAAKgE,eAAeqN,cAAe,EACnCnN,EAAQC,SAAS8M,EAAajR,KAAMiG,IAHpC/B,EAAQC,SAAS8M,EAAajR,KAAMiG,IAOjCjG,OAKLA,KAAK2E,iBACP3E,KAAK2E,eAAeC,WAAY,GAI9B5E,KAAKgE,iBACPhE,KAAKgE,eAAeY,WAAY,GAGlC5E,KAAKyL,SAASxF,GAAO,MAAM,SAAUA,IAC9B2G,GAAM3G,EACJyK,EAAM1M,eAEC0M,EAAM1M,eAAeqN,aAI/BnN,EAAQC,SAAS+M,EAAaR,IAH9BA,EAAM1M,eAAeqN,cAAe,EACpCnN,EAAQC,SAAS6M,EAAqBN,EAAOzK,IAH7C/B,EAAQC,SAAS6M,EAAqBN,EAAOzK,GAOtC2G,GACT1I,EAAQC,SAAS+M,EAAaR,GAC9B9D,EAAG3G,IAEH/B,EAAQC,SAAS+M,EAAaR,MAI3B1Q,OAkDP2M,UApCF,WACM3M,KAAK2E,iBACP3E,KAAK2E,eAAeC,WAAY,EAChC5E,KAAK2E,eAAe8F,SAAU,EAC9BzK,KAAK2E,eAAeV,OAAQ,EAC5BjE,KAAK2E,eAAeoB,YAAa,GAG/B/F,KAAKgE,iBACPhE,KAAKgE,eAAeY,WAAY,EAChC5E,KAAKgE,eAAeC,OAAQ,EAC5BjE,KAAKgE,eAAesN,QAAS,EAC7BtR,KAAKgE,eAAeuN,aAAc,EAClCvR,KAAKgE,eAAewN,aAAc,EAClCxR,KAAKgE,eAAe6B,UAAW,EAC/B7F,KAAKgE,eAAeqN,cAAe,IAsBrCrH,eAdF,SAAwB/E,EAAQgB,GAM9B,IAAIwL,EAASxM,EAAON,eAChB2J,EAASrJ,EAAOjB,eAChByN,GAAUA,EAAOxG,aAAeqD,GAAUA,EAAOrD,YAAahG,EAAOuG,QAAQvF,GAAUhB,EAAOuH,KAAK,QAASvG,O,mDC/FlH,IAAIyL,EAAwB,EAAQ,KAAmBxS,MAAMwS,sBAsB7DlP,EAAOC,QAAU,CACfiH,iBAjBF,SAA0BoC,EAAOnI,EAASgO,EAAWzH,GACnD,IAAI0H,EALN,SAA2BjO,EAASuG,EAAUyH,GAC5C,OAAgC,MAAzBhO,EAAQc,cAAwBd,EAAQc,cAAgByF,EAAWvG,EAAQgO,GAAa,KAIrFE,CAAkBlO,EAASuG,EAAUyH,GAE/C,GAAW,MAAPC,EAAa,CACf,IAAME,SAASF,IAAQG,KAAKC,MAAMJ,KAASA,GAAQA,EAAM,EAEvD,MAAM,IAAIF,EADCxH,EAAWyH,EAAY,gBACIC,GAGxC,OAAOG,KAAKC,MAAMJ,GAIpB,OAAO9F,EAAM3B,WAAa,GAAK,S,kCCrBjC,cAqCA,SAAS8H,EAAcnG,GACrB,IAAI4E,EAAQ1Q,KAEZA,KAAKmN,KAAO,KACZnN,KAAKkS,MAAQ,KAEblS,KAAKmS,OAAS,YAimBhB,SAAwBC,EAAStG,EAAO7F,GACtC,IAAIiM,EAAQE,EAAQF,MACpBE,EAAQF,MAAQ,KAEhB,KAAOA,GAAO,CACZ,IAAItF,EAAKsF,EAAM/M,SACf2G,EAAMuG,YACNzF,EAAG3G,GACHiM,EAAQA,EAAM/E,KAIhBrB,EAAMwG,mBAAmBnF,KAAOiF,EA5mB9BG,CAAe7B,EAAO5E,IAQ1B,IAAIxI,EA3BJd,EAAOC,QAAUe,EA8BjBA,EAASgP,cAAgBA,EAGzB,IAAIC,EAAe,CACjBC,UAAW,EAAQ,MAMjB3J,EAAS,EAAQ,KAIjBpC,EAAS,EAAQ,IAAUA,OAE3BqC,EAAgBC,EAAOC,YAAc,aAUzC,IAkIIyJ,EAlIAlJ,EAAc,EAAQ,KAGtBC,EADW,EAAQ,KACSA,iBAE5BC,EAAiB,EAAQ,KAAazK,MACtC0K,EAAuBD,EAAeC,qBACtCE,EAA6BH,EAAeG,2BAC5C8I,EAAwBjJ,EAAeiJ,sBACvCC,EAAyBlJ,EAAekJ,uBACxCC,EAAuBnJ,EAAemJ,qBACtCC,EAAyBpJ,EAAeoJ,uBACxCC,EAA6BrJ,EAAeqJ,2BAC5CC,EAAuBtJ,EAAesJ,qBAEtCjJ,EAAiBP,EAAYO,eAIjC,SAASkJ,KAET,SAASV,EAAc7O,EAASsB,EAAQiF,GACtC5G,EAASA,GAAU,EAAQ,KAC3BK,EAAUA,GAAW,GAMG,kBAAbuG,IAAwBA,EAAWjF,aAAkB3B,GAGhEtD,KAAKmK,aAAexG,EAAQwG,WACxBD,IAAUlK,KAAKmK,WAAanK,KAAKmK,cAAgBxG,EAAQwP,oBAI7DnT,KAAKyE,cAAgBiF,EAAiB1J,KAAM2D,EAAS,wBAAyBuG,GAE9ElK,KAAKuR,aAAc,EAEnBvR,KAAK2P,WAAY,EAEjB3P,KAAKsR,QAAS,EAEdtR,KAAKiE,OAAQ,EAEbjE,KAAK6F,UAAW,EAEhB7F,KAAK4E,WAAY,EAIjB,IAAIwO,GAAqC,IAA1BzP,EAAQ0P,cACvBrT,KAAKqT,eAAiBD,EAItBpT,KAAKkL,gBAAkBvH,EAAQuH,iBAAmB,OAIlDlL,KAAKc,OAAS,EAEdd,KAAKsT,SAAU,EAEftT,KAAKuT,OAAS,EAKdvT,KAAK0K,MAAO,EAIZ1K,KAAKwT,kBAAmB,EAExBxT,KAAKyT,QAAU,SAAU5H,IA6R3B,SAAiB5G,EAAQ4G,GACvB,IAAIC,EAAQ7G,EAAOjB,eACf0G,EAAOoB,EAAMpB,KACbkC,EAAKd,EAAM4H,QACf,GAAkB,mBAAP9G,EAAmB,MAAM,IAAIgG,EAExC,GAbF,SAA4B9G,GAC1BA,EAAMwH,SAAU,EAChBxH,EAAM4H,QAAU,KAChB5H,EAAMhL,QAAUgL,EAAM6H,SACtB7H,EAAM6H,SAAW,EAQjBC,CAAmB9H,GACfD,GArCN,SAAsB5G,EAAQ6G,EAAOpB,EAAMmB,EAAIe,KAC3Cd,EAAMuG,UAEJ3H,GAGFxG,EAAQC,SAASyI,EAAIf,GAGrB3H,EAAQC,SAAS0P,EAAa5O,EAAQ6G,GACtC7G,EAAOjB,eAAeqN,cAAe,EACrCrH,EAAe/E,EAAQ4G,KAIvBe,EAAGf,GACH5G,EAAOjB,eAAeqN,cAAe,EACrCrH,EAAe/E,EAAQ4G,GAGvBgI,EAAY5O,EAAQ6G,IAiBdgI,CAAa7O,EAAQ6G,EAAOpB,EAAMmB,EAAIe,OAAS,CAErD,IAAI/G,EAAWkO,EAAWjI,IAAU7G,EAAOL,UAEtCiB,GAAaiG,EAAMyH,QAAWzH,EAAM0H,mBAAoB1H,EAAMkI,iBACjEC,EAAYhP,EAAQ6G,GAGlBpB,EACFxG,EAAQC,SAAS+P,EAAYjP,EAAQ6G,EAAOjG,EAAU+G,GAEtDsH,EAAWjP,EAAQ6G,EAAOjG,EAAU+G,IA7StC6G,CAAQxO,EAAQ4G,IAIlB7L,KAAK0T,QAAU,KAEf1T,KAAK2T,SAAW,EAChB3T,KAAKgU,gBAAkB,KACvBhU,KAAKmU,oBAAsB,KAG3BnU,KAAKqS,UAAY,EAGjBrS,KAAKwR,aAAc,EAEnBxR,KAAKqR,cAAe,EAEpBrR,KAAKgL,WAAkC,IAAtBrH,EAAQqH,UAEzBhL,KAAKiL,cAAgBtH,EAAQsH,YAE7BjL,KAAKoU,qBAAuB,EAG5BpU,KAAKsS,mBAAqB,IAAIL,EAAcjS,MA4C9C,SAASwD,EAASG,GAUhB,IAAIuG,EAAWlK,gBATfsD,EAASA,GAAU,EAAQ,MAU3B,IAAK4G,IAAayI,EAAgB5S,KAAKyD,EAAUxD,MAAO,OAAO,IAAIwD,EAASG,GAC5E3D,KAAKgE,eAAiB,IAAIwO,EAAc7O,EAAS3D,KAAMkK,GAEvDlK,KAAK8C,UAAW,EAEZa,IAC2B,mBAAlBA,EAAQ2I,QAAsBtM,KAAKqU,OAAS1Q,EAAQ2I,OACjC,mBAAnB3I,EAAQ2Q,SAAuBtU,KAAKuU,QAAU5Q,EAAQ2Q,QAClC,mBAApB3Q,EAAQ6H,UAAwBxL,KAAKyL,SAAW9H,EAAQ6H,SACtC,mBAAlB7H,EAAQ6Q,QAAsBxU,KAAKyU,OAAS9Q,EAAQ6Q,QAGjEzL,EAAOhJ,KAAKC,MAwJd,SAAS0U,EAAQzP,EAAQ6G,EAAOwI,EAAQzT,EAAK0G,EAAOC,EAAUoF,GAC5Dd,EAAM6H,SAAW9S,EACjBiL,EAAM4H,QAAU9G,EAChBd,EAAMwH,SAAU,EAChBxH,EAAMpB,MAAO,EACToB,EAAMlH,UAAWkH,EAAM2H,QAAQ,IAAIX,EAAqB,UAAmBwB,EAAQrP,EAAOsP,QAAQhN,EAAOuE,EAAM2H,SAAcxO,EAAOoP,OAAO9M,EAAOC,EAAUsE,EAAM2H,SACtK3H,EAAMpB,MAAO,EAwDf,SAASwJ,EAAWjP,EAAQ6G,EAAOjG,EAAU+G,GACtC/G,GASP,SAAsBZ,EAAQ6G,GACP,IAAjBA,EAAMhL,QAAgBgL,EAAM6D,YAC9B7D,EAAM6D,WAAY,EAClB1K,EAAOuH,KAAK,UAZCmI,CAAa1P,EAAQ6G,GACpCA,EAAMuG,YACNzF,IACAiH,EAAY5O,EAAQ6G,GActB,SAASmI,EAAYhP,EAAQ6G,GAC3BA,EAAM0H,kBAAmB,EACzB,IAAItB,EAAQpG,EAAMkI,gBAElB,GAAI/O,EAAOsP,SAAWrC,GAASA,EAAM/E,KAAM,CAEzC,IAAIsB,EAAI3C,EAAMsI,qBACV/J,EAAS,IAAI1J,MAAM8N,GACnBmG,EAAS9I,EAAMwG,mBACnBsC,EAAO1C,MAAQA,EAIf,IAHA,IAAI2C,EAAQ,EACRC,GAAa,EAEV5C,GACL7H,EAAOwK,GAAS3C,EACXA,EAAM6C,QAAOD,GAAa,GAC/B5C,EAAQA,EAAM/E,KACd0H,GAAS,EAGXxK,EAAOyK,WAAaA,EACpBJ,EAAQzP,EAAQ6G,GAAO,EAAMA,EAAMhL,OAAQuJ,EAAQ,GAAIuK,EAAOzC,QAG9DrG,EAAMuG,YACNvG,EAAMqI,oBAAsB,KAExBS,EAAOzH,MACTrB,EAAMwG,mBAAqBsC,EAAOzH,KAClCyH,EAAOzH,KAAO,MAEdrB,EAAMwG,mBAAqB,IAAIL,EAAcnG,GAG/CA,EAAMsI,qBAAuB,MACxB,CAEL,KAAOlC,GAAO,CACZ,IAAI3K,EAAQ2K,EAAM3K,MACdC,EAAW0K,EAAM1K,SACjBoF,EAAKsF,EAAM/M,SASf,GAPAuP,EAAQzP,EAAQ6G,GAAO,EADbA,EAAM3B,WAAa,EAAI5C,EAAMzG,OACJyG,EAAOC,EAAUoF,GACpDsF,EAAQA,EAAM/E,KACdrB,EAAMsI,uBAKFtI,EAAMwH,QACR,MAIU,OAAVpB,IAAgBpG,EAAMqI,oBAAsB,MAGlDrI,EAAMkI,gBAAkB9B,EACxBpG,EAAM0H,kBAAmB,EA2C3B,SAASO,EAAWjI,GAClB,OAAOA,EAAMwF,QAA2B,IAAjBxF,EAAMhL,QAA0C,OAA1BgL,EAAMkI,kBAA6BlI,EAAMjG,WAAaiG,EAAMwH,QAG3G,SAAS0B,EAAU/P,EAAQ6G,GACzB7G,EAAOwP,QAAO,SAAUxO,GACtB6F,EAAMuG,YAEFpM,GACF+D,EAAe/E,EAAQgB,GAGzB6F,EAAM0F,aAAc,EACpBvM,EAAOuH,KAAK,aACZqH,EAAY5O,EAAQ6G,MAiBxB,SAAS+H,EAAY5O,EAAQ6G,GAC3B,IAAImJ,EAAOlB,EAAWjI,GAEtB,GAAImJ,IAhBN,SAAmBhQ,EAAQ6G,GACpBA,EAAM0F,aAAgB1F,EAAMyF,cACF,mBAAlBtM,EAAOwP,QAA0B3I,EAAMlH,WAKhDkH,EAAM0F,aAAc,EACpBvM,EAAOuH,KAAK,eALZV,EAAMuG,YACNvG,EAAMyF,aAAc,EACpBrN,EAAQC,SAAS6Q,EAAW/P,EAAQ6G,KAYtCoJ,CAAUjQ,EAAQ6G,GAEM,IAApBA,EAAMuG,YACRvG,EAAMjG,UAAW,EACjBZ,EAAOuH,KAAK,UAERV,EAAMb,cAAa,CAGrB,IAAIwG,EAASxM,EAAON,iBAEf8M,GAAUA,EAAOxG,aAAewG,EAAO1L,aAC1Cd,EAAOuG,UAMf,OAAOyJ,EA3hBT,EAAQ,IAAR,CAAoBzR,EAAUuF,GAyF9ByJ,EAActS,UAAUwE,UAAY,WAIlC,IAHA,IAAIyQ,EAAUnV,KAAKgU,gBACfoB,EAAM,GAEHD,GACLC,EAAI/R,KAAK8R,GACTA,EAAUA,EAAQhI,KAGpB,OAAOiI,GAGT,WACE,IACEjV,OAAOoE,eAAeiO,EAActS,UAAW,SAAU,CACvDsE,IAAKiO,EAAaC,WAAU,WAC1B,OAAO1S,KAAK0E,cACX,6EAAmF,aAExF,MAAO2Q,KAPX,GAcsB,mBAAXzE,QAAyBA,OAAO0E,aAAiE,mBAA3CC,SAASrV,UAAU0Q,OAAO0E,cACzF3C,EAAkB4C,SAASrV,UAAU0Q,OAAO0E,aAC5CnV,OAAOoE,eAAef,EAAUoN,OAAO0E,YAAa,CAClDjU,MAAO,SAAemU,GACpB,QAAI7C,EAAgB5S,KAAKC,KAAMwV,IAC3BxV,OAASwD,IACNgS,GAAUA,EAAOxR,0BAA0BwO,OAItDG,EAAkB,SAAyB6C,GACzC,OAAOA,aAAkBxV,MA+B7BwD,EAAStD,UAAU2O,KAAO,WACxB7E,EAAehK,KAAM,IAAI6S,IA+B3BrP,EAAStD,UAAUoM,MAAQ,SAAU/E,EAAOC,EAAUoF,GACpD,IAnNqBzJ,EAmNjB2I,EAAQ9L,KAAKgE,eACbgK,GAAM,EAEN+G,GAASjJ,EAAM3B,aAtNEhH,EAsN0BoE,EArNxCZ,EAAOoB,SAAS5E,IAAQA,aAAe6F,GAsO9C,OAfI+L,IAAUpO,EAAOoB,SAASR,KAC5BA,EA7NJ,SAA6BA,GAC3B,OAAOZ,EAAOsB,KAAKV,GA4NT6E,CAAoB7E,IAGN,mBAAbC,IACToF,EAAKpF,EACLA,EAAW,MAGTuN,EAAOvN,EAAW,SAAmBA,IAAUA,EAAWsE,EAAMZ,iBAClD,mBAAP0B,IAAmBA,EAAKsG,GAC/BpH,EAAMwF,OA7CZ,SAAuBrM,EAAQ2H,GAC7B,IAAIf,EAAK,IAAImH,EAEbhJ,EAAe/E,EAAQ4G,GACvB3H,EAAQC,SAASyI,EAAIf,GAyCH4J,CAAczV,KAAM4M,IAAamI,GAnCrD,SAAoB9P,EAAQ6G,EAAOvE,EAAOqF,GACxC,IAAIf,EAQJ,OANc,OAAVtE,EACFsE,EAAK,IAAIkH,EACiB,iBAAVxL,GAAuBuE,EAAM3B,aAC7C0B,EAAK,IAAIjC,EAAqB,QAAS,CAAC,SAAU,UAAWrC,KAG3DsE,IACF7B,EAAe/E,EAAQ4G,GACvB3H,EAAQC,SAASyI,EAAIf,IACd,GAuBmD6J,CAAW1V,KAAM8L,EAAOvE,EAAOqF,MACzFd,EAAMuG,YACNrE,EAwDJ,SAAuB/I,EAAQ6G,EAAOiJ,EAAOxN,EAAOC,EAAUoF,GAC5D,IAAKmI,EAAO,CACV,IAAIY,EAtBR,SAAqB7J,EAAOvE,EAAOC,GAC5BsE,EAAM3B,aAAsC,IAAxB2B,EAAMuH,eAA4C,iBAAV9L,IAC/DA,EAAQZ,EAAOsB,KAAKV,EAAOC,IAG7B,OAAOD,EAiBUqO,CAAY9J,EAAOvE,EAAOC,GAErCD,IAAUoO,IACZZ,GAAQ,EACRvN,EAAW,SACXD,EAAQoO,GAIZ,IAAI9U,EAAMiL,EAAM3B,WAAa,EAAI5C,EAAMzG,OACvCgL,EAAMhL,QAAUD,EAChB,IAAImN,EAAMlC,EAAMhL,OAASgL,EAAMrH,cAE1BuJ,IAAKlC,EAAM6D,WAAY,GAE5B,GAAI7D,EAAMwH,SAAWxH,EAAMyH,OAAQ,CACjC,IAAIsC,EAAO/J,EAAMqI,oBACjBrI,EAAMqI,oBAAsB,CAC1B5M,MAAOA,EACPC,SAAUA,EACVuN,MAAOA,EACP5P,SAAUyH,EACVO,KAAM,MAGJ0I,EACFA,EAAK1I,KAAOrB,EAAMqI,oBAElBrI,EAAMkI,gBAAkBlI,EAAMqI,oBAGhCrI,EAAMsI,sBAAwB,OAE9BM,EAAQzP,EAAQ6G,GAAO,EAAOjL,EAAK0G,EAAOC,EAAUoF,GAGtD,OAAOoB,EA9FC8H,CAAc9V,KAAM8L,EAAOiJ,EAAOxN,EAAOC,EAAUoF,IAEpDoB,GAGTxK,EAAStD,UAAU6V,KAAO,WACxB/V,KAAKgE,eAAeuP,UAGtB/P,EAAStD,UAAU8V,OAAS,WAC1B,IAAIlK,EAAQ9L,KAAKgE,eAEb8H,EAAMyH,SACRzH,EAAMyH,SACDzH,EAAMwH,SAAYxH,EAAMyH,QAAWzH,EAAM0H,mBAAoB1H,EAAMkI,iBAAiBC,EAAYjU,KAAM8L,KAI/GtI,EAAStD,UAAU+V,mBAAqB,SAA4BzO,GAGlE,GADwB,iBAAbA,IAAuBA,EAAWA,EAAS0O,iBAChD,CAAC,MAAO,OAAQ,QAAS,QAAS,SAAU,SAAU,OAAQ,QAAS,UAAW,WAAY,OAAO7T,SAASmF,EAAW,IAAI0O,gBAAkB,GAAI,MAAM,IAAIjD,EAAqBzL,GAExL,OADAxH,KAAKgE,eAAekH,gBAAkB1D,EAC/BxH,MAGTG,OAAOoE,eAAef,EAAStD,UAAW,iBAAkB,CAI1D2C,YAAY,EACZ2B,IAAK,WACH,OAAOxE,KAAKgE,gBAAkBhE,KAAKgE,eAAeU,eAYtDvE,OAAOoE,eAAef,EAAStD,UAAW,wBAAyB,CAIjE2C,YAAY,EACZ2B,IAAK,WACH,OAAOxE,KAAKgE,eAAeS,iBA4L/BjB,EAAStD,UAAUmU,OAAS,SAAU9M,EAAOC,EAAUoF,GACrDA,EAAG,IAAI9C,EAA2B,cAGpCtG,EAAStD,UAAUqU,QAAU,KAE7B/Q,EAAStD,UAAUoE,IAAM,SAAUiD,EAAOC,EAAUoF,GAClD,IAAId,EAAQ9L,KAAKgE,eAoBjB,MAlBqB,mBAAVuD,GACTqF,EAAKrF,EACLA,EAAQ,KACRC,EAAW,MACkB,mBAAbA,IAChBoF,EAAKpF,EACLA,EAAW,MAGTD,SAAuCvH,KAAKsM,MAAM/E,EAAOC,GAEzDsE,EAAMyH,SACRzH,EAAMyH,OAAS,EACfvT,KAAKgW,UAIFlK,EAAMwF,QAsEb,SAAqBrM,EAAQ6G,EAAOc,GAClCd,EAAMwF,QAAS,EACfuC,EAAY5O,EAAQ6G,GAEhBc,IACEd,EAAMjG,SAAU3B,EAAQC,SAASyI,GAAS3H,EAAOnB,KAAK,SAAU8I,IAGtEd,EAAM7H,OAAQ,EACdgB,EAAOnC,UAAW,EA/ECqT,CAAYnW,KAAM8L,EAAOc,GACrC5M,MAGTG,OAAOoE,eAAef,EAAStD,UAAW,iBAAkB,CAI1D2C,YAAY,EACZ2B,IAAK,WACH,OAAOxE,KAAKgE,eAAelD,UAuF/BX,OAAOoE,eAAef,EAAStD,UAAW,YAAa,CAIrD2C,YAAY,EACZ2B,IAAK,WACH,YAA4BxC,IAAxBhC,KAAKgE,gBAIFhE,KAAKgE,eAAeY,WAE7BC,IAAK,SAAaxD,GAGXrB,KAAKgE,iBAMVhE,KAAKgE,eAAeY,UAAYvD,MAGpCmC,EAAStD,UAAUsL,QAAU/B,EAAY+B,QACzChI,EAAStD,UAAUwM,WAAajD,EAAYkD,UAE5CnJ,EAAStD,UAAUuL,SAAW,SAAUxF,EAAK2G,GAC3CA,EAAG3G,M,yDCxnBLzD,EAAOC,QAAUmE,EAEjB,IAAI+C,EAAiB,EAAQ,KAAazK,MACtC4K,EAA6BH,EAAeG,2BAC5C8I,EAAwBjJ,EAAeiJ,sBACvCwD,EAAqCzM,EAAeyM,mCACpDC,EAA8B1M,EAAe0M,4BAE7C/S,EAAS,EAAQ,KAIrB,SAASgT,EAAezK,EAAIjE,GAC1B,IAAI2O,EAAKvW,KAAKwW,gBACdD,EAAGE,cAAe,EAClB,IAAI7J,EAAK2J,EAAG7C,QAEZ,GAAW,OAAP9G,EACF,OAAO5M,KAAKwM,KAAK,QAAS,IAAIoG,GAGhC2D,EAAGG,WAAa,KAChBH,EAAG7C,QAAU,KACD,MAAR9L,GACF5H,KAAKqD,KAAKuE,GACZgF,EAAGf,GACH,IAAI8K,EAAK3W,KAAK2E,eACdgS,EAAGlM,SAAU,GAETkM,EAAGhM,cAAgBgM,EAAG7V,OAAS6V,EAAGlS,gBACpCzE,KAAKuL,MAAMoL,EAAGlS,eAIlB,SAASmC,EAAUjD,GACjB,KAAM3D,gBAAgB4G,GAAY,OAAO,IAAIA,EAAUjD,GACvDL,EAAOvD,KAAKC,KAAM2D,GAClB3D,KAAKwW,gBAAkB,CACrBF,eAAgBA,EAAe3F,KAAK3Q,MACpC4W,eAAe,EACfH,cAAc,EACd/C,QAAS,KACTgD,WAAY,KACZG,cAAe,MAGjB7W,KAAK2E,eAAegG,cAAe,EAInC3K,KAAK2E,eAAe+F,MAAO,EAEvB/G,IAC+B,mBAAtBA,EAAQmT,YAA0B9W,KAAKsH,WAAa3D,EAAQmT,WAC1C,mBAAlBnT,EAAQoT,QAAsB/W,KAAK0H,OAAS/D,EAAQoT,QAIjE/W,KAAKqG,GAAG,YAAa6O,GAGvB,SAASA,IACP,IAAIxE,EAAQ1Q,KAEe,mBAAhBA,KAAK0H,QAA0B1H,KAAK2E,eAAeC,UAK5DoS,EAAKhX,KAAM,KAAM,MAJjBA,KAAK0H,QAAO,SAAUmE,EAAIjE,GACxBoP,EAAKtG,EAAO7E,EAAIjE,MA6DtB,SAASoP,EAAK/R,EAAQ4G,EAAIjE,GACxB,GAAIiE,EAAI,OAAO5G,EAAOuH,KAAK,QAASX,GAMpC,GALY,MAARjE,GACF3C,EAAO5B,KAAKuE,GAIV3C,EAAOjB,eAAelD,OAAQ,MAAM,IAAIuV,EAC5C,GAAIpR,EAAOuR,gBAAgBC,aAAc,MAAM,IAAIL,EACnD,OAAOnR,EAAO5B,KAAK,MA9HrB,EAAQ,IAAR,CAAoBuD,EAAWtD,GA+D/BsD,EAAU1G,UAAUmD,KAAO,SAAUkE,EAAOC,GAE1C,OADAxH,KAAKwW,gBAAgBI,eAAgB,EAC9BtT,EAAOpD,UAAUmD,KAAKtD,KAAKC,KAAMuH,EAAOC,IAajDZ,EAAU1G,UAAUoH,WAAa,SAAUC,EAAOC,EAAUoF,GAC1DA,EAAG,IAAI9C,EAA2B,kBAGpClD,EAAU1G,UAAUmU,OAAS,SAAU9M,EAAOC,EAAUoF,GACtD,IAAI2J,EAAKvW,KAAKwW,gBAKd,GAJAD,EAAG7C,QAAU9G,EACb2J,EAAGG,WAAanP,EAChBgP,EAAGM,cAAgBrP,GAEd+O,EAAGE,aAAc,CACpB,IAAIE,EAAK3W,KAAK2E,gBACV4R,EAAGK,eAAiBD,EAAGhM,cAAgBgM,EAAG7V,OAAS6V,EAAGlS,gBAAezE,KAAKuL,MAAMoL,EAAGlS,iBAO3FmC,EAAU1G,UAAUqL,MAAQ,SAAU+B,GACpC,IAAIiJ,EAAKvW,KAAKwW,gBAEQ,OAAlBD,EAAGG,YAAwBH,EAAGE,aAOhCF,EAAGK,eAAgB,GANnBL,EAAGE,cAAe,EAElBzW,KAAKsH,WAAWiP,EAAGG,WAAYH,EAAGM,cAAeN,EAAGD,kBAQxD1P,EAAU1G,UAAUuL,SAAW,SAAUxF,EAAK2G,GAC5CtJ,EAAOpD,UAAUuL,SAAS1L,KAAKC,KAAMiG,GAAK,SAAUgR,GAClDrK,EAAGqK,Q;;ACxLP,IAAI5M,EAAS,EAAQ,IACjB1D,EAAS0D,EAAO1D,OAGpB,SAASuQ,EAAWlI,EAAKmI,GACvB,IAAK,IAAI/T,KAAO4L,EACdmI,EAAI/T,GAAO4L,EAAI5L,GAWnB,SAASgU,EAAY7U,EAAK8U,EAAkBvW,GAC1C,OAAO6F,EAAOpE,EAAK8U,EAAkBvW,GATnC6F,EAAOsB,MAAQtB,EAAO2Q,OAAS3Q,EAAOK,aAAeL,EAAO4Q,gBAC9D/U,EAAOC,QAAU4H,GAGjB6M,EAAU7M,EAAQ5H,GAClBA,EAAQkE,OAASyQ,GAOnBA,EAAWlX,UAAYC,OAAOC,OAAOuG,EAAOzG,WAG5CgX,EAAUvQ,EAAQyQ,GAElBA,EAAWnP,KAAO,SAAU1F,EAAK8U,EAAkBvW,GACjD,GAAmB,iBAARyB,EACT,MAAM,IAAIjB,UAAU,iCAEtB,OAAOqF,EAAOpE,EAAK8U,EAAkBvW,IAGvCsW,EAAWE,MAAQ,SAAUE,EAAM/O,EAAMjB,GACvC,GAAoB,iBAATgQ,EACT,MAAM,IAAIlW,UAAU,6BAEtB,IAAImW,EAAM9Q,EAAO6Q,GAUjB,YATaxV,IAATyG,EACsB,iBAAbjB,EACTiQ,EAAIhP,KAAKA,EAAMjB,GAEfiQ,EAAIhP,KAAKA,GAGXgP,EAAIhP,KAAK,GAEJgP,GAGTL,EAAWpQ,YAAc,SAAUwQ,GACjC,GAAoB,iBAATA,EACT,MAAM,IAAIlW,UAAU,6BAEtB,OAAOqF,EAAO6Q,IAGhBJ,EAAWG,gBAAkB,SAAUC,GACrC,GAAoB,iBAATA,EACT,MAAM,IAAIlW,UAAU,6BAEtB,OAAO+I,EAAOqN,WAAWF,K,qBC/D3B/U,EAAUD,EAAOC,QAAU,EAAQ,MAC3BsG,OAAStG,EACjBA,EAAQc,SAAWd,EACnBA,EAAQe,SAAW,EAAQ,KAC3Bf,EAAQa,OAAS,EAAQ,KACzBb,EAAQmE,UAAY,EAAQ,KAC5BnE,EAAQkV,YAAc,EAAQ,KAC9BlV,EAAQoD,SAAW,EAAQ,KAC3BpD,EAAQmV,SAAW,EAAQ,M,iCCN3B,SAASC,EAAQrC,EAAQsC,GAAkB,IAAI5U,EAAO/C,OAAO+C,KAAKsS,GAAS,GAAIrV,OAAO4X,sBAAuB,CAAE,IAAIC,EAAU7X,OAAO4X,sBAAsBvC,GAAasC,IAAgBE,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAO/X,OAAOgY,yBAAyB3C,EAAQ0C,GAAKrV,eAAgBK,EAAKG,KAAKoC,MAAMvC,EAAM8U,GAAY,OAAO9U,EAI9U,SAASkV,EAAgBjV,EAAKC,EAAK/B,GAAiK,OAApJ+B,KAAOD,EAAOhD,OAAOoE,eAAepB,EAAKC,EAAK,CAAE/B,MAAOA,EAAOwB,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBK,EAAIC,GAAO/B,EAAgB8B,EAI3M,SAASkV,EAAkBC,EAAQC,GAAS,IAAK,IAAIvX,EAAI,EAAGA,EAAIuX,EAAMzX,OAAQE,IAAK,CAAE,IAAIwX,EAAaD,EAAMvX,GAAIwX,EAAW3V,WAAa2V,EAAW3V,aAAc,EAAO2V,EAAWzV,cAAe,EAAU,UAAWyV,IAAYA,EAAW1V,UAAW,GAAM3C,OAAOoE,eAAe+T,EAAQE,EAAWpV,IAAKoV,IAI7S,IACI7R,EADW,EAAQ,IACDA,OAGlB8R,EADY,EAAQ,KACAA,QAEpBC,EAASD,GAAWA,EAAQC,QAAU,UAM1ClW,EAAOC,QAEP,WACE,SAAS+G,KArBX,SAAyBmP,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAItX,UAAU,qCAsB5GuX,CAAgB7Y,KAAMwJ,GAEtBxJ,KAAKiN,KAAO,KACZjN,KAAK8Y,KAAO,KACZ9Y,KAAKc,OAAS,EAtBlB,IAAsB8X,EAAaG,EAAYC,EAoM7C,OApMoBJ,EAyBPpP,GAzBoBuP,EAyBR,CAAC,CACxB3V,IAAK,OACL/B,MAAO,SAAcoC,GACnB,IAAIyO,EAAQ,CACVtK,KAAMnE,EACN0J,KAAM,MAEJnN,KAAKc,OAAS,EAAGd,KAAK8Y,KAAK3L,KAAO+E,EAAWlS,KAAKiN,KAAOiF,EAC7DlS,KAAK8Y,KAAO5G,IACVlS,KAAKc,SAER,CACDsC,IAAK,UACL/B,MAAO,SAAiBoC,GACtB,IAAIyO,EAAQ,CACVtK,KAAMnE,EACN0J,KAAMnN,KAAKiN,MAEO,IAAhBjN,KAAKc,SAAcd,KAAK8Y,KAAO5G,GACnClS,KAAKiN,KAAOiF,IACVlS,KAAKc,SAER,CACDsC,IAAK,QACL/B,MAAO,WACL,GAAoB,IAAhBrB,KAAKc,OAAT,CACA,IAAIkN,EAAMhO,KAAKiN,KAAKrF,KAGpB,OAFoB,IAAhB5H,KAAKc,OAAcd,KAAKiN,KAAOjN,KAAK8Y,KAAO,KAAU9Y,KAAKiN,KAAOjN,KAAKiN,KAAKE,OAC7EnN,KAAKc,OACAkN,KAER,CACD5K,IAAK,QACL/B,MAAO,WACLrB,KAAKiN,KAAOjN,KAAK8Y,KAAO,KACxB9Y,KAAKc,OAAS,IAEf,CACDsC,IAAK,OACL/B,MAAO,SAAc4X,GACnB,GAAoB,IAAhBjZ,KAAKc,OAAc,MAAO,GAI9B,IAHA,IAAIkM,EAAIhN,KAAKiN,KACTe,EAAM,GAAKhB,EAAEpF,KAEVoF,EAAIA,EAAEG,MACXa,GAAOiL,EAAIjM,EAAEpF,KAGf,OAAOoG,IAER,CACD5K,IAAK,SACL/B,MAAO,SAAgBiM,GACrB,GAAoB,IAAhBtN,KAAKc,OAAc,OAAO6F,EAAO2Q,MAAM,GAK3C,IAJA,IArEctI,EAAKsJ,EAAQnQ,EAqEvB6F,EAAMrH,EAAOK,YAAYsG,IAAM,GAC/BN,EAAIhN,KAAKiN,KACTjM,EAAI,EAEDgM,GAzEOgC,EA0EDhC,EAAEpF,KA1EI0Q,EA0EEtK,EA1EM7F,EA0EDnH,EAzE9B2F,EAAOzG,UAAUgZ,KAAKnZ,KAAKiP,EAAKsJ,EAAQnQ,GA0ElCnH,GAAKgM,EAAEpF,KAAK9G,OACZkM,EAAIA,EAAEG,KAGR,OAAOa,IAGR,CACD5K,IAAK,UACL/B,MAAO,SAAiBiM,EAAG6L,GACzB,IAAInL,EAcJ,OAZIV,EAAItN,KAAKiN,KAAKrF,KAAK9G,QAErBkN,EAAMhO,KAAKiN,KAAKrF,KAAKzG,MAAM,EAAGmM,GAC9BtN,KAAKiN,KAAKrF,KAAO5H,KAAKiN,KAAKrF,KAAKzG,MAAMmM,IAGtCU,EAFSV,IAAMtN,KAAKiN,KAAKrF,KAAK9G,OAExBd,KAAKiO,QAGLkL,EAAanZ,KAAKoZ,WAAW9L,GAAKtN,KAAKqZ,WAAW/L,GAGnDU,IAER,CACD5K,IAAK,QACL/B,MAAO,WACL,OAAOrB,KAAKiN,KAAKrF,OAGlB,CACDxE,IAAK,aACL/B,MAAO,SAAoBiM,GACzB,IAAIN,EAAIhN,KAAKiN,KACTqM,EAAI,EACJtL,EAAMhB,EAAEpF,KAGZ,IAFA0F,GAAKU,EAAIlN,OAEFkM,EAAIA,EAAEG,MAAM,CACjB,IAAIrL,EAAMkL,EAAEpF,KACR2R,EAAKjM,EAAIxL,EAAIhB,OAASgB,EAAIhB,OAASwM,EAIvC,GAHIiM,IAAOzX,EAAIhB,OAAQkN,GAAOlM,EAASkM,GAAOlM,EAAIX,MAAM,EAAGmM,GAGjD,IAFVA,GAAKiM,GAEQ,CACPA,IAAOzX,EAAIhB,UACXwY,EACEtM,EAAEG,KAAMnN,KAAKiN,KAAOD,EAAEG,KAAUnN,KAAKiN,KAAOjN,KAAK8Y,KAAO,OAE5D9Y,KAAKiN,KAAOD,EACZA,EAAEpF,KAAO9F,EAAIX,MAAMoY,IAGrB,QAGAD,EAIJ,OADAtZ,KAAKc,QAAUwY,EACRtL,IAGR,CACD5K,IAAK,aACL/B,MAAO,SAAoBiM,GACzB,IAAIU,EAAMrH,EAAOK,YAAYsG,GACzBN,EAAIhN,KAAKiN,KACTqM,EAAI,EAIR,IAHAtM,EAAEpF,KAAKsR,KAAKlL,GACZV,GAAKN,EAAEpF,KAAK9G,OAELkM,EAAIA,EAAEG,MAAM,CACjB,IAAIsK,EAAMzK,EAAEpF,KACR2R,EAAKjM,EAAImK,EAAI3W,OAAS2W,EAAI3W,OAASwM,EAIvC,GAHAmK,EAAIyB,KAAKlL,EAAKA,EAAIlN,OAASwM,EAAG,EAAGiM,GAGvB,IAFVjM,GAAKiM,GAEQ,CACPA,IAAO9B,EAAI3W,UACXwY,EACEtM,EAAEG,KAAMnN,KAAKiN,KAAOD,EAAEG,KAAUnN,KAAKiN,KAAOjN,KAAK8Y,KAAO,OAE5D9Y,KAAKiN,KAAOD,EACZA,EAAEpF,KAAO6P,EAAItW,MAAMoY,IAGrB,QAGAD,EAIJ,OADAtZ,KAAKc,QAAUwY,EACRtL,IAGR,CACD5K,IAAKsV,EACLrX,MAAO,SAAegU,EAAG1R,GACvB,OAAO8U,EAAQzY,KAnMrB,SAAuBsY,GAAU,IAAK,IAAItX,EAAI,EAAGA,EAAIsE,UAAUxE,OAAQE,IAAK,CAAE,IAAIwY,EAAyB,MAAhBlU,UAAUtE,GAAasE,UAAUtE,GAAK,GAAQA,EAAI,EAAK6W,EAAQ1X,OAAOqZ,IAAS,GAAMC,SAAQ,SAAUrW,GAAOgV,EAAgBE,EAAQlV,EAAKoW,EAAOpW,OAAsBjD,OAAOuZ,0BAA6BvZ,OAAOwZ,iBAAiBrB,EAAQnY,OAAOuZ,0BAA0BF,IAAmB3B,EAAQ1X,OAAOqZ,IAASC,SAAQ,SAAUrW,GAAOjD,OAAOoE,eAAe+T,EAAQlV,EAAKjD,OAAOgY,yBAAyBqB,EAAQpW,OAAe,OAAOkV,EAmMlfsB,CAAc,GAAIjW,EAAS,CAE9CkW,MAAO,EAEPC,eAAe,UA/LuDzB,EAAkBO,EAAY1Y,UAAW6Y,GAAiBC,GAAaX,EAAkBO,EAAaI,GAoM3KxP,EApLT,I,kCC5BA,YAEA,IAAIuQ,EAEJ,SAAS3B,EAAgBjV,EAAKC,EAAK/B,GAAiK,OAApJ+B,KAAOD,EAAOhD,OAAOoE,eAAepB,EAAKC,EAAK,CAAE/B,MAAOA,EAAOwB,YAAY,EAAME,cAAc,EAAMD,UAAU,IAAkBK,EAAIC,GAAO/B,EAAgB8B,EAE3M,IAAI0C,EAAW,EAAQ,KAEnBmU,EAAepJ,OAAO,eACtBqJ,EAAcrJ,OAAO,cACrBsJ,EAAStJ,OAAO,SAChBuJ,EAASvJ,OAAO,SAChBwJ,EAAexJ,OAAO,eACtByJ,EAAiBzJ,OAAO,iBACxB0J,EAAU1J,OAAO,UAErB,SAAS2J,EAAiBlZ,EAAO2V,GAC/B,MAAO,CACL3V,MAAOA,EACP2V,KAAMA,GAIV,SAASwD,EAAeC,GACtB,IAAIC,EAAUD,EAAKT,GAEnB,GAAgB,OAAZU,EAAkB,CACpB,IAAI9S,EAAO6S,EAAKH,GAAShP,OAIZ,OAAT1D,IACF6S,EAAKL,GAAgB,KACrBK,EAAKT,GAAgB,KACrBS,EAAKR,GAAe,KACpBS,EAAQH,EAAiB3S,GAAM,MAKrC,SAAS+S,EAAWF,GAGlBvW,EAAQC,SAASqW,EAAgBC,GAgBnC,IAAIG,EAAyBza,OAAOgM,gBAAe,eAC/C0O,EAAuC1a,OAAO2a,gBA4D/C1C,EA5D+D2B,EAAwB,CACxF,aACE,OAAO/Z,KAAKsa,IAGdnN,KAAM,WACJ,IAAIuD,EAAQ1Q,KAIRyG,EAAQzG,KAAKka,GAEjB,GAAc,OAAVzT,EACF,OAAOsU,QAAQC,OAAOvU,GAGxB,GAAIzG,KAAKma,GACP,OAAOY,QAAQL,QAAQH,OAAiBvY,GAAW,IAGrD,GAAIhC,KAAKsa,GAAS1V,UAKhB,OAAO,IAAImW,SAAQ,SAAUL,EAASM,GACpC9W,EAAQC,UAAS,WACXuM,EAAMwJ,GACRc,EAAOtK,EAAMwJ,IAEbQ,EAAQH,OAAiBvY,GAAW,UAU5C,IACIiZ,EADAC,EAAclb,KAAKoa,GAGvB,GAAIc,EACFD,EAAU,IAAIF,QA1DpB,SAAqBG,EAAaT,GAChC,OAAO,SAAUC,EAASM,GACxBE,EAAYC,MAAK,WACXV,EAAKN,GACPO,EAAQH,OAAiBvY,GAAW,IAItCyY,EAAKJ,GAAgBK,EAASM,KAC7BA,IAiDqBI,CAAYF,EAAalb,WAC1C,CAGL,IAAI4H,EAAO5H,KAAKsa,GAAShP,OAEzB,GAAa,OAAT1D,EACF,OAAOmT,QAAQL,QAAQH,EAAiB3S,GAAM,IAGhDqT,EAAU,IAAIF,QAAQ/a,KAAKqa,IAI7B,OADAra,KAAKoa,GAAgBa,EACdA,IAE+BrK,OAAOC,eAAe,WAC9D,OAAO7Q,QACLoY,EAAgB2B,EAAuB,UAAU,WACnD,IAAIsB,EAASrb,KAKb,OAAO,IAAI+a,SAAQ,SAAUL,EAASM,GACpCK,EAAOf,GAAS9O,QAAQ,MAAM,SAAUvF,GAClCA,EACF+U,EAAO/U,GAITyU,EAAQH,OAAiBvY,GAAW,aAGtC+X,GAAwBa,GAoE5BpY,EAAOC,QAlEiC,SAA2CwC,GACjF,IAAIqW,EAEAC,EAAWpb,OAAOC,OAAOya,GAA4DzC,EAArBkD,EAAiB,GAAoChB,EAAS,CAChIjZ,MAAO4D,EACPnC,UAAU,IACRsV,EAAgBkD,EAAgBtB,EAAc,CAChD3Y,MAAO,KACPyB,UAAU,IACRsV,EAAgBkD,EAAgBrB,EAAa,CAC/C5Y,MAAO,KACPyB,UAAU,IACRsV,EAAgBkD,EAAgBpB,EAAQ,CAC1C7Y,MAAO,KACPyB,UAAU,IACRsV,EAAgBkD,EAAgBnB,EAAQ,CAC1C9Y,MAAO4D,EAAON,eAAeoB,WAC7BjD,UAAU,IACRsV,EAAgBkD,EAAgBjB,EAAgB,CAClDhZ,MAAO,SAAeqZ,EAASM,GAC7B,IAAIpT,EAAO2T,EAASjB,GAAShP,OAEzB1D,GACF2T,EAASnB,GAAgB,KACzBmB,EAASvB,GAAgB,KACzBuB,EAAStB,GAAe,KACxBS,EAAQH,EAAiB3S,GAAM,MAE/B2T,EAASvB,GAAgBU,EACzBa,EAAStB,GAAee,IAG5BlY,UAAU,IACRwY,IA8BJ,OA7BAC,EAASnB,GAAgB,KACzBvU,EAASZ,GAAQ,SAAUgB,GACzB,GAAIA,GAAoB,+BAAbA,EAAI7G,KAAuC,CACpD,IAAI4b,EAASO,EAAStB,GAWtB,OARe,OAAXe,IACFO,EAASnB,GAAgB,KACzBmB,EAASvB,GAAgB,KACzBuB,EAAStB,GAAe,KACxBe,EAAO/U,SAGTsV,EAASrB,GAAUjU,GAIrB,IAAIyU,EAAUa,EAASvB,GAEP,OAAZU,IACFa,EAASnB,GAAgB,KACzBmB,EAASvB,GAAgB,KACzBuB,EAAStB,GAAe,KACxBS,EAAQH,OAAiBvY,GAAW,KAGtCuZ,EAASpB,IAAU,KAErBlV,EAAOoB,GAAG,WAAYsU,EAAWhK,KAAK,KAAM4K,IACrCA,K,oCC3MT/Y,EAAOC,QAAU,WACf,MAAM,IAAIlD,MAAM,mD,iCCwBlBiD,EAAOC,QAAUkV,EAEjB,IAAI/Q,EAAY,EAAQ,KAIxB,SAAS+Q,EAAYhU,GACnB,KAAM3D,gBAAgB2X,GAAc,OAAO,IAAIA,EAAYhU,GAC3DiD,EAAU7G,KAAKC,KAAM2D,GAJvB,EAAQ,IAAR,CAAoBgU,EAAa/Q,GAOjC+Q,EAAYzX,UAAUoH,WAAa,SAAUC,EAAOC,EAAUoF,GAC5DA,EAAG,KAAMrF,K,iCCjCX,IAAIvC,EAWJ,IAAI2E,EAAiB,EAAQ,KAAmBzK,MAC5Csc,EAAmB7R,EAAe6R,iBAClC1I,EAAuBnJ,EAAemJ,qBAE1C,SAAS/N,EAAKkB,GAEZ,GAAIA,EAAK,MAAMA,EAOjB,SAASwV,EAAUxW,EAAQwF,EAAS6I,EAASnO,GAC3CA,EAvBF,SAAcA,GACZ,IAAIC,GAAS,EACb,OAAO,WACDA,IACJA,GAAS,EACTD,EAASM,WAAM,EAAQH,aAkBdxB,CAAKqB,GAChB,IAAIuW,GAAS,EACbzW,EAAOoB,GAAG,SAAS,WACjBqV,GAAS,UAEC1Z,IAARgD,IAAmBA,EAAM,EAAQ,MACrCA,EAAIC,EAAQ,CACVpB,SAAU4G,EACV3H,SAAUwQ,IACT,SAAUrN,GACX,GAAIA,EAAK,OAAOd,EAASc,GACzByV,GAAS,EACTvW,OAEF,IAAIP,GAAY,EAChB,OAAO,SAAUqB,GACf,IAAIyV,IACA9W,EAGJ,OAFAA,GAAY,EAvBhB,SAAmBK,GACjB,OAAOA,EAAOqB,WAAqC,mBAAjBrB,EAAOsB,MAwBnCC,CAAUvB,GAAgBA,EAAOsB,QACP,mBAAnBtB,EAAOuG,QAA+BvG,EAAOuG,eACxDrG,EAASc,GAAO,IAAI6M,EAAqB,UAI7C,SAAS/S,EAAKgQ,GACZA,IAGF,SAASlB,EAAK5G,EAAM0T,GAClB,OAAO1T,EAAK4G,KAAK8M,GAGnB,SAASC,EAAYC,GACnB,OAAKA,EAAQ/a,OAC8B,mBAAhC+a,EAAQA,EAAQ/a,OAAS,GAA0BiE,EACvD8W,EAAQC,MAFa/W,EAgC9BvC,EAAOC,QA3BP,WACE,IAAK,IAAI4C,EAAOC,UAAUxE,OAAQ+a,EAAU,IAAIlb,MAAM0E,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAClFqW,EAAQrW,GAAQF,UAAUE,GAG5B,IAOIiB,EAPAtB,EAAWyW,EAAYC,GAG3B,GAFIlb,MAAMC,QAAQib,EAAQ,MAAKA,EAAUA,EAAQ,IAE7CA,EAAQ/a,OAAS,EACnB,MAAM,IAAI0a,EAAiB,WAI7B,IAAIO,EAAWF,EAAQ9a,KAAI,SAAUkE,EAAQjE,GAC3C,IAAIyJ,EAAUzJ,EAAI6a,EAAQ/a,OAAS,EAEnC,OAAO2a,EAAUxW,EAAQwF,EADXzJ,EAAI,GACyB,SAAUiF,GAC9CQ,IAAOA,EAAQR,GAChBA,GAAK8V,EAAStC,QAAQ1Z,GACtB0K,IACJsR,EAAStC,QAAQ1Z,GACjBoF,EAASsB,UAGb,OAAOoV,EAAQG,OAAOnN","file":"yarn.hash-base.becc34fe6fa559c58c21.js","sourcesContent":["'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('readable-stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","module.exports = require('events').EventEmitter;\n","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;"],"sourceRoot":""}