{"version":3,"sources":["webpack:///./node_modules/diffie-hellman/browser.js","webpack:///./node_modules/browserify-aes/modes/ecb.js","webpack:///./node_modules/des.js/lib/des/cipher.js","webpack:///./node_modules/asn1.js/lib/asn1/constants/index.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js","webpack:///./node_modules/hash.js/lib/hash/sha/224.js","webpack:///./node_modules/sha.js/sha.js","webpack:///./node_modules/vant/es/utils/dom/node.js","webpack:///./node_modules/readable-stream/duplex-browser.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/browserify-aes/streamCipher.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/browserify-des/modes.js","webpack:///./node_modules/elliptic/lib/elliptic/curves.js","webpack:///./node_modules/des.js/lib/des/cbc.js","webpack:///./src/util/util.js","webpack:///./node_modules/dayjs/plugin/utc.js","webpack:///./node_modules/public-encrypt/privateDecrypt.js","webpack:///./node_modules/browserify-sign/algos.js","webpack:///./node_modules/randombytes/browser.js","webpack:///./node_modules/vant/es/utils/dom/event.js","webpack:///./node_modules/hash.js/lib/hash/sha/1.js","webpack:///./node_modules/des.js/lib/des.js","webpack:///./src/views/comment/components/CommentInput.vue?e383","webpack:///src/views/comment/components/CommentInput.vue","webpack:///./src/views/comment/components/CommentInput.vue?9521","webpack:///./src/views/comment/components/CommentInput.vue","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/create-hmac/browser.js","webpack:///./src/store/modules/video.js","webpack:///./node_modules/crypto-browserify/index.js","webpack:///./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./node_modules/browserify-des/index.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/des.js/lib/des/ede.js","webpack:///./src/views/comment/components/ShrinkCommentItem.vue?6dd5","webpack:///./node_modules/pbkdf2/lib/async.js","webpack:///./node_modules/asn1.js/lib/asn1/decoders/index.js","webpack:///./node_modules/hash.js/lib/hash/hmac.js","webpack:///./node_modules/vant/es/utils/vnodes.js","webpack:///./node_modules/vant/es/mixins/relation.js","webpack:///./node_modules/vant/es/goods-action/index.js","webpack:///./node_modules/vant/es/dialog/index.js","webpack:///./node_modules/vant/es/goods-action-button/index.js","webpack:///./node_modules/vant/es/dialog/Dialog.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack:///./node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/parse-asn1/index.js","webpack:///./src/views/comment/components/CommentItem.vue?6ebf","webpack:///src/views/comment/components/CommentItem.vue","webpack:///./src/views/comment/components/CommentItem.vue?aa25","webpack:///./src/views/comment/components/CommentItem.vue","webpack:///./node_modules/readable-stream/writable-browser.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/short.js","webpack:///./node_modules/elliptic/lib/elliptic.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/asn1.js/lib/asn1/encoders/index.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/browserify-aes/modes/cfb.js","webpack:///./node_modules/asn1.js/lib/asn1/encoders/der.js","webpack:///./node_modules/elliptic/lib/elliptic/eddsa/key.js","webpack:///./node_modules/vant/es/mixins/touch.js","webpack:///./node_modules/bn.js/lib/bn.js","webpack:///./node_modules/browserify-aes/aes.js","webpack:///./node_modules/core-util-is/lib/util.js","webpack:///./src/static/ic_favored.png","webpack:///./node_modules/elliptic/lib/elliptic/curve/edwards.js","webpack:///./node_modules/browserify-aes/ghash.js","webpack:///./src/views/video/AdTip.vue?7734","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","webpack:///./node_modules/parse-asn1/asn1.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack:///./node_modules/asn1.js/lib/asn1/base/index.js","webpack:///./node_modules/browserify-aes/decrypter.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack:///./src/store/index.js","webpack:///./node_modules/elliptic/lib/elliptic/eddsa/signature.js","webpack:///./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/vant/es/utils/router.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/parse-asn1/fixProc.js","webpack:///./node_modules/des.js/lib/des/des.js","webpack:///./src/static/ic_favor.png","webpack:///./node_modules/sha.js/sha512.js","webpack:///./node_modules/browserify-aes/modes/ofb.js","webpack:///./node_modules/browserify-aes/modes/cfb1.js","webpack:///./node_modules/public-encrypt/withPublic.js","webpack:///./node_modules/diffie-hellman/lib/dh.js","webpack:///./node_modules/parse-asn1/certificate.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack:///./node_modules/diffie-hellman/lib/generatePrime.js","webpack:///./node_modules/hash.js/lib/hash/sha.js","webpack:///./node_modules/dayjs/dayjs.min.js","webpack:///./node_modules/create-hash/md5.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./src/views/comment/components/CommentItem.vue?7e5d","webpack:///./node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/des.js/lib/des/utils.js","webpack:///./node_modules/vant/es/mixins/bind-event.js","webpack:///./node_modules/asn1.js/lib/asn1/base/buffer.js","webpack:///./node_modules/browserify-aes/modes/cfb8.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/cipher-base/index.js","webpack:///./node_modules/public-encrypt/browser.js","webpack:///./node_modules/vant/es/mixins/popup/context.js","webpack:///./node_modules/vant/es/overlay/index.js","webpack:///./node_modules/vant/es/mixins/popup/overlay.js","webpack:///./node_modules/vant/es/mixins/portal.js","webpack:///./node_modules/vant/es/mixins/close-on-popstate.js","webpack:///./node_modules/vant/es/mixins/popup/index.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/mont.js","webpack:///./node_modules/sha.js/index.js","webpack:///./node_modules/hmac-drbg/lib/hmac-drbg.js","webpack:///./node_modules/browserify-aes/modes/ctr.js","webpack:///./node_modules/hash.js/lib/hash/sha/256.js","webpack:///./node_modules/browserify-sign/browser/sign.js","webpack:///./node_modules/sha.js/sha224.js","webpack:///./src/views/comment/components/CommentInputPopup.vue?0887","webpack:///./node_modules/randomfill/browser.js","webpack:///./node_modules/minimalistic-crypto-utils/lib/utils.js","webpack:///./node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/miller-rabin/lib/mr.js","webpack:///./node_modules/pbkdf2/lib/precondition.js","webpack:///./node_modules/string_decoder/lib/string_decoder.js","webpack:///./node_modules/hash.js/lib/hash.js","webpack:///./node_modules/sha.js/sha1.js","webpack:///./node_modules/node-uuid/uuid.js","webpack:///./node_modules/asn1.js/lib/asn1.js","webpack:///./node_modules/browserify-aes/authCipher.js","webpack:///./node_modules/asn1.js/lib/asn1/base/node.js","webpack:///./node_modules/public-encrypt/xor.js","webpack:///./node_modules/asn1.js/lib/asn1/encoders/pem.js","webpack:///./node_modules/safe-buffer/index.js","webpack:///./node_modules/browserify-aes/encrypter.js","webpack:///./node_modules/vant/es/popup/style/index.js","webpack:///./node_modules/asn1.js/lib/asn1/constants/der.js","webpack:///./node_modules/hash.js/lib/hash/sha/384.js","webpack:///./node_modules/pbkdf2/lib/to-buffer.js","webpack:///./src/static/bg_comments.png","webpack:///./node_modules/buffer-xor/index.js","webpack:///./node_modules/asn1.js/lib/asn1/decoders/pem.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack:///./node_modules/hash-base/index.js","webpack:///./node_modules/elliptic/lib/elliptic/eddsa/index.js","webpack:///./node_modules/browserify-cipher/browser.js","webpack:///./node_modules/process-nextick-args/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/browserify-sign/browser/verify.js","webpack:///./node_modules/create-hash/browser.js","webpack:///./src/views/comment/components/CommentInput.vue?03e8","webpack:///./src/views/comment/Comment.vue?e650","webpack:///./src/views/comment/components/ShrinkCommentItem.vue?dfd7","webpack:///src/views/comment/components/ShrinkCommentItem.vue","webpack:///./src/views/comment/components/ShrinkCommentItem.vue?f7cb","webpack:///./src/views/comment/components/ShrinkCommentItem.vue","webpack:///./src/views/comment/components/CommentInputPopup.vue?6e90","webpack:///src/views/comment/components/CommentInputPopup.vue","webpack:///./src/views/comment/components/CommentInputPopup.vue?f0cf","webpack:///./src/views/comment/components/CommentInputPopup.vue","webpack:///src/views/comment/Comment.vue","webpack:///./src/views/comment/Comment.vue?a9d3","webpack:///./src/views/comment/Comment.vue","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/errors-browser.js","webpack:///./node_modules/pbkdf2/lib/default-encoding.js","webpack:///./node_modules/pbkdf2/browser.js","webpack:///./node_modules/sha.js/sha256.js","webpack:///./node_modules/browserify-rsa/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/vant/es/utils/dom/scroll.js","webpack:///./node_modules/readable-stream/node_modules/safe-buffer/index.js","webpack:///./node_modules/browserify-rsa/index.js","webpack:///./node_modules/hash.js/lib/hash/sha/common.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack:///./node_modules/public-encrypt/publicEncrypt.js","webpack:///./node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/evp_bytestokey/index.js","webpack:///./node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/vant/es/utils/constant.js","webpack:///./node_modules/hash.js/lib/hash/sha/512.js","webpack:///./src/api/appInfo.js","webpack:///./node_modules/ripemd160/index.js","webpack:///./src/views/comment/Comment.vue?d5c6","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/vant/es/button/index.js","webpack:///./node_modules/sha.js/hash.js","webpack:///./node_modules/browserify-sign/browser/index.js","webpack:///./node_modules/elliptic/lib/elliptic/ec/signature.js","webpack:///./node_modules/util-deprecate/browser.js","webpack:///./node_modules/sha.js/sha384.js","webpack:///./node_modules/elliptic/lib/elliptic/ec/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js","webpack:///./node_modules/browserify-aes/modes/index.js","webpack:///./node_modules/browserify-sign/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/elliptic/lib/elliptic/ec/key.js","webpack:///./node_modules/hash.js/lib/hash/ripemd.js","webpack:///./src/store/modules/viewPointDetail.js","webpack:///./node_modules/browserify-aes/incr32.js","webpack:///./node_modules/browserify-aes/modes/cbc.js","webpack:///./src/api/service.js","webpack:///./src/api/http.js","webpack:///./node_modules/readable-stream/passthrough.js","webpack:///./node_modules/vant/es/icon/style/index.js","webpack:///./node_modules/hash.js/lib/hash/utils.js","webpack:///./node_modules/safer-buffer/safer.js","webpack:///./src/store/modules sync \\.js$","webpack:///./src/static/ic_input.png","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/asn1.js/lib/asn1/decoders/der.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js","webpack:///./node_modules/readable-stream/transform.js","webpack:///./node_modules/asn1.js/lib/asn1/base/reporter.js","webpack:///./src/static/ic_v_log.png","webpack:///./node_modules/create-hmac/legacy.js","webpack:///./node_modules/stream-browserify/index.js","webpack:///./src/store/modules/follow.js","webpack:///./node_modules/minimalistic-assert/index.js","webpack:///./node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:///./node_modules/pbkdf2/lib/sync-browser.js","webpack:///./node_modules/vant/es/dialog/style/index.js","webpack:///./node_modules/create-ecdh/browser.js","webpack:///./node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/vant/es/popup/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/base.js","webpack:///./node_modules/hash.js/lib/hash/common.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack:///./node_modules/asn1.js/lib/asn1/api.js","webpack:///./src/store/modules/comment.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js","webpack:///./src/views/video/AdTip.vue?3db1","webpack:///src/views/video/AdTip.vue","webpack:///./src/views/video/AdTip.vue?8c1a","webpack:///./src/views/video/AdTip.vue","webpack:///./node_modules/elliptic/lib/elliptic/utils.js","webpack:///./node_modules/public-encrypt/mgf.js","webpack:///./node_modules/md5.js/index.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack:///./node_modules/events/events.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack:///./node_modules/browserify-aes/browser.js","webpack:///./node_modules/brorand/index.js"],"names":["primes","DH","getDiffieHellman","mod","prime","Buffer","gen","ENCODINGS","createDiffieHellman","enc","generator","genc","isBuffer","undefined","generatePrime","exports","DiffieHellmanGroup","createDiffieHellmanGroup","DiffieHellman","encrypt","self","block","_cipher","encryptBlock","decrypt","decryptBlock","assert","Cipher","options","this","type","blockSize","_init","buffer","Array","bufferOff","module","prototype","update","data","length","_updateDecrypt","_updateEncrypt","_buffer","off","min","Math","i","_flushBuffer","out","_update","inputOff","outputOff","count","max","ceil","final","first","last","_finalEncrypt","_finalDecrypt","concat","_pad","_unpad","equal","constants","_reverse","map","res","Object","keys","forEach","key","value","der","ERR_INVALID_OPT_VALUE","codes","highWaterMarkFrom","isDuplex","duplexKey","highWaterMark","getHighWaterMark","state","hwm","isFinite","floor","name","objectMode","utils","SHA256","SHA224","call","h","inherits","outSize","hmacStrength","padLength","_digest","toHex32","slice","split32","Hash","K","W","Sha","init","_w","rotl5","num","rotl30","ft","s","b","c","d","_a","_b","_c","_d","_e","M","a","e","readInt32BE","j","t","_hash","H","allocUnsafe","writeInt32BE","removeNode","el","parent","parentNode","removeChild","Transform","_require$codes","ERR_METHOD_NOT_IMPLEMENTED","ERR_MULTIPLE_CALLBACK","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","Duplex","afterTransform","er","ts","_transformState","transforming","cb","writecb","emit","writechunk","push","rs","_readableState","reading","needReadable","_read","bind","needTransform","writeencoding","sync","transform","_transform","flush","_flush","on","prefinish","_this","destroyed","done","stream","_writableState","chunk","encoding","_write","n","_destroy","err","err2","aes","StreamCipher","mode","iv","AES","_prev","from","_cache","_secCache","_decrypt","_mode","_final","scrub","PassThrough","des","des3","pre","curves","hash","curve","PresetCurve","short","edwards","mont","g","validate","mul","isInfinity","defineCurve","defineProperty","configurable","enumerable","get","p","sha256","gRed","sha384","sha512","beta","lambda","basis","proto","CBCState","instantiate","Base","CBC","_cbcInit","create","_cbcState","inp","inOff","outOff","superProto","constructor","super_","Util","window","screen","width","url","console","log","location","href","px","htmlFontSize","document","body","currentStyle","defaultView","getComputedStyle","fontSize","scale","replace","goods","keepScreenOn","targetMv","currentMv","isIncludeEqual","isSupport","mv","targetMvArr","split","currentMvArr","warn","utc","date","args","arguments","toDate","locale","$L","add","utcOffset","local","f","parse","$u","$utils","u","$offset","$d","$y","getUTCFullYear","$M","getUTCMonth","$D","getUTCDate","$W","getUTCDay","$H","getUTCHours","$m","getUTCMinutes","$s","getUTCSeconds","$ms","getUTCMilliseconds","abs","getTimezoneOffset","$x","$localOffset","o","format","valueOf","Date","isUTC","toISOString","toString","toUTCString","r","diff","parseKeys","mgf","xor","BN","crt","createHash","withPublic","oaep","msg","k","modulus","byteLength","iHash","alloc","digest","hLen","Error","maskedSeed","maskedDb","seed","db","compare","pkcs1","reverse","p1","status","ps","dif","len","privateKey","padding","cmp","zBuffer","MAX_BYTES","MAX_UINT32","oldBrowser","crypto","global","msCrypto","randomBytes","size","RangeError","bytes","generated","getRandomValues","process","nextTick","supportsPassive","opts","addEventListener","target","event","handler","passive","capture","removeEventListener","stopPropagation","preventDefault","isStopPropagation","cancelable","common","shaCommon","rotl32","sum32","sum32_5","ft_1","BlockHash","sha1_K","SHA1","start","DES","EDE","render","_vm","_h","$createElement","_self","staticClass","class","bottomClass","ref","$event","onInputEvent","attrs","_v","_s","bottomTitle","Favored","collectFun","directives","rawName","expression","placeholder","domProps","onFocusEvent","onBlurEvent","onTextChanged","composing","content","onCommitEvent","staticRenderFns","props","comment","default","commentsInfo","isFavored","Boolean","id","String","focus","currComment","isClick","FavoredTem","computed","commentInputType","inputType","commentOptions","title","methods","util","startInput","$emit","popupDom","style","height","$refs","stopInput","substring","$toast","visibility","$nextTick","getElementsByClassName","scrollTop","component","CorkedRequest","next","entry","finish","onCorkedFinish","Writable","WritableState","internalUtil","deprecate","Stream","OurUint8Array","Uint8Array","_uint8ArrayToBuffer","_isUint8Array","obj","realHasInstance","destroyImpl","_require","ERR_INVALID_ARG_TYPE","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","errorOrDestroy","nop","writableObjectMode","finalCalled","needDrain","ending","ended","finished","noDecode","decodeStrings","defaultEncoding","writing","corked","bufferProcessing","onwrite","writelen","bufferedRequest","lastBufferedRequest","pendingcb","prefinished","errorEmitted","emitClose","autoDestroy","bufferedRequestCount","corkedRequestsFree","writable","write","writev","_writev","destroy","writeAfterEnd","validChunk","decodeChunk","writeOrBuffer","isBuf","newChunk","ret","callback","doWrite","onwriteError","finishMaybe","onwriteStateUpdate","needFinish","clearBuffer","afterWrite","onwriteDrain","l","holder","allBuffers","callFinal","need","rState","endEmitted","endWritable","once","corkReq","getBuffer","current","_","Symbol","hasInstance","Function","object","pipe","cork","uncork","setDefaultEncoding","toLowerCase","indexOf","end","set","_undestroy","undestroy","Legacy","md5","RIPEMD160","sha","ZEROS","Hmac","alg","blocksize","_alg","_key","ipad","_ipad","opad","_opad","resp","playInfo","currentVideo","respReport","mutations","setResp","setPlayInfo","setCurrentVideo","videoIdentity","setrespReport","setProgress","progress","actions","request","params","commit","http","post","then","requestVideo","requestUploadProgress","courses","detail","page","list","v","requestDetail","namespaced","rng","pseudoRandomBytes","prng","createHmac","algos","algoKeys","hashes","getHashes","pbkdf2","pbkdf2Sync","createCipher","Cipheriv","createCipheriv","Decipher","createDecipher","Decipheriv","createDecipheriv","getCiphers","listCiphers","dh","sign","createSign","Sign","createVerify","Verify","createECDH","publicEncrypt","privateEncrypt","publicDecrypt","privateDecrypt","rf","randomFill","randomFillSync","createCredentials","join","asyncGeneratorStep","resolve","reject","_next","_throw","arg","info","error","Promise","_asyncToGenerator","fn","apply","CipherBase","modes","modeName","_des","toByteArray","fromByteArray","lookup","revLookup","Arr","code","charCodeAt","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","tmp","arr","curByte","tripletToBase64","encodeChunk","uint8","output","extraBytes","parts","maxChunkLength","len2","EDEState","k1","k2","k3","ciphers","_edeState","ZERO_BUF","checkParameters","toBuffer","subtle","toBrowser","sha1","checks","checkNative","algo","browser","importKey","deriveBits","prom","browserPbkdf2","catch","password","salt","iterations","resolvePromise","promise","keylen","decoders","pem","inner","outer","toArray","flattenVNodes","vnodes","result","traverse","vnode","componentInstance","$children","item","$vnode","children","sortChildren","componentOptions","sort","ChildrenMixin","_parent","_inject","_computed","indexKey","inject","disableBindRelation","bindRelation","watch","val","mounted","beforeDestroy","filter","ParentMixin","provide","_ref","instance","_createNamespace","createComponent","bem","mixins","safeAreaInsetBottom","unfit","slots","text","icon","color","loading","disabled","isFirst","prev","index","$options","isLast","onClick","$router","theme","Number","message","className","beforeClose","messageAlign","cancelButtonText","cancelButtonColor","confirmButtonText","confirmButtonColor","showCancelButton","overlay","allowHtml","transition","showConfirmButton","closeOnPopstate","closeOnClickOverlay","confirm","cancel","onClickOverlay","handleAction","action","onClose","close","onOpened","onClosed","genRoundButtons","_this2","genButtons","_this3","multiple","genContent","hasTitle","messageSlot","_bem","_domProps","isolated","shouldRender","Title","isInDocument","element","contains","initInstance","$destroy","extend","createElement","propsData","lazyRender","$on","$el","currentOptions","defaultOptions","lockScroll","overlayClass","overlayStyle","getContainer","alert","setDefaultOptions","resetDefaultOptions","install","use","Component","$dialog","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","_classCallCheck","Constructor","TypeError","_defineProperties","descriptor","_createClass","protoProps","staticProps","_require2","inspect","custom","copyBuffer","src","offset","copy","BufferList","head","tail","hasStrings","shift","_getString","_getBuffer","str","nb","buf","depth","customInspect","asn1","aesid","fixProc","compat","passphrase","subtype","ndata","stripped","tag","certificate","decode","tbsCertificate","subjectPublicKeyInfo","PublicKey","algorithm","RSAPublicKey","subjectPublicKey","subjectPrivateKey","pub_key","DSAparam","EncryptedPrivateKey","PrivateKey","RSAPrivateKey","ECPrivateKey","priv_key","DSAPrivateKey","parameters","kde","kdeparams","iters","parseInt","cipher","cipherText","signature","onReplyEvent","avatar","nickname","commentColor","parentComent","parentCommentColor","createTime","staticStyle","replyTitle","onDeleteEvent","showReplyCount","showDelete","showOwner","replyCount","isAuthor","canDelete","dayjs","ShortCurve","conf","toRed","red","tinv","two","redInvm","zeroA","fromRed","cmpn","threeA","sub","endo","_getEndomorphism","_endoWnafT1","_endoWnafT2","Point","x","y","isRed","BasePoint","inf","forceRed","JPoint","z","one","zOne","modn","betas","_getEndoRoots","lambdas","redMul","vec","_getEndoBasis","ntinv","redNeg","redSqrt","l1","redAdd","l2","redSub","a0","b0","a1","b1","a2","b2","prevR","aprxSqrt","ushrn","bitLength","clone","x1","y1","x2","y2","q","div","neg","len1","sqr","negative","_endoSplit","v1","v2","c1","divRound","c2","p2","q1","q2","pointFromX","odd","redSqr","redIAdd","zero","isOdd","point","ax","rhs","redISub","_endoWnafMulAdd","points","coeffs","jacobianResult","npoints","ncoeffs","_getBeta","ineg","_wnafMulAdd","pointFromJSON","fromJSON","precomputed","endoMul","naf","wnd","doubles","step","toJSON","JSON","obj2point","eq","dbl","nx","ny","ys1","dyinv","getX","getY","_hasDoubles","_fixedNafMul","_wnafMul","mulAdd","jmulAdd","_precompute","negate","toJ","jpoint","toP","zinv","zinv2","ay","pz2","z2","u1","u2","s1","s2","h2","h3","nz","mixedAdd","dblp","pow","jx","jy","jz","jz4","jyd","jx2","jyd2","jyd4","t1","t2","dny","_zeroDbl","_threeDbl","_dbl","xx","yy","yyyy","m","yyyy8","c8","delta","gamma","alpha","beta4","beta8","ggamma8","jy2","jxd4","jyd8","trpl","zz","mm","ee","yyu4","kbase","z3","pz3","eqXToP","zs","rx","xc","redN","iadd","elliptic","version","rand","ec","eddsa","Readable","pipeline","encoders","encryptStart","Node","DEREncoder","entity","tree","DERNode","encodeTag","primitive","cls","reporter","tagByName","hasOwnProperty","tagClassByName","encode","_encode","_encodeComposite","encodedTag","header","_createEncoderBuffer","lenOctets","_encodeStr","unused","writeUInt16BE","_isNumstr","_isPrintstr","test","_encodeObjid","values","relative","isArray","stringify","splice","ident","objid","_encodeTime","time","_encodeNull","_encodeInt","numArray","unshift","_encodeBool","_use","_getEncoder","_skipDefault","dataBuffer","_baseState","defaultBuffer","_encodeValue","parseBytes","cachedProperty","KeyPair","_secret","secret","isPoint","pub","_pub","_pubBytes","fromPublic","fromSecret","encodePoint","decodePoint","priv","lastIx","encodingLength","decodeInt","privBytes","verify","sig","getSecret","getPublic","pubBytes","MIN_DISTANCE","getDirection","TouchMixin","direction","touchStart","resetTouchStatus","startX","touches","clientX","startY","clientY","touchMove","touch","deltaX","deltaY","offsetX","offsetY","bindTouchEvent","onTouchStart","onTouchMove","onTouchEnd","ctor","superCtor","TempCtor","number","base","endian","isBN","words","wordSize","parseHex","parseBase","left","right","_initNumber","_initArray","_parseHex","_parseBase","strip","w","limbLen","limbPow","total","word","imuln","_iaddn","dest","_expand","_normSign","zeros","groupSizes","groupBases","toBitArray","bit","wbit","smallMulTo","lo","carry","ncarry","rword","maxJ","groupSize","groupBase","isZero","idivn","toNumber","toArrayLike","ArrayType","reqLength","littleEndian","andln","iushrn","clz32","_countBits","_zeroBits","hi","zeroBits","toTwos","inotn","iaddn","fromTwos","testn","notn","isNeg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","uxor","bytesNeeded","bitsLeft","setn","isub","comb10MulTo","mid","al0","ah0","al1","ah1","al2","ah2","a3","al3","ah3","a4","al4","ah4","a5","al5","ah5","a6","al6","ah6","a7","al7","ah7","a8","al8","ah8","a9","al9","ah9","bl0","bh0","bl1","bh1","bl2","bh2","b3","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","b6","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","b9","bl9","bh9","imul","w0","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","bigMulTo","hncarry","jumboMulTo","fftm","FFTM","mulp","mulTo","makeRBT","N","revBin","rb","permute","rbt","rws","iws","rtws","itws","rtwdf","cos","PI","itwdf","sin","rtwdf_","itwdf_","re","ie","ro","io","guessLen13b","conjugate","normalize13b","ws","round","convert13b","stub","ph","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","muln","isqr","iushln","bits","carryMask","newCarry","ishln","hint","extended","mask","maskedWords","ishrn","shln","ushln","shrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","_wordDiv","bhi","bhiBits","qj","divmod","positive","divn","umod","dm","half","r2","acc","egcd","A","B","C","D","isEven","yp","xp","im","jm","gcd","_invmp","invm","bincn","ucmp","gtn","gt","gten","gte","ltn","lt","lten","lte","eqn","Red","ctx","convertTo","_forceRed","convertFrom","redShl","shl","_verify2","redIMul","_verify1","redISqr","sqrt","redPow","k256","p224","p192","p25519","MPrime","_tmp","K256","P224","P192","P25519","_prime","Mont","imod","rinv","minv","ireduce","rlen","imulK","_strip","input","outLen","mod3","nOne","lpow","inv","windowSize","currentLen","asUInt32Array","readUInt32BE","scrubVec","cryptBlock","keySchedule","SUB_MIX","SBOX","nRounds","t0","t3","SUB_MIX0","SUB_MIX1","SUB_MIX2","SUB_MIX3","s0","s3","ksRow","RCON","G","INV_SBOX","INV_SUB_MIX","xi","sx","x4","x8","_reset","keySize","keyWords","ksRows","invKeySchedule","ik","ksR","tt","_nRounds","_keySchedule","_invKeySchedule","encryptBlockRaw","writeUInt32BE","m1","objectToString","isBoolean","isNull","isNullOrUndefined","isNumber","isString","isSymbol","isUndefined","isRegExp","isObject","isDate","isError","isFunction","isPrimitive","EdwardsCurve","twisted","mOneA","dd","oneC","_mulA","_mulC","lhs","pointFromY","normalize","_extDbl","nt","_projDbl","_extAdd","_projAdd","zi","other","ZEROES","fromArray","GHASH","cache","ghash","_multiply","lsbVi","Vi","Zi","abl","bl","define","seq","int","AlgorithmIdentifier","bitstr","null_","optional","PrivateKeyInfo","octstr","EncryptedPrivateKeyInfo","explicit","ECParameters","choice","namedCurve","_Object$setPrototypeO","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","iter","read","onReadable","wrapForNext","lastPromise","AsyncIteratorPrototype","getPrototypeOf","ReadableStreamAsyncIteratorPrototype","setPrototypeOf","asyncIterator","createReadableStreamAsyncIterator","_Object$create","iterator","Reporter","DecoderBuffer","EncoderBuffer","AuthCipher","MODES","ebtk","Splitter","_last","_autopadding","unpad","padded","suite","config","thing","setAutoPadding","setTo","autoPadding","ReadableState","EventEmitter","EElistenerCount","emitter","listeners","debug","debugUtil","debuglog","StringDecoder","ERR_STREAM_PUSH_AFTER_EOF","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","kProxyEvents","prependListener","_events","readableObjectMode","pipes","pipesCount","flowing","emittedReadable","readableListening","resumeScheduled","paused","awaitDrain","readingMore","decoder","readable","readableAddChunk","addToFront","skipChunkCheck","onEofChunk","chunkInvalid","addChunk","maybeReadMore","emitReadable","isPaused","setEncoding","clear","MAX_HWM","computeNewHighWaterMark","howMuchToRead","emitReadable_","flow","maybeReadMore_","pipeOnDrain","updateReadableListening","listenerCount","resume","nReadingNextTick","resume_","fromList","consume","endReadable","endReadableNT","wState","xs","nOrig","doRead","pipeOpts","doEnd","stdout","stderr","endFn","onend","unpipe","onunpipe","unpipeInfo","hasUnpiped","cleanup","ondrain","cleanedUp","removeListener","onclose","onfinish","onerror","ondata","pause","dests","ev","addListener","removeAllListeners","wrap","method","_fromList","iterable","ERR_STREAM_PREMATURE_CLOSE","called","_len","noop","isRequest","setHeader","abort","eos","onlegacyfinish","writableEnded","readableEnded","onrequest","req","Vue","Vuex","store","Store","storeContext","require","modules","registerModule","$store","Signature","R","S","_R","_S","_Rencoded","Rencoded","_Sencoded","Sencoded","encodeInt","toBytes","toHex","toUpperCase","pna","readableDestroyed","writableDestroyed","emitErrorNT","isRedundantNavigation","route","router","to","functionalRoute","context","routeProps","emitCloseNT","emitErrorAndCloseNT","findProc","startRegex","fullRegex","evp","okey","decrypted","match","cipherKey","match2","DESState","_desState","deriveKeys","shiftTable","kL","kR","pc1","r28shl","pc2","ip","_encrypt","pad","lStart","rStart","keyL","keyR","expand","substitute","rip","Sha512","Ch","maj","sigma0","xl","sigma1","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","ah","bh","ch","eh","fh","gh","hh","al","cl","dl","fl","gl","hl","xh","gamma0","gamma0l","gamma1","gamma1l","Wi7h","Wi7l","Wi16h","Wi16l","Wil","Wih","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Kih","Kil","chh","chl","t1l","t1h","t2l","t2h","writeInt64BE","getBlock","encryptByte","byteParam","shiftIn","paddedMsg","publicExponent","MillerRabin","millerRabin","TWENTYFOUR","ELEVEN","TEN","THREE","SEVEN","setPublicKey","setPrivateKey","_priv","primeCache","checkPrime","hex","rem","simpleSieve","fermatTest","malleable","setGenerator","__prime","_primeLen","_primeCode","formatReturnValue","bn","__gen","generateKeys","_gen","getPublicKey","computeSecret","getPrime","front","fill","getPrivateKey","getGenerator","asn","Time","utcTime","utctime","generalTime","gentime","AttributeTypeValue","any","SubjectPublicKeyInfo","RelativeDistinguishedName","setof","RDNSequence","seqof","Name","rdnSequence","Validity","Extension","bool","def","TBSCertificate","implicit","X509Certificate","findPrime","ONE","TWO","FIVE","FOUR","_getPrimes","limit","n2","sha224","weekdays","months","$","year","month","ms","Q","NaN","UTC","getFullYear","getMonth","getDate","getDay","getHours","getMinutes","getSeconds","getMilliseconds","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","unix","getTime","$locale","weekStart","$set","daysInMonth","subtract","substr","meridiem","YY","YYYY","MM","MMM","monthsShort","MMMM","DD","weekdaysMin","ddd","weekdaysShort","dddd","HH","ss","SSS","Z","$i","isDayjs","en","Ls","MD5","objectKeys","allowHalfOpen","onEndNT","inL","inR","outL","outR","pc2table","sTable","sb","permuteTable","padSplit","group","uid","BindEventMixin","unbind","activated","deactivated","isEncoderBuffer","isDecoderBuffer","isCompatible","save","restore","isEmpty","readUInt8","skip","raw","fail","_reporterState","webpackPolyfill","paths","hashMode","_finalOrDigest","__final","_decoder","_encoding","inputEnc","outputEnc","outData","_toString","getAuthTag","setAuthTag","setAAD","fin","zIndex","lockCount","stack","find","vm","preventTouchMove","Overlay","customStyle","duration","animationDuration","show","defaultConfig","mountOverlay","click","updateOverlay","insertBefore","openOverlay","closeOverlay","removeOverlay","getElement","selector","querySelector","PortalMixin","_temp","afterPortal","portal","container","$parent","appendChild","CloseOnPopstateMixin","isBind","handlePopstate","bindStatus","onPopstate","shouldReopen","$isServer","popupMixinProps","transitionAppear","PopupMixin","inited","skipToggleEvent","open","opened","removeLock","renderOverlay","addLock","classList","remove","scrollHeight","offsetHeight","updateZIndex","MontCurve","i4","a24","precompute","aa","bb","diffAdd","da","jumlAdd","Algorithm","HmacDRBG","predResist","minEntropy","_reseed","reseedInterval","V","entropy","entropyEnc","nonce","nonceEnc","pers","persEnc","_hmac","hmac","kmac","reseed","addEnc","generate","temp","incr32","chunkNum","sum32_4","ch32","maj32","s0_256","s1_256","g0_256","g1_256","sha256_K","T1","T2","EC","hashType","signType","ecSign","dsaSign","curveId","keyFromPrivate","toDER","bits2int","kv","getKey","makeKey","makeR","hlen","hbits","bits2octets","obits","Sha256","Sha224","_f","_g","safeBuffer","randombytes","kBufferMaxLength","kMaxLength","kMaxUint32","assertOffset","assertSize","actualFill","ourBuf","uint","zero2","brorand","Rand","_randbelow","min_bytes","_randrange","stop","rone","n1","rn1","getDivisor","MAX_ALLOC","isEncoding","_normalizeEncoding","retried","normalizeEncoding","nenc","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","utf8CheckIncomplete","utf8CheckExtraBytes","utf8Text","utf8End","ripemd","ripemd160","Sha1","rotl1","_window","_rng","_mathRNG","_nodeRNG","_whatwgRNG","setupBrowser","_crypto","_rnds8","_rnds","random","setupNode","_rb","BufferClass","_byteToHex","_hexToByte","ii","oct","unparse","bth","_seedBytes","_nodeId","_clockseq","_lastMSecs","_lastNSecs","clockseq","msecs","nsecs","dt","tl","tmh","node","v4","rnds","uuid","bignum","xorTest","calcIv","ck","_finID","toPad","ivBits","writeUIntBE","_ghash","_alen","_authTag","_called","rump","tags","overrided","reverseArgs","useDecoder","_wrap","stateProps","cstate","prop","child","_useArgs","newKey","_decode","wrapResult","prevObj","present","prevKey","enterKey","_peekTag","_decodeGeneric","_decodeChoice","enterObject","_decodeTag","track","path","_getUse","leaveObject","exitKey","leaveKey","_decodeList","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeBool","_decodeInt","some","_encodeChoice","_encodePrimitive","PEMEncoder","label","copyProps","dst","SafeBuffer","encodingOrOffset","allocUnsafeSlow","SlowBuffer","PADDING","equals","padBuff","writeUInt8","tagClass","0","1","2","3","SHA512","SHA384","ArrayBuffer","isView","DERDecoder","PEMDecoder","lines","base64","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","Infinity","rt","isNaN","LN2","throwIfNotStringOrBuffer","prefix","HashBase","_block","_blockSize","_blockOffset","_length","_finalized","EDDSA","pointClass","keyFromSecret","hashInt","messagePrefix","s_","makeSignature","keyFromPublic","SG","RplusAh","intFromLE","normed","xIsOdd","aesModes","desModes","keyLen","ivLen","arg1","arg2","arg3","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","toStringTag","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","_invoke","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","record","__await","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iteratorMethod","displayName","isGeneratorFunction","genFun","mark","__proto__","awrap","async","pop","skipTempReset","charAt","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","ecVerify","dsaVerify","padNum","pubkey","unpacked","checkValue","montp","commentCount","videoType","commentsCount","comments","_l","getComponent","onShowAllEvent","hasPermission","showPopup","subComment","isShowAll","model","$$v","showAd","components","AdTip","CommentInput","showPupInput","CommentItem","ShrinkCommentItem","CommentInputPopup","componentName","getCommentLists","deep","immediate","newValue","oldValue","commitCommentFunc","deleteComments","_inheritsLoose","subClass","superClass","createErrorType","getMessage","NodeError","_Base","oneOf","expected","startsWith","search","pos","endsWith","this_len","includes","actual","determiner","pVersionMajor","move","_move","for","modrn","allocate","postfix","_toArrayLikeLE","position","_toArrayLikeBE","isNegNum","isWindow","overflowScrollReg","getScroller","root","tagName","nodeType","_window$getComputedSt","overflowY","getScrollTop","top","pageYOffset","setScrollTop","scrollTo","scrollX","getRootScrollTop","documentElement","setRootScrollTop","getElementTop","scroller","getBoundingClientRect","blind","getr","blinder","unblinder","prime1","prime2","blinds","blinded","qinv","coefficient","exponent1","m2","exponent2","rotr32","p32","ERR_MISSING_ARGS","destroyer","closed","popCallback","streams","destroys","reduce","hLen2","dblen","nonZero","cur","publicKey","readableHwm","readableHighWaterMark","defaultHwm","needMoreData","fromListPartial","copyFromBufferString","copyFromBuffer","increasedAwaitDrain","EVP_BytesToKey","keyBits","used","keyStart","ivStart","BORDER","BORDER_TOP","BORDER_LEFT","BORDER_SURROUND","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","sum64","sum64_hi","sum64_lo","sum64_4_hi","sum64_4_lo","sum64_5_hi","sum64_5_lo","sha512_K","ch64_hi","yh","yl","zh","ch64_lo","zl","maj64_hi","maj64_lo","s0_512_hi","c0_hi","c1_hi","c2_hi","s0_512_lo","c0_lo","c1_lo","c2_lo","s1_512_hi","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_hi","g1_512_lo","_prepareBlock","c3_hi","c3_lo","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","observable","appInfoResp","requestappInfo","callBack","clientInfoCallback","getClientInfo","isIOS","platform","isAndroid","getStatusHeight","statusBarHeight","clientHeight","screenHeight","getAppInfo","titleStatusBarHeight","titleBarHeight","TYPE_GUEST","isGuest","loginType","ARRAY16","zr","sl","sr","hr","rotl","fn1","fn2","fn3","fn4","fn5","readInt32LE","ar","br","cr","dr","tr","writeUInt32LE","writeInt32LE","ieee754","typedArraySupport","foo","subarray","TYPED_ARRAY_SUPPORT","createBuffer","that","fromArrayBuffer","fromString","fromObject","checked","string","fromArrayLike","array","byteOffset","isnan","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","found","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","decodeCodePointsArray","INSPECT_MAX_BYTES","poolSize","_augment","species","_isBuffer","swap16","swap32","swap64","thisStart","thisEnd","thisCopy","targetCopy","_arr","MAX_ARGUMENTS_LENGTH","codePoints","fromCharCode","checkOffset","ext","checkInt","objectWriteUInt16","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","readUIntBE","readUInt16LE","readUInt32LE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUInt16LE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","trim","units","leadSurrogate","byteArray","Button","plain","hairline","loadingText","iconPosition","onTouchstart","background","border","borderColor","classes","square","renderIcon","loadingSize","loadingType","iconPrefix","renderContent","nativeType","finalSize","_finalSize","accum","assigned","remainder","lowBits","highBits","algorithms","_hashType","_tag","_signType","_importDER","recoveryParam","Position","place","getLength","initial","octetLen","rmPadding","constructLength","octets","slen","backHalf","warned","deprecated","trace","localStorage","Sha384","nh","keyPair","fromPrivate","genKeyPair","drbg","ns2","_truncateToN","truncOnly","bkey","getPrivate","ns1","kp","kpX","canonical","sinv","_maxwellTrick","recoverPubKey","isYOdd","isSecondKey","rInv","getKeyRecoveryParam","Qprime","modeModules","ECB","CFB","CFB8","CFB1","OFB","CTR","GCM","_importPrivate","privEnc","_importPublic","pubEnc","reason","compact","derive","sum32_3","Kh","E","Ah","Bh","Dh","Eh","T","rh","sh","viewPointResp","RelatesResp","setviewPointResp","relatesResp","requestviewPoint","requestRelates","HtmlApiKey","HtmlSecret","service","axios","baseURL","baseUrl","timeout","interceptors","signValue","signStr","headers","token","comm","getQueryString","response","statusText","Http","isSurrogatePair","htonl","zero8","join32","safer","Safer","kStringMaxLength","binding","MAX_LENGTH","MAX_STRING_LENGTH","webpackContext","webpackContextResolve","__webpack_require__","derDecodeTag","tagStr","derDecodeLen","decodedTag","_skipUntilEnd","possibleEnd","numstr","printstr","identifiers","subident","second","mon","day","hour","sec","_getDecoder","errors","ReporterError","rethrow","pathLen","now","inherited","elem","partial","captureStackTrace","EE","_isStdio","didOnEnd","followResp","setfollowResp","requestfollow","asyncWrite","setImmediate","writableHwm","writableHighWaterMark","valid","DOMIterables","ArrayIteratorMethods","createNonEnumerableProperty","wellKnownSymbol","ITERATOR","TO_STRING_TAG","ArrayValues","COLLECTION_NAME","Collection","CollectionPrototype","METHOD_NAME","sizes","rmd160","saltLen","getDigest","ipad1","ipad2","shaFunc","rmd160Func","DK","block1","destPos","run","U","ECDH","aliases","secp256k1","secp224r1","prime256v1","prime192v1","ed25519","secp384r1","secp521r1","curveType","p256","secp256r1","secp192r1","p384","p521","inenc","otherPub","closeable","closeIcon","closeIconPosition","beforeCreate","createEmitter","eventName","onClickCloseIcon","isCenter","transitionName","getNAF","getJSF","BaseCurve","_wnafT1","_wnafT2","_wnafT3","_wnafT4","_bitLength","adjustCount","_getDoubles","I","repr","nafW","nafPoints","_getNAFPoints","defW","wndWidth","comb","jsf","ja","jb","encodeCompressed","power","pending","pendingTotal","_delta8","_delta32","api","Entity","_createNamed","Generated","_initNamed","subComments","setComments","setSubComments","deleteComment","commentId","deleteSubComment","setInputType","commitComment","getComments","pageSize","parseComments","getCommentList","getSubComments","getLiveComments","commitLiveComment","items","tip","tipClass","goAd","viewDetail","minAssert","minUtils","d1","d2","m14","m24","m8","computer","i2ops","fnF","fnG","fnH","fnI","ReflectOwnKeys","Reflect","ReflectApply","receiver","ProcessEmitWarning","warning","getOwnPropertyNames","NumberIsNaN","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","_addListener","prepend","events","existing","newListener","onceWrapper","fired","wrapFn","_onceWrap","wrapped","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","spliceOne","eventListener","errorListener","setMaxListeners","getMaxListeners","doError","prependOnceListener","originalListener","rawListeners","eventNames","deciphers","_rand","getBytes","getByte"],"mappings":"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CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,kEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINY,IAAK,CACHC,IAAK,EACLb,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE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","file":"js/chunk-4d66378f.6d75b224.js","sourcesContent":["var generatePrime = require('./lib/generatePrime')\nvar primes = require('./lib/primes.json')\n\nvar DH = require('./lib/dh')\n\nfunction getDiffieHellman (mod) {\n var prime = new Buffer(primes[mod].prime, 'hex')\n var gen = new Buffer(primes[mod].gen, 'hex')\n\n return new DH(prime, gen)\n}\n\nvar ENCODINGS = {\n 'binary': true, 'hex': true, 'base64': true\n}\n\nfunction createDiffieHellman (prime, enc, generator, genc) {\n if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {\n return createDiffieHellman(prime, 'binary', enc, generator)\n }\n\n enc = enc || 'binary'\n genc = genc || 'binary'\n generator = generator || new Buffer([2])\n\n if (!Buffer.isBuffer(generator)) {\n generator = new Buffer(generator, genc)\n }\n\n if (typeof prime === 'number') {\n return new DH(generatePrime(prime, generator), generator, true)\n }\n\n if (!Buffer.isBuffer(prime)) {\n prime = new Buffer(prime, enc)\n }\n\n return new DH(prime, generator, true)\n}\n\nexports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman\nexports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman\n","exports.encrypt = function (self, block) {\n return self._cipher.encryptBlock(block)\n}\n\nexports.decrypt = function (self, block) {\n return self._cipher.decryptBlock(block)\n}\n","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n","'use strict';\n\nconst constants = exports;\n\n// Helper\nconstants._reverse = function reverse(map) {\n const res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n const value = map[key];\n res[value] = key;\n });\n\n return res;\n};\n\nconstants.der = require('./der');\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};","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha\n","export function removeNode(el) {\n var parent = el.parentNode;\n\n if (parent) {\n parent.removeChild(el);\n }\n}","module.exports = require('./lib/_stream_duplex.js');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a 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}","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\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};","exports['des-ecb'] = {\n key: 8,\n iv: 0\n}\nexports['des-cbc'] = exports.des = {\n key: 8,\n iv: 8\n}\nexports['des-ede3-cbc'] = exports.des3 = {\n key: 24,\n iv: 8\n}\nexports['des-ede3'] = {\n key: 24,\n iv: 0\n}\nexports['des-ede-cbc'] = {\n key: 16,\n iv: 8\n}\nexports['des-ede'] = {\n key: 16,\n iv: 0\n}\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve\n });\n return curve;\n }\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811'\n ]\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34'\n ]\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5'\n ]\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f'\n ]\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650'\n ]\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9'\n ]\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658'\n ]\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3'\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15'\n }\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre\n ]\n});\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar proto = {};\n\nfunction CBCState(iv) {\n assert.equal(iv.length, 8, 'Invalid IV length');\n\n this.iv = new Array(8);\n for (var i = 0; i < this.iv.length; i++)\n this.iv[i] = iv[i];\n}\n\nfunction instantiate(Base) {\n function CBC(options) {\n Base.call(this, options);\n this._cbcInit();\n }\n inherits(CBC, Base);\n\n var keys = Object.keys(proto);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n CBC.prototype[key] = proto[key];\n }\n\n CBC.create = function create(options) {\n return new CBC(options);\n };\n\n return CBC;\n}\n\nexports.instantiate = instantiate;\n\nproto._cbcInit = function _cbcInit() {\n var state = new CBCState(this.options.iv);\n this._cbcState = state;\n};\n\nproto._update = function _update(inp, inOff, out, outOff) {\n var state = this._cbcState;\n var superProto = this.constructor.super_.prototype;\n\n var iv = state.iv;\n if (this.type === 'encrypt') {\n for (var i = 0; i < this.blockSize; i++)\n iv[i] ^= inp[inOff + i];\n\n superProto._update.call(this, iv, 0, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = out[outOff + i];\n } else {\n superProto._update.call(this, inp, inOff, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n out[outOff + i] ^= iv[i];\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = inp[inOff + i];\n }\n};\n","class Util {\r\n getVideoHeight() {\r\n return window.screen.width * 9 / 16\r\n }\r\n\r\n go(url) {\r\n console.log(url)\r\n if (url === undefined) {\r\n console.log(\"跳转地址不存在\")\r\n return\r\n }\r\n window.location.href = url\r\n }\r\n\r\n px2Rem(px) {\r\n var htmlFontSize = document.body.currentStyle || document.defaultView.getComputedStyle(document.body, '').fontSize\r\n let scale = 16 / (htmlFontSize.replace(\"px\", \"\"))\r\n return px.replace(\"px\", \"\") * scale + 'px'\r\n }\r\n\r\n keepScreenOn(on) {\r\n try {\r\n window.goods.keepScreenOn(on)\r\n }catch (e) {\r\n // console.log(e)\r\n }\r\n }\r\n\r\n compareMv(targetMv, currentMv, isIncludeEqual = true) {\r\n if (!targetMv) {\r\n console.warn('版本比对异常:请传入要比对的版本')\r\n return\r\n }\r\n\r\n if (typeof currentMv === 'boolean') {\r\n isIncludeEqual = currentMv\r\n currentMv = undefined\r\n }\r\n\r\n let isSupport = false\r\n currentMv = currentMv || this.mv\r\n\r\n if (targetMv === currentMv) {\r\n isSupport = isIncludeEqual\r\n } else {\r\n const targetMvArr = targetMv.split('.')\r\n const currentMvArr = currentMv.split('.')\r\n if (currentMvArr.length === targetMvArr.length) {\r\n for (let i = 0; i < currentMvArr.length; i++) {\r\n if (currentMvArr[i] !== targetMvArr[i]) {\r\n isSupport = +currentMvArr[i] > +targetMvArr[i]\r\n break\r\n }\r\n }\r\n } else {\r\n isSupport = currentMvArr.length > targetMvArr.length\r\n }\r\n }\r\n\r\n return isSupport\r\n }\r\n\r\n}\r\n\r\nexport default new Util()\r\n","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):t.dayjs_plugin_utc=i()}(this,function(){\"use strict\";return function(t,i,e){var s=i.prototype;e.utc=function(t){return new i({date:t,utc:!0,args:arguments})},s.utc=function(t){var i=e(this.toDate(),{locale:this.$L,utc:!0});return t?i.add(this.utcOffset(),\"minute\"):i},s.local=function(){return e(this.toDate(),{locale:this.$L,utc:!1})};var f=s.parse;s.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),f.call(this,t)};var n=s.init;s.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else n.call(this)};var u=s.utcOffset;s.utcOffset=function(t,i){var e=this.$utils().u;if(e(t))return this.$u?0:e(this.$offset)?u.call(this):this.$offset;var s=Math.abs(t)<=16?60*t:t,f=this;if(i)return f.$offset=s,f.$u=0===t,f;if(0!==t){var n=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(f=this.local().add(s+n,\"minute\")).$offset=s,f.$x.$localOffset=n}else f=this.utc();return f};var o=s.format;s.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return o.call(this,i)},s.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||(new Date).getTimezoneOffset());return this.$d.valueOf()-6e4*t},s.isUTC=function(){return!!this.$u},s.toISOString=function(){return this.toDate().toISOString()},s.toString=function(){return this.toDate().toUTCString()};var r=s.toDate;s.toDate=function(t){return\"s\"===t&&this.$offset?e(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():r.call(this)};var a=s.diff;s.diff=function(t,i,s){if(t&&this.$u===t.$u)return a.call(this,t,i,s);var f=this.local(),n=e(t).local();return a.call(f,n,i,s)}}});\n","var parseKeys = require('parse-asn1')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar crt = require('browserify-rsa')\nvar createHash = require('create-hash')\nvar withPublic = require('./withPublic')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function privateDecrypt (privateKey, enc, reverse) {\n var padding\n if (privateKey.padding) {\n padding = privateKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n\n var key = parseKeys(privateKey)\n var k = key.modulus.byteLength()\n if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n throw new Error('decryption error')\n }\n var msg\n if (reverse) {\n msg = withPublic(new BN(enc), key)\n } else {\n msg = crt(enc, key)\n }\n var zBuffer = Buffer.alloc(k - msg.length)\n msg = Buffer.concat([zBuffer, msg], k)\n if (padding === 4) {\n return oaep(key, msg)\n } else if (padding === 1) {\n return pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n return msg\n } else {\n throw new Error('unknown padding')\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n if (msg[0] !== 0) {\n throw new Error('decryption error')\n }\n var maskedSeed = msg.slice(1, hLen + 1)\n var maskedDb = msg.slice(hLen + 1)\n var seed = xor(maskedSeed, mgf(maskedDb, hLen))\n var db = xor(maskedDb, mgf(seed, k - hLen - 1))\n if (compare(iHash, db.slice(0, hLen))) {\n throw new Error('decryption error')\n }\n var i = hLen\n while (db[i] === 0) {\n i++\n }\n if (db[i++] !== 1) {\n throw new Error('decryption error')\n }\n return db.slice(i)\n}\n\nfunction pkcs1 (key, msg, reverse) {\n var p1 = msg.slice(0, 2)\n var i = 2\n var status = 0\n while (msg[i++] !== 0) {\n if (i >= msg.length) {\n status++\n break\n }\n }\n var ps = msg.slice(2, i - 1)\n\n if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {\n status++\n }\n if (ps.length < 8) {\n status++\n }\n if (status) {\n throw new Error('decryption error')\n }\n return msg.slice(i)\n}\nfunction compare (a, b) {\n a = Buffer.from(a)\n b = Buffer.from(b)\n var dif = 0\n var len = a.length\n if (a.length !== b.length) {\n dif++\n len = Math.min(a.length, b.length)\n }\n var i = -1\n while (++i < len) {\n dif += (a[i] ^ b[i])\n }\n return dif\n}\n","module.exports = require('./browser/algorithms.json')\n","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","import { isServer } from '..';\n// eslint-disable-next-line import/no-mutable-exports\nexport var supportsPassive = false;\n\nif (!isServer) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', {\n // eslint-disable-next-line getter-return\n get: function get() {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n });\n window.addEventListener('test-passive', null, opts); // eslint-disable-next-line no-empty\n } catch (e) {}\n}\n\nexport function on(target, event, handler, passive) {\n if (passive === void 0) {\n passive = false;\n }\n\n if (!isServer) {\n target.addEventListener(event, handler, supportsPassive ? {\n capture: false,\n passive: passive\n } : false);\n }\n}\nexport function off(target, event, handler) {\n if (!isServer) {\n target.removeEventListener(event, handler);\n }\n}\nexport function stopPropagation(event) {\n event.stopPropagation();\n}\nexport function preventDefault(event, isStopPropagation) {\n /* istanbul ignore else */\n if (typeof event.cancelable !== 'boolean' || event.cancelable) {\n event.preventDefault();\n }\n\n if (isStopPropagation) {\n stopPropagation(event);\n }\n}","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nexports.utils = require('./des/utils');\nexports.Cipher = require('./des/cipher');\nexports.DES = require('./des/des');\nexports.CBC = require('./des/cbc');\nexports.EDE = require('./des/ede');\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"B1 sepTop\",class:_vm.bottomClass},[_c('div',{staticClass:\"bottom-content\"},[_c('div',{ref:\"ref-input\",staticClass:\"input-container B6\",on:{\"click\":function($event){$event.stopPropagation();return _vm.onInputEvent($event)}}},[_c('img',{attrs:{\"src\":require(\"@/static/ic_input.png\"),\"alt\":\"\"}}),_c('div',{staticClass:\"S6 T3 tips\"},[_vm._v(_vm._s(_vm.bottomTitle))])]),(_vm.id)?_c('img',{staticClass:\"collect\",attrs:{\"src\":require(_vm.Favored ? '@/static/ic_favored.png' : '@/static/ic_favor.png'),\"alt\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.collectFun()}}}):_vm._e(),_c('div',{ref:\"ref-text\",staticClass:\"text-container B1\"},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.content),expression:\"content\"}],ref:\"textarea\",staticClass:\"S6 T1\",attrs:{\"placeholder\":_vm.placeholder,\"autofocus\":\"\",\"rows\":\"1\"},domProps:{\"value\":(_vm.content)},on:{\"focus\":_vm.onFocusEvent,\"blur\":_vm.onBlurEvent,\"change\":_vm.onTextChanged,\"keydown\":_vm.onTextChanged,\"keyup\":_vm.onTextChanged,\"input\":function($event){if($event.target.composing){ return; }_vm.content=$event.target.value}}}),_c('div',{staticClass:\"send-button\",on:{\"click\":function($event){$event.stopPropagation();return _vm.onCommitEvent($event)}}},[_c('div',{staticClass:\"S6\",class:_vm.content.length == 0 ? 'T3' : 'C5'},[_vm._v(\"发送\")])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommentInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommentInput.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CommentInput.vue?vue&type=template&id=92f7e458&scoped=true&\"\nimport script from \"./CommentInput.vue?vue&type=script&lang=js&\"\nexport * from \"./CommentInput.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CommentInput.vue?vue&type=style&index=0&id=92f7e458&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"92f7e458\",\n null\n \n)\n\nexport default component.exports","// 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};","'use strict'\nvar inherits = require('inherits')\nvar Legacy = require('./legacy')\nvar Base = require('cipher-base')\nvar Buffer = require('safe-buffer').Buffer\nvar md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\n\nvar sha = require('sha.js')\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n this._alg = alg\n this._key = key\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","import http from \"@/api/http\";\r\n\r\nconst state = {\r\n resp: Object,\r\n playInfo: Object,\r\n currentVideo:String,\r\n respReport:Object,\r\n}\r\n\r\nconst mutations = {\r\n setResp: (state, resp) => {\r\n state.resp = resp\r\n },\r\n setPlayInfo: (state, playInfo) => {\r\n state.playInfo = playInfo\r\n },\r\n setCurrentVideo: (state, videoIdentity) => {\r\n state.currentVideo = videoIdentity\r\n },\r\n setrespReport: (state, respReport) => {\r\n state.respReport = respReport\r\n },\r\n setProgress:(state,progress)=>{\r\n state.progress = progress\r\n }\r\n}\r\n\r\nconst actions = {\r\n request({commit}, params) {\r\n let url = '/Course/api/SetDetail'\r\n return http.post(url, params).then(res => {\r\n commit('setResp', res)\r\n })\r\n },\r\n requestVideo({commit}, params) {\r\n let url = '/Course/api/playinfo'\r\n commit('setCurrentVideo',params.videoIdentity)\r\n return http.post(url, params).then(res => {\r\n commit('setPlayInfo', res)\r\n })\r\n },\r\n requestUploadProgress({commit}, params) {\r\n let courses = state.resp.detail.courses.page.list;\r\n for (let i = 0; i < courses.length; i++) {\r\n let v = courses[i]\r\n if(v.videoIdentity===params.videoIdentity){\r\n v.progress=params.progress\r\n }\r\n }\r\n commit('setProgress',params.progress)\r\n\r\n let url = '/Course/Progress/Report'\r\n return http.post(url, params).then(resp=>{\r\n commit('setrespReport',resp)\r\n })\r\n },\r\n //订阅课\r\n requestDetail({ commit }, params) {\r\n let url = '/Course/Subscribe/SetDetail'\r\n return http.post(url, params).then(res => {\r\n commit('setResp', res)\r\n })\r\n }\r\n\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions\r\n}\r\n","'use strict'\n\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes')\nexports.createHash = exports.Hash = require('create-hash')\nexports.createHmac = exports.Hmac = require('create-hmac')\n\nvar algos = require('browserify-sign/algos')\nvar algoKeys = Object.keys(algos)\nvar hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys)\nexports.getHashes = function () {\n return hashes\n}\n\nvar p = require('pbkdf2')\nexports.pbkdf2 = p.pbkdf2\nexports.pbkdf2Sync = p.pbkdf2Sync\n\nvar aes = require('browserify-cipher')\n\nexports.Cipher = aes.Cipher\nexports.createCipher = aes.createCipher\nexports.Cipheriv = aes.Cipheriv\nexports.createCipheriv = aes.createCipheriv\nexports.Decipher = aes.Decipher\nexports.createDecipher = aes.createDecipher\nexports.Decipheriv = aes.Decipheriv\nexports.createDecipheriv = aes.createDecipheriv\nexports.getCiphers = aes.getCiphers\nexports.listCiphers = aes.listCiphers\n\nvar dh = require('diffie-hellman')\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup\nexports.getDiffieHellman = dh.getDiffieHellman\nexports.createDiffieHellman = dh.createDiffieHellman\nexports.DiffieHellman = dh.DiffieHellman\n\nvar sign = require('browserify-sign')\n\nexports.createSign = sign.createSign\nexports.Sign = sign.Sign\nexports.createVerify = sign.createVerify\nexports.Verify = sign.Verify\n\nexports.createECDH = require('create-ecdh')\n\nvar publicEncrypt = require('public-encrypt')\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt\nexports.privateEncrypt = publicEncrypt.privateEncrypt\nexports.publicDecrypt = publicEncrypt.publicDecrypt\nexports.privateDecrypt = publicEncrypt.privateDecrypt\n\n// the least I can do is make error messages for the rest of the node.js/crypto api.\n// ;[\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error([\n// 'sorry, ' + name + ' is not implemented yet',\n// 'we accept pull requests',\n// 'https://github.com/crypto-browserify/crypto-browserify'\n// ].join('\\n'))\n// }\n// })\n\nvar rf = require('randomfill')\n\nexports.randomFill = rf.randomFill\nexports.randomFillSync = rf.randomFillSync\n\nexports.createCredentials = function () {\n throw new Error([\n 'sorry, createCredentials is not implemented yet',\n 'we accept pull requests',\n 'https://github.com/crypto-browserify/crypto-browserify'\n ].join('\\n'))\n}\n\nexports.constants = {\n 'DH_CHECK_P_NOT_SAFE_PRIME': 2,\n 'DH_CHECK_P_NOT_PRIME': 1,\n 'DH_UNABLE_TO_CHECK_GENERATOR': 4,\n 'DH_NOT_SUITABLE_GENERATOR': 8,\n 'NPN_ENABLED': 1,\n 'ALPN_ENABLED': 1,\n 'RSA_PKCS1_PADDING': 1,\n 'RSA_SSLV23_PADDING': 2,\n 'RSA_NO_PADDING': 3,\n 'RSA_PKCS1_OAEP_PADDING': 4,\n 'RSA_X931_PADDING': 5,\n 'RSA_PKCS1_PSS_PADDING': 6,\n 'POINT_CONVERSION_COMPRESSED': 2,\n 'POINT_CONVERSION_UNCOMPRESSED': 4,\n 'POINT_CONVERSION_HYBRID': 6\n}\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","var CipherBase = require('cipher-base')\nvar des = require('des.js')\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar modes = {\n 'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede3': des.EDE,\n 'des-ede-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede': des.EDE,\n 'des-cbc': des.CBC.instantiate(des.DES),\n 'des-ecb': des.DES\n}\nmodes.des = modes['des-cbc']\nmodes.des3 = modes['des-ede3-cbc']\nmodule.exports = DES\ninherits(DES, CipherBase)\nfunction DES (opts) {\n CipherBase.call(this)\n var modeName = opts.mode.toLowerCase()\n var mode = modes[modeName]\n var type\n if (opts.decrypt) {\n type = 'decrypt'\n } else {\n type = 'encrypt'\n }\n var key = opts.key\n if (!Buffer.isBuffer(key)) {\n key = Buffer.from(key)\n }\n if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n key = Buffer.concat([key, key.slice(0, 8)])\n }\n var iv = opts.iv\n if (!Buffer.isBuffer(iv)) {\n iv = Buffer.from(iv)\n }\n this._des = mode.create({\n key: key,\n iv: iv,\n type: type\n })\n}\nDES.prototype._update = function (data) {\n return Buffer.from(this._des.update(data))\n}\nDES.prototype._final = function () {\n return Buffer.from(this._des.final())\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar Cipher = require('./cipher');\nvar DES = require('./des');\n\nfunction EDEState(type, key) {\n assert.equal(key.length, 24, 'Invalid key length');\n\n var k1 = key.slice(0, 8);\n var k2 = key.slice(8, 16);\n var k3 = key.slice(16, 24);\n\n if (type === 'encrypt') {\n this.ciphers = [\n DES.create({ type: 'encrypt', key: k1 }),\n DES.create({ type: 'decrypt', key: k2 }),\n DES.create({ type: 'encrypt', key: k3 })\n ];\n } else {\n this.ciphers = [\n DES.create({ type: 'decrypt', key: k3 }),\n DES.create({ type: 'encrypt', key: k2 }),\n DES.create({ type: 'decrypt', key: k1 })\n ];\n }\n}\n\nfunction EDE(options) {\n Cipher.call(this, options);\n\n var state = new EDEState(this.type, this.options.key);\n this._edeState = state;\n}\ninherits(EDE, Cipher);\n\nmodule.exports = EDE;\n\nEDE.create = function create(options) {\n return new EDE(options);\n};\n\nEDE.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._edeState;\n\n state.ciphers[0]._update(inp, inOff, out, outOff);\n state.ciphers[1]._update(out, outOff, out, outOff);\n state.ciphers[2]._update(out, outOff, out, outOff);\n};\n\nEDE.prototype._pad = DES.prototype._pad;\nEDE.prototype._unpad = DES.prototype._unpad;\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShrinkCommentItem.vue?vue&type=style&index=0&id=b210533c&scoped=true&lang=scss&\"","var Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar sync = require('./sync')\nvar toBuffer = require('./to-buffer')\n\nvar ZERO_BUF\nvar subtle = global.crypto && global.crypto.subtle\nvar toBrowser = {\n sha: 'SHA-1',\n 'sha-1': 'SHA-1',\n sha1: 'SHA-1',\n sha256: 'SHA-256',\n 'sha-256': 'SHA-256',\n sha384: 'SHA-384',\n 'sha-384': 'SHA-384',\n 'sha-512': 'SHA-512',\n sha512: 'SHA-512'\n}\nvar checks = []\nfunction checkNative (algo) {\n if (global.process && !global.process.browser) {\n return Promise.resolve(false)\n }\n if (!subtle || !subtle.importKey || !subtle.deriveBits) {\n return Promise.resolve(false)\n }\n if (checks[algo] !== undefined) {\n return checks[algo]\n }\n ZERO_BUF = ZERO_BUF || Buffer.alloc(8)\n var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo)\n .then(function () {\n return true\n }).catch(function () {\n return false\n })\n checks[algo] = prom\n return prom\n}\n\nfunction browserPbkdf2 (password, salt, iterations, length, algo) {\n return subtle.importKey(\n 'raw', password, { name: 'PBKDF2' }, false, ['deriveBits']\n ).then(function (key) {\n return subtle.deriveBits({\n name: 'PBKDF2',\n salt: salt,\n iterations: iterations,\n hash: {\n name: algo\n }\n }, key, length << 3)\n }).then(function (res) {\n return Buffer.from(res)\n })\n}\n\nfunction resolvePromise (promise, callback) {\n promise.then(function (out) {\n process.nextTick(function () {\n callback(null, out)\n })\n }, function (e) {\n process.nextTick(function () {\n callback(e)\n })\n })\n}\nmodule.exports = function (password, salt, iterations, keylen, digest, callback) {\n if (typeof digest === 'function') {\n callback = digest\n digest = undefined\n }\n\n digest = digest || 'sha1'\n var algo = toBrowser[digest.toLowerCase()]\n\n if (!algo || typeof global.Promise !== 'function') {\n return process.nextTick(function () {\n var out\n try {\n out = sync(password, salt, iterations, keylen, digest)\n } catch (e) {\n return callback(e)\n }\n callback(null, out)\n })\n }\n\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2')\n\n resolvePromise(checkNative(algo).then(function (resp) {\n if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo)\n\n return sync(password, salt, iterations, keylen, digest)\n }), callback)\n}\n","'use strict';\n\nconst decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","function flattenVNodes(vnodes) {\n var result = [];\n\n function traverse(vnodes) {\n vnodes.forEach(function (vnode) {\n result.push(vnode);\n\n if (vnode.componentInstance) {\n traverse(vnode.componentInstance.$children.map(function (item) {\n return item.$vnode;\n }));\n }\n\n if (vnode.children) {\n traverse(vnode.children);\n }\n });\n }\n\n traverse(vnodes);\n return result;\n} // sort children instances by vnodes order\n\n\nexport function sortChildren(children, parent) {\n var componentOptions = parent.$vnode.componentOptions;\n\n if (!componentOptions || !componentOptions.children) {\n return;\n }\n\n var vnodes = flattenVNodes(componentOptions.children);\n children.sort(function (a, b) {\n return vnodes.indexOf(a.$vnode) - vnodes.indexOf(b.$vnode);\n });\n}","import { sortChildren } from '../utils/vnodes';\nexport function ChildrenMixin(_parent, options) {\n var _inject, _computed;\n\n if (options === void 0) {\n options = {};\n }\n\n var indexKey = options.indexKey || 'index';\n return {\n inject: (_inject = {}, _inject[_parent] = {\n default: null\n }, _inject),\n computed: (_computed = {\n parent: function parent() {\n if (this.disableBindRelation) {\n return null;\n }\n\n return this[_parent];\n }\n }, _computed[indexKey] = function () {\n this.bindRelation();\n\n if (this.parent) {\n return this.parent.children.indexOf(this);\n }\n\n return null;\n }, _computed),\n watch: {\n disableBindRelation: function disableBindRelation(val) {\n if (!val) {\n this.bindRelation();\n }\n }\n },\n mounted: function mounted() {\n this.bindRelation();\n },\n beforeDestroy: function beforeDestroy() {\n var _this = this;\n\n if (this.parent) {\n this.parent.children = this.parent.children.filter(function (item) {\n return item !== _this;\n });\n }\n },\n methods: {\n bindRelation: function bindRelation() {\n if (!this.parent || this.parent.children.indexOf(this) !== -1) {\n return;\n }\n\n var children = [].concat(this.parent.children, [this]);\n sortChildren(children, this.parent);\n this.parent.children = children;\n }\n }\n };\n}\nexport function ParentMixin(parent) {\n return {\n provide: function provide() {\n var _ref;\n\n return _ref = {}, _ref[parent] = this, _ref;\n },\n data: function data() {\n return {\n children: []\n };\n }\n };\n}","import { createNamespace } from '../utils';\nimport { ParentMixin } from '../mixins/relation';\n\nvar _createNamespace = createNamespace('goods-action'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ParentMixin('vanGoodsAction')],\n props: {\n safeAreaInsetBottom: {\n type: Boolean,\n default: true\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(\"div\", {\n \"class\": bem({\n unfit: !this.safeAreaInsetBottom\n })\n }, [this.slots()]);\n }\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Vue from 'vue';\nimport VanDialog from './Dialog';\nimport { isServer } from '../utils';\nvar instance;\n\nfunction isInDocument(element) {\n return document.body.contains(element);\n}\n\nfunction initInstance() {\n if (instance) {\n instance.$destroy();\n }\n\n instance = new (Vue.extend(VanDialog))({\n el: document.createElement('div'),\n // avoid missing animation when first rendered\n propsData: {\n lazyRender: false\n }\n });\n instance.$on('input', function (value) {\n instance.value = value;\n });\n}\n\nfunction Dialog(options) {\n /* istanbul ignore if */\n if (isServer) {\n return Promise.resolve();\n }\n\n return new Promise(function (resolve, reject) {\n if (!instance || !isInDocument(instance.$el)) {\n initInstance();\n }\n\n _extends(instance, Dialog.currentOptions, options, {\n resolve: resolve,\n reject: reject\n });\n });\n}\n\nDialog.defaultOptions = {\n value: true,\n title: '',\n width: '',\n theme: null,\n message: '',\n overlay: true,\n className: '',\n allowHtml: true,\n lockScroll: true,\n transition: 'van-dialog-bounce',\n beforeClose: null,\n overlayClass: '',\n overlayStyle: null,\n messageAlign: '',\n getContainer: 'body',\n cancelButtonText: '',\n cancelButtonColor: null,\n confirmButtonText: '',\n confirmButtonColor: null,\n showConfirmButton: true,\n showCancelButton: false,\n closeOnPopstate: true,\n closeOnClickOverlay: false,\n callback: function callback(action) {\n instance[action === 'confirm' ? 'resolve' : 'reject'](action);\n }\n};\nDialog.alert = Dialog;\n\nDialog.confirm = function (options) {\n return Dialog(_extends({\n showCancelButton: true\n }, options));\n};\n\nDialog.close = function () {\n if (instance) {\n instance.value = false;\n }\n};\n\nDialog.setDefaultOptions = function (options) {\n _extends(Dialog.currentOptions, options);\n};\n\nDialog.resetDefaultOptions = function () {\n Dialog.currentOptions = _extends({}, Dialog.defaultOptions);\n};\n\nDialog.resetDefaultOptions();\n\nDialog.install = function () {\n Vue.use(VanDialog);\n};\n\nDialog.Component = VanDialog;\nVue.prototype.$dialog = Dialog;\nexport default Dialog;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { createNamespace } from '../utils';\nimport { route, routeProps } from '../utils/router';\nimport { ChildrenMixin } from '../mixins/relation';\nimport Button from '../button';\n\nvar _createNamespace = createNamespace('goods-action-button'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [ChildrenMixin('vanGoodsAction')],\n props: _extends({}, routeProps, {\n type: String,\n text: String,\n icon: String,\n color: String,\n loading: Boolean,\n disabled: Boolean\n }),\n computed: {\n isFirst: function isFirst() {\n var prev = this.parent && this.parent.children[this.index - 1];\n return !prev || prev.$options.name !== this.$options.name;\n },\n isLast: function isLast() {\n var next = this.parent && this.parent.children[this.index + 1];\n return !next || next.$options.name !== this.$options.name;\n }\n },\n methods: {\n onClick: function onClick(event) {\n this.$emit('click', event);\n route(this.$router, this);\n }\n },\n render: function render() {\n var h = arguments[0];\n return h(Button, {\n \"class\": bem([{\n first: this.isFirst,\n last: this.isLast\n }, this.type]),\n \"attrs\": {\n \"size\": \"large\",\n \"type\": this.type,\n \"icon\": this.icon,\n \"color\": this.color,\n \"loading\": this.loading,\n \"disabled\": this.disabled\n },\n \"on\": {\n \"click\": this.onClick\n }\n }, [this.slots() || this.text]);\n }\n});","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport { createNamespace, addUnit } from '../utils';\nimport { BORDER_TOP, BORDER_LEFT } from '../utils/constant';\nimport { PopupMixin } from '../mixins/popup';\nimport Button from '../button';\nimport GoodsAction from '../goods-action';\nimport GoodsActionButton from '../goods-action-button';\n\nvar _createNamespace = createNamespace('dialog'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1],\n t = _createNamespace[2];\n\nexport default createComponent({\n mixins: [PopupMixin()],\n props: {\n title: String,\n theme: String,\n width: [Number, String],\n message: String,\n className: null,\n callback: Function,\n beforeClose: Function,\n messageAlign: String,\n cancelButtonText: String,\n cancelButtonColor: String,\n confirmButtonText: String,\n confirmButtonColor: String,\n showCancelButton: Boolean,\n overlay: {\n type: Boolean,\n default: true\n },\n allowHtml: {\n type: Boolean,\n default: true\n },\n transition: {\n type: String,\n default: 'van-dialog-bounce'\n },\n showConfirmButton: {\n type: Boolean,\n default: true\n },\n closeOnPopstate: {\n type: Boolean,\n default: true\n },\n closeOnClickOverlay: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n loading: {\n confirm: false,\n cancel: false\n }\n };\n },\n methods: {\n onClickOverlay: function onClickOverlay() {\n this.handleAction('overlay');\n },\n handleAction: function handleAction(action) {\n var _this = this;\n\n this.$emit(action); // show not trigger close event when hidden\n\n if (!this.value) {\n return;\n }\n\n if (this.beforeClose) {\n this.loading[action] = true;\n this.beforeClose(action, function (state) {\n if (state !== false && _this.loading[action]) {\n _this.onClose(action);\n }\n\n _this.loading.confirm = false;\n _this.loading.cancel = false;\n });\n } else {\n this.onClose(action);\n }\n },\n onClose: function onClose(action) {\n this.close();\n\n if (this.callback) {\n this.callback(action);\n }\n },\n onOpened: function onOpened() {\n this.$emit('opened');\n },\n onClosed: function onClosed() {\n this.$emit('closed');\n },\n genRoundButtons: function genRoundButtons() {\n var _this2 = this;\n\n var h = this.$createElement;\n return h(GoodsAction, {\n \"class\": bem('footer')\n }, [this.showCancelButton && h(GoodsActionButton, {\n \"attrs\": {\n \"size\": \"large\",\n \"type\": \"warning\",\n \"text\": this.cancelButtonText || t('cancel'),\n \"color\": this.cancelButtonColor,\n \"loading\": this.loading.cancel\n },\n \"class\": bem('cancel'),\n \"on\": {\n \"click\": function click() {\n _this2.handleAction('cancel');\n }\n }\n }), this.showConfirmButton && h(GoodsActionButton, {\n \"attrs\": {\n \"size\": \"large\",\n \"type\": \"danger\",\n \"text\": this.confirmButtonText || t('confirm'),\n \"color\": this.confirmButtonColor,\n \"loading\": this.loading.confirm\n },\n \"class\": bem('confirm'),\n \"on\": {\n \"click\": function click() {\n _this2.handleAction('confirm');\n }\n }\n })]);\n },\n genButtons: function genButtons() {\n var _this3 = this,\n _ref;\n\n var h = this.$createElement;\n var multiple = this.showCancelButton && this.showConfirmButton;\n return h(\"div\", {\n \"class\": [BORDER_TOP, bem('footer')]\n }, [this.showCancelButton && h(Button, {\n \"attrs\": {\n \"size\": \"large\",\n \"loading\": this.loading.cancel,\n \"text\": this.cancelButtonText || t('cancel')\n },\n \"class\": bem('cancel'),\n \"style\": {\n color: this.cancelButtonColor\n },\n \"on\": {\n \"click\": function click() {\n _this3.handleAction('cancel');\n }\n }\n }), this.showConfirmButton && h(Button, {\n \"attrs\": {\n \"size\": \"large\",\n \"loading\": this.loading.confirm,\n \"text\": this.confirmButtonText || t('confirm')\n },\n \"class\": [bem('confirm'), (_ref = {}, _ref[BORDER_LEFT] = multiple, _ref)],\n \"style\": {\n color: this.confirmButtonColor\n },\n \"on\": {\n \"click\": function click() {\n _this3.handleAction('confirm');\n }\n }\n })]);\n },\n genContent: function genContent(hasTitle, messageSlot) {\n var h = this.$createElement;\n\n if (messageSlot) {\n return h(\"div\", {\n \"class\": bem('content')\n }, [messageSlot]);\n }\n\n var message = this.message,\n messageAlign = this.messageAlign;\n\n if (message) {\n var _bem, _domProps;\n\n var data = {\n class: bem('message', (_bem = {\n 'has-title': hasTitle\n }, _bem[messageAlign] = messageAlign, _bem)),\n domProps: (_domProps = {}, _domProps[this.allowHtml ? 'innerHTML' : 'textContent'] = message, _domProps)\n };\n return h(\"div\", {\n \"class\": bem('content', {\n isolated: !hasTitle\n })\n }, [h(\"div\", _mergeJSXProps([{}, data]))]);\n }\n }\n },\n render: function render() {\n var h = arguments[0];\n\n if (!this.shouldRender) {\n return;\n }\n\n var message = this.message;\n var messageSlot = this.slots();\n var title = this.slots('title') || this.title;\n var Title = title && h(\"div\", {\n \"class\": bem('header', {\n isolated: !message && !messageSlot\n })\n }, [title]);\n return h(\"transition\", {\n \"attrs\": {\n \"name\": this.transition\n },\n \"on\": {\n \"afterEnter\": this.onOpened,\n \"afterLeave\": this.onClosed\n }\n }, [h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.value\n }],\n \"attrs\": {\n \"role\": \"dialog\",\n \"aria-labelledby\": this.title || message\n },\n \"class\": [bem([this.theme]), this.className],\n \"style\": {\n width: addUnit(this.width)\n }\n }, [Title, this.genContent(title, messageSlot), this.theme === 'round-button' ? this.genRoundButtons() : this.genButtons()])]);\n }\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}();","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","var asn1 = require('./asn1')\nvar aesid = require('./aesid.json')\nvar fixProc = require('./fixProc')\nvar ciphers = require('browserify-aes')\nvar compat = require('pbkdf2')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = parseKeys\n\nfunction parseKeys (buffer) {\n var password\n if (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n password = buffer.passphrase\n buffer = buffer.key\n }\n if (typeof buffer === 'string') {\n buffer = Buffer.from(buffer)\n }\n\n var stripped = fixProc(buffer, password)\n\n var type = stripped.tag\n var data = stripped.data\n var subtype, ndata\n switch (type) {\n case 'CERTIFICATE':\n ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo\n // falls through\n case 'PUBLIC KEY':\n if (!ndata) {\n ndata = asn1.PublicKey.decode(data, 'der')\n }\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der')\n case '1.2.840.10045.2.1':\n ndata.subjectPrivateKey = ndata.subjectPublicKey\n return {\n type: 'ec',\n data: ndata\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der')\n return {\n type: 'dsa',\n data: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n // throw new Error('unknown key type ' + type)\n case 'ENCRYPTED PRIVATE KEY':\n data = asn1.EncryptedPrivateKey.decode(data, 'der')\n data = decrypt(data, password)\n // falls through\n case 'PRIVATE KEY':\n ndata = asn1.PrivateKey.decode(data, 'der')\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der')\n case '1.2.840.10045.2.1':\n return {\n curve: ndata.algorithm.curve,\n privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der')\n return {\n type: 'dsa',\n params: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n // throw new Error('unknown key type ' + type)\n case 'RSA PUBLIC KEY':\n return asn1.RSAPublicKey.decode(data, 'der')\n case 'RSA PRIVATE KEY':\n return asn1.RSAPrivateKey.decode(data, 'der')\n case 'DSA PRIVATE KEY':\n return {\n type: 'dsa',\n params: asn1.DSAPrivateKey.decode(data, 'der')\n }\n case 'EC PRIVATE KEY':\n data = asn1.ECPrivateKey.decode(data, 'der')\n return {\n curve: data.parameters.value,\n privateKey: data.privateKey\n }\n default: throw new Error('unknown key type ' + type)\n }\n}\nparseKeys.signature = asn1.signature\nfunction decrypt (data, password) {\n var salt = data.algorithm.decrypt.kde.kdeparams.salt\n var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10)\n var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')]\n var iv = data.algorithm.decrypt.cipher.iv\n var cipherText = data.subjectPrivateKey\n var keylen = parseInt(algo.split('-')[1], 10) / 8\n var key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1')\n var cipher = ciphers.createDecipheriv(algo, key, iv)\n var out = []\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n return Buffer.concat(out)\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{on:{\"click\":function($event){return _vm.onReplyEvent(_vm.item)}}},[_c('div',{staticClass:\"item-container\"},[_c('div',{staticClass:\"avatar-container\"},[_c('img',{staticClass:\"item-avatar\",attrs:{\"src\":_vm.item.avatar}}),(_vm.item.isAuthor)?_c('img',{staticClass:\"icon_header_v\",attrs:{\"src\":require(\"@/static/ic_v_log.png\")}}):_vm._e()]),_c('div',{staticClass:\"right-continer\"},[_c('div',{staticClass:\"S8 T1 title-container\"},[_vm._v(\" \"+_vm._s(_vm.item.nickname)+\" \"),(_vm.showOwner)?_c('span',{staticClass:\"item-owner C5 S2 B_C6\"},[_vm._v(\" 楼主 \")]):_vm._e()]),_c('div',{staticClass:\"S8 item-comment\",class:_vm.commentColor},[_vm._v(\" \"+_vm._s(_vm.item.content)+\" \"),(_vm.item.parentComent)?_c('span',[_c('span',{staticClass:\"T1\"},[_vm._v(\" // \")]),_c('span',{staticClass:\"C5\"},[_vm._v(_vm._s('@' + _vm.item.parentComent.nickname + ':'))]),_c('span',{class:_vm.parentCommentColor},[_vm._v(_vm._s(_vm.item.parentComent.content))])]):_vm._e()]),_c('div',{staticClass:\"timer-container\"},[_c('div',{staticClass:\"S4 T3\"},[_vm._v(\" \"+_vm._s(_vm.item.createTime)+\" \")]),_c('div',{staticClass:\"item-replay\",staticStyle:{\"padding\":\"0 5px\"}},[_c('div',{staticClass:\"S4 T1\"},[_vm._v(_vm._s(_vm.replyTitle))])])]),(_vm.canDelete)?_c('div',{staticClass:\"delete-container\",on:{\"click\":function($event){$event.stopPropagation();return _vm.onDeleteEvent(_vm.item)}}},[_c('div',{staticClass:\"btn-delete S2 T1\"},[_vm._v(\"删除\")])]):_vm._e()])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommentItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommentItem.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CommentItem.vue?vue&type=template&id=59cc880c&scoped=true&\"\nimport script from \"./CommentItem.vue?vue&type=script&lang=js&\"\nexport * from \"./CommentItem.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CommentItem.vue?vue&type=style&index=0&id=59cc880c&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"59cc880c\",\n null\n \n)\n\nexport default component.exports","module.exports = require('./lib/_stream_writable.js');\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16)\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 }\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n};\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul)\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul)\n }\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1)\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1)\n }\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point))\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point))\n }\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate)\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate)\n }\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (var i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (var i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\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\nconst encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\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","var Buffer = require('safe-buffer').Buffer\nvar xor = require('buffer-xor')\n\nfunction encryptStart (self, data, decrypt) {\n var len = data.length\n var out = xor(data, self._cache)\n self._cache = self._cache.slice(len)\n self._prev = Buffer.concat([self._prev, decrypt ? data : out])\n return out\n}\n\nexports.encrypt = function (self, data, decrypt) {\n var out = Buffer.allocUnsafe(0)\n var len\n\n while (data.length) {\n if (self._cache.length === 0) {\n self._cache = self._cipher.encryptBlock(self._prev)\n self._prev = Buffer.allocUnsafe(0)\n }\n\n if (self._cache.length <= data.length) {\n len = self._cache.length\n out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])\n data = data.slice(len)\n } else {\n out = Buffer.concat([out, encryptStart(self, data, decrypt)])\n break\n }\n }\n\n return out\n}\n","'use strict';\n\nconst inherits = require('inherits');\nconst Buffer = require('safer-buffer').Buffer;\nconst Node = require('../base/node');\n\n// Import DER constants\nconst der = require('../constants/der');\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n}\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\ninherits(DERNode, Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n const encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n const header = Buffer.alloc(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n let lenOctets = 1;\n for (let i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n const header = Buffer.alloc(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (let i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n const buf = Buffer.alloc(str.length * 2);\n for (let i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s.]+/g);\n for (let i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (let i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n let size = 0;\n for (let i = 0; i < id.length; i++) {\n let ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n const objid = Buffer.alloc(size);\n let offset = objid.length - 1;\n for (let i = id.length - 1; i >= 0; i--) {\n let ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n let str;\n const date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getUTCFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getUTCFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n const numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = Buffer.from(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n let size = num.length;\n if (num.length === 0)\n size++;\n\n const out = Buffer.alloc(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0;\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n let size = 1;\n for (let i = num; i >= 0x100; i >>= 8)\n size++;\n\n const out = new Array(size);\n for (let i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(Buffer.from(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n const state = this._baseState;\n let i;\n if (state['default'] === null)\n return false;\n\n const data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n let res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","import { on } from '../utils/dom/event';\nvar MIN_DISTANCE = 10;\n\nfunction getDirection(x, y) {\n if (x > y && x > MIN_DISTANCE) {\n return 'horizontal';\n }\n\n if (y > x && y > MIN_DISTANCE) {\n return 'vertical';\n }\n\n return '';\n}\n\nexport var TouchMixin = {\n data: function data() {\n return {\n direction: ''\n };\n },\n methods: {\n touchStart: function touchStart(event) {\n this.resetTouchStatus();\n this.startX = event.touches[0].clientX;\n this.startY = event.touches[0].clientY;\n },\n touchMove: function touchMove(event) {\n var touch = event.touches[0]; // Fix: Safari back will set clientX to negative number\n\n this.deltaX = touch.clientX < 0 ? 0 : touch.clientX - this.startX;\n this.deltaY = touch.clientY - this.startY;\n this.offsetX = Math.abs(this.deltaX);\n this.offsetY = Math.abs(this.deltaY);\n this.direction = this.direction || getDirection(this.offsetX, this.offsetY);\n },\n resetTouchStatus: function resetTouchStatus() {\n this.direction = '';\n this.deltaX = 0;\n this.deltaY = 0;\n this.offsetX = 0;\n this.offsetY = 0;\n },\n // avoid Vue 2.6 event bubble issues by manually binding events\n // https://github.com/youzan/vant/issues/3015\n bindTouchEvent: function bindTouchEvent(el) {\n var onTouchStart = this.onTouchStart,\n onTouchMove = this.onTouchMove,\n onTouchEnd = this.onTouchEnd;\n on(el, 'touchstart', onTouchStart);\n on(el, 'touchmove', onTouchMove);\n\n if (onTouchEnd) {\n on(el, 'touchend', onTouchEnd);\n on(el, 'touchcancel', onTouchEnd);\n }\n }\n }\n};","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, 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 // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjQ5NzczMTg1QkFCNTExRUFBODJGOTdEMEYxQUJGNzM0IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjQ5NzczMTg2QkFCNTExRUFBODJGOTdEMEYxQUJGNzM0Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NDk3NzMxODNCQUI1MTFFQUE4MkY5N0QwRjFBQkY3MzQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NDk3NzMxODRCQUI1MTFFQUE4MkY5N0QwRjFBQkY3MzQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6UctULAAADZElEQVR42uybW4hMcRzH/2caixrlfital13TrM0TaaN4kNxJLi9KKbehyKXlwRPJy5ZElDYh5fKEsIvcWvdLSpL1gCTKsIPF7sb4/prfbKeTuZyr//9/9lefZprzP2fOZ/73//+MEU0+FGGK6H/4zglgEvgDroBnugqXgcNgmemzDNgLNoPfQdxEJEDhXRZZCgNsABuDuomghAeDZIHjtSCmkzDlYM8Cx/uBVboI9wFrSki3CfTQQXg96FVCuiFguerCMRYuNbb43XP4LbwS9LeRfiRYqqpwd66XdqPWz/vyU5jq41AH51WBeaoJUz3c6uL8baoJL+H66DTGg2mqCBtcD93GdlWEqf6N9eA6U0CNCsJe5ozndTnq8txyUAHioBIkuP55FbNAI3gJXoBmfv+G59O+CA80CVXwa5wbpTKfBy4GN17WBqyNxXM08w9C71N2hGM8Z61hMaK3kC9oUFPNWCNlKhFN4Cjo6PwFTWtao0GDy+5ExngKpoOP1karXkNZinHggLWVHgUmC31jARhgFh4m9A6DG99OYarkGY2Ff4DXZuH34LjGwvtAq7XRWg1uaih7Fuz419CSsn0muKWR7HmwCLTnG0u38nCuSQPZC2ChWTbf5OEb5/RthWUvclfUXups6StL31FQ9lI+2WLTwzSYAe4pJNvAsm1O58NpHoc+UEC2kWV/uV0ASPP0TOad88ss+9OrFY+c9CMJZa+C+dytCq+EKVpY+rFEstfA3FJl7QpTfGHpJxLI3gCz7cg6Eab4DI5IIHzQrqxTYYqEBMKO7sGpcFXYhEOVw7RT31cCYVoy7haEsAy5S0FLzPEwCTu6ly5hRVrorhz2S3iQyD41J0tU2m2pIwoX51xLPcZPYS+KM81Z94jsfk9H0MU6SGHawK7nvpOeAUny9U4Ld7seCRmLNC2Z0i7eCvDW9PkrsFhk96Ovyyg83Gb6+2CqyK51F3rU/y6nmwOe2/yOEX4Kp0pMRzlHz0xOtJlztFNQzSXhncf35Ej4TJHjn8A6LvonHdbNXF2nLoeeCGopkv6En8J1XB+t8R3s5OK1X+RZBHfQmu/mWVFdnmueAsfsXNRw8L+lCDc0BD3FQ2vWh8AHn/vccrCWS0+KS9s5u6XICNsftYxMJhMq4YgIWfwVYABqd6CPkB0SEQAAAABJRU5ErkJggg==\"","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n if (this.curve.twisted) {\n // E = a * C\n var e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n var h = this.z.redSqr();\n // J = F - 2 * H\n var j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n var e = c.redAdd(d);\n // H = (c * Z1)^2\n var h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n var j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","var Buffer = require('safe-buffer').Buffer\nvar ZEROES = Buffer.alloc(16, 0)\n\nfunction toArray (buf) {\n return [\n buf.readUInt32BE(0),\n buf.readUInt32BE(4),\n buf.readUInt32BE(8),\n buf.readUInt32BE(12)\n ]\n}\n\nfunction fromArray (out) {\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0] >>> 0, 0)\n buf.writeUInt32BE(out[1] >>> 0, 4)\n buf.writeUInt32BE(out[2] >>> 0, 8)\n buf.writeUInt32BE(out[3] >>> 0, 12)\n return buf\n}\n\nfunction GHASH (key) {\n this.h = key\n this.state = Buffer.alloc(16, 0)\n this.cache = Buffer.allocUnsafe(0)\n}\n\n// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html\n// by Juho Vähä-Herttua\nGHASH.prototype.ghash = function (block) {\n var i = -1\n while (++i < block.length) {\n this.state[i] ^= block[i]\n }\n this._multiply()\n}\n\nGHASH.prototype._multiply = function () {\n var Vi = toArray(this.h)\n var Zi = [0, 0, 0, 0]\n var j, xi, lsbVi\n var i = -1\n while (++i < 128) {\n xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0\n if (xi) {\n // Z_i+1 = Z_i ^ V_i\n Zi[0] ^= Vi[0]\n Zi[1] ^= Vi[1]\n Zi[2] ^= Vi[2]\n Zi[3] ^= Vi[3]\n }\n\n // Store the value of LSB(V_i)\n lsbVi = (Vi[3] & 1) !== 0\n\n // V_i+1 = V_i >> 1\n for (j = 3; j > 0; j--) {\n Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31)\n }\n Vi[0] = Vi[0] >>> 1\n\n // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R\n if (lsbVi) {\n Vi[0] = Vi[0] ^ (0xe1 << 24)\n }\n }\n this.state = fromArray(Zi)\n}\n\nGHASH.prototype.update = function (buf) {\n this.cache = Buffer.concat([this.cache, buf])\n var chunk\n while (this.cache.length >= 16) {\n chunk = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n this.ghash(chunk)\n }\n}\n\nGHASH.prototype.final = function (abl, bl) {\n if (this.cache.length) {\n this.ghash(Buffer.concat([this.cache, ZEROES], 16))\n }\n\n this.ghash(fromArray([0, abl, 0, bl]))\n return this.state\n}\n\nmodule.exports = GHASH\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdTip.vue?vue&type=style&index=0&id=80568d24&scoped=true&lang=scss&\"","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821'\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf'\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695'\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9'\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36'\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f'\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999'\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09'\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d'\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088'\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d'\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8'\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a'\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453'\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160'\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0'\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6'\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589'\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17'\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda'\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd'\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2'\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6'\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f'\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01'\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3'\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f'\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7'\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78'\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1'\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150'\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82'\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc'\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b'\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51'\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45'\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120'\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84'\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d'\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d'\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8'\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8'\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac'\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f'\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962'\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907'\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec'\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d'\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414'\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd'\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0'\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811'\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1'\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c'\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73'\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd'\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405'\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589'\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e'\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27'\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1'\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482'\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945'\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573'\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82'\n ]\n ]\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672'\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6'\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da'\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37'\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b'\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81'\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58'\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77'\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a'\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c'\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67'\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402'\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55'\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482'\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82'\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396'\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49'\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf'\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a'\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7'\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933'\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a'\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6'\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37'\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e'\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6'\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476'\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40'\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61'\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683'\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5'\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b'\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417'\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868'\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a'\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6'\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996'\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e'\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d'\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2'\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e'\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437'\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311'\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4'\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575'\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d'\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d'\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629'\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06'\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374'\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee'\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1'\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b'\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661'\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6'\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e'\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d'\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc'\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4'\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c'\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b'\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913'\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154'\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865'\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc'\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224'\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e'\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6'\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511'\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b'\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2'\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c'\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3'\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d'\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700'\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4'\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196'\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4'\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257'\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13'\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096'\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38'\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f'\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448'\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a'\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4'\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437'\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7'\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d'\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a'\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54'\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77'\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517'\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10'\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125'\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e'\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1'\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2'\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423'\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8'\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758'\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375'\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d'\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec'\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0'\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c'\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4'\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f'\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649'\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826'\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5'\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87'\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b'\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc'\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c'\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f'\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a'\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46'\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f'\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03'\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08'\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8'\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373'\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3'\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8'\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1'\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9'\n ]\n ]\n }\n};\n","// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js\n// Fedor, you are amazing.\n'use strict'\n\nvar asn1 = require('asn1.js')\n\nexports.certificate = require('./certificate')\n\nvar RSAPrivateKey = asn1.define('RSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('modulus').int(),\n this.key('publicExponent').int(),\n this.key('privateExponent').int(),\n this.key('prime1').int(),\n this.key('prime2').int(),\n this.key('exponent1').int(),\n this.key('exponent2').int(),\n this.key('coefficient').int()\n )\n})\nexports.RSAPrivateKey = RSAPrivateKey\n\nvar RSAPublicKey = asn1.define('RSAPublicKey', function () {\n this.seq().obj(\n this.key('modulus').int(),\n this.key('publicExponent').int()\n )\n})\nexports.RSAPublicKey = RSAPublicKey\n\nvar PublicKey = asn1.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\nexports.PublicKey = PublicKey\n\nvar AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('none').null_().optional(),\n this.key('curve').objid().optional(),\n this.key('params').seq().obj(\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int()\n ).optional()\n )\n})\n\nvar PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPrivateKey').octstr()\n )\n})\nexports.PrivateKey = PrivateKeyInfo\nvar EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').seq().obj(\n this.key('id').objid(),\n this.key('decrypt').seq().obj(\n this.key('kde').seq().obj(\n this.key('id').objid(),\n this.key('kdeparams').seq().obj(\n this.key('salt').octstr(),\n this.key('iters').int()\n )\n ),\n this.key('cipher').seq().obj(\n this.key('algo').objid(),\n this.key('iv').octstr()\n )\n )\n ),\n this.key('subjectPrivateKey').octstr()\n )\n})\n\nexports.EncryptedPrivateKey = EncryptedPrivateKeyInfo\n\nvar DSAPrivateKey = asn1.define('DSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int(),\n this.key('pub_key').int(),\n this.key('priv_key').int()\n )\n})\nexports.DSAPrivateKey = DSAPrivateKey\n\nexports.DSAparam = asn1.define('DSAparam', function () {\n this.int()\n})\n\nvar ECPrivateKey = asn1.define('ECPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('privateKey').octstr(),\n this.key('parameters').optional().explicit(0).use(ECParameters),\n this.key('publicKey').optional().explicit(1).bitstr()\n )\n})\nexports.ECPrivateKey = ECPrivateKey\n\nvar ECParameters = asn1.define('ECParameters', function () {\n this.choice({\n namedCurve: this.objid()\n })\n})\n\nexports.signature = asn1.define('signature', function () {\n this.seq().obj(\n this.key('r').int(),\n this.key('s').int()\n )\n})\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\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;","'use strict';\n\nconst base = exports;\n\nbase.Reporter = require('./reporter').Reporter;\nbase.DecoderBuffer = require('./buffer').DecoderBuffer;\nbase.EncoderBuffer = require('./buffer').EncoderBuffer;\nbase.Node = require('./node');\n","var AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar MODES = require('./modes')\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Decipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._last = void 0\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Decipher, Transform)\n\nDecipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n while ((chunk = this._cache.get(this._autopadding))) {\n thing = this._mode.decrypt(this, chunk)\n out.push(thing)\n }\n return Buffer.concat(out)\n}\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n return unpad(this._mode.decrypt(this, chunk))\n } else if (chunk) {\n throw new Error('data not multiple of block length')\n }\n}\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function (autoPadding) {\n var out\n if (autoPadding) {\n if (this.cache.length > 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n } else {\n if (this.cache.length >= 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n }\n\n return null\n}\n\nSplitter.prototype.flush = function () {\n if (this.cache.length) return this.cache\n}\n\nfunction unpad (last) {\n var padded = last[15]\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data')\n }\n var i = -1\n while (++i < padded) {\n if (last[(i + (16 - padded))] !== padded) {\n throw new Error('unable to decrypt data')\n }\n }\n if (padded === 16) return\n\n return last.slice(0, 16 - padded)\n}\n\nfunction createDecipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv, true)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv, true)\n }\n\n return new Decipher(config.module, password, iv)\n}\n\nfunction createDecipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createDecipher = createDecipher\nexports.createDecipheriv = createDecipheriv\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","// 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;","import Vue from 'vue';\r\nimport Vuex from 'vuex';\r\n\r\nVue.use(Vuex);\r\n\r\nconst store = new Vuex.Store({\r\n state: {\r\n }\r\n});\r\n\r\nconst storeContext = require.context('@/store/modules', true, /\\.js$/);\r\n\r\nstoreContext.keys().forEach(modules => {\r\n store.registerModule(modules.replace(/(^\\.\\/)|(\\.js$)/g, ''), storeContext(modules).default);\r\n});\r\n\r\nVue.prototype.$store = store;\r\nexport default store;\r\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength)\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","/**\n * Vue Router support\n */\nfunction isRedundantNavigation(err) {\n return err.name === 'NavigationDuplicated' || // compatible with vue-router@3.3\n err.message && err.message.indexOf('redundant navigation') !== -1;\n}\n\nexport function route(router, config) {\n var to = config.to,\n url = config.url,\n replace = config.replace;\n\n if (to && router) {\n var promise = router[replace ? 'replace' : 'push'](to);\n /* istanbul ignore else */\n\n if (promise && promise.catch) {\n promise.catch(function (err) {\n if (err && !isRedundantNavigation(err)) {\n throw err;\n }\n });\n }\n } else if (url) {\n replace ? location.replace(url) : location.href = url;\n }\n}\nexport function functionalRoute(context) {\n route(context.parent && context.parent.$router, context.props);\n}\nexport var routeProps = {\n url: String,\n replace: Boolean,\n to: [String, Object]\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};","// 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};","// adapted from https://github.com/apatil/pemstrip\nvar findProc = /Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r+/=]+)[\\n\\r]+/m\nvar startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m\nvar fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r+/=]+)-----END \\1-----$/m\nvar evp = require('evp_bytestokey')\nvar ciphers = require('browserify-aes')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = function (okey, password) {\n var key = okey.toString()\n var match = key.match(findProc)\n var decrypted\n if (!match) {\n var match2 = key.match(fullRegex)\n decrypted = Buffer.from(match2[2].replace(/[\\r\\n]/g, ''), 'base64')\n } else {\n var suite = 'aes' + match[1]\n var iv = Buffer.from(match[2], 'hex')\n var cipherText = Buffer.from(match[3].replace(/[\\r\\n]/g, ''), 'base64')\n var cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key\n var out = []\n var cipher = ciphers.createDecipheriv(suite, cipherKey, iv)\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n decrypted = Buffer.concat(out)\n }\n var tag = key.match(startRegex)[1]\n return {\n tag: tag,\n data: decrypted\n }\n}\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar utils = require('./utils');\nvar Cipher = require('./cipher');\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n\n var state = new DESState();\n this._desState = state;\n\n this.deriveKeys(state, options.key);\n}\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [\n 1, 1, 2, 2, 2, 2, 2, 2,\n 1, 2, 2, 2, 2, 2, 2, 1\n];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4);\n\n // Initial Permutation\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n\n if (this.type === 'encrypt')\n this._encrypt(state, l, r, state.tmp, 0);\n else\n this._decrypt(state, l, r, state.tmp, 0);\n\n l = state.tmp[0];\n r = state.tmp[1];\n\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n var value = buffer.length - off;\n for (var i = off; i < buffer.length; i++)\n buffer[i] = value;\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n var pad = buffer[buffer.length - 1];\n for (var i = buffer.length - pad; i < buffer.length; i++)\n assert.equal(buffer[i], pad);\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart;\n\n // Apply f() x16 times\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(r, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart;\n\n // Apply f() x16 times\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(l, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(l, r, out, off);\n};\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjA4ODJFQzU2QjlERjExRUE4OUUwRUFBRjNGNDAwMDQxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjA4ODJFQzU3QjlERjExRUE4OUUwRUFBRjNGNDAwMDQxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDg4MkVDNTRCOURGMTFFQTg5RTBFQUFGM0Y0MDAwNDEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDg4MkVDNTVCOURGMTFFQTg5RTBFQUFGM0Y0MDAwNDEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7t1aldAAADjUlEQVR42syYW2wMURjHu1vVoNRL4xKX9MFurQe3hkRdWg+k7ioSUQ8SJBIPEnEJDUIQHkTixb1CCIoQJBIeSBGClkj31mq7XaTKAxGqcVv/L/lPcrKZTqedszs9yS8zmev/fPOd8//OeHw+X4abLRqNWp73anpPJtgPPoM2sAN4dDy4jyaBGynKaCK2FZx1+mAdEewHtnK/DKzh/k4dAdAhUAQNAffBDVAJHoJ8sMJtgVlgC/fPKMcvc7vd6TucClwFRoEH4Ipy/ASoBgGwxC2Bcu827l8wOX9TiaIrApcBPyNVaXL+CHgBCsGcdAv0KJG5bnHdbW4r0i2wFEwEz8BRi+tkPgyCmaAolRO1h4NhDBBvXM/jt7q47x+4A8bxk0sq1IMG8M7Wi5O8eDDzysAQ5OOErLbHYIbNDhq5qLYfFGsIjnAf9hz9liwwF5wDCy0+e5wPkoc8Ape6+bXK2SEfOz6ik+v+gqtiABDabnziA2Ax959LL0iD0st2h3PmRWK0HEWsbAu4LaQDNYu/GwKNBJbEf52mSus7qEWUatWDfr9/Fq1ymjqKw9zuBdlu1YYQl6tURSFVoPjpe+ZgFejrgrhBtEuZ1BvBHlWgiJsNPoBFFJmVRnEDKW4uaAIl+PRtZtOMj8Y/nF66HPxJsb4cBqSUA6MY4uKdOUk9I9nKKqSK5Xyq2gBGTsTFGLl4V1YXpciPYClFelMgrj/FzQMtFNdi14sjFNnGMr5K1yJIWSaIuPk0ABEX626xEKbITyytTmsUeAosoB+LuGa7XmzWxOhrOD9KzzscipO57isQv50EcY1Oy62YMi/+0hC938p6JqajHhzL/Kth+eS0iae/5dfI1yEwoFqPphZS0qdXCwzoEGj0MqhRYFBnBI2H1Nm4Ntumh2uLoFjRaKWi7qyN5I+iDo70kyDP4voItwUoFLxOBBbwmhqW4maLrmMUv5ripLhYB96AgxYjucnOSPbaHCBhk3MVFCErvATXKJIO4/kTaSj/PLwCm3qah3YFBpP+ZsmKbh/nSCnPp4CVnN9C9O/p4CmYAA6zjCs3ERhwItBwkHy+9B49uYjRkzKpBLw0ufcJ1xVlzLli/sO5Sx/OS3pHj7x4Kl+UmbT83A3Od8NZJFfXgl1gmHJccnYy/LjOSbEga4TNHNHXwHHw00H1vIFL3C/gEMRVO4lgyltXf/k9iUQioze3/wIMALQh6m5LuwxUAAAAAElFTkSuQmCC\"","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n","var xor = require('buffer-xor')\n\nfunction getBlock (self) {\n self._prev = self._cipher.encryptBlock(self._prev)\n return self._prev\n}\n\nexports.encrypt = function (self, chunk) {\n while (self._cache.length < chunk.length) {\n self._cache = Buffer.concat([self._cache, getBlock(self)])\n }\n\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad\n var i = -1\n var len = 8\n var out = 0\n var bit, value\n while (++i < len) {\n pad = self._cipher.encryptBlock(self._prev)\n bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0\n value = pad[0] ^ bit\n out += ((value & 0x80) >> (i % 8))\n self._prev = shiftIn(self._prev, decrypt ? bit : value)\n }\n return out\n}\n\nfunction shiftIn (buffer, value) {\n var len = buffer.length\n var i = -1\n var out = Buffer.allocUnsafe(buffer.length)\n buffer = Buffer.concat([buffer, Buffer.from([value])])\n\n while (++i < len) {\n out[i] = buffer[i] << 1 | buffer[i + 1] >> (7)\n }\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","var BN = require('bn.js');\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar primes = require('./generatePrime');\nvar randomBytes = require('randombytes');\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n this._pub = new BN(pub);\n return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n this._priv = new BN(priv);\n return this;\n}\n\nvar primeCache = {};\nfunction checkPrime(prime, generator) {\n var gen = generator.toString('hex');\n var hex = [gen, prime.toString(16)].join('_');\n if (hex in primeCache) {\n return primeCache[hex];\n }\n var error = 0;\n\n if (prime.isEven() ||\n !primes.simpleSieve ||\n !primes.fermatTest(prime) ||\n !millerRabin.test(prime)) {\n //not a prime so +1\n error += 1;\n\n if (gen === '02' || gen === '05') {\n // we'd be able to check the generator\n // it would fail so +8\n error += 8;\n } else {\n //we wouldn't be able to test the generator\n // so +4\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n }\n if (!millerRabin.test(prime.shrn(1))) {\n //not a safe prime\n error += 2;\n }\n var rem;\n switch (gen) {\n case '02':\n if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n // unsuidable generator\n error += 8;\n }\n break;\n case '05':\n rem = prime.mod(TEN);\n if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n // prime mod 10 needs to equal 3 or 7\n error += 8;\n }\n break;\n default:\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n}\n\nfunction DH(prime, generator, malleable) {\n this.setGenerator(generator);\n this.__prime = new BN(prime);\n this._prime = BN.mont(this.__prime);\n this._primeLen = prime.length;\n this._pub = undefined;\n this._priv = undefined;\n this._primeCode = undefined;\n if (malleable) {\n this.setPublicKey = setPublicKey;\n this.setPrivateKey = setPrivateKey;\n } else {\n this._primeCode = 8;\n }\n}\nObject.defineProperty(DH.prototype, 'verifyError', {\n enumerable: true,\n get: function () {\n if (typeof this._primeCode !== 'number') {\n this._primeCode = checkPrime(this.__prime, this.__gen);\n }\n return this._primeCode;\n }\n});\nDH.prototype.generateKeys = function () {\n if (!this._priv) {\n this._priv = new BN(randomBytes(this._primeLen));\n }\n this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n other = new BN(other);\n other = other.toRed(this._prime);\n var secret = other.redPow(this._priv).fromRed();\n var out = new Buffer(secret.toArray());\n var prime = this.getPrime();\n if (out.length < prime.length) {\n var front = new Buffer(prime.length - out.length);\n front.fill(0);\n out = Buffer.concat([front, out]);\n }\n return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(gen)) {\n gen = new Buffer(gen, enc);\n }\n this.__gen = gen;\n this._gen = new BN(gen);\n return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n var buf = new Buffer(bn.toArray());\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}\n","// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js\n// thanks to @Rantanen\n\n'use strict'\n\nvar asn = require('asn1.js')\n\nvar Time = asn.define('Time', function () {\n this.choice({\n utcTime: this.utctime(),\n generalTime: this.gentime()\n })\n})\n\nvar AttributeTypeValue = asn.define('AttributeTypeValue', function () {\n this.seq().obj(\n this.key('type').objid(),\n this.key('value').any()\n )\n})\n\nvar AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('parameters').optional(),\n this.key('curve').objid().optional()\n )\n})\n\nvar SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\n\nvar RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {\n this.setof(AttributeTypeValue)\n})\n\nvar RDNSequence = asn.define('RDNSequence', function () {\n this.seqof(RelativeDistinguishedName)\n})\n\nvar Name = asn.define('Name', function () {\n this.choice({\n rdnSequence: this.use(RDNSequence)\n })\n})\n\nvar Validity = asn.define('Validity', function () {\n this.seq().obj(\n this.key('notBefore').use(Time),\n this.key('notAfter').use(Time)\n )\n})\n\nvar Extension = asn.define('Extension', function () {\n this.seq().obj(\n this.key('extnID').objid(),\n this.key('critical').bool().def(false),\n this.key('extnValue').octstr()\n )\n})\n\nvar TBSCertificate = asn.define('TBSCertificate', function () {\n this.seq().obj(\n this.key('version').explicit(0).int().optional(),\n this.key('serialNumber').int(),\n this.key('signature').use(AlgorithmIdentifier),\n this.key('issuer').use(Name),\n this.key('validity').use(Validity),\n this.key('subject').use(Name),\n this.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo),\n this.key('issuerUniqueID').implicit(1).bitstr().optional(),\n this.key('subjectUniqueID').implicit(2).bitstr().optional(),\n this.key('extensions').explicit(3).seqof(Extension).optional()\n )\n})\n\nvar X509Certificate = asn.define('X509Certificate', function () {\n this.seq().obj(\n this.key('tbsCertificate').use(TBSCertificate),\n this.key('signatureAlgorithm').use(AlgorithmIdentifier),\n this.key('signatureValue').bitstr()\n )\n})\n\nmodule.exports = X509Certificate\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;","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):t.dayjs=e()}(this,function(){\"use strict\";var t=\"millisecond\",e=\"second\",n=\"minute\",r=\"hour\",i=\"day\",s=\"week\",u=\"month\",a=\"quarter\",o=\"year\",f=\"date\",h=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[^0-9]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,c=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,d={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\")},$=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},l={s:$,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+$(r,2,\"0\")+\":\"+$(i,2,\"0\")},m:function t(e,n){if(e.date() 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// 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});","'use strict';\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n var res = (bytes[0 + off] << 24) |\n (bytes[1 + off] << 16) |\n (bytes[2 + off] << 8) |\n bytes[3 + off];\n return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n bytes[0 + off] = value >>> 24;\n bytes[1 + off] = (value >>> 16) & 0xff;\n bytes[2 + off] = (value >>> 8) & 0xff;\n bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n }\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 0; i < 4; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n for (var i = 4; i < 8; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n // 7, 15, 23, 31, 39, 47, 55, 63\n // 6, 14, 22, 30, 39, 47, 55, 63\n // 5, 13, 21, 29, 39, 47, 55, 63\n // 4, 12, 20, 28\n for (var i = 7; i >= 5; i--) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n\n // 1, 9, 17, 25, 33, 41, 49, 57\n // 2, 10, 18, 26, 34, 42, 50, 58\n // 3, 11, 19, 27, 35, 43, 51, 59\n // 36, 44, 52, 60\n for (var i = 1; i <= 3; i++) {\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));\n};\n\nvar pc2table = [\n // inL => outL\n 14, 11, 17, 4, 27, 23, 25, 0,\n 13, 22, 7, 18, 5, 9, 16, 24,\n 2, 20, 12, 21, 1, 8, 15, 26,\n\n // inR => outR\n 15, 4, 25, 19, 9, 1, 26, 16,\n 5, 11, 23, 8, 12, 7, 17, 0,\n 22, 3, 10, 14, 6, 20, 27, 24\n];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n var len = pc2table.length >>> 1;\n for (var i = 0; i < len; i++) {\n outL <<= 1;\n outL |= (inL >>> pc2table[i]) & 0x1;\n }\n for (var i = len; i < pc2table.length; i++) {\n outR <<= 1;\n outR |= (inR >>> pc2table[i]) & 0x1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n var outL = 0;\n var outR = 0;\n\n outL = ((r & 1) << 5) | (r >>> 27);\n for (var i = 23; i >= 15; i -= 4) {\n outL <<= 6;\n outL |= (r >>> i) & 0x3f;\n }\n for (var i = 11; i >= 3; i -= 4) {\n outR |= (r >>> i) & 0x3f;\n outR <<= 6;\n }\n outR |= ((r & 0x1f) << 1) | (r >>> 31);\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [\n 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,\n 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,\n 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,\n 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,\n\n 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,\n 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,\n 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,\n 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,\n\n 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,\n 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,\n 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,\n 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,\n\n 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,\n 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,\n 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,\n 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,\n\n 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,\n 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,\n 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,\n 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,\n\n 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,\n 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,\n 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,\n 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,\n\n 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,\n 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,\n 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,\n 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,\n\n 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,\n 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,\n 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,\n 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11\n];\n\nexports.substitute = function substitute(inL, inR) {\n var out = 0;\n for (var i = 0; i < 4; i++) {\n var b = (inL >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n for (var i = 0; i < 4; i++) {\n var b = (inR >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[4 * 0x40 + i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n return out >>> 0;\n};\n\nvar permuteTable = [\n 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,\n 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7\n];\n\nexports.permute = function permute(num) {\n var out = 0;\n for (var i = 0; i < permuteTable.length; i++) {\n out <<= 1;\n out |= (num >>> permuteTable[i]) & 0x1;\n }\n return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n var str = num.toString(2);\n while (str.length < size)\n str = '0' + str;\n\n var out = [];\n for (var i = 0; i < size; i += group)\n out.push(str.slice(i, i + group));\n return out.join(' ');\n};\n","/**\n * Bind event when mounted or activated\n */\nimport { on, off } from '../utils/dom/event';\nvar uid = 0;\nexport function BindEventMixin(handler) {\n var key = \"binded_\" + uid++;\n\n function bind() {\n if (!this[key]) {\n handler.call(this, on, true);\n this[key] = true;\n }\n }\n\n function unbind() {\n if (this[key]) {\n handler.call(this, off, false);\n this[key] = false;\n }\n }\n\n return {\n mounted: bind,\n activated: bind,\n deactivated: unbind,\n beforeDestroy: unbind\n };\n}","'use strict';\n\nconst inherits = require('inherits');\nconst Reporter = require('../base/reporter').Reporter;\nconst Buffer = require('safer-buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.isDecoderBuffer = function isDecoderBuffer(data) {\n if (data instanceof DecoderBuffer) {\n return true;\n }\n\n // Or accept compatible API\n const isCompatible = typeof data === 'object' &&\n Buffer.isBuffer(data.base) &&\n data.constructor.name === 'DecoderBuffer' &&\n typeof data.offset === 'number' &&\n typeof data.length === 'number' &&\n typeof data.save === 'function' &&\n typeof data.restore === 'function' &&\n typeof data.isEmpty === 'function' &&\n typeof data.readUInt8 === 'function' &&\n typeof data.skip === 'function' &&\n typeof data.raw === 'function';\n\n return isCompatible;\n};\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n const res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n};\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n const res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n};\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n};\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!EncoderBuffer.isEncoderBuffer(item))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.isEncoderBuffer = function isEncoderBuffer(data) {\n if (data instanceof EncoderBuffer) {\n return true;\n }\n\n // Or accept compatible API\n const isCompatible = typeof data === 'object' &&\n data.constructor.name === 'EncoderBuffer' &&\n typeof data.length === 'number' &&\n typeof data.join === 'function';\n\n return isCompatible;\n};\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = Buffer.alloc(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad = self._cipher.encryptBlock(self._prev)\n var out = pad[0] ^ byteParam\n\n self._prev = Buffer.concat([\n self._prev.slice(1),\n Buffer.from([decrypt ? byteParam : out])\n ])\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar StringDecoder = require('string_decoder').StringDecoder\nvar inherits = require('inherits')\n\nfunction CipherBase (hashMode) {\n Transform.call(this)\n this.hashMode = typeof hashMode === 'string'\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest\n } else {\n this.final = this._finalOrDigest\n }\n if (this._final) {\n this.__final = this._final\n this._final = null\n }\n this._decoder = null\n this._encoding = null\n}\ninherits(CipherBase, Transform)\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc)\n }\n\n var outData = this._update(data)\n if (this.hashMode) return this\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc)\n }\n\n return outData\n}\n\nCipherBase.prototype.setAutoPadding = function () {}\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state')\n}\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err\n try {\n if (this.hashMode) {\n this._update(data)\n } else {\n this.push(this._update(data))\n }\n } catch (e) {\n err = e\n } finally {\n next(err)\n }\n}\nCipherBase.prototype._flush = function (done) {\n var err\n try {\n this.push(this.__final())\n } catch (e) {\n err = e\n }\n\n done(err)\n}\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0)\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true)\n }\n return outData\n}\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc)\n this._encoding = enc\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings')\n\n var out = this._decoder.write(value)\n if (fin) {\n out += this._decoder.end()\n }\n\n return out\n}\n\nmodule.exports = CipherBase\n","exports.publicEncrypt = require('./publicEncrypt')\nexports.privateDecrypt = require('./privateDecrypt')\n\nexports.privateEncrypt = function privateEncrypt (key, buf) {\n return exports.publicEncrypt(key, buf, true)\n}\n\nexports.publicDecrypt = function publicDecrypt (key, buf) {\n return exports.privateDecrypt(key, buf, true)\n}\n","export var context = {\n zIndex: 2000,\n lockCount: 0,\n stack: [],\n find: function find(vm) {\n return this.stack.filter(function (item) {\n return item.vm === vm;\n })[0];\n }\n};","import _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n// Utils\nimport { createNamespace, isDef, noop } from '../utils';\nimport { inherit } from '../utils/functional';\nimport { preventDefault } from '../utils/dom/event'; // Types\n\nvar _createNamespace = createNamespace('overlay'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction preventTouchMove(event) {\n preventDefault(event, true);\n}\n\nfunction Overlay(h, props, slots, ctx) {\n var style = _extends({\n zIndex: props.zIndex\n }, props.customStyle);\n\n if (isDef(props.duration)) {\n style.animationDuration = props.duration + \"s\";\n }\n\n return h(\"transition\", {\n \"attrs\": {\n \"name\": \"van-fade\"\n }\n }, [h(\"div\", _mergeJSXProps([{\n \"directives\": [{\n name: \"show\",\n value: props.show\n }],\n \"style\": style,\n \"class\": [bem(), props.className],\n \"on\": {\n \"touchmove\": props.lockScroll ? preventTouchMove : noop\n }\n }, inherit(ctx, true)]), [slots.default == null ? void 0 : slots.default()])]);\n}\n\nOverlay.props = {\n show: Boolean,\n zIndex: [Number, String],\n duration: [Number, String],\n className: null,\n customStyle: Object,\n lockScroll: {\n type: Boolean,\n default: true\n }\n};\nexport default createComponent(Overlay);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport Overlay from '../../overlay';\nimport { context } from './context';\nimport { mount } from '../../utils/functional';\nimport { removeNode } from '../../utils/dom/node';\nvar defaultConfig = {\n className: '',\n customStyle: {}\n};\n\nfunction mountOverlay(vm) {\n return mount(Overlay, {\n on: {\n // close popup when overlay clicked & closeOnClickOverlay is true\n click: function click() {\n vm.$emit('click-overlay');\n\n if (vm.closeOnClickOverlay) {\n if (vm.onClickOverlay) {\n vm.onClickOverlay();\n } else {\n vm.close();\n }\n }\n }\n }\n });\n}\n\nexport function updateOverlay(vm) {\n var item = context.find(vm);\n\n if (item) {\n var el = vm.$el;\n var config = item.config,\n overlay = item.overlay;\n\n if (el && el.parentNode) {\n el.parentNode.insertBefore(overlay.$el, el);\n }\n\n _extends(overlay, defaultConfig, config, {\n show: true\n });\n }\n}\nexport function openOverlay(vm, config) {\n var item = context.find(vm);\n\n if (item) {\n item.config = config;\n } else {\n var overlay = mountOverlay(vm);\n context.stack.push({\n vm: vm,\n config: config,\n overlay: overlay\n });\n }\n\n updateOverlay(vm);\n}\nexport function closeOverlay(vm) {\n var item = context.find(vm);\n\n if (item) {\n item.overlay.show = false;\n }\n}\nexport function removeOverlay(vm) {\n var item = context.find(vm);\n\n if (item) {\n removeNode(item.overlay.$el);\n }\n}","function getElement(selector) {\n if (typeof selector === 'string') {\n return document.querySelector(selector);\n }\n\n return selector();\n}\n\nexport function PortalMixin(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n ref = _ref.ref,\n afterPortal = _ref.afterPortal;\n\n return {\n props: {\n getContainer: [String, Function]\n },\n watch: {\n getContainer: 'portal'\n },\n mounted: function mounted() {\n if (this.getContainer) {\n this.portal();\n }\n },\n methods: {\n portal: function portal() {\n var getContainer = this.getContainer;\n var el = ref ? this.$refs[ref] : this.$el;\n var container;\n\n if (getContainer) {\n container = getElement(getContainer);\n } else if (this.$parent) {\n container = this.$parent.$el;\n }\n\n if (container && container !== el.parentNode) {\n container.appendChild(el);\n }\n\n if (afterPortal) {\n afterPortal.call(this);\n }\n }\n }\n };\n}","import { on, off } from '../utils/dom/event';\nimport { BindEventMixin } from './bind-event';\nexport var CloseOnPopstateMixin = {\n mixins: [BindEventMixin(function (bind, isBind) {\n this.handlePopstate(isBind && this.closeOnPopstate);\n })],\n props: {\n closeOnPopstate: Boolean\n },\n data: function data() {\n return {\n bindStatus: false\n };\n },\n watch: {\n closeOnPopstate: function closeOnPopstate(val) {\n this.handlePopstate(val);\n }\n },\n methods: {\n onPopstate: function onPopstate() {\n this.close();\n this.shouldReopen = false;\n },\n handlePopstate: function handlePopstate(bind) {\n /* istanbul ignore if */\n if (this.$isServer) {\n return;\n }\n\n if (this.bindStatus !== bind) {\n this.bindStatus = bind;\n var action = bind ? on : off;\n action(window, 'popstate', this.onPopstate);\n }\n }\n }\n};","// Context\nimport { context } from './context';\nimport { openOverlay, closeOverlay, updateOverlay, removeOverlay } from './overlay'; // Utils\n\nimport { on, off, preventDefault } from '../../utils/dom/event';\nimport { removeNode } from '../../utils/dom/node';\nimport { getScroller } from '../../utils/dom/scroll'; // Mixins\n\nimport { TouchMixin } from '../touch';\nimport { PortalMixin } from '../portal';\nimport { CloseOnPopstateMixin } from '../close-on-popstate';\nexport var popupMixinProps = {\n // Initial rendering animation\n transitionAppear: Boolean,\n // whether to show popup\n value: Boolean,\n // whether to show overlay\n overlay: Boolean,\n // overlay custom style\n overlayStyle: Object,\n // overlay custom class name\n overlayClass: String,\n // whether to close popup when overlay is clicked\n closeOnClickOverlay: Boolean,\n // z-index\n zIndex: [Number, String],\n // prevent body scroll\n lockScroll: {\n type: Boolean,\n default: true\n },\n // whether to lazy render\n lazyRender: {\n type: Boolean,\n default: true\n }\n};\nexport function PopupMixin(options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n mixins: [TouchMixin, CloseOnPopstateMixin, PortalMixin({\n afterPortal: function afterPortal() {\n if (this.overlay) {\n updateOverlay();\n }\n }\n })],\n props: popupMixinProps,\n data: function data() {\n return {\n inited: this.value\n };\n },\n computed: {\n shouldRender: function shouldRender() {\n return this.inited || !this.lazyRender;\n }\n },\n watch: {\n value: function value(val) {\n var type = val ? 'open' : 'close';\n this.inited = this.inited || this.value;\n this[type]();\n\n if (!options.skipToggleEvent) {\n this.$emit(type);\n }\n },\n overlay: 'renderOverlay'\n },\n mounted: function mounted() {\n if (this.value) {\n this.open();\n }\n },\n\n /* istanbul ignore next */\n activated: function activated() {\n if (this.shouldReopen) {\n this.$emit('input', true);\n this.shouldReopen = false;\n }\n },\n beforeDestroy: function beforeDestroy() {\n removeOverlay(this);\n\n if (this.opened) {\n this.removeLock();\n }\n\n if (this.getContainer) {\n removeNode(this.$el);\n }\n },\n\n /* istanbul ignore next */\n deactivated: function deactivated() {\n if (this.value) {\n this.close();\n this.shouldReopen = true;\n }\n },\n methods: {\n open: function open() {\n /* istanbul ignore next */\n if (this.$isServer || this.opened) {\n return;\n } // cover default zIndex\n\n\n if (this.zIndex !== undefined) {\n context.zIndex = this.zIndex;\n }\n\n this.opened = true;\n this.renderOverlay();\n this.addLock();\n },\n addLock: function addLock() {\n if (this.lockScroll) {\n on(document, 'touchstart', this.touchStart);\n on(document, 'touchmove', this.onTouchMove);\n\n if (!context.lockCount) {\n document.body.classList.add('van-overflow-hidden');\n }\n\n context.lockCount++;\n }\n },\n removeLock: function removeLock() {\n if (this.lockScroll && context.lockCount) {\n context.lockCount--;\n off(document, 'touchstart', this.touchStart);\n off(document, 'touchmove', this.onTouchMove);\n\n if (!context.lockCount) {\n document.body.classList.remove('van-overflow-hidden');\n }\n }\n },\n close: function close() {\n if (!this.opened) {\n return;\n }\n\n closeOverlay(this);\n this.opened = false;\n this.removeLock();\n this.$emit('input', false);\n },\n onTouchMove: function onTouchMove(event) {\n this.touchMove(event);\n var direction = this.deltaY > 0 ? '10' : '01';\n var el = getScroller(event.target, this.$el);\n var scrollHeight = el.scrollHeight,\n offsetHeight = el.offsetHeight,\n scrollTop = el.scrollTop;\n var status = '11';\n /* istanbul ignore next */\n\n if (scrollTop === 0) {\n status = offsetHeight >= scrollHeight ? '00' : '01';\n } else if (scrollTop + offsetHeight >= scrollHeight) {\n status = '10';\n }\n /* istanbul ignore next */\n\n\n if (status !== '11' && this.direction === 'vertical' && !(parseInt(status, 2) & parseInt(direction, 2))) {\n preventDefault(event, true);\n }\n },\n renderOverlay: function renderOverlay() {\n var _this = this;\n\n if (this.$isServer || !this.value) {\n return;\n }\n\n this.$nextTick(function () {\n _this.updateZIndex(_this.overlay ? 1 : 0);\n\n if (_this.overlay) {\n openOverlay(_this, {\n zIndex: context.zIndex++,\n duration: _this.duration,\n className: _this.overlayClass,\n customStyle: _this.overlayStyle\n });\n } else {\n closeOverlay(_this);\n }\n });\n },\n updateZIndex: function updateZIndex(value) {\n if (value === void 0) {\n value = 0;\n }\n\n this.$el.style.zIndex = ++context.zIndex + value;\n }\n }\n };\n}","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer\nvar createHmac = require('create-hmac')\nvar crt = require('browserify-rsa')\nvar EC = require('elliptic').ec\nvar BN = require('bn.js')\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction sign (hash, key, hashType, signType, tag) {\n var priv = parseKeys(key)\n if (priv.curve) {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n return ecSign(hash, priv)\n } else if (priv.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong private key type')\n return dsaSign(hash, priv, hashType)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = priv.modulus.byteLength()\n var pad = [0, 1]\n while (hash.length + pad.length + 1 < len) pad.push(0xff)\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) pad.push(hash[i])\n\n var out = crt(pad, priv)\n return out\n}\n\nfunction ecSign (hash, priv) {\n var curveId = curves[priv.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + priv.curve.join('.'))\n\n var curve = new EC(curveId)\n var key = curve.keyFromPrivate(priv.privateKey)\n var out = key.sign(hash)\n\n return Buffer.from(out.toDER())\n}\n\nfunction dsaSign (hash, priv, algo) {\n var x = priv.params.priv_key\n var p = priv.params.p\n var q = priv.params.q\n var g = priv.params.g\n var r = new BN(0)\n var k\n var H = bits2int(hash, q).mod(q)\n var s = false\n var kv = getKey(x, q, hash, algo)\n while (s === false) {\n k = makeKey(q, kv, algo)\n r = makeR(g, k, p, q)\n s = k.invm(q).imul(H.add(x.mul(r))).mod(q)\n if (s.cmpn(0) === 0) {\n s = false\n r = new BN(0)\n }\n }\n return toDER(r, s)\n}\n\nfunction toDER (r, s) {\n r = r.toArray()\n s = s.toArray()\n\n // Pad values\n if (r[0] & 0x80) r = [0].concat(r)\n if (s[0] & 0x80) s = [0].concat(s)\n\n var total = r.length + s.length + 4\n var res = [0x30, total, 0x02, r.length]\n res = res.concat(r, [0x02, s.length], s)\n return Buffer.from(res)\n}\n\nfunction getKey (x, q, hash, algo) {\n x = Buffer.from(x.toArray())\n if (x.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - x.length)\n x = Buffer.concat([zeros, x])\n }\n var hlen = hash.length\n var hbits = bits2octets(hash, q)\n var v = Buffer.alloc(hlen)\n v.fill(1)\n var k = Buffer.alloc(hlen)\n k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n return { k: k, v: v }\n}\n\nfunction bits2int (obits, q) {\n var bits = new BN(obits)\n var shift = (obits.length << 3) - q.bitLength()\n if (shift > 0) bits.ishrn(shift)\n return bits\n}\n\nfunction bits2octets (bits, q) {\n bits = bits2int(bits, q)\n bits = bits.mod(q)\n var out = Buffer.from(bits.toArray())\n if (out.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - out.length)\n out = Buffer.concat([zeros, out])\n }\n return out\n}\n\nfunction makeKey (q, kv, algo) {\n var t\n var k\n\n do {\n t = Buffer.alloc(0)\n\n while (t.length * 8 < q.bitLength()) {\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n t = Buffer.concat([t, kv.v])\n }\n\n k = bits2int(t, q)\n kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest()\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n } while (k.cmp(q) !== -1)\n\n return k\n}\n\nfunction makeR (g, k, p, q) {\n return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q)\n}\n\nmodule.exports = sign\nmodule.exports.getKey = getKey\nmodule.exports.makeKey = makeKey\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Sha256 = require('./sha256')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n this._a = 0xc1059ed8\n this._b = 0x367cd507\n this._c = 0x3070dd17\n this._d = 0xf70e5939\n this._e = 0xffc00b31\n this._f = 0x68581511\n this._g = 0x64f98fa7\n this._h = 0xbefa4fa4\n\n return this\n}\n\nSha224.prototype._hash = function () {\n var H = Buffer.allocUnsafe(28)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n\n return H\n}\n\nmodule.exports = Sha224\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommentInputPopup.vue?vue&type=style&index=0&lang=css&\"","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\nvar safeBuffer = require('safe-buffer')\nvar randombytes = require('randombytes')\nvar Buffer = safeBuffer.Buffer\nvar kBufferMaxLength = safeBuffer.kMaxLength\nvar crypto = global.crypto || global.msCrypto\nvar kMaxUint32 = Math.pow(2, 32) - 1\nfunction assertOffset (offset, length) {\n if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare\n throw new TypeError('offset must be a number')\n }\n\n if (offset > kMaxUint32 || offset < 0) {\n throw new TypeError('offset must be a uint32')\n }\n\n if (offset > kBufferMaxLength || offset > length) {\n throw new RangeError('offset out of range')\n }\n}\n\nfunction assertSize (size, offset, length) {\n if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare\n throw new TypeError('size must be a number')\n }\n\n if (size > kMaxUint32 || size < 0) {\n throw new TypeError('size must be a uint32')\n }\n\n if (size + offset > length || size > kBufferMaxLength) {\n throw new RangeError('buffer too small')\n }\n}\nif ((crypto && crypto.getRandomValues) || !process.browser) {\n exports.randomFill = randomFill\n exports.randomFillSync = randomFillSync\n} else {\n exports.randomFill = oldBrowser\n exports.randomFillSync = oldBrowser\n}\nfunction randomFill (buf, offset, size, cb) {\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n if (typeof offset === 'function') {\n cb = offset\n offset = 0\n size = buf.length\n } else if (typeof size === 'function') {\n cb = size\n size = buf.length - offset\n } else if (typeof cb !== 'function') {\n throw new TypeError('\"cb\" argument must be a function')\n }\n assertOffset(offset, buf.length)\n assertSize(size, offset, buf.length)\n return actualFill(buf, offset, size, cb)\n}\n\nfunction actualFill (buf, offset, size, cb) {\n if (process.browser) {\n var ourBuf = buf.buffer\n var uint = new Uint8Array(ourBuf, offset, size)\n crypto.getRandomValues(uint)\n if (cb) {\n process.nextTick(function () {\n cb(null, buf)\n })\n return\n }\n return buf\n }\n if (cb) {\n randombytes(size, function (err, bytes) {\n if (err) {\n return cb(err)\n }\n bytes.copy(buf, offset)\n cb(null, buf)\n })\n return\n }\n var bytes = randombytes(size)\n bytes.copy(buf, offset)\n return buf\n}\nfunction randomFillSync (buf, offset, size) {\n if (typeof offset === 'undefined') {\n offset = 0\n }\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n assertOffset(offset, buf.length)\n\n if (size === undefined) size = buf.length - offset\n\n assertSize(size, offset, buf.length)\n\n return actualFill(buf, offset, size)\n}\n","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8);\n\n // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n do\n var a = new bn(this.rand.generate(min_bytes));\n while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n var prime = true;\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n if (cb)\n cb(a);\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return false;\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s)\n return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0)\n return g;\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\n","var MAX_ALLOC = Math.pow(2, 30) - 1 // default in iojs\n\nmodule.exports = function (iterations, keylen) {\n if (typeof iterations !== 'number') {\n throw new TypeError('Iterations not a number')\n }\n\n if (iterations < 0) {\n throw new TypeError('Bad iterations')\n }\n\n if (typeof keylen !== 'number') {\n throw new TypeError('Key length not a number')\n }\n\n if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */\n throw new TypeError('Bad key length')\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha1 () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha1, Hash)\n\nSha1.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl1 (num) {\n return (num << 1) | (num >>> 31)\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha1.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha1.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha1\n","// uuid.js\n//\n// Copyright (c) 2010-2012 Robert Kieffer\n// MIT License - http://opensource.org/licenses/mit-license.php\n\n/*global window, require, define */\n(function(_window) {\n 'use strict';\n\n // Unique ID creation requires a high quality random # generator. We feature\n // detect to determine the best RNG source, normalizing to a function that\n // returns 128-bits of randomness, since that's what's usually required\n var _rng, _mathRNG, _nodeRNG, _whatwgRNG, _previousRoot;\n\n function setupBrowser() {\n // Allow for MSIE11 msCrypto\n var _crypto = _window.crypto || _window.msCrypto;\n\n if (!_rng && _crypto && _crypto.getRandomValues) {\n // WHATWG crypto-based RNG - http://wiki.whatwg.org/wiki/Crypto\n //\n // Moderately fast, high quality\n try {\n var _rnds8 = new Uint8Array(16);\n _whatwgRNG = _rng = function whatwgRNG() {\n _crypto.getRandomValues(_rnds8);\n return _rnds8;\n };\n _rng();\n } catch(e) {}\n }\n\n if (!_rng) {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var _rnds = new Array(16);\n _mathRNG = _rng = function() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) { r = Math.random() * 0x100000000; }\n _rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return _rnds;\n };\n if ('undefined' !== typeof console && console.warn) {\n console.warn(\"[SECURITY] node-uuid: crypto not usable, falling back to insecure Math.random()\");\n }\n }\n }\n\n function setupNode() {\n // Node.js crypto-based RNG - http://nodejs.org/docs/v0.6.2/api/crypto.html\n //\n // Moderately fast, high quality\n if ('function' === typeof require) {\n try {\n var _rb = require('crypto').randomBytes;\n _nodeRNG = _rng = _rb && function() {return _rb(16);};\n _rng();\n } catch(e) {}\n }\n }\n\n if (_window) {\n setupBrowser();\n } else {\n setupNode();\n }\n\n // Buffer class to use\n var BufferClass = ('function' === typeof Buffer) ? Buffer : Array;\n\n // Maps for number <-> hex string conversion\n var _byteToHex = [];\n var _hexToByte = {};\n for (var i = 0; i < 256; i++) {\n _byteToHex[i] = (i + 0x100).toString(16).substr(1);\n _hexToByte[_byteToHex[i]] = i;\n }\n\n // **`parse()` - Parse a UUID into it's component bytes**\n function parse(s, buf, offset) {\n var i = (buf && offset) || 0, ii = 0;\n\n buf = buf || [];\n s.toLowerCase().replace(/[0-9a-f]{2}/g, function(oct) {\n if (ii < 16) { // Don't overflow!\n buf[i + ii++] = _hexToByte[oct];\n }\n });\n\n // Zero out remaining bytes if string was short\n while (ii < 16) {\n buf[i + ii++] = 0;\n }\n\n return buf;\n }\n\n // **`unparse()` - Convert UUID byte array (ala parse()) into a string**\n function unparse(buf, offset) {\n var i = offset || 0, bth = _byteToHex;\n return bth[buf[i++]] + bth[buf[i++]] +\n bth[buf[i++]] + bth[buf[i++]] + '-' +\n bth[buf[i++]] + bth[buf[i++]] + '-' +\n bth[buf[i++]] + bth[buf[i++]] + '-' +\n bth[buf[i++]] + bth[buf[i++]] + '-' +\n bth[buf[i++]] + bth[buf[i++]] +\n bth[buf[i++]] + bth[buf[i++]] +\n bth[buf[i++]] + bth[buf[i++]];\n }\n\n // **`v1()` - Generate time-based UUID**\n //\n // Inspired by https://github.com/LiosK/UUID.js\n // and http://docs.python.org/library/uuid.html\n\n // random #'s we need to init node and clockseq\n var _seedBytes = _rng();\n\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n var _nodeId = [\n _seedBytes[0] | 0x01,\n _seedBytes[1], _seedBytes[2], _seedBytes[3], _seedBytes[4], _seedBytes[5]\n ];\n\n // Per 4.2.2, randomize (14 bit) clockseq\n var _clockseq = (_seedBytes[6] << 8 | _seedBytes[7]) & 0x3fff;\n\n // Previous uuid creation time\n var _lastMSecs = 0, _lastNSecs = 0;\n\n // See https://github.com/broofa/node-uuid for API details\n function v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n\n var clockseq = (options.clockseq != null) ? options.clockseq : _clockseq;\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = (options.msecs != null) ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = (options.nsecs != null) ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq == null) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs == null) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n var node = options.node || _nodeId;\n for (var n = 0; n < 6; n++) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : unparse(b);\n }\n\n // **`v4()` - Generate random UUID**\n\n // See https://github.com/broofa/node-uuid for API details\n function v4(options, buf, offset) {\n // Deprecated - 'format' argument, as supported in v1.2\n var i = buf && offset || 0;\n\n if (typeof(options) === 'string') {\n buf = (options === 'binary') ? new BufferClass(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || _rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ii++) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || unparse(rnds);\n }\n\n // Export public API\n var uuid = v4;\n uuid.v1 = v1;\n uuid.v4 = v4;\n uuid.parse = parse;\n uuid.unparse = unparse;\n uuid.BufferClass = BufferClass;\n uuid._rng = _rng;\n uuid._mathRNG = _mathRNG;\n uuid._nodeRNG = _nodeRNG;\n uuid._whatwgRNG = _whatwgRNG;\n\n if (('undefined' !== typeof module) && module.exports) {\n // Publish as node.js module\n module.exports = uuid;\n } else if (typeof define === 'function' && define.amd) {\n // Publish as AMD module\n define(function() {return uuid;});\n\n\n } else {\n // Publish as global (in browsers)\n _previousRoot = _window.uuid;\n\n // **`noConflict()` - (browser only) to reset global 'uuid' var**\n uuid.noConflict = function() {\n _window.uuid = _previousRoot;\n return uuid;\n };\n\n _window.uuid = uuid;\n }\n})('undefined' !== typeof window ? window : null);\n","'use strict';\n\nconst asn1 = exports;\n\nasn1.bignum = require('bn.js');\n\nasn1.define = require('./asn1/api').define;\nasn1.base = require('./asn1/base');\nasn1.constants = require('./asn1/constants');\nasn1.decoders = require('./asn1/decoders');\nasn1.encoders = require('./asn1/encoders');\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","'use strict';\n\nconst Reporter = require('../base/reporter').Reporter;\nconst EncoderBuffer = require('../base/buffer').EncoderBuffer;\nconst DecoderBuffer = require('../base/buffer').DecoderBuffer;\nconst assert = require('minimalistic-assert');\n\n// Supported tags\nconst tags = [\n 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nconst methods = [\n 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n 'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nconst overrided = [\n '_peekTag', '_decodeTag', '_use',\n '_decodeStr', '_decodeObjid', '_decodeTime',\n '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent, name) {\n const state = {};\n this._baseState = state;\n\n state.name = name;\n state.enc = enc;\n\n state.parent = parent || null;\n state.children = null;\n\n // State\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null;\n\n // Should create new instance on each method\n if (!state.parent) {\n state.children = [];\n this._wrap();\n }\n}\nmodule.exports = Node;\n\nconst stateProps = [\n 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n 'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n const state = this._baseState;\n const cstate = {};\n stateProps.forEach(function(prop) {\n cstate[prop] = state[prop];\n });\n const res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n const state = this._baseState;\n methods.forEach(function(method) {\n this[method] = function _wrappedMethod() {\n const clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n const state = this._baseState;\n\n assert(state.parent === null);\n body.call(this);\n\n // Filter children\n state.children = state.children.filter(function(child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n const state = this._baseState;\n\n // Filter children and args\n const children = args.filter(function(arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function(arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children;\n\n // Replace parent to maintain backward link\n children.forEach(function(child) {\n child._baseState.parent = this;\n }, this);\n }\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function(arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object)\n return arg;\n\n const res = {};\n Object.keys(arg).forEach(function(key) {\n if (key == (key | 0))\n key |= 0;\n const value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n Node.prototype[method] = function _overrided() {\n const state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n Node.prototype[tag] = function _tagMethod() {\n const state = this._baseState;\n const args = Array.prototype.slice.call(arguments);\n\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n const state = this._baseState;\n\n assert(state.use === null);\n state.use = item;\n\n return this;\n};\n\nNode.prototype.optional = function optional() {\n const state = this._baseState;\n\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.def = function def(val) {\n const state = this._baseState;\n\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n const state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n const state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n\n return this;\n};\n\nNode.prototype.obj = function obj() {\n const state = this._baseState;\n const args = Array.prototype.slice.call(arguments);\n\n state.obj = true;\n\n if (args.length !== 0)\n this._useArgs(args);\n\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n const state = this._baseState;\n\n assert(state.key === null);\n state.key = newKey;\n\n return this;\n};\n\nNode.prototype.any = function any() {\n const state = this._baseState;\n\n state.any = true;\n\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n const state = this._baseState;\n\n assert(state.choice === null);\n state.choice = obj;\n this._useArgs(Object.keys(obj).map(function(key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n const state = this._baseState;\n\n assert(state.use === null);\n state.contains = item;\n\n return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n const state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return input.wrapResult(state.children[0]._decode(input, options));\n\n let result = state['default'];\n let present = true;\n\n let prevKey = null;\n if (state.key !== null)\n prevKey = input.enterKey(state.key);\n\n // Check if tag is there\n if (state.optional) {\n let tag = null;\n if (state.explicit !== null)\n tag = state.explicit;\n else if (state.implicit !== null)\n tag = state.implicit;\n else if (state.tag !== null)\n tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n const save = input.save();\n try {\n if (state.choice === null)\n this._decodeGeneric(state.tag, input, options);\n else\n this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n\n if (input.isError(present))\n return present;\n }\n }\n\n // Push object on stack\n let prevObj;\n if (state.obj && present)\n prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n const explicit = this._decodeTag(input, state.explicit);\n if (input.isError(explicit))\n return explicit;\n input = explicit;\n }\n\n const start = input.offset;\n\n // Unwrap implicit and normal values\n if (state.use === null && state.choice === null) {\n let save;\n if (state.any)\n save = input.save();\n const body = this._decodeTag(\n input,\n state.implicit !== null ? state.implicit : state.tag,\n state.any\n );\n if (input.isError(body))\n return body;\n\n if (state.any)\n result = input.raw(save);\n else\n input = body;\n }\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), start, input.length, 'tagged');\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), input.offset, input.length, 'content');\n\n // Select proper method for tag\n if (state.any) {\n // no-op\n } else if (state.choice === null) {\n result = this._decodeGeneric(state.tag, input, options);\n } else {\n result = this._decodeChoice(input, options);\n }\n\n if (input.isError(result))\n return result;\n\n // Decode children\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n }\n\n // Decode contained/encoded by schema, only in bit or octet strings\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n const data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)\n ._decode(data, options);\n }\n }\n\n // Pop object\n if (state.obj && present)\n result = input.leaveObject(prevObj);\n\n // Set key\n if (state.key !== null && (result !== null || present === true))\n input.leaveKey(prevKey, state.key, result);\n else if (prevKey !== null)\n input.exitKey(prevKey);\n\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n const state = this._baseState;\n\n if (tag === 'seq' || tag === 'set')\n return null;\n if (tag === 'seqof' || tag === 'setof')\n return this._decodeList(input, tag, state.args[0], options);\n else if (/str$/.test(tag))\n return this._decodeStr(input, tag, options);\n else if (tag === 'objid' && state.args)\n return this._decodeObjid(input, state.args[0], state.args[1], options);\n else if (tag === 'objid')\n return this._decodeObjid(input, null, null, options);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._decodeTime(input, tag, options);\n else if (tag === 'null_')\n return this._decodeNull(input, options);\n else if (tag === 'bool')\n return this._decodeBool(input, options);\n else if (tag === 'objDesc')\n return this._decodeStr(input, tag, options);\n else if (tag === 'int' || tag === 'enum')\n return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)\n ._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n const state = this._baseState;\n // Create altered use decoder if implicit is set\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n const state = this._baseState;\n let result = null;\n let match = false;\n\n Object.keys(state.choice).some(function(key) {\n const save = input.save();\n const node = state.choice[key];\n try {\n const value = node._decode(input, options);\n if (input.isError(value))\n return false;\n\n result = { type: key, value: value };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n return true;\n }, this);\n\n if (!match)\n return input.error('Choice not matched');\n\n return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n const state = this._baseState;\n if (state['default'] !== null && state['default'] === data)\n return;\n\n const result = this._encodeValue(data, reporter, parent);\n if (result === undefined)\n return;\n\n if (this._skipDefault(result, reporter, parent))\n return;\n\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n const state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return state.children[0]._encode(data, reporter || new Reporter());\n\n let result = null;\n\n // Set reporter to share it with a child class\n this.reporter = reporter;\n\n // Check if data is there\n if (state.optional && data === undefined) {\n if (state['default'] !== null)\n data = state['default'];\n else\n return;\n }\n\n // Encode children first\n let content = null;\n let primitive = false;\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function(child) {\n if (child._baseState.tag === 'null_')\n return child._encode(null, reporter, data);\n\n if (child._baseState.key === null)\n return reporter.error('Child should have a key');\n const prevKey = reporter.enterKey(child._baseState.key);\n\n if (typeof data !== 'object')\n return reporter.error('Child expected, but input is not object');\n\n const res = child._encode(data[child._baseState.key], reporter, data);\n reporter.leaveKey(prevKey);\n\n return res;\n }, this).filter(function(child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1))\n return reporter.error('Too many args for : ' + state.tag);\n\n if (!Array.isArray(data))\n return reporter.error('seqof/setof, but data is not Array');\n\n const child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function(item) {\n const state = this._baseState;\n\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n }\n\n // Encode data itself\n if (!state.any && state.choice === null) {\n const tag = state.implicit !== null ? state.implicit : state.tag;\n const cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null)\n reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null)\n result = this._encodeComposite(tag, primitive, cls, content);\n }\n }\n\n // Wrap in explicit\n if (state.explicit !== null)\n result = this._encodeComposite(state.explicit, false, 'context', result);\n\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n const state = this._baseState;\n\n const node = state.choice[data.type];\n if (!node) {\n assert(\n false,\n data.type + ' not found in ' +\n JSON.stringify(Object.keys(state.choice)));\n }\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n const state = this._baseState;\n\n if (/str$/.test(tag))\n return this._encodeStr(data, tag);\n else if (tag === 'objid' && state.args)\n return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n else if (tag === 'objid')\n return this._encodeObjid(data, null, null);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._encodeTime(data, tag);\n else if (tag === 'null_')\n return this._encodeNull();\n else if (tag === 'int' || tag === 'enum')\n return this._encodeInt(data, state.args && state.reverseArgs[0]);\n else if (tag === 'bool')\n return this._encodeBool(data);\n else if (tag === 'objDesc')\n return this._encodeStr(data, tag);\n else\n throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '()+,-./:=?]*$/.test(str);\n};\n","module.exports = function xor (a, b) {\n var len = a.length\n var i = -1\n while (++i < len) {\n a[i] ^= b[i]\n }\n return a\n}\n","'use strict';\n\nconst inherits = require('inherits');\n\nconst DEREncoder = require('./der');\n\nfunction PEMEncoder(entity) {\n DEREncoder.call(this, entity);\n this.enc = 'pem';\n}\ninherits(PEMEncoder, DEREncoder);\nmodule.exports = PEMEncoder;\n\nPEMEncoder.prototype.encode = function encode(data, options) {\n const buf = DEREncoder.prototype.encode.call(this, data);\n\n const p = buf.toString('base64');\n const out = [ '-----BEGIN ' + options.label + '-----' ];\n for (let i = 0; i < p.length; i += 64)\n out.push(p.slice(i, i + 64));\n out.push('-----END ' + options.label + '-----');\n return out.join('\\n');\n};\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","var MODES = require('./modes')\nvar AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Cipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Cipher, Transform)\n\nCipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n\n while ((chunk = this._cache.get())) {\n thing = this._mode.encrypt(this, chunk)\n out.push(thing)\n }\n\n return Buffer.concat(out)\n}\n\nvar PADDING = Buffer.alloc(16, 0x10)\n\nCipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n chunk = this._mode.encrypt(this, chunk)\n this._cipher.scrub()\n return chunk\n }\n\n if (!chunk.equals(PADDING)) {\n this._cipher.scrub()\n throw new Error('data not multiple of block length')\n }\n}\n\nCipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function () {\n if (this.cache.length > 15) {\n var out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n return null\n}\n\nSplitter.prototype.flush = function () {\n var len = 16 - this.cache.length\n var padBuff = Buffer.allocUnsafe(len)\n\n var i = -1\n while (++i < len) {\n padBuff.writeUInt8(len, i)\n }\n\n return Buffer.concat([this.cache, padBuff])\n}\n\nfunction createCipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv)\n }\n\n return new Cipher(config.module, password, iv)\n}\n\nfunction createCipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createCipheriv = createCipheriv\nexports.createCipher = createCipher\n","import '../../style/base.css';\nimport '../../overlay/index.css';\nimport '../../info/index.css';\nimport '../../icon/index.css';\nimport '../index.css';","'use strict';\n\n// Helper\nfunction reverse(map) {\n const res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n const value = map[key];\n res[value] = key;\n });\n\n return res;\n}\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = reverse(exports.tagClass);\n\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = reverse(exports.tag);\n","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","var Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (thing, encoding, name) {\n if (Buffer.isBuffer(thing)) {\n return thing\n } else if (typeof thing === 'string') {\n return Buffer.from(thing, encoding)\n } else if (ArrayBuffer.isView(thing)) {\n return Buffer.from(thing.buffer)\n } else {\n throw new TypeError(name + ' must be a string, a Buffer, a typed array or a DataView')\n }\n}\n","module.exports = __webpack_public_path__ + \"img/bg_comments.0387df04.png\";","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","'use strict';\n\nconst inherits = require('inherits');\nconst Buffer = require('safer-buffer').Buffer;\n\nconst DERDecoder = require('./der');\n\nfunction PEMDecoder(entity) {\n DERDecoder.call(this, entity);\n this.enc = 'pem';\n}\ninherits(PEMDecoder, DERDecoder);\nmodule.exports = PEMDecoder;\n\nPEMDecoder.prototype.decode = function decode(data, options) {\n const lines = data.toString().split(/[\\r\\n]+/g);\n\n const label = options.label.toUpperCase();\n\n const re = /^-----(BEGIN|END) ([^-]+)-----$/;\n let start = -1;\n let end = -1;\n for (let i = 0; i < lines.length; i++) {\n const match = lines[i].match(re);\n if (match === null)\n continue;\n\n if (match[2] !== label)\n continue;\n\n if (start === -1) {\n if (match[1] !== 'BEGIN')\n break;\n start = i;\n } else {\n if (match[1] !== 'END')\n break;\n end = i;\n break;\n }\n }\n if (start === -1 || end === -1)\n throw new Error('PEM section not found for: ' + label);\n\n const base64 = lines.slice(start + 1, end).join('');\n // Remove excessive symbols\n base64.replace(/[^a-z0-9+/=]+/gi, '');\n\n const input = Buffer.from(base64, 'base64');\n return DERDecoder.prototype.decode.call(this, input, options);\n};\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};","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","'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","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n var curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","var DES = require('browserify-des')\nvar aes = require('browserify-aes/browser')\nvar aesModes = require('browserify-aes/modes')\nvar desModes = require('browserify-des/modes')\nvar ebtk = require('evp_bytestokey')\n\nfunction createCipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createDecipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createCipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createCipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction createDecipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction getCiphers () {\n return Object.keys(desModes).concat(aes.getCiphers())\n}\n\nexports.createCipher = exports.Cipher = createCipher\nexports.createCipheriv = exports.Cipheriv = createCipheriv\nexports.createDecipher = exports.Decipher = createDecipher\nexports.createDecipheriv = exports.Decipheriv = createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","'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}();","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer\nvar BN = require('bn.js')\nvar EC = require('elliptic').ec\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction verify (sig, hash, key, signType, tag) {\n var pub = parseKeys(key)\n if (pub.type === 'ec') {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n return ecVerify(sig, hash, pub)\n } else if (pub.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong public key type')\n return dsaVerify(sig, hash, pub)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = pub.modulus.byteLength()\n var pad = [1]\n var padNum = 0\n while (hash.length + pad.length + 2 < len) {\n pad.push(0xff)\n padNum++\n }\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) {\n pad.push(hash[i])\n }\n pad = Buffer.from(pad)\n var red = BN.mont(pub.modulus)\n sig = new BN(sig).toRed(red)\n\n sig = sig.redPow(new BN(pub.publicExponent))\n sig = Buffer.from(sig.fromRed().toArray())\n var out = padNum < 8 ? 1 : 0\n len = Math.min(sig.length, pad.length)\n if (sig.length !== pad.length) out = 1\n\n i = -1\n while (++i < len) out |= sig[i] ^ pad[i]\n return out === 0\n}\n\nfunction ecVerify (sig, hash, pub) {\n var curveId = curves[pub.data.algorithm.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.'))\n\n var curve = new EC(curveId)\n var pubkey = pub.data.subjectPrivateKey.data\n\n return curve.verify(hash, sig, pubkey)\n}\n\nfunction dsaVerify (sig, hash, pub) {\n var p = pub.data.p\n var q = pub.data.q\n var g = pub.data.g\n var y = pub.data.pub_key\n var unpacked = parseKeys.signature.decode(sig, 'der')\n var s = unpacked.s\n var r = unpacked.r\n checkValue(s, q)\n checkValue(r, q)\n var montp = BN.mont(p)\n var w = s.invm(q)\n var v = g.toRed(montp)\n .redPow(new BN(hash).mul(w).mod(q))\n .fromRed()\n .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())\n .mod(p)\n .mod(q)\n return v.cmp(r) === 0\n}\n\nfunction checkValue (b, q) {\n if (b.cmpn(0) <= 0) throw new Error('invalid sig')\n if (b.cmp(q) >= q) throw new Error('invalid sig')\n}\n\nmodule.exports = verify\n","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommentInput.vue?vue&type=style&index=0&id=92f7e458&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"comment-list\"},[(_vm.commentCount && _vm.videoType !== 'shrink')?[_c('div',{staticClass:\"page-header\"},[_c('div',{staticClass:\"S8 T1 font-bold\"},[_vm._v(\" \"+_vm._s('评论 (' + _vm.commentsInfo.commentsCount + ')')+\" \")])]),_c('div',{staticClass:\"item-line L2\"})]:_vm._e(),(_vm.comments.length == 0)?_c('div',{staticClass:\"nodata-container\"},[_c('img',{attrs:{\"src\":require(\"../../static/bg_comments.png\"),\"alt\":\"\"}}),_c('div',{staticClass:\"S6 T3\"},[_vm._v(\"暂无评论\")])]):_vm._l((_vm.comments),function(item){return _c('div',{key:item.id,staticClass:\"list-container\"},[_c(_vm.getComponent,{tag:\"component\",attrs:{\"item\":item,\"showReplyCount\":true},on:{\"onReplyEvent\":function($event){return _vm.onReplyEvent(item)},\"onDeleteEvent\":function($event){return _vm.onDeleteEvent(item)},\"onShowAllEvent\":_vm.onShowAllEvent}})],1)}),(_vm.showPopup)?_c('comment-input-popup',{attrs:{\"commentsInfo\":_vm.commentsInfo,\"hasPermission\":_vm.hasPermission,\"id\":_vm.id,\"showPopup\":_vm.showPopup,\"isFavored\":_vm.isFavored},on:{\"onCommitEvent\":_vm.onCommitEvent}}):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"item-container iflex\"},[_c('div',{staticClass:\"avatar-container\"},[_c('img',{staticClass:\"item-avatar\",attrs:{\"src\":_vm.item.avatar}}),(_vm.item.isAuthor)?_c('img',{staticClass:\"icon_header_v\",attrs:{\"src\":require(\"@/static/ic_v_log.png\")}}):_vm._e()]),_c('div',{staticClass:\"right-continer iflex\"},[_c('div',{staticClass:\"S8 T1 title-container iflex\"},[_vm._v(\" \"+_vm._s(_vm.item.nickname)+\" \"),(_vm.showOwner)?_c('span',{staticClass:\"item-owner C5 S2 B_C6\"},[_vm._v(\" 楼主 \")]):_vm._e()]),_c('div',{staticClass:\"S8 item-comment\",class:_vm.item.isAuthor ? 'C9' : 'T1'},[_vm._v(\" \"+_vm._s(_vm.item.content)+\" \"),(_vm.item.parentComent)?_c('span',[_c('span',{staticClass:\"T1\"},[_vm._v(\" // \")]),_c('span',{staticClass:\"C5\"},[_vm._v(_vm._s('@' + _vm.item.parentComent.nickname + ':'))]),_c('span',{class:_vm.item.parentComent.isAuthor ? 'C9' : 'T1'},[_vm._v(_vm._s(_vm.item.parentComent.content))])]):_vm._e()]),_c('div',{staticClass:\"timer-container iflex\",on:{\"click\":function($event){return _vm.onReplyEvent(_vm.item)}}},[_c('div',{staticClass:\"S4 T3\"},[_vm._v(\" \"+_vm._s(_vm.item.createTime)+\" \")]),_c('div',{staticClass:\"item-replay iflex S4 T1\"},[_vm._v(\" 回复 \")])]),(_vm.canDelete)?_c('div',{staticClass:\"delete-container iflex\",on:{\"click\":function($event){$event.stopPropagation();return _vm.onDeleteEvent(_vm.item)}}},[_c('div',{staticClass:\"btn-delete S2 T1\"},[_vm._v(\"删除\")])]):_vm._e(),(_vm.showReplyCount && _vm.item.replyCount > 0)?_c('div',{staticClass:\"reply-container T3 relative\",on:{\"click\":function($event){return _vm.onReplyEvent(_vm.item, true)}}},[_vm._l((_vm.item.subComments),function(subComment,index){return _c('div',{key:index,staticClass:\"reply-item T6 S7\"},[_c('span',{staticClass:\"T3 left\"},[_vm._v(_vm._s(subComment.nickname)+\":\")]),_vm._v(_vm._s(subComment.content)+\" \")])}),(_vm.item.replyCount > 2)?_c('div',{staticClass:\"S4 C5\"},[_vm._v(\" 查看全部\"+_vm._s(_vm.item.replyCount)+\"条回复 \")]):_vm._e()],2):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShrinkCommentItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShrinkCommentItem.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ShrinkCommentItem.vue?vue&type=template&id=b210533c&scoped=true&\"\nimport script from \"./ShrinkCommentItem.vue?vue&type=script&lang=js&\"\nexport * from \"./ShrinkCommentItem.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ShrinkCommentItem.vue?vue&type=style&index=0&id=b210533c&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b210533c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('van-popup',{staticClass:\"input-popup\",attrs:{\"overlay-class\":\"my-popup\",\"position\":\"bottom\",\"get-container\":\"#app\",\"close-on-click-overlay\":false},model:{value:(_vm.showPopup),callback:function ($$v) {_vm.showPopup=$$v},expression:\"showPopup\"}},[_c('comment-input',{ref:\"detail-input\",attrs:{\"commentsInfo\":_vm.commentsInfo,\"id\":_vm.id,\"isFavored\":_vm.isFavored},on:{\"onCommitEvent\":_vm.onCommitEvent,\"onFocusEvent\":_vm.onFocusEvent,\"onBlurEvent\":_vm.onBlurEvent}}),(_vm.showAd)?_c('ad-tip'):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommentInputPopup.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommentInputPopup.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CommentInputPopup.vue?vue&type=template&id=37721ec4&\"\nimport script from \"./CommentInputPopup.vue?vue&type=script&lang=js&\"\nexport * from \"./CommentInputPopup.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CommentInputPopup.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Comment.vue?vue&type=template&id=243b6126&scoped=true&\"\nimport script from \"./Comment.vue?vue&type=script&lang=js&\"\nexport * from \"./Comment.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Comment.vue?vue&type=style&index=0&id=243b6126&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"243b6126\",\n null\n \n)\n\nexport default component.exports","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","'use strict';\n\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","var defaultEncoding\n/* istanbul ignore next */\nif (process.browser) {\n defaultEncoding = 'utf-8'\n} else if (process.version) {\n var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10)\n\n defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary'\n} else {\n defaultEncoding = 'utf-8'\n}\nmodule.exports = defaultEncoding\n","exports.pbkdf2 = require('./lib/async')\nexports.pbkdf2Sync = require('./lib/sync')\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n h = g\n g = f\n f = e\n e = (d + T1) | 0\n d = c\n c = b\n b = a\n a = (T1 + T2) | 0\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, 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 // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this._strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n var z = 0;\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n var b;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n b = c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n\n r |= b;\n z |= b;\n }\n\n assert(!(z & 0xf0), 'Invalid character in ' + str);\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","function isWindow(val) {\n return val === window;\n} // get nearest scroll element\n// https://github.com/youzan/vant/issues/3823\n\n\nvar overflowScrollReg = /scroll|auto/i;\nexport function getScroller(el, root) {\n if (root === void 0) {\n root = window;\n }\n\n var node = el;\n\n while (node && node.tagName !== 'HTML' && node.tagName !== 'BODY' && node.nodeType === 1 && node !== root) {\n var _window$getComputedSt = window.getComputedStyle(node),\n overflowY = _window$getComputedSt.overflowY;\n\n if (overflowScrollReg.test(overflowY)) {\n return node;\n }\n\n node = node.parentNode;\n }\n\n return root;\n}\nexport function getScrollTop(el) {\n var top = 'scrollTop' in el ? el.scrollTop : el.pageYOffset; // iOS scroll bounce cause minus scrollTop\n\n return Math.max(top, 0);\n}\nexport function setScrollTop(el, value) {\n if ('scrollTop' in el) {\n el.scrollTop = value;\n } else {\n el.scrollTo(el.scrollX, value);\n }\n}\nexport function getRootScrollTop() {\n return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n}\nexport function setRootScrollTop(value) {\n setScrollTop(window, value);\n setScrollTop(document.body, value);\n} // get distance from element top to page top or scroller top\n\nexport function getElementTop(el, scroller) {\n if (isWindow(el)) {\n return 0;\n }\n\n var scrollTop = scroller ? getScrollTop(scroller) : getRootScrollTop();\n return el.getBoundingClientRect().top + scrollTop;\n}\nexport function getVisibleHeight(el) {\n if (isWindow(el)) {\n return el.innerHeight;\n }\n\n return el.getBoundingClientRect().height;\n}\nexport function getVisibleTop(el) {\n if (isWindow(el)) {\n return 0;\n }\n\n return el.getBoundingClientRect().top;\n}","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","var BN = require('bn.js')\nvar randomBytes = require('randombytes')\n\nfunction blind (priv) {\n var r = getr(priv)\n var blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed()\n return { blinder: blinder, unblinder: r.invm(priv.modulus) }\n}\n\nfunction getr (priv) {\n var len = priv.modulus.byteLength()\n var r\n do {\n r = new BN(randomBytes(len))\n } while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2))\n return r\n}\n\nfunction crt (msg, priv) {\n var blinds = blind(priv)\n var len = priv.modulus.byteLength()\n var blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus)\n var c1 = blinded.toRed(BN.mont(priv.prime1))\n var c2 = blinded.toRed(BN.mont(priv.prime2))\n var qinv = priv.coefficient\n var p = priv.prime1\n var q = priv.prime2\n var m1 = c1.redPow(priv.exponent1).fromRed()\n var m2 = c2.redPow(priv.exponent2).fromRed()\n var h = m1.isub(m2).imul(qinv).umod(p).imul(q)\n return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len)\n}\ncrt.getr = getr\n\nmodule.exports = crt\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\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;","var parseKeys = require('parse-asn1')\nvar randomBytes = require('randombytes')\nvar createHash = require('create-hash')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar withPublic = require('./withPublic')\nvar crt = require('browserify-rsa')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function publicEncrypt (publicKey, msg, reverse) {\n var padding\n if (publicKey.padding) {\n padding = publicKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n var key = parseKeys(publicKey)\n var paddedMsg\n if (padding === 4) {\n paddedMsg = oaep(key, msg)\n } else if (padding === 1) {\n paddedMsg = pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n paddedMsg = new BN(msg)\n if (paddedMsg.cmp(key.modulus) >= 0) {\n throw new Error('data too long for modulus')\n }\n } else {\n throw new Error('unknown padding')\n }\n if (reverse) {\n return crt(paddedMsg, key)\n } else {\n return withPublic(paddedMsg, key)\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var mLen = msg.length\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n var hLen2 = 2 * hLen\n if (mLen > k - hLen2 - 2) {\n throw new Error('message too long')\n }\n var ps = Buffer.alloc(k - mLen - hLen2 - 2)\n var dblen = k - hLen - 1\n var seed = randomBytes(hLen)\n var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen))\n var maskedSeed = xor(seed, mgf(maskedDb, hLen))\n return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k))\n}\nfunction pkcs1 (key, msg, reverse) {\n var mLen = msg.length\n var k = key.modulus.byteLength()\n if (mLen > k - 11) {\n throw new Error('message too long')\n }\n var ps\n if (reverse) {\n ps = Buffer.alloc(k - mLen - 3, 0xff)\n } else {\n ps = nonZero(k - mLen - 3)\n }\n return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k))\n}\nfunction nonZero (len) {\n var out = Buffer.allocUnsafe(len)\n var i = 0\n var cache = randomBytes(len * 2)\n var cur = 0\n var num\n while (i < len) {\n if (cur === cache.length) {\n cache = randomBytes(len * 2)\n cur = 0\n }\n num = cache[cur++]\n if (num) {\n out[i++] = num\n }\n }\n return out\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","var Buffer = require('safe-buffer').Buffer\nvar MD5 = require('md5.js')\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n }\n\n var keyLen = keyBits / 8\n var key = Buffer.alloc(keyLen)\n var iv = Buffer.alloc(ivLen || 0)\n var tmp = Buffer.alloc(0)\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5()\n hash.update(tmp)\n hash.update(password)\n if (salt) hash.update(salt)\n tmp = hash.digest()\n\n var used = 0\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen\n used = Math.min(keyLen, tmp.length)\n tmp.copy(key, keyStart, 0, used)\n keyLen -= used\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen\n var length = Math.min(ivLen, tmp.length - used)\n tmp.copy(iv, ivStart, used, used + length)\n ivLen -= length\n }\n }\n\n tmp.fill(0)\n return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","// color\nexport var RED = '#ee0a24'; // border\n\nexport var BORDER = 'van-hairline';\nexport var BORDER_TOP = BORDER + \"--top\";\nexport var BORDER_LEFT = BORDER + \"--left\";\nexport var BORDER_BOTTOM = BORDER + \"--bottom\";\nexport var BORDER_SURROUND = BORDER + \"--surround\";\nexport var BORDER_TOP_BOTTOM = BORDER + \"--top-bottom\";\nexport var BORDER_UNSET_TOP_BOTTOM = BORDER + \"-unset--top-bottom\";","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","import Vue from 'vue'\r\n\r\nexport const state = Vue.observable({ appInfoResp: Object })\r\n\r\n\r\nexport function requestappInfo(callBack) {\r\n window.clientInfoCallback = (info) => {\r\n if (typeof info === 'string') {\r\n info = JSON.parse(info)\r\n }\r\n state.appInfoResp = info\r\n if(callBack){\r\n callBack(info)\r\n }\r\n }\r\n if (window.goods) {\r\n window.goods.getClientInfo(`clientInfoCallback`)\r\n }\r\n}\r\n\r\nexport function isIOS() {\r\n return state.appInfoResp.platform === 'ios'\r\n}\r\nexport function isAndroid() {\r\n return state.appInfoResp.platform === 'android'\r\n}\r\n\r\nexport function getStatusHeight() {\r\n if (state.appInfoResp.platform === 'ios') {\r\n return state.appInfoResp.statusBarHeight\r\n }\r\n return document.documentElement.clientHeight * state.appInfoResp.statusBarHeight / state.appInfoResp.screenHeight\r\n}\r\n\r\nexport function getAppInfo() {\r\n return state.appInfoResp\r\n}\r\n\r\nexport function titleStatusBarHeight() {\r\n return state.appInfoResp.statusBarHeight + state.appInfoResp.titleBarHeight\r\n}\r\n\r\n// const TYPE_NONE = -1\r\n// const TYPE_PHONE = 2\r\nconst TYPE_GUEST = 4\r\n\r\nexport function isGuest() {\r\n if (!state.appInfoResp.loginType || parseInt(state.appInfoResp.loginType) === TYPE_GUEST) {\r\n return true\r\n }\r\n return false\r\n}\r\n\r\n\r\nexport default state","'use strict'\nvar Buffer = require('buffer').Buffer\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\n\nvar ARRAY16 = new Array(16)\n\nvar zl = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n]\n\nvar zr = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n]\n\nvar sl = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n]\n\nvar sr = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n]\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]\n\nfunction RIPEMD160 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n}\n\ninherits(RIPEMD160, HashBase)\n\nRIPEMD160.prototype._update = function () {\n var words = ARRAY16\n for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4)\n\n var al = this._a | 0\n var bl = this._b | 0\n var cl = this._c | 0\n var dl = this._d | 0\n var el = this._e | 0\n\n var ar = this._a | 0\n var br = this._b | 0\n var cr = this._c | 0\n var dr = this._d | 0\n var er = this._e | 0\n\n // computation\n for (var i = 0; i < 80; i += 1) {\n var tl\n var tr\n if (i < 16) {\n tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])\n tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])\n } else if (i < 32) {\n tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])\n tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])\n } else if (i < 48) {\n tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])\n tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])\n } else if (i < 64) {\n tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])\n tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])\n } else { // if (i<80) {\n tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])\n tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i])\n }\n\n al = el\n el = dl\n dl = rotl(cl, 10)\n cl = bl\n bl = tl\n\n ar = er\n er = dr\n dr = rotl(cr, 10)\n cr = br\n br = tr\n }\n\n // update state\n var t = (this._b + cl + dr) | 0\n this._b = (this._c + dl + er) | 0\n this._c = (this._d + el + ar) | 0\n this._d = (this._e + al + br) | 0\n this._e = (this._a + bl + cr) | 0\n this._a = t\n}\n\nRIPEMD160.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n buffer.writeInt32LE(this._e, 16)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fn1 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn2 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn3 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn4 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn5 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0\n}\n\nmodule.exports = RIPEMD160\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.vue?vue&type=style&index=0&id=243b6126&scoped=true&lang=css&\"","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _mergeJSXProps from \"@vue/babel-helper-vue-jsx-merge-props\";\n// Utils\nimport { createNamespace } from '../utils';\nimport { emit, inherit } from '../utils/functional';\nimport { BORDER_SURROUND } from '../utils/constant';\nimport { routeProps, functionalRoute } from '../utils/router'; // Components\n\nimport Icon from '../icon';\nimport Loading from '../loading'; // Types\n\nvar _createNamespace = createNamespace('button'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nfunction Button(h, props, slots, ctx) {\n var _ref;\n\n var tag = props.tag,\n icon = props.icon,\n type = props.type,\n color = props.color,\n plain = props.plain,\n disabled = props.disabled,\n loading = props.loading,\n hairline = props.hairline,\n loadingText = props.loadingText,\n iconPosition = props.iconPosition;\n var style = {};\n\n if (color) {\n style.color = plain ? color : 'white';\n\n if (!plain) {\n // Use background instead of backgroundColor to make linear-gradient work\n style.background = color;\n } // hide border when color is linear-gradient\n\n\n if (color.indexOf('gradient') !== -1) {\n style.border = 0;\n } else {\n style.borderColor = color;\n }\n }\n\n function onClick(event) {\n if (!loading && !disabled) {\n emit(ctx, 'click', event);\n functionalRoute(ctx);\n }\n }\n\n function onTouchstart(event) {\n emit(ctx, 'touchstart', event);\n }\n\n var classes = [bem([type, props.size, {\n plain: plain,\n loading: loading,\n disabled: disabled,\n hairline: hairline,\n block: props.block,\n round: props.round,\n square: props.square\n }]), (_ref = {}, _ref[BORDER_SURROUND] = hairline, _ref)];\n\n function renderIcon() {\n if (loading) {\n return slots.loading ? slots.loading() : h(Loading, {\n \"class\": bem('loading'),\n \"attrs\": {\n \"size\": props.loadingSize,\n \"type\": props.loadingType,\n \"color\": \"currentColor\"\n }\n });\n }\n\n if (icon) {\n return h(Icon, {\n \"attrs\": {\n \"name\": icon,\n \"classPrefix\": props.iconPrefix\n },\n \"class\": bem('icon')\n });\n }\n }\n\n function renderContent() {\n var content = [];\n\n if (iconPosition === 'left') {\n content.push(renderIcon());\n }\n\n var text;\n\n if (loading) {\n text = loadingText;\n } else {\n text = slots.default ? slots.default() : props.text;\n }\n\n if (text) {\n content.push(h(\"span\", {\n \"class\": bem('text')\n }, [text]));\n }\n\n if (iconPosition === 'right') {\n content.push(renderIcon());\n }\n\n return content;\n }\n\n return h(tag, _mergeJSXProps([{\n \"style\": style,\n \"class\": classes,\n \"attrs\": {\n \"type\": props.nativeType,\n \"disabled\": disabled\n },\n \"on\": {\n \"click\": onClick,\n \"touchstart\": onTouchstart\n }\n }, inherit(ctx)]), [h(\"div\", {\n \"class\": bem('content')\n }, [renderContent()])]);\n}\n\nButton.props = _extends({}, routeProps, {\n text: String,\n icon: String,\n color: String,\n block: Boolean,\n plain: Boolean,\n round: Boolean,\n square: Boolean,\n loading: Boolean,\n hairline: Boolean,\n disabled: Boolean,\n iconPrefix: String,\n nativeType: String,\n loadingText: String,\n loadingType: String,\n tag: {\n type: String,\n default: 'button'\n },\n type: {\n type: String,\n default: 'default'\n },\n size: {\n type: String,\n default: 'normal'\n },\n loadingSize: {\n type: String,\n default: '20px'\n },\n iconPosition: {\n type: String,\n default: 'left'\n }\n});\nexport default createComponent(Button);","var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n","var Buffer = require('safe-buffer').Buffer\nvar createHash = require('create-hash')\nvar stream = require('readable-stream')\nvar inherits = require('inherits')\nvar sign = require('./sign')\nvar verify = require('./verify')\n\nvar algorithms = require('./algorithms.json')\nObject.keys(algorithms).forEach(function (key) {\n algorithms[key].id = Buffer.from(algorithms[key].id, 'hex')\n algorithms[key.toLowerCase()] = algorithms[key]\n})\n\nfunction Sign (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hashType = data.hash\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Sign, stream.Writable)\n\nSign.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nSign.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nSign.prototype.sign = function signMethod (key, enc) {\n this.end()\n var hash = this._hash.digest()\n var sig = sign(hash, key, this._hashType, this._signType, this._tag)\n\n return enc ? sig.toString(enc) : sig\n}\n\nfunction Verify (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Verify, stream.Writable)\n\nVerify.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nVerify.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nVerify.prototype.verify = function verifyMethod (key, sig, enc) {\n if (typeof sig === 'string') sig = Buffer.from(sig, enc)\n\n this.end()\n var hash = this._hash.digest()\n return verify(sig, hash, key, this._signType, this._tag)\n}\n\nfunction createSign (algorithm) {\n return new Sign(algorithm)\n}\n\nfunction createVerify (algorithm) {\n return new Verify(algorithm)\n}\n\nmodule.exports = {\n Sign: createSign,\n Verify: createVerify,\n createSign: createSign,\n createVerify: createVerify\n}\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","var inherits = require('inherits')\nvar SHA512 = require('./sha512')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(160)\n\nfunction Sha384 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha384, SHA512)\n\nSha384.prototype.init = function () {\n this._ah = 0xcbbb9d5d\n this._bh = 0x629a292a\n this._ch = 0x9159015a\n this._dh = 0x152fecd8\n this._eh = 0x67332667\n this._fh = 0x8eb44a87\n this._gh = 0xdb0c2e0d\n this._hh = 0x47b5481d\n\n this._al = 0xc1059ed8\n this._bl = 0x367cd507\n this._cl = 0x3070dd17\n this._dl = 0xf70e5939\n this._el = 0xffc00b31\n this._fl = 0x68581511\n this._gl = 0x64f98fa7\n this._hl = 0xbefa4fa4\n\n return this\n}\n\nSha384.prototype._hash = function () {\n var H = Buffer.allocUnsafe(48)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n\n return H\n}\n\nmodule.exports = Sha384\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(curves.hasOwnProperty(options), 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray()\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n do {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n } while (true);\n};\n\nEC.prototype._truncateToN = function truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8'\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; true; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n\n if (!this.curve._maxwellTrick) {\n var p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n var p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\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};","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, 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 // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n Buffer = require('buffer').Buffer;\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this._strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex (str, start, end) {\n var r = 0;\n var len = Math.min(str.length, end);\n var z = 0;\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r <<= 4;\n\n var b;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n b = c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n\n r |= b;\n z |= b;\n }\n\n assert(!(z & 0xf0), 'Invalid character in ' + str);\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n }\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","import http from \"@/api/http\";\r\n\r\nconst state = {\r\n viewPointResp: Object,\r\n RelatesResp: Object\r\n}\r\n\r\nconst mutations = {\r\n setviewPointResp: (state, resp) => {\r\n state.viewPointResp = resp\r\n },\r\n relatesResp: (state, resp) => {\r\n state.RelatesResp = resp\r\n },\r\n}\r\n\r\nconst actions = {\r\n requestviewPoint({ commit }, params) {\r\n let url = '/DianJin/api/detail'\r\n return http.post(url, params).then(res => {\r\n commit('setviewPointResp', res)\r\n })\r\n },\r\n requestRelates({ commit }, params) {\r\n let url = '/DianJin/Api/Relates'\r\n return http.post(url, params).then(res => {\r\n commit('relatesResp', res)\r\n })\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions\r\n}","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","var xor = require('buffer-xor')\n\nexports.encrypt = function (self, block) {\n var data = xor(block, self._prev)\n\n self._prev = self._cipher.encryptBlock(data)\n return self._prev\n}\n\nexports.decrypt = function (self, block) {\n var pad = self._prev\n\n self._prev = block\n var out = self._cipher.decryptBlock(block)\n\n return xor(out, pad)\n}\n","import axios from 'axios'\r\nimport config from './config'\r\nimport comm from '@/comm'\r\nimport md5 from 'js-md5'\r\nimport uuid from 'node-uuid'\r\nconst HtmlApiKey = 'ykt.html'\r\nconst HtmlSecret = 'no.secret'\r\n\r\nconst service = axios.create({\r\n baseURL: config.baseUrl,\r\n timeout: 3 * 1000\r\n})\r\n\r\nservice.interceptors.request.use(\r\n config => {\r\n config.data = JSON.stringify(config.data)\r\n const signValue = {\r\n 'Emapp-ApiKey': HtmlApiKey,\r\n 'Emapp-Timestamp': new Date().valueOf(),\r\n 'Emapp-Nonce': uuid.v1()\r\n }\r\n\r\n const signStr = `${signValue['Emapp-Nonce']}${signValue['Emapp-Timestamp']}${HtmlSecret}`\r\n signValue['Emapp-Sign'] = md5(signStr).toLowerCase()\r\n\r\n config.headers = {\r\n ...signValue,\r\n 'Content-Type': 'application/json'\r\n }\r\n\r\n const token = comm.getQueryString('token')\r\n if (token) {\r\n config.headers['Ykt-Token'] = token\r\n }\r\n\r\n return config\r\n },\r\n error => {\r\n Promise.reject(error)\r\n }\r\n)\r\n\r\nservice.interceptors.response.use(\r\n response => {\r\n console.log(\r\n '=====url',\r\n response.config.url,\r\n '\\n=====response',\r\n response.data\r\n )\r\n if (response.status == 200) {\r\n return response.data\r\n }\r\n return Promise.resolve(response.statusText)\r\n },\r\n error => {\r\n if (error && error.response) {\r\n switch (error.response.status) {\r\n case 400:\r\n error.message = '错误请求'\r\n break\r\n case 401:\r\n error.message = '未授权,请重新登录'\r\n break\r\n case 403:\r\n error.message = '拒绝访问'\r\n break\r\n case 404:\r\n error.message = '请求错误,未找到该资源'\r\n break\r\n case 405:\r\n error.message = '请求方法未允许'\r\n break\r\n case 408:\r\n error.message = '请求超时'\r\n break\r\n case 500:\r\n error.message = '服务器端出错'\r\n break\r\n case 501:\r\n error.message = '网络未实现'\r\n break\r\n case 502:\r\n error.message = '网络错误'\r\n break\r\n case 503:\r\n error.message = '服务不可用'\r\n break\r\n case 504:\r\n error.message = '网络超时'\r\n break\r\n case 505:\r\n error.message = 'http版本不支持该请求'\r\n break\r\n default:\r\n error.message = `连接错误${error.response.status}`\r\n }\r\n } else {\r\n // if (JSON.stringify(error).includes('timeout')) {\r\n //\r\n // }\r\n error.message('连接服务器失败')\r\n }\r\n return Promise.resolve(error.response)\r\n }\r\n)\r\n\r\nexport default service\r\n","import request from './service'\r\n\r\nclass Http {\r\n get(url, params) {\r\n const config = {\r\n method: 'get',\r\n url: url\r\n }\r\n if (params) config.params = params\r\n return request(config)\r\n }\r\n\r\n post(url, params) {\r\n const config = {\r\n method: 'post',\r\n url: url\r\n }\r\n if (params) config.data = params\r\n return request(config)\r\n }\r\n\r\n put(url, params) {\r\n const config = {\r\n method: 'put',\r\n url: url\r\n }\r\n if (params) config.params = params\r\n return request(config)\r\n }\r\n\r\n delete(url, params) {\r\n const config = {\r\n method: 'delete',\r\n url: url\r\n }\r\n if (params) config.params = params\r\n return request(config)\r\n }\r\n}\r\n\r\nexport default new Http()","module.exports = require('./readable').PassThrough\n","import '../../style/base.css';\nimport '../../info/index.css';\nimport '../index.css';","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","/* eslint-disable node/no-deprecated-api */\n\n'use strict'\n\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\nvar safer = {}\n\nvar key\n\nfor (key in buffer) {\n if (!buffer.hasOwnProperty(key)) continue\n if (key === 'SlowBuffer' || key === 'Buffer') continue\n safer[key] = buffer[key]\n}\n\nvar Safer = safer.Buffer = {}\nfor (key in Buffer) {\n if (!Buffer.hasOwnProperty(key)) continue\n if (key === 'allocUnsafe' || key === 'allocUnsafeSlow') continue\n Safer[key] = Buffer[key]\n}\n\nsafer.Buffer.prototype = Buffer.prototype\n\nif (!Safer.from || Safer.from === Uint8Array.from) {\n Safer.from = function (value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('The \"value\" argument must not be of type number. Received type ' + typeof value)\n }\n if (value && typeof value.length === 'undefined') {\n throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof value)\n }\n return Buffer(value, encodingOrOffset, length)\n }\n}\n\nif (!Safer.alloc) {\n Safer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('The \"size\" argument must be of type number. Received type ' + typeof size)\n }\n if (size < 0 || size >= 2 * (1 << 30)) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n var buf = Buffer(size)\n if (!fill || fill.length === 0) {\n buf.fill(0)\n } else if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n return buf\n }\n}\n\nif (!safer.kStringMaxLength) {\n try {\n safer.kStringMaxLength = process.binding('buffer').kStringMaxLength\n } catch (e) {\n // we can't determine kStringMaxLength in environments where process.binding\n // is unsupported, so let's not set it\n }\n}\n\nif (!safer.constants) {\n safer.constants = {\n MAX_LENGTH: safer.kMaxLength\n }\n if (safer.kStringMaxLength) {\n safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength\n }\n}\n\nmodule.exports = safer\n","var map = {\n\t\"./comment.js\": \"f07f\",\n\t\"./follow.js\": \"d76a\",\n\t\"./video.js\": \"1c11\",\n\t\"./viewPointDetail.js\": \"bb64\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"c653\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAeCAYAAAA/xX6fAAABS2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+IEmuOgAAAYdJREFUSIm91r1PFEEcxvHPATZKi7H1QuyIsaAggYTGwkBiTSAkBgyWvFWIlS0VlRG1IPwDojQ0FJdoQUFvqGiA0AINECjmNln3vGNffZLN7jy7v/lmJjPPTq1eryugCYziJ36kKegpAHuDb83ntxjGr/uKunLC6liPtWt4kaYwD7AbW+iNeedSTmke4AqGEt4ijqoADuJDwtvGRtoOsgAfClP5IOadYjZDH5mAa3gWa982YWdVAMfwLuF9FvZfJqUB9uGLsPQj/cFSVlha4AaexNrXmMJFFcAZvE54H7GfBwa1DlnajwN/b/DfGMFNXmC7EXZjU2uaTBeBdQK+15om8zgsAmsHHMRqwvuOr0Vh/wI+0pomJ8LvpxQlgaWkSVrgOOYS7z9hpyxYEriuNU2Wy4TFgQN4GvOvhDS5rAo4FvNusKBAmnRSdIgab96PMYm9KmCEET4WNvkunlcJi4AvhXPKKyUu/3bqEVLkvGpQpK7/CYuAkRpCslR5NfKevPOqdv8nJesO1XVU9s9hd2UAAAAASUVORK5CYII=\"","// 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}","'use strict';\n\nconst inherits = require('inherits');\n\nconst bignum = require('bn.js');\nconst DecoderBuffer = require('../base/buffer').DecoderBuffer;\nconst Node = require('../base/node');\n\n// Import DER constants\nconst der = require('../constants/der');\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n}\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!DecoderBuffer.isDecoderBuffer(data)) {\n data = new DecoderBuffer(data, options);\n }\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\ninherits(DERNode, Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n const state = buffer.save();\n const decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n const decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n let len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n const state = buffer.save();\n const res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n for (;;) {\n const tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n const len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n let res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len);\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n const result = [];\n while (!buffer.isEmpty()) {\n const possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n const res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n const unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n const raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n let str = '';\n for (let i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n const numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n const printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n let result;\n const identifiers = [];\n let ident = 0;\n let subident = 0;\n while (!buffer.isEmpty()) {\n subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n const first = (identifiers[0] / 40) | 0;\n const second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n let tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n const str = buffer.raw().toString();\n\n let year;\n let mon;\n let day;\n let hour;\n let min;\n let sec;\n if (tag === 'gentime') {\n year = str.slice(0, 4) | 0;\n mon = str.slice(4, 6) | 0;\n day = str.slice(6, 8) | 0;\n hour = str.slice(8, 10) | 0;\n min = str.slice(10, 12) | 0;\n sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n year = str.slice(0, 2) | 0;\n mon = str.slice(2, 4) | 0;\n day = str.slice(4, 6) | 0;\n hour = str.slice(6, 8) | 0;\n min = str.slice(8, 10) | 0;\n sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull() {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n const res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n const raw = buffer.raw();\n let res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n let tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n const cls = der.tagClass[tag >> 6];\n const primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n let oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n const tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n let len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n const num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (let i = 0; i < num; i++) {\n len <<= 8;\n const j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","module.exports = require('./readable').Transform\n","'use strict';\n\nconst inherits = require('inherits');\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n const state = this._reporterState;\n\n return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n const state = this._reporterState;\n\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n const state = this._reporterState;\n\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n const state = this._reporterState;\n\n this.exitKey(index);\n if (state.obj !== null)\n state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n const state = this._reporterState;\n\n const prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n const state = this._reporterState;\n\n const now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n let err;\n const state = this._reporterState;\n\n const inherited = msg instanceof ReporterError;\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function(elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial)\n throw err;\n\n if (!inherited)\n state.errors.push(err);\n\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n const state = this._reporterState;\n if (!state.options.partial)\n return result;\n\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n}\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n return this;\n};\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAAzCAYAAAA6oTAqAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjY3N0YyMkQ2QjA4MjExRUE4NjU5QzNDNEFFQ0Y5NEZGIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjY3N0YyMkQ3QjA4MjExRUE4NjU5QzNDNEFFQ0Y5NEZGIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6Njc3RjIyRDRCMDgyMTFFQTg2NTlDM0M0QUVDRjk0RkYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6Njc3RjIyRDVCMDgyMTFFQTg2NTlDM0M0QUVDRjk0RkYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz57Tv7ZAAAHgUlEQVR42txa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\"","'use strict'\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar Base = require('cipher-base')\n\nvar ZEROS = Buffer.alloc(128)\nvar blocksize = 64\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n this._alg = alg\n this._key = key\n\n if (key.length > blocksize) {\n key = alg(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n this._hash = [ipad]\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.push(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._alg(Buffer.concat(this._hash))\n return this._alg(Buffer.concat([this._opad, h]))\n}\nmodule.exports = Hmac\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/readable.js');\nStream.Writable = require('readable-stream/writable.js');\nStream.Duplex = require('readable-stream/duplex.js');\nStream.Transform = require('readable-stream/transform.js');\nStream.PassThrough = require('readable-stream/passthrough.js');\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","import http from \"@/api/http\";\r\n\r\nconst state = {\r\n followResp: Object,\r\n}\r\n\r\nconst mutations = {\r\n setfollowResp: (state, resp) => {\r\n state.followResp = resp\r\n },\r\n}\r\n\r\nconst actions = {\r\n requestfollow({commit}, params) {\r\n let url = '/Account/User/Follow'\r\n return http.post(url, params).then(res => {\r\n commit('setfollowResp', res)\r\n })\r\n },\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions\r\n}","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","var md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar toBuffer = require('./to-buffer')\n\nvar ZEROS = Buffer.alloc(128)\nvar sizes = {\n md5: 16,\n sha1: 20,\n sha224: 28,\n sha256: 32,\n sha384: 48,\n sha512: 64,\n rmd160: 20,\n ripemd160: 20\n}\n\nfunction Hmac (alg, key, saltLen) {\n var hash = getDigest(alg)\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n if (key.length > blocksize) {\n key = hash(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = Buffer.allocUnsafe(blocksize + sizes[alg])\n var opad = Buffer.allocUnsafe(blocksize + sizes[alg])\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4)\n ipad.copy(ipad1, 0, 0, blocksize)\n this.ipad1 = ipad1\n this.ipad2 = ipad\n this.opad = opad\n this.alg = alg\n this.blocksize = blocksize\n this.hash = hash\n this.size = sizes[alg]\n}\n\nHmac.prototype.run = function (data, ipad) {\n data.copy(ipad, this.blocksize)\n var h = this.hash(ipad)\n h.copy(this.opad, this.blocksize)\n return this.hash(this.opad)\n}\n\nfunction getDigest (alg) {\n function shaFunc (data) {\n return sha(alg).update(data).digest()\n }\n function rmd160Func (data) {\n return new RIPEMD160().update(data).digest()\n }\n\n if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func\n if (alg === 'md5') return md5\n return shaFunc\n}\n\nfunction pbkdf2 (password, salt, iterations, keylen, digest) {\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n\n digest = digest || 'sha1'\n\n var hmac = new Hmac(digest, password, salt.length)\n\n var DK = Buffer.allocUnsafe(keylen)\n var block1 = Buffer.allocUnsafe(salt.length + 4)\n salt.copy(block1, 0, 0, salt.length)\n\n var destPos = 0\n var hLen = sizes[digest]\n var l = Math.ceil(keylen / hLen)\n\n for (var i = 1; i <= l; i++) {\n block1.writeUInt32BE(i, salt.length)\n\n var T = hmac.run(block1, hmac.ipad1)\n var U = T\n\n for (var j = 1; j < iterations; j++) {\n U = hmac.run(U, hmac.ipad2)\n for (var k = 0; k < hLen; k++) T[k] ^= U[k]\n }\n\n T.copy(DK, destPos)\n destPos += hLen\n }\n\n return DK\n}\n\nmodule.exports = pbkdf2\n","import '../../style/base.css';\nimport '../../overlay/index.css';\nimport '../../info/index.css';\nimport '../../icon/index.css';\nimport '../../popup/index.css';\nimport '../../loading/index.css';\nimport '../../button/index.css';\nimport '../../goods-action-button/index.css';\nimport '../../goods-action/index.css';\nimport '../index.css';","var elliptic = require('elliptic')\nvar BN = require('bn.js')\n\nmodule.exports = function createECDH (curve) {\n return new ECDH(curve)\n}\n\nvar aliases = {\n secp256k1: {\n name: 'secp256k1',\n byteLength: 32\n },\n secp224r1: {\n name: 'p224',\n byteLength: 28\n },\n prime256v1: {\n name: 'p256',\n byteLength: 32\n },\n prime192v1: {\n name: 'p192',\n byteLength: 24\n },\n ed25519: {\n name: 'ed25519',\n byteLength: 32\n },\n secp384r1: {\n name: 'p384',\n byteLength: 48\n },\n secp521r1: {\n name: 'p521',\n byteLength: 66\n }\n}\n\naliases.p224 = aliases.secp224r1\naliases.p256 = aliases.secp256r1 = aliases.prime256v1\naliases.p192 = aliases.secp192r1 = aliases.prime192v1\naliases.p384 = aliases.secp384r1\naliases.p521 = aliases.secp521r1\n\nfunction ECDH (curve) {\n this.curveType = aliases[curve]\n if (!this.curveType) {\n this.curveType = {\n name: curve\n }\n }\n this.curve = new elliptic.ec(this.curveType.name) // eslint-disable-line new-cap\n this.keys = void 0\n}\n\nECDH.prototype.generateKeys = function (enc, format) {\n this.keys = this.curve.genKeyPair()\n return this.getPublicKey(enc, format)\n}\n\nECDH.prototype.computeSecret = function (other, inenc, enc) {\n inenc = inenc || 'utf8'\n if (!Buffer.isBuffer(other)) {\n other = new Buffer(other, inenc)\n }\n var otherPub = this.curve.keyFromPublic(other).getPublic()\n var out = otherPub.mul(this.keys.getPrivate()).getX()\n return formatReturnValue(out, enc, this.curveType.byteLength)\n}\n\nECDH.prototype.getPublicKey = function (enc, format) {\n var key = this.keys.getPublic(format === 'compressed', true)\n if (format === 'hybrid') {\n if (key[key.length - 1] % 2) {\n key[0] = 7\n } else {\n key[0] = 6\n }\n }\n return formatReturnValue(key, enc)\n}\n\nECDH.prototype.getPrivateKey = function (enc) {\n return formatReturnValue(this.keys.getPrivate(), enc)\n}\n\nECDH.prototype.setPublicKey = function (pub, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc)\n }\n this.keys._importPublic(pub)\n return this\n}\n\nECDH.prototype.setPrivateKey = function (priv, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc)\n }\n\n var _priv = new BN(priv)\n _priv = _priv.toString(16)\n this.keys = this.curve.genKeyPair()\n this.keys._importPrivate(_priv)\n return this\n}\n\nfunction formatReturnValue (bn, enc, len) {\n if (!Array.isArray(bn)) {\n bn = bn.toArray()\n }\n var buf = new Buffer(bn)\n if (len && buf.length < len) {\n var zeros = new Buffer(len - buf.length)\n zeros.fill(0)\n buf = Buffer.concat([zeros, buf])\n }\n if (!enc) {\n return buf\n } else {\n return buf.toString(enc)\n }\n}\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","import { createNamespace, isDef } from '../utils';\nimport { PopupMixin } from '../mixins/popup';\nimport Icon from '../icon';\n\nvar _createNamespace = createNamespace('popup'),\n createComponent = _createNamespace[0],\n bem = _createNamespace[1];\n\nexport default createComponent({\n mixins: [PopupMixin()],\n props: {\n round: Boolean,\n duration: [Number, String],\n closeable: Boolean,\n transition: String,\n safeAreaInsetBottom: Boolean,\n closeIcon: {\n type: String,\n default: 'cross'\n },\n closeIconPosition: {\n type: String,\n default: 'top-right'\n },\n position: {\n type: String,\n default: 'center'\n },\n overlay: {\n type: Boolean,\n default: true\n },\n closeOnClickOverlay: {\n type: Boolean,\n default: true\n }\n },\n beforeCreate: function beforeCreate() {\n var _this = this;\n\n var createEmitter = function createEmitter(eventName) {\n return function (event) {\n return _this.$emit(eventName, event);\n };\n };\n\n this.onClick = createEmitter('click');\n this.onOpened = createEmitter('opened');\n this.onClosed = createEmitter('closed');\n },\n methods: {\n onClickCloseIcon: function onClickCloseIcon(event) {\n this.$emit('click-close-icon', event);\n this.close();\n }\n },\n render: function render() {\n var _bem;\n\n var h = arguments[0];\n\n if (!this.shouldRender) {\n return;\n }\n\n var round = this.round,\n position = this.position,\n duration = this.duration;\n var isCenter = position === 'center';\n var transitionName = this.transition || (isCenter ? 'van-fade' : \"van-popup-slide-\" + position);\n var style = {};\n\n if (isDef(duration)) {\n var key = isCenter ? 'animationDuration' : 'transitionDuration';\n style[key] = duration + \"s\";\n }\n\n return h(\"transition\", {\n \"attrs\": {\n \"appear\": this.transitionAppear,\n \"name\": transitionName\n },\n \"on\": {\n \"afterEnter\": this.onOpened,\n \"afterLeave\": this.onClosed\n }\n }, [h(\"div\", {\n \"directives\": [{\n name: \"show\",\n value: this.value\n }],\n \"style\": style,\n \"class\": bem((_bem = {\n round: round\n }, _bem[position] = position, _bem['safe-area-inset-bottom'] = this.safeAreaInsetBottom, _bem)),\n \"on\": {\n \"click\": this.onClick\n }\n }, [this.slots(), this.closeable && h(Icon, {\n \"attrs\": {\n \"role\": \"button\",\n \"tabindex\": \"0\",\n \"name\": this.closeIcon\n },\n \"class\": bem('close-icon', this.closeIconPosition),\n \"on\": {\n \"click\": this.onClickCloseIcon\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});","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n for (var j = 0; j < naf.length; j += doubles.step) {\n var nafW = 0;\n for (var k = j + doubles.step - 1; k >= j; k--)\n nafW = (nafW << 1) + naf[k];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (var j = 0; j < repr.length; j++) {\n var nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var k = 0; i >= 0 && naf[i] === 0; i--)\n k++;\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n for (var i = 0; i < len; i++) {\n var p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (var i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b] /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3 /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (var j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (var i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (var j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (var j = 0; j < len; j++) {\n var z = tmp[j];\n var p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (var i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len)) ;\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\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';\n\nconst encoders = require('./encoders');\nconst decoders = require('./decoders');\nconst inherits = require('inherits');\n\nconst api = exports;\n\napi.define = function define(name, body) {\n return new Entity(name, body);\n};\n\nfunction Entity(name, body) {\n this.name = name;\n this.body = body;\n\n this.decoders = {};\n this.encoders = {};\n}\n\nEntity.prototype._createNamed = function createNamed(Base) {\n const name = this.name;\n\n function Generated(entity) {\n this._initNamed(entity, name);\n }\n inherits(Generated, Base);\n Generated.prototype._initNamed = function _initNamed(entity, name) {\n Base.call(this, entity, name);\n };\n\n return new Generated(this);\n};\n\nEntity.prototype._getDecoder = function _getDecoder(enc) {\n enc = enc || 'der';\n // Lazily create decoder\n if (!this.decoders.hasOwnProperty(enc))\n this.decoders[enc] = this._createNamed(decoders[enc]);\n return this.decoders[enc];\n};\n\nEntity.prototype.decode = function decode(data, enc, options) {\n return this._getDecoder(enc).decode(data, options);\n};\n\nEntity.prototype._getEncoder = function _getEncoder(enc) {\n enc = enc || 'der';\n // Lazily create encoder\n if (!this.encoders.hasOwnProperty(enc))\n this.encoders[enc] = this._createNamed(encoders[enc]);\n return this.encoders[enc];\n};\n\nEntity.prototype.encode = function encode(data, enc, /* internal */ reporter) {\n return this._getEncoder(enc).encode(data, reporter);\n};\n","import api from '@/api/api'\r\nimport dayjs from 'dayjs'\r\n\r\nconst state = {\r\n comments: [],\r\n subComments: [],\r\n inputType: 0\r\n}\r\n\r\nconst mutations = {\r\n setComments: (state, comments) => {\r\n state.comments = comments\r\n },\r\n setSubComments: (state, comments) => {\r\n state.subComments = comments\r\n },\r\n\r\n deleteComment: (state, commentId) => {\r\n const comments = state.comments.filter(item => {\r\n return item.id !== commentId\r\n })\r\n state.comments = comments\r\n },\r\n\r\n deleteSubComment: (state, commentId) => {\r\n const comments = state.subComments.filter(item => {\r\n return item.id !== commentId\r\n })\r\n state.subComments = comments\r\n },\r\n\r\n setInputType: (state, type) => {\r\n state.inputType = type\r\n }\r\n}\r\n\r\nconst actions = {\r\n commitComment({ commit }, params) {\r\n console.log('=====commit comment', commit)\r\n return api.comment.commitComment(params).then(res => {\r\n return res.result\r\n })\r\n },\r\n\r\n getComments({ commit }, params) {\r\n params = {\r\n ...params,\r\n pageSize: 1000\r\n }\r\n\r\n return api.comment.getComments(params).then(res => {\r\n commit('setComments', parseComments(res.detail.list))\r\n return res\r\n })\r\n },\r\n\r\n getCommentList({ commit }, params) {\r\n params = {\r\n ...params,\r\n pageSize: 1000\r\n }\r\n\r\n return api.comment.getCommentList(params).then(res => {\r\n commit('setComments', parseComments(res.detail.list))\r\n return res\r\n })\r\n },\r\n\r\n getSubComments({ commit }, params) {\r\n params = {\r\n ...params,\r\n pageSize: 1000\r\n }\r\n\r\n return api.comment.getSubComments(params).then(res => {\r\n commit('setSubComments', parseComments(res.detail.list))\r\n })\r\n },\r\n\r\n deleteComment({ commit }, commentId) {\r\n console.log('=====delete comment', commit)\r\n return api.comment.deleteComment(commentId).then(res => {\r\n return res.result\r\n })\r\n },\r\n getLiveComments({ commit }, params) {\r\n console.log('=====getLiveComments comment', commit)\r\n return api.comment.getLiveComments(params).then(res => {\r\n return res\r\n })\r\n },\r\n commitLiveComment({ commit }, params) {\r\n console.log('=====commit comment', commit)\r\n return api.comment.commitLiveComment(params).then(res => {\r\n return res.result\r\n })\r\n }\r\n}\r\n\r\nconst parseComments = items => {\r\n if (items == undefined || items.length == 0) {\r\n return []\r\n }\r\n console.log('=======comments', items)\r\n return items.map(item => {\r\n item.createTime = dayjs(item.createTime).format('MM-DD HH:mm')\r\n return item\r\n })\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n state,\r\n mutations,\r\n actions\r\n}\r\n","module.exports = require('events').EventEmitter;\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}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.resp.detail&&_vm.resp.detail.tip)?_c('div',{staticClass:\"S4 tip\",class:_vm.tipClass,on:{\"click\":function($event){return _vm.goAd()}}},[_c('div',[_vm._v(\" \"+_vm._s(_vm.resp.detail? _vm.resp.detail.tip.text:\"\")+\" \")]),(_vm.viewDetail)?_c('div',{staticClass:\"viewDetail\"},[_vm._v(\" 查看详情 \"),_c('van-icon',{attrs:{\"name\":\"arrow\"}})],1):_vm._e()]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdTip.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdTip.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AdTip.vue?vue&type=template&id=80568d24&scoped=true&\"\nimport script from \"./AdTip.vue?vue&type=script&lang=js&\"\nexport * from \"./AdTip.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AdTip.vue?vue&type=style&index=0&id=80568d24&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"80568d24\",\n null\n \n)\n\nexport default component.exports","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n []\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n var m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n var m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","var createHash = require('create-hash')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0)\n var i = 0\n var c\n while (t.length < len) {\n c = i2ops(i++)\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n }\n return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n var out = Buffer.allocUnsafe(4)\n out.writeUInt32BE(c, 0)\n return out\n}\n","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function eventListener() {\n if (errorListener !== undefined) {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n var errorListener;\n\n // Adding an error listener is not optional because\n // if an error is thrown on an event emitter we cannot\n // guarantee that the actual event we are waiting will\n // be fired. The result could be a silent way to create\n // memory or file descriptor leaks, which is something\n // we should avoid.\n if (name !== 'error') {\n errorListener = function errorListener(err) {\n emitter.removeListener(name, eventListener);\n reject(err);\n };\n\n emitter.once('error', errorListener);\n }\n\n emitter.once(name, eventListener);\n });\n}\n","// 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;","var ciphers = require('./encrypter')\nvar deciphers = require('./decrypter')\nvar modes = require('./modes/list.json')\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n"],"sourceRoot":""}