{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/jquery/src/core.js","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./node_modules/safe-buffer/index.js","webpack:///./node_modules/jquery/src/var/isFunction.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/bn.js/lib/bn.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/jquery/src/var/document.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/jquery/src/selector.js","webpack:///./node_modules/minimalistic-assert/index.js","webpack:///./node_modules/elliptic/lib/elliptic/utils.js","webpack:///./node_modules/jquery/src/core/init.js","webpack:///./node_modules/jquery/src/data/var/dataPriv.js","webpack:///./node_modules/hash.js/lib/hash/utils.js","webpack:///./node_modules/jquery/src/core/nodeName.js","webpack:///./node_modules/jquery/src/var/rnothtmlwhite.js","webpack:///./node_modules/cipher-base/index.js","webpack:///./node_modules/jquery/src/var/support.js","webpack:///./node_modules/jquery/src/core/access.js","webpack:///./node_modules/jquery/src/ajax.js","webpack:///./node_modules/events/events.js","webpack:///./node_modules/string_decoder/lib/string_decoder.js","webpack:///./node_modules/readable-stream/lib/_stream_duplex.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/jquery/src/core/toType.js","webpack:///./node_modules/jquery/src/traversing.js","webpack:///./node_modules/jquery/src/deferred.js","webpack:///./node_modules/jquery/src/event.js","webpack:///./node_modules/randombytes/browser.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/errors-browser.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/sha.js/hash.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js","webpack:///./node_modules/jquery/src/var/arr.js","webpack:///./node_modules/jquery/src/var/isWindow.js","webpack:///./node_modules/jquery/src/core/camelCase.js","webpack:///./node_modules/jquery/src/css.js","webpack:///./node_modules/create-hash/browser.js","webpack:///./node_modules/core-util-is/lib/util.js","webpack:///./node_modules/buffer-xor/index.js","webpack:///./node_modules/hash.js/lib/hash/common.js","webpack:///./node_modules/asn1.js/lib/asn1/base/buffer.js","webpack:///./node_modules/jquery/src/var/slice.js","webpack:///./node_modules/jquery/src/var/class2type.js","webpack:///./node_modules/jquery/src/data/var/acceptData.js","webpack:///./node_modules/jquery/src/core/isAttached.js","webpack:///./node_modules/jquery/src/var/documentElement.js","webpack:///./node_modules/jquery/src/manipulation.js","webpack:///./node_modules/process-nextick-args/index.js","webpack:///./node_modules/browserify-aes/aes.js","webpack:///./node_modules/evp_bytestokey/index.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/base.js","webpack:///./node_modules/parse-asn1/index.js","webpack:///./node_modules/jquery/src/var/indexOf.js","webpack:///./node_modules/jquery/src/var/hasOwn.js","webpack:///./node_modules/jquery/src/callbacks.js","webpack:///./node_modules/jquery/src/queue.js","webpack:///./node_modules/jquery/src/effects.js","webpack:///./node_modules/jquery/src/var/rcssNum.js","webpack:///./node_modules/jquery/src/css/var/cssExpand.js","webpack:///./node_modules/jquery/src/var/rcheckableType.js","webpack:///./node_modules/jquery/src/css/var/rnumnonpx.js","webpack:///./node_modules/jquery/src/css/support.js","webpack:///./node_modules/jquery/src/attributes/support.js","webpack:///./node_modules/jquery/src/core/stripAndCollapse.js","webpack:///./node_modules/jquery/src/event/trigger.js","webpack:///./node_modules/md5.js/index.js","webpack:///./node_modules/util-deprecate/browser.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack:///./node_modules/ripemd160/index.js","webpack:///./node_modules/sha.js/index.js","webpack:///./node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/readable-stream/node_modules/safe-buffer/index.js","webpack:///./node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/des.js/lib/des/cipher.js","webpack:///./node_modules/browserify-aes/browser.js","webpack:///./node_modules/browserify-aes/modes/index.js","webpack:///./node_modules/brorand/index.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack:///./node_modules/browserify-rsa/index.js","webpack:///./node_modules/elliptic/lib/elliptic.js","webpack:///./node_modules/elliptic/lib/elliptic/curves.js","webpack:///./node_modules/hash.js/lib/hash.js","webpack:///./node_modules/safer-buffer/safer.js","webpack:///./node_modules/asn1.js/lib/asn1/base/node.js","webpack:///./node_modules/asn1.js/lib/asn1/base/reporter.js","webpack:///./node_modules/asn1.js/lib/asn1/constants/der.js","webpack:///./node_modules/jquery/src/jquery.js","webpack:///./node_modules/jquery/src/var/getProto.js","webpack:///./node_modules/jquery/src/var/flat.js","webpack:///./node_modules/jquery/src/var/push.js","webpack:///./node_modules/jquery/src/var/toString.js","webpack:///./node_modules/jquery/src/var/fnToString.js","webpack:///./node_modules/jquery/src/core/DOMEval.js","webpack:///./node_modules/jquery/src/traversing/var/rneedsContext.js","webpack:///./node_modules/jquery/src/core/var/rsingleTag.js","webpack:///./node_modules/jquery/src/traversing/findFilter.js","webpack:///./node_modules/jquery/src/core/ready.js","webpack:///./node_modules/jquery/src/data/Data.js","webpack:///./node_modules/jquery/src/data/var/dataUser.js","webpack:///./node_modules/jquery/src/var/pnum.js","webpack:///./node_modules/jquery/src/css/var/isHiddenWithinTree.js","webpack:///./node_modules/jquery/src/css/adjustCSS.js","webpack:///./node_modules/jquery/src/manipulation/var/rtagName.js","webpack:///./node_modules/jquery/src/manipulation/var/rscriptType.js","webpack:///./node_modules/jquery/src/manipulation/wrapMap.js","webpack:///./node_modules/jquery/src/manipulation/support.js","webpack:///./node_modules/jquery/src/manipulation/getAll.js","webpack:///./node_modules/jquery/src/manipulation/setGlobalEval.js","webpack:///./node_modules/jquery/src/manipulation/buildFragment.js","webpack:///./node_modules/jquery/src/css/var/getStyles.js","webpack:///./node_modules/jquery/src/css/curCSS.js","webpack:///./node_modules/jquery/src/css/addGetHookIf.js","webpack:///./node_modules/jquery/src/css/finalPropName.js","webpack:///./node_modules/jquery/src/attributes/prop.js","webpack:///./node_modules/jquery/src/ajax/var/nonce.js","webpack:///./node_modules/jquery/src/ajax/var/rquery.js","webpack:///./node_modules/jquery/src/core/parseXML.js","webpack:///./node_modules/jquery/src/serialize.js","webpack:///./node_modules/jquery/src/core/parseHTML.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/hash-base/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/sha.js/sha256.js","webpack:///./node_modules/sha.js/sha512.js","webpack:///./node_modules/readable-stream/lib/_stream_readable.js","webpack:///./node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///./node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///./node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/create-hmac/browser.js","webpack:///./node_modules/create-hash/md5.js","webpack:///./node_modules/pbkdf2/browser.js","webpack:///./node_modules/pbkdf2/lib/precondition.js","webpack:///./node_modules/pbkdf2/lib/default-encoding.js","webpack:///./node_modules/pbkdf2/lib/sync-browser.js","webpack:///./node_modules/pbkdf2/lib/to-buffer.js","webpack:///./node_modules/des.js/lib/des/utils.js","webpack:///./node_modules/des.js/lib/des/des.js","webpack:///./node_modules/browserify-aes/modes/ctr.js","webpack:///./node_modules/browserify-aes/incr32.js","webpack:///./node_modules/browserify-aes/authCipher.js","webpack:///./node_modules/browserify-aes/streamCipher.js","webpack:///./node_modules/diffie-hellman/lib/generatePrime.js","webpack:///./node_modules/miller-rabin/lib/mr.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.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/internal/streams/destroy.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js","webpack:///./node_modules/minimalistic-crypto-utils/lib/utils.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/index.js","webpack:///./node_modules/hash.js/lib/hash/sha/common.js","webpack:///./node_modules/hash.js/lib/hash/sha/256.js","webpack:///./node_modules/hash.js/lib/hash/sha/512.js","webpack:///./node_modules/browserify-sign/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/asn1.js/lib/asn1.js","webpack:///./node_modules/asn1.js/lib/asn1/encoders/index.js","webpack:///./node_modules/asn1.js/lib/asn1/encoders/der.js","webpack:///./node_modules/asn1.js/lib/asn1/decoders/index.js","webpack:///./node_modules/asn1.js/lib/asn1/decoders/der.js","webpack:///./node_modules/public-encrypt/mgf.js","webpack:///./node_modules/public-encrypt/xor.js","webpack:///./node_modules/public-encrypt/withPublic.js","webpack:///./node_modules/froala-editor/js/froala_editor.pkgd.min.js","webpack:///./app/javascript/packs/application.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/jquery/src/var/ObjectFunctionString.js","webpack:///./node_modules/jquery/src/selector-sizzle.js","webpack:///./node_modules/jquery/external/sizzle/dist/sizzle.js","webpack:///./node_modules/jquery/src/traversing/var/dir.js","webpack:///./node_modules/jquery/src/traversing/var/siblings.js","webpack:///./node_modules/jquery/src/deferred/exceptionHook.js","webpack:///./node_modules/jquery/src/core/readyException.js","webpack:///./node_modules/jquery/src/data.js","webpack:///./node_modules/jquery/src/queue/delay.js","webpack:///./node_modules/jquery/src/css/showHide.js","webpack:///./node_modules/jquery/src/css/var/swap.js","webpack:///./node_modules/jquery/src/css/var/rboxStyle.js","webpack:///./node_modules/jquery/src/effects/Tween.js","webpack:///./node_modules/jquery/src/attributes.js","webpack:///./node_modules/jquery/src/attributes/attr.js","webpack:///./node_modules/jquery/src/attributes/classes.js","webpack:///./node_modules/jquery/src/attributes/val.js","webpack:///./node_modules/jquery/src/event/focusin.js","webpack:///./node_modules/jquery/src/event/support.js","webpack:///./node_modules/jquery/src/manipulation/_evalUrl.js","webpack:///./node_modules/jquery/src/ajax/var/location.js","webpack:///./node_modules/jquery/src/wrap.js","webpack:///./node_modules/jquery/src/css/hiddenVisibleSelectors.js","webpack:///./node_modules/jquery/src/ajax/xhr.js","webpack:///./node_modules/jquery/src/ajax/script.js","webpack:///./node_modules/jquery/src/ajax/jsonp.js","webpack:///./node_modules/jquery/src/ajax/load.js","webpack:///./node_modules/jquery/src/core/support.js","webpack:///./node_modules/jquery/src/effects/animatedSelector.js","webpack:///./node_modules/jquery/src/offset.js","webpack:///./node_modules/jquery/src/dimensions.js","webpack:///./node_modules/jquery/src/deprecated.js","webpack:///./node_modules/jquery/src/deprecated/ajax-event-alias.js","webpack:///./node_modules/jquery/src/deprecated/event.js","webpack:///./node_modules/jquery/src/exports/amd.js","webpack:///./node_modules/jquery/src/exports/global.js","webpack:///./node_modules/turbolinks/dist/turbolinks.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./node_modules/crypto-browserify/index.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack:///./node_modules/sha.js/sha.js","webpack:///./node_modules/sha.js/sha1.js","webpack:///./node_modules/sha.js/sha224.js","webpack:///./node_modules/sha.js/sha384.js","webpack:///./node_modules/stream-browserify/index.js","webpack:///./node_modules/readable-stream/lib/internal/streams/BufferList.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/readable-stream/writable-browser.js","webpack:///./node_modules/readable-stream/duplex-browser.js","webpack:///./node_modules/readable-stream/transform.js","webpack:///./node_modules/readable-stream/passthrough.js","webpack:///./node_modules/create-hmac/legacy.js","webpack:///./node_modules/browserify-sign/algos.js","webpack:///./node_modules/pbkdf2/lib/async.js","webpack:///./node_modules/browserify-cipher/browser.js","webpack:///./node_modules/browserify-des/index.js","webpack:///./node_modules/des.js/lib/des.js","webpack:///./node_modules/des.js/lib/des/cbc.js","webpack:///./node_modules/des.js/lib/des/ede.js","webpack:///./node_modules/browserify-aes/encrypter.js","webpack:///./node_modules/browserify-aes/modes/ecb.js","webpack:///./node_modules/browserify-aes/modes/cbc.js","webpack:///./node_modules/browserify-aes/modes/cfb.js","webpack:///./node_modules/browserify-aes/modes/cfb8.js","webpack:///./node_modules/browserify-aes/modes/cfb1.js","webpack:///./node_modules/browserify-aes/modes/ofb.js","webpack:///./node_modules/browserify-aes/ghash.js","webpack:///./node_modules/browserify-aes/decrypter.js","webpack:///./node_modules/browserify-des/modes.js","webpack:///./node_modules/diffie-hellman/browser.js","webpack:///./node_modules/diffie-hellman/lib/dh.js","webpack:///./node_modules/browserify-sign/browser/index.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack:///./node_modules/browserify-sign/browser/sign.js","webpack:///./node_modules/browserify-rsa/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/short.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/mont.js","webpack:///./node_modules/elliptic/lib/elliptic/curve/edwards.js","webpack:///./node_modules/hash.js/lib/hash/sha.js","webpack:///./node_modules/hash.js/lib/hash/sha/1.js","webpack:///./node_modules/hash.js/lib/hash/sha/224.js","webpack:///./node_modules/hash.js/lib/hash/sha/384.js","webpack:///./node_modules/hash.js/lib/hash/ripemd.js","webpack:///./node_modules/hash.js/lib/hash/hmac.js","webpack:///./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","webpack:///./node_modules/elliptic/lib/elliptic/ec/index.js","webpack:///./node_modules/hmac-drbg/lib/hmac-drbg.js","webpack:///./node_modules/elliptic/lib/elliptic/ec/key.js","webpack:///./node_modules/elliptic/lib/elliptic/ec/signature.js","webpack:///./node_modules/elliptic/lib/elliptic/eddsa/index.js","webpack:///./node_modules/elliptic/lib/elliptic/eddsa/key.js","webpack:///./node_modules/elliptic/lib/elliptic/eddsa/signature.js","webpack:///./node_modules/parse-asn1/asn1.js","webpack:///./node_modules/asn1.js/lib/asn1/api.js","webpack:///./node_modules/asn1.js/lib/asn1/encoders/pem.js","webpack:///./node_modules/asn1.js/lib/asn1/decoders/pem.js","webpack:///./node_modules/asn1.js/lib/asn1/base/index.js","webpack:///./node_modules/asn1.js/lib/asn1/constants/index.js","webpack:///./node_modules/parse-asn1/certificate.js","webpack:///./node_modules/parse-asn1/fixProc.js","webpack:///./node_modules/browserify-sign/browser/verify.js","webpack:///./node_modules/create-ecdh/browser.js","webpack:///./node_modules/public-encrypt/browser.js","webpack:///./node_modules/public-encrypt/publicEncrypt.js","webpack:///./node_modules/public-encrypt/privateDecrypt.js","webpack:///./node_modules/randomfill/browser.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_typeof","iterator","obj","constructor","arr","getProto","_slice","flat","push","indexOf","class2type","toString","hasOwn","fnToString","ObjectFunctionString","support","isFunction","isWindow","DOMEval","toType","version","jQuery","selector","context","fn","init","isArrayLike","length","type","jquery","toArray","this","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","slice","apply","arguments","first","eq","last","even","grep","_elem","odd","len","j","end","sort","splice","extend","options","src","copy","copyIsArray","clone","target","deep","isPlainObject","Array","isArray","undefined","expando","Math","random","replace","isReady","error","msg","Error","noop","proto","Ctor","isEmptyObject","globalEval","code","doc","nonce","makeArray","results","inArray","second","invert","matches","callbackExpect","arg","guid","split","_i","toLowerCase","ctor","superCtor","super_","writable","configurable","TempCtor","buffer","Buffer","copyProps","dst","SafeBuffer","encodingOrOffset","from","alloc","allocUnsafe","allocUnsafeSlow","TypeError","size","fill","encoding","buf","SlowBuffer","nodeType","item","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","e","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","run","marker","runClearTimeout","Item","array","nextTick","args","title","browser","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","assert","val","inherits","BN","number","base","endian","isBN","negative","words","red","_init","wordSize","window","parseHex4Bits","string","index","charCodeAt","parseHexByte","lowerBound","parseBase","str","start","mul","min","max","left","right","cmp","_initNumber","_initArray","_parseHex","_parseBase","ceil","w","strip","limbLen","limbPow","total","mod","word","imuln","_iaddn","pow","dest","_expand","_normSign","inspect","zeros","groupSizes","groupBases","smallMulTo","self","out","a","b","lo","carry","k","ncarry","rword","maxJ","padding","groupSize","groupBase","isZero","modn","idivn","toNumber","toJSON","toBuffer","toArrayLike","ArrayType","byteLength","reqLength","littleEndian","res","q","andln","iushrn","clz32","_countBits","_zeroBits","bitLength","hi","zeroBits","toTwos","width","abs","inotn","iaddn","fromTwos","testn","notn","ineg","isNeg","neg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","xor","uxor","bytesNeeded","bitsLeft","setn","bit","wbit","iadd","isub","add","sub","comb10MulTo","mid","a0","al0","ah0","a1","al1","ah1","a2","al2","ah2","a3","al3","ah3","a4","al4","ah4","a5","al5","ah5","a6","al6","ah6","a7","al7","ah7","a8","al8","ah8","a9","al9","ah9","b0","bl0","bh0","b1","bl1","bh1","b2","bl2","bh2","b3","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","b6","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","b9","bl9","bh9","w0","imul","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","jumboMulTo","FFTM","mulp","x","y","mulTo","hncarry","bigMulTo","makeRBT","N","revBin","rb","permute","rbt","rws","iws","rtws","itws","transform","rtwdf","cos","PI","itwdf","sin","rtwdf_","itwdf_","re","ie","ro","io","rx","guessLen13b","conjugate","normalize13b","ws","round","convert13b","stub","ph","_","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","muln","sqr","isqr","toBitArray","iushln","bits","carryMask","newCarry","ishln","hint","extended","h","mask","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","shift","_wordDiv","bhi","diff","qj","div","divmod","positive","divn","umod","divRound","dm","half","r2","acc","egcd","A","B","C","D","g","isEven","yp","xp","im","isOdd","jm","gcd","_invmp","x1","x2","delta","cmpn","invm","bincn","ucmp","gtn","gt","gten","gte","ltn","lt","lten","lte","eqn","Red","toRed","ctx","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","shl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","sqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","tmp","_tmp","K256","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","imulK","_strip","input","output","outLen","prev","next","mod3","one","nOne","lpow","z","inv","wnd","current","currentLen","mont","u","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","Uint8Array","__proto__","ArrayBuffer","byteOffset","fromArrayLike","fromArrayBuffer","isEncoding","actual","write","fromString","isBuffer","checked","data","fromObject","assertSize","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","isNaN","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","String","read","readUInt16BE","foundIndex","found","hexWrite","offset","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","decodeCodePointsArray","INSPECT_MAX_BYTES","global","foo","subarray","typedArraySupport","poolSize","_augment","species","_isBuffer","compare","list","pos","swap16","swap32","swap64","equals","match","join","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","_arr","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","floor","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","set","INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","trim","stringtrim","base64clean","document","Function","equal","utils","minAssert","minUtils","zero2","encode","getNAF","naf","getJSF","k1","k2","jsf","m8","d1","d2","u1","u2","m14","m24","cachedProperty","computer","parseBytes","intFromLE","rsingleTag","rootjQuery","rquickExpr","root","exec","find","parseHTML","ownerDocument","test","attr","getElementById","ready","Data","isSurrogatePair","htonl","zero8","enc","toHex32","join32","split32","rotr32","rotl32","sum32","sum32_3","sum32_4","sum32_5","sum64","ah","al","bh","sum64_hi","bl","sum64_lo","sum64_4_hi","ch","cl","dh","dl","sum64_4_lo","sum64_5_hi","eh","el","sum64_5_lo","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","nodeName","Transform","StringDecoder","CipherBase","hashMode","_finalOrDigest","final","_final","__final","_decoder","_encoding","update","inputEnc","outputEnc","outData","_update","_toString","setAutoPadding","getAuthTag","setAuthTag","setAAD","_transform","err","_flush","done","fin","access","chainable","emptyGet","raw","bulk","_key","rnothtmlwhite","location","rquery","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","prefilters","transports","allTypes","originAnchor","createElement","addToPrefiltersOrTransports","structure","dataTypeExpression","func","dataType","dataTypes","unshift","inspectPrefiltersOrTransports","originalOptions","jqXHR","inspected","seekingTransport","selected","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","href","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","text","html","xml","json","contents","responseFields","converters","JSON","parse","parseXML","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","completed","fireGlobals","uncached","callbackContext","globalEventContext","event","deferred","Deferred","completeDeferred","Callbacks","_statusCode","statusCode","requestHeaders","requestHeadersNames","strAbort","readyState","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","always","status","abort","statusText","finalText","promise","method","crossDomain","host","param","traditional","trigger","toUpperCase","hasContent","cache","ifModified","headers","beforeSend","complete","success","fail","send","nativeStatusText","responses","isSuccess","response","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","conv","dataFilter","throws","state","ajaxConvert","resolveWith","rejectWith","fireWith","getJSON","getScript","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","NumberIsNaN","EventEmitter","emitter","Promise","resolve","reject","errorListener","resolver","eventTargetAgnosticAddListener","handler","flags","addErrorHandlerIfEventEmitter","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","_addListener","prepend","events","existing","warning","newListener","warned","count","console","warn","onceWrapper","fired","wrapFn","_onceWrap","wrapped","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","addEventListener","wrapListener","removeEventListener","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","message","position","originalListener","pop","spliceOne","keys","rawListeners","eventNames","nb","nenc","retried","_normalizeEncoding","normalizeEncoding","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","utf8CheckExtraBytes","utf8CheckIncomplete","pna","objectKeys","Duplex","util","Readable","Writable","v","readable","allowHalfOpen","onend","_writableState","ended","onEndNT","highWaterMark","_readableState","destroyed","_destroy","cb","webpackPolyfill","deprecate","paths","children","_siblings","rneedsContext","rparentsprev","guaranteedUnique","sibling","cur","has","targets","filter","contains","closest","selectors","matched","parentNode","matchesSelector","uniqueSort","prevAll","addBack","parent","parents","parentsUntil","until","nextAll","nextUntil","prevUntil","siblings","firstChild","contentDocument","content","childNodes","reverse","Identity","Thrower","ex","adoptValue","noValue","then","tuples","_state","_promise","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","mightThrow","notifyWith","exceptionHook","stackTrace","getStackHook","stateString","disable","lock","fire","when","singleValue","resolveContexts","resolveValues","primary","updateFunc","documentElement","rcheckableType","acceptData","dataPriv","rtypenamespace","returnTrue","returnFalse","expectSync","activeElement","safeActiveElement","_on","types","origFn","leverageNative","namespace","notAsync","result","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","Event","handleObjIn","eventHandle","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","bindType","needsContext","expr","delegateCount","setup","remove","mappedTypes","origCount","hasData","RegExp","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","_handlers","sel","matchedHandlers","matchedSelectors","button","disabled","addProp","hook","originalEvent","load","noBubble","click","_default","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","Date","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","focus","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","MAX_BYTES","MAX_UINT32","crypto","msCrypto","getRandomValues","generated","codes","createErrorType","Base","NodeError","_Base","subClass","superClass","arg1","arg2","arg3","getMessage","oneOf","expected","thing","determiner","search","this_len","substring","endsWith","getBuffer","Hash","blockSize","finalSize","_block","_finalSize","_blockSize","_len","block","accum","assigned","remainder","digest","rem","lowBits","highBits","hash","_hash","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","camelCase","rcssNum","rnumnonpx","cssExpand","getStyles","curCSS","adjustCSS","addGetHookIf","finalPropName","rdisplayswap","rcustomProp","cssShow","visibility","display","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","css","getWidthOrHeight","boxSizingReliable","valueIsBorderBox","offsetProp","reliableTrDimensions","parseFloat","getClientRects","cssHooks","opacity","computed","cssNumber","cssProps","style","hooks","origName","isCustomProp","clearCloneStyle","setProperty","getBoundingClientRect","scrollboxSizeBuggy","scrollboxSize","marginLeft","reliableMarginLeft","margin","border","prefix","suffix","expand","expanded","parts","MD5","RIPEMD160","sha","alg","objectToString","isBoolean","isNull","isNullOrUndefined","isNumber","isString","isSymbol","isUndefined","isRegExp","isObject","isDate","isError","isPrimitive","BlockHash","pending","pendingTotal","outSize","hmacStrength","padLength","_delta8","_delta32","_pad","_digest","Reporter","DecoderBuffer","EncoderBuffer","reporter","isEncoderBuffer","isDecoderBuffer","save","restore","isEmpty","skip","_reporterState","forEach","owner","isAttached","composed","getRootNode","rtagName","rscriptType","wrapMap","getAll","setGlobalEval","buildFragment","dataUser","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","getAttribute","restoreScript","removeAttribute","cloneCopyEvent","udataOld","udataCur","fixInput","defaultValue","domManip","collection","ignored","fragment","scripts","hasScripts","node","iNoClone","valueIsFunction","checkClone","_evalUrl","noModule","textContent","_remove","keepData","nodes","cleanData","removeChild","htmlPrefilter","dataAndEvents","deepDataAndEvents","srcElements","destElements","cloneNode","inPage","noCloneChecked","isXMLDoc","detach","empty","append","appendChild","insertBefore","before","after","nextSibling","innerHTML","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","asUInt32Array","scrubVec","cryptBlock","M","keySchedule","SUB_MIX","SBOX","nRounds","t0","t1","t2","t3","SUB_MIX0","SUB_MIX1","SUB_MIX2","SUB_MIX3","s0","s1","s2","s3","ksRow","RCON","G","INV_SBOX","INV_SUB_MIX","xi","sx","x4","x8","AES","_reset","keySize","keyWords","ksRows","invKeySchedule","ik","ksR","tt","_nRounds","_keySchedule","_invKeySchedule","encryptBlockRaw","encryptBlock","decryptBlock","m1","scrub","password","salt","keyBits","ivLen","keyLen","iv","used","keyStart","ivStart","BaseCurve","conf","zero","two","pointFromJSON","gRed","_wnafT1","_wnafT2","_wnafT3","_wnafT4","_bitLength","adjustCount","redN","_maxwellTrick","BasePoint","curve","precomputed","point","validate","_fixedNafMul","doubles","_getDoubles","I","step","nafW","repr","jpoint","mixedAdd","points","toP","_wnafMul","nafPoints","_getNAFPoints","dblp","_wnafMulAdd","defW","coeffs","jacobianResult","wndWidth","comb","toJ","ja","jb","decodePoint","pointFromX","encodeCompressed","_encode","compact","getX","getY","precompute","power","beta","_getBeta","_hasDoubles","dbl","asn1","aesid","fixProc","ciphers","compat","parseKeys","passphrase","subtype","ndata","stripped","tag","certificate","decode","tbsCertificate","subjectPublicKeyInfo","PublicKey","algorithm","RSAPublicKey","subjectPublicKey","subjectPrivateKey","params","pub_key","DSAparam","decrypt","kde","kdeparams","iters","algo","cipher","cipherText","keylen","pbkdf2Sync","createDecipheriv","EncryptedPrivateKey","PrivateKey","RSAPrivateKey","privateKey","ECPrivateKey","priv_key","DSAPrivateKey","parameters","signature","flag","createOptions","firing","memory","_fired","_locked","firingIndex","stopOnFalse","unique","locked","dequeue","startLength","_queueHooks","stop","setter","clearQueue","defer","elements","isHiddenWithinTree","showHide","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","fx","interval","tick","createFxNow","genFx","includeWidth","attrs","height","createTween","prop","animation","tween","Animation","tweeners","properties","stopped","currentTime","startTime","duration","percent","tweens","opts","specialEasing","easing","originalProperties","Tween","gotoEnd","propFilter","timer","anim","tweener","toggle","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","opt","speeds","old","fadeTo","to","show","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","pnum","computeStyleTests","container","cssText","divStyle","getComputedStyle","pixelPositionVal","top","reliableMarginLeftVal","roundPixelMeasures","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","offsetWidth","measure","reliableTrDimensionsVal","backgroundClip","pixelBoxStyles","pixelPosition","table","tr","trChild","trStyle","borderTopWidth","borderBottomWidth","offsetHeight","checkOn","optSelected","radioValue","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","defaultView","parentWindow","simulate","triggerHandler","HashBase","ARRAY16","_a","_b","_c","_d","rotl","fnF","fnG","fnH","fnI","_blockOffset","_length","config","localStorage","trace","ERR_STREAM_PREMATURE_CLOSE","eos","stream","called","onlegacyfinish","onfinish","writableEnded","finished","readableEnded","endEmitted","onerror","onclose","onrequest","req","setHeader","isRequest","zl","zr","sl","sr","hl","hr","_e","fn1","fn2","fn3","fn4","fn5","ar","br","cr","dr","tl","Algorithm","sha1","sha224","sha256","sha384","sha512","Stream","PassThrough","CorkedRequest","_this","entry","corkReq","pendingcb","corkedRequestsFree","onCorkedFinish","asyncWrite","setImmediate","WritableState","internalUtil","OurUint8Array","realHasInstance","destroyImpl","nop","isDuplex","objectMode","writableObjectMode","hwm","writableHwm","writableHighWaterMark","defaultHwm","finalCalled","needDrain","ending","noDecode","decodeStrings","defaultEncoding","writing","corked","sync","bufferProcessing","onwrite","writecb","writelen","onwriteStateUpdate","finishMaybe","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","_write","writev","_writev","destroy","doWrite","chunk","onwriteDrain","holder","allBuffers","isBuf","callFinal","need","prefinish","hasInstance","_uint8ArrayToBuffer","writeAfterEnd","valid","validChunk","newChunk","decodeChunk","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","_undestroy","undestroy","Cipher","bufferOff","_updateDecrypt","_updateEncrypt","_buffer","_flushBuffer","inputOff","outputOff","_finalEncrypt","_finalDecrypt","_unpad","deciphers","modes","createCipher","createCipheriv","Cipheriv","createDecipher","Decipher","Decipheriv","listCiphers","getCiphers","modeModules","ECB","CBC","CFB","CFB8","CFB1","OFB","CTR","GCM","Rand","rand","generate","_rand","getBytes","getByte","randomBytes","getr","priv","modulus","prime1","prime2","crt","blinds","blinder","publicExponent","unblinder","blind","blinded","c1","c2","qinv","coefficient","exponent1","m2","exponent2","elliptic","curves","ec","eddsa","pre","PresetCurve","short","edwards","isInfinity","defineCurve","lambda","basis","common","ripemd","hmac","ripemd160","safer","Safer","kStringMaxLength","constants","MAX_LENGTH","MAX_STRING_LENGTH","tags","methods","Node","_baseState","reverseArgs","choice","optional","any","use","useDecoder","explicit","implicit","_wrap","stateProps","cstate","body","child","_useArgs","def","newKey","_decode","wrapResult","prevObj","present","prevKey","enterKey","_peekTag","_decodeGeneric","_decodeChoice","enterObject","_decodeTag","_save","track","path","_getUse","leaveObject","exitKey","leaveKey","_decodeList","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeBool","_decodeInt","entity","_use","some","_createEncoderBuffer","_encodeValue","_skipDefault","primitive","_encodeChoice","_encodePrimitive","cls","_encodeComposite","stringify","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool","_isNumstr","_isPrintstr","errors","ReporterError","rethrow","pathLen","inherited","stack","partial","captureStackTrace","tagClass","tagClassByName","tagByName","preservedScriptAttributes","script","setAttribute","head","winnow","qualifier","not","is","readyList","catch","readyException","readyWait","wait","doScroll","uid","source","valueParts","adjusted","scale","maxIterations","currentValue","initial","unit","initialInUnit","thead","col","td","tbody","tfoot","colgroup","caption","th","option","optgroup","createDocumentFragment","lastChild","getElementsByTagName","querySelectorAll","refElements","rhtml","selection","wrap","attached","createTextNode","opener","rboxStyle","minWidth","maxWidth","getPropertyValue","conditionFn","hookFn","cssPrefixes","emptyStyle","vendorProps","capName","vendorPropName","rfocusable","rclickable","removeProp","propFix","nType","propHooks","tabIndex","tabindex","selectedIndex","parserErrorElem","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","valueOrFunction","encodeURIComponent","serialize","serializeArray","keepScripts","createHTMLDocument","implementation","_finalized","throwIfNotStringOrBuffer","ReadableState","EElistenerCount","debug","debugUtil","debuglog","createReadableStreamAsyncIterator","BufferList","getHighWaterMark","_require$codes","ERR_INVALID_ARG_TYPE","ERR_STREAM_PUSH_AFTER_EOF","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","errorOrDestroy","kProxyEvents","readableObjectMode","pipes","pipesCount","flowing","reading","needReadable","emittedReadable","readableListening","resumeScheduled","paused","emitClose","autoDestroy","awaitDrain","readingMore","decoder","_read","readableAddChunk","addToFront","skipChunkCheck","emitReadable","emitReadable_","onEofChunk","chunkInvalid","addChunk","maybeReadMore","isPaused","setEncoding","clear","MAX_HWM","howMuchToRead","computeNewHighWaterMark","flow","maybeReadMore_","updateReadableListening","resume","nReadingNextTick","resume_","fromList","consume","endReadable","endReadableNT","wState","xs","nOrig","doRead","pipeOpts","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","ondrain","ondata","cleanedUp","pipeOnDrain","pause","dests","ev","asyncIterator","_fromList","iterable","emitErrorAndCloseNT","emitErrorNT","emitCloseNT","readableDestroyed","writableDestroyed","rState","ERR_INVALID_OPT_VALUE","duplexKey","highWaterMarkFrom","ERR_MULTIPLE_CALLBACK","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","ts","_transformState","transforming","writechunk","rs","needTransform","writeencoding","flush","err2","K","W","Sha256","_w","maj","sigma0","sigma1","gamma0","_f","_g","_h","f","T1","T2","H","Sha512","Ch","xl","Gamma0","Gamma0l","Gamma1","Gamma1l","getCarry","_ah","_bh","_ch","_dh","_eh","_fh","_gh","_hh","_al","_bl","_cl","_dl","_el","_fl","_gl","_hl","fh","gh","hh","fl","gl","xh","gamma0l","gamma1","gamma1l","Wi7h","Wi7l","Wi16h","Wi16l","Wil","Wih","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Kih","Kil","chh","chl","t1l","t1h","t2l","t2h","writeInt64BE","readableHwm","readableHighWaterMark","needMoreData","hasStrings","tail","copyFromBufferString","copyFromBuffer","fromListPartial","increasedAwaitDrain","_this2","Legacy","md5","ZEROS","Hmac","blocksize","_alg","ipad","_ipad","opad","_opad","pbkdf2","MAX_ALLOC","iterations","checkParameters","sizes","rmd160","saltLen","shaFunc","rmd160Func","getDigest","ipad1","ipad2","DK","block1","destPos","hLen","T","U","ip","inL","inR","outL","outR","rip","pc1","r28shl","pc2table","pc2","sTable","substitute","permuteTable","padSplit","group","DESState","DES","_desState","deriveKeys","shiftTable","kL","kR","inp","inOff","outOff","_encrypt","_decrypt","pad","lStart","rStart","keyL","keyR","incr32","getBlock","_cipher","_prev","encrypt","chunkNum","_cache","aes","GHASH","StreamCipher","ck","_ghash","_finID","ghash","toPad","ivBits","calcIv","_secCache","_alen","_mode","_authTag","_called","rump","xorTest","findPrime","simpleSieve","fermatTest","TWENTYFOUR","millerRabin","ONE","TWO","FIVE","TEN","THREE","ELEVEN","FOUR","_getPrimes","gen","n2","bn","brorand","MillerRabin","_randbelow","min_bytes","_randrange","rone","n1","rn1","getDivisor","ch32","maj32","p32","ft_1","s0_256","s1_256","g0_256","g1_256","shaCommon","sha256_K","SHA256","sha512_K","SHA512","ch64_hi","yh","yl","zh","ch64_lo","maj64_hi","maj64_lo","s0_512_hi","s0_512_lo","s1_512_hi","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_hi","g1_512_lo","_prepareBlock","c0_hi","c0_lo","c1_hi","c1_lo","c2_hi","c2_lo","c3_hi","c3_lo","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","move","_move","for","modrn","allocate","_toArrayLikeLE","_toArrayLikeBE","isNegNum","bignum","define","decoders","encoders","der","pem","DEREncoder","tree","DERNode","encodedTag","encodeTag","_header","lenOctets","header","unused","id","values","relative","_i2","_i3","ident","objid","_i4","_ident","time","date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","numArray","sign","_size","_out","_i5","_getEncoder","dataBuffer","defaultBuffer","DERDecoder","derDecodeTag","oct","tagStr","derDecodeLen","decodedTag","_skipUntilEnd","possibleEnd","numstr","printstr","identifiers","subident","year","mon","day","hour","sec","UTC","_getDecoder","createHash","i2ops","seed","paddedMsg","_t","xt","Bootstrap","iframe_document","Element","msMatchesSelector","webkitMatchesSelector","parentElement","mozMatchesSelector","oMatchesSelector","assign","getTime","HTMLElement","createElementNS","DOMException","_updateClassName","__defineGetter__","classList","Cc","DOMTokenList","RegisterPlugins","DEFAULTS","initOnClick","pluginsEnabled","MODULES","PLUGINS","VERSION","INSTANCES","OPTS_MAPPING","SHARED","ID","$","tagName","ELEMENT_NODE","BLOCK_TAGS","attributes","isBlock","querySelector","hasClass","TEXT_NODE","VOID_ELEMENTS","htmlAllowedEmptyTags","htmlDoNotWrapTags","blockParent","deepestParent","SIMPLE_ENTER_TAGS","rawAttributes","clearAttributes","openTagString","closeTagString","isFirstSibling","previousSibling","isLastSibling","isList","isLink","isElement","isVoid","hasFocus","Boolean","isEditable","isDeletable","msie","acceptNode","DOMPurify","htmlAllowedTags","htmlRemoveTags","htmlAllowedAttrs","htmlAllowedStyleProps","htmlAllowComments","htmlUntouched","fullPage","HTML5Map","STRIKE","clean","normalize","COMMENT_NODE","nodeValue","outerHTML","charAt","extractNode","E","extractDoctype","extractNodeAttrs","innerText","helpers","sanitizeURL","pasteAllowLocalImages","insertAdjacentHTML","isMac","safari","sanitize","toHTML5","tables","lists","listStyleType","invisibleSpaces","XS","SM","MD","LG","LinkRegExCommon","LinkRegExEnd","LinkRegExTLD","LinkRegExHTTP","LinkRegExAuth","LinkRegExWWW","LinkRegEx","LinkProtocols","MAIL_REGEX","navigator","userAgent","appName","$1","chrome","webkit","isIOS","platform","isAndroid","isBlackberry","isWindowsPhone","isMobile","isEmail","webkitRequestAnimationFrame","mozRequestAnimationFrame","getPX","screenSize","$box","$sc","isTouch","DocumentTouch","propertyIsEnumerable","RGBToHex","HEXtoRGB","isURL","getAlignment","direction","$el","scrollTop","o_win","pageYOffset","o_doc","scrollLeft","pageXOffset","isInViewPort","bottom","innerHeight","clientHeight","$wp","$win","core","isCollapsed","anchorNode","blockTagsQuery","MARKERS","info","atStart","defaultTag","markers","shared","$_events","sid","edit","isDisabled","_mousedown","_mouseup","_mousemove","popups","areVisible","$doc","toolbarContainer","selected_editor","bindClick","addClass","getButtons","removeClass","removeData","disableBlur","enableBlur","blurActive","chainTrigger","$on","$off","indentMargin","COMMANDS","bold","refresh","format","toggleClass","italic","underline","strikeThrough","subscript","superscript","outdent","indent","undo","forcedRefresh","redo","insertHR","clearFormatting","selectAll","moreText","moreParagraph","moreRich","moreMisc","RegisterCommand","commands","toolbarInline","toolbar","showInline","removeAttr","setAfter","setBefore","execCommand","$tb","setMoreToolbarsHeight","accessibilityFocus","accessibility","saveStep","blocks","element","isArrow","KEYCODE","ARROW_LEFT","ARROW_UP","setAtEnd","ARROW_RIGHT","ARROW_DOWN","setAtStart","endElement","cursorLists","_startEnter","_middleEnter","cursor","isAtEnd","INVISIBLE_SPACE","keepFormatOnDelete","_endEnter","_backspace","_del","NO_DELETE_TAGS","tabSpaces","UNICODE_NBSP","enter","nextElementSibling","fillEmptyBlocks","cleanEmptyTags","spaces","normalizeAroundCursor","$oel","offsetTop","scroll","backspace","del","isAtStart","FE","L","S","domain","cookie","ul","Image","mozilla","srcElement","disableDesign","strong","em","hasAttribute","toLocaleLowerCase","win","getSelection","getRangeAt","startOffset","endOffset","isSameNode","createRange","removeAllRanges","setStart","setEnd","addRange","atEnd","ranges","startContainer","collapsed","applyStyle","removeStyle","ENTER_P","ENTER_DIV","ENTER_BR","isPreformatted","createTreeWalker","NodeFilter","SHOW_TEXT","nextNode","currentNode","START_MARKER","END_MARKER","commonAncestorContainer","cloneRange","collapse","insertNode","place","className","firstElementChild","insertAtPoint","caretPositionFromPoint","offsetNode","caretRangeFromPoint","createTextRange","moveToPoint","duplicate","setEndPoint","select","rangeCount","setStartAfter","setEndBefore","edge","setStartBefore","setEndAfter","selectNodeContents","endContainer","moveToElementText","getElementsByClassName","isFull","inEditor","rangeElement","language","LANGUAGE","translate","translation","placeholderText","placeholder","$placeholder","iframe","$iframe","outerHeight","marginTop","paddingTop","paddingLeft","paddingRight","marginRight","textAlign","hide","isVisible","htmlSimpleAmpersand","htmlIgnoreCSSProperties","htmlExecuteScripts","doctype","publicId","systemId","cleanBRs","O","emptyBlocks","emptyBlockTagsQuery","cleanWhiteTags","cleanBlankSpaces","getDoctype","spellcheck","$head","$html","createDocumentType","injectStyle","iframeDefaultStyle","iframeStyle","useClasses","syncInputs","styleSheets","cssRules","ownerNode","selectorText","heightMin","heightMax","getSelected","wrapInner","cloneContents","htmlText","positionCaret","escapeEntities","checkIfEmpty","_setHtml","BACKSPACE","TAB","ENTER","SHIFT","CTRL","ALT","ESC","SPACE","DELETE","ZERO","SIX","SEVEN","EIGHT","NINE","FF_SEMICOLON","FF_EQUALS","QUESTION_MARK","F","J","P","Q","V","X","Y","Z","META","NUM_ZERO","NUM_ONE","NUM_TWO","NUM_THREE","NUM_FOUR","NUM_FIVE","NUM_SIX","NUM_SEVEN","NUM_EIGHT","NUM_NINE","NUM_MULTIPLY","NUM_PLUS","NUM_MINUS","NUM_PERIOD","NUM_DIVISION","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","FF_HYPHEN","SEMICOLON","DASH","EQUALS","COMMA","HYPHEN","PERIOD","SLASH","APOSTROPHE","TILDE","SINGLE_QUOTE","OPEN_SQUARE_BRACKET","BACKSLASH","CLOSE_SQUARE_BRACKET","IME","multiLine","deleteContents","modify","bulkRefresh","getBoundingRect","toolbarBottom","toolbarStickyOffset","snapshot","canDo","typingTimer","enable","isCharacter","forceUndo","isIME","isBrowserAction","pastePlain","pasteDeniedTags","pasteDeniedAttrs","pasteAllowedStyleProps","paste","setItem","clipboardData","getData","contentEditable","dataTransfer","getItem","wordPaste","previousElementSibling","linkAlwaysBlank","capture","cleanEmptyTagsAndDivs","getRtfClipboard","saveCopiedText","shortcutsEnabled","shortcutsHint","SHORTCUTS_MAP","RegisterShortcut","cmd","shortcuts","scLoc","scOffset","ecLoc","ecOffset","undo_stack","undoing","undo_index","_content_changed_timer","hideAll","canRedo","dropRedo","reset","syncIframe","documentReady","editorClass","requestWithCORS","requestWithCredentials","iframeStyleFiles","zIndex","disableRightClick","scrollableContainer","theme","drag_support","filereader","FileReader","formdata","FormData","XMLHttpRequest","_original_html","autofocus","getXHR","open","withCredentials","sameInstance","POPUP_TEMPLATES","RegisterTemplate","filesManager","isChildWindowOpen","exit_flag","_windowResize","_inputFocus","_inputBlur","_editorKeydown","findVisible","_preventFocus","originalTarget","hideActiveDropdowns","_editorMouseup","_windowMouseup","_windowKeydown","focusPopupButton","_repositionPopup","image","getEl","editInPopup","colorsStep","bindCommands","registerPopup","outerWidth","at","focusPopup","onHide","setContainer","onRefresh","onShow","setFileListHeight","setPopupDimensions","innerWidth","$f_el","with_kb","nextAllVisible","prevAllVisible","modals","focusEditor","restoreSelection","_tiKeydown","_tiMouseenter","registerToolbar","focusToolbarElement","focusToolbar","focusContent","focusModal","saveSelection","focusModalButton","tooltips","tooltip","$tooltip","TOOLBAR_VISIBLE_BUTTONS","$modal","refreshOnShow","refreshAfterCallback","showOnMobile","displaySelection","defaultSelection","displaySelectionWidth","icon","popup","modal","more_btn","back","hasOptions","popup_buttons","build","buildList","plugin","buildGroup","align","buttonsVisible","showMoreButtons","addButtons","getPosition","ICON_TEMPLATES","font_awesome","font_awesome_5","font_awesome_5r","font_awesome_5l","font_awesome_5b","svg","ICONS","NAME","SVG_KEY","cancel","color","FA5NAME","insertAll","minimize","DefineIconTemplate","DefineIcon","iconsTemplate","template","ICON_DEFAULT_TEMPLATE","PATH","SVG","getTemplate","getFileIcon","FILEICONS","advancedImageEditor","alignCenter","alignJustify","alignLeft","alignRight","anchors","autoplay","backgroundColor","blockquote","cellBackground","cellBorderColor","cellOptions","cellStyle","close","codeView","cogs","columns","exitFullscreen","fileInsert","fileManager","fontAwesome","fontFamily","fontSize","fullscreen","help","horizontalLine","imageAltText","imageCaption","imageClass","imageDisplay","imageManager","imageSize","inlineClass","inlineStyle","insertEmbed","insertFile","insertImage","insertLink","insertMore","insertTable","insertVideo","upload","uploadFiles","lineHeight","linkStyles","mention","more","openLink","orderedList","pageBreaker","paragraphFormat","paragraphMore","paragraphStyle","pdfExport","print","removeTable","replaceImage","row","smile","star","symbols","tableHeader","tableStyle","textColor","textMore","unlink","unorderedList","verticalAlignBottom","verticalAlignMiddle","verticalAlignTop","docIcon","extension","gifIcon","jpegIcon","logIcon","movIcon","ogvIcon","pngIcon","txtIcon","webmIcon","webpIcon","wmvIcon","xlsIcon","xlsxIcon","zipIcon","docxIcon","jpgIcon","mp3Icon","mp4Icon","oggIcon","pdfIcon","defaultIcon","$overlay","$body","resize","scrollHeight","ok","clientWidth","_stickyElements","forSelection","addSticky","attribution","toolbarButtons","toolbarButtonsXS","toolbarButtonsSM","toolbarButtonsMD","toolbarSticky","toolbarVisibleWithoutSelection","TOOLBAR_BUTTONS","TOOLBAR_BUTTONS_MD","TOOLBAR_BUTTONS_SM","TOOLBAR_BUTTONS_XS","POWERED_BY","childElementCount","setInterval","$second_tb","isEqualNode","formatParams","onload","responseText","wrapAll","getCorrectStyleName","getClass","stripAndCollapse","scrollTo","passive","MouseEvent","createEvent","initMouseEvent","initEvent","dispatchEvent","HTMLDocument","_matches","offsetLeft","c_scroll","initialized","paragraphFormatSelection","fontFamilySelection","fontSizeSelection","quickInsertEnabled","charCounterCount","contentWindow","destrying","refreshForToolbar","center","justify","charCounterMax","charCounter","codeBeautifier","indent_size","indent_char","selector_separator_newline","end_with_newline","newline_between_rules","eol","indent_with_tabs","singleSpace","newLine","_lastCharWhitespace","preserveSingleSpace","beautify","newline","lineBreak","allLineBreaks","isIdentifierStart","isIdentifierChar","indentation_level","just_added_newline","line_indent_level","last_text","last_word","declaration_statement","declaration_assignment","multiline_frame","if_block","else_block","do_block","do_while","in_case_statement","in_case","case_body","start_line_index","get_line_number","ternary_depth","TK_START_EXPR","line_starters","space_before_token","space_in_paren","keep_array_indentation","wanted_newline","space_after_anon_function","space_before_conditional","TK_END_EXPR","space_in_empty_paren","remove_redundant_indentation","TK_START_BLOCK","comments_before","brace_style","TK_END_BLOCK","TK_WORD","TK_RESERVED","TK_SEMICOLON","TK_STRING","TK_EQUALS","TK_OPERATOR","TK_COMMA","comma_first","TK_BLOCK_COMMENT","add_raw_token","directives","preserve","test_output_raw","whitespace_before","add_token","TK_COMMENT","TK_DOT","break_chained_methods","TK_UNKNOWN","TK_EOF","braces_on_own_line","preserve_newlines","max_preserve_newlines","jslint_happy","unescape_strings","wrap_line_length","e4x","newlines","current_line","get_character_count","add_new_line","set_indent","previous_line","just_added_blankline","ee","tokenize","get_code","baseIndentLength","indent_length","is_empty","_empty","remove_indent","indent_cache","baseIndentString","indent_string","add_outputline","add_space_before_token","lastIndex","ignore","max_char","indent_inner_html","unformatted","indent_handlebars","wrap_attributes","wrap_attributes_indent_size","extra_liners","token","current_mode","parentcount","parent1","tag_type","token_text","last_token","token_type","indent_content","Utils","whitespace","single_token","in_array","is_whitespace","traverse_whitespace","space_or_wrap","line_char_count","print_newline","print_indentation","get_content","get_tag","get_contents_to","record_tag","indent_level","retrieve_tag","indent_to_tag","get_unformatted","get_comment","is_unformatted","get_token","get_full_indent","printer","indent_character","print_token","print_token_raw","unindent","indent_scripts","codeMirror","CodeMirror","codeMirrorOptions","lineNumbers","tabMode","indentWithTabs","lineWrapping","tabSize","codeBeautifierOptions","codeViewKeepActiveButtons","getValue","setSize","fromTextArea","rows","setValue","setSelection","line","clearHistory","setSelectionRange","toTextArea","isActive","colorsText","colorsBackground","colorsHEXInput","colorsButtons","colors","showColorsPopup","text_colors","custom_color","background_colors","background","customColor","refreshOnCallback","dragInline","draggable","setData","dropEffect","elementFromPoint","$draggable_helper","emoticons","emoticonsSet","desc","uCode","emoticonsButtons","emoticonsUseImage","elementClass","emoticonsUnicodeClass","dataCmd","dataParam1","reduce","compiledCode","dataParam2","setEmoticonCategory","showEmoticonsPopup","custom_layer","emoticonsStep","entities","fileUpload","fileUploadURL","fileUploadParam","fileUploadParams","fileUploadToS3","fileUploadToAzure","fileUploadMethod","fileMaxSize","fileAllowedTypes","fileInsertButtons","fileUseSelectedText","file","responseXML","responseURL","link","lengthComputable","loaded","atob","URL","createObjectURL","Blob","readAsDataURL","uploadURL","region","bucket","encodeURI","account","SASToken","toUTCString","accessKey","cryptoJSPlugin","cryptoJS","HmacSHA256","Base64","onprogress","onabort","upload_layer","progress_bar","files","showInsertPopup","hideProgressBar","filesInsertButtons","filesInsertButtons2","imageEditButtons","imageAltButtons","imageSizeButtons","imageUpload","filesManagerUploadURL","imageCORSProxy","imageUploadRemoteUrls","filesManagerUploadParam","filesManagerUploadParams","googleOptions","filesManagerUploadToS3","filesManagerUploadToAzure","filesManagerUploadMethod","filesManagerMaxSize","filesManagerAllowedTypes","imageResize","imageResizeWithPercent","imageRoundPercent","imageDefaultWidth","imageDefaultAlign","imageDefaultDisplay","imageSplitHTML","imageStyles","imageMove","imageMultipleStyles","imageTextNear","imagePaste","imagePasteProcess","imageMinWidth","imageOutputSize","imageDefaultMargin","imageAddNewLine","VIDEO_PROVIDERS","test_regex","url_regex","url_text","provider","VIDEO_EMBED_REGEX","IMAGE_EMBED_REGEX","Map","Ue","by_url_layer","embed_layer","upload_progress_layer","Ie","$image_resizer","$img_overlay","rt","qe","Ae","dt","frameElement","clientLeft","toFixed","it","Ee","ne","Xe","te","ae","oe","se","le","ce","de","fe","pe","ue","ondrag","he","ondragend","ge","me","weekday","month","toLocaleDateString","log","Ce","be","ve","Be","localName","onloadend","$e","He","Pe","Fe","API_KEY","CLIENT_ID","ye","Te","ke","Le","we","Se","videoMove","video","_editVideo","xe","Re","trimVideoPlugin","trimVideo","imageTUI","launch","apiKey","clientId","authorizeButton","signoutButton","userArea","fileInput","fileIndex","fileContainer","loadingText","onInvalidFile","onError","gapi","client","discoveryDocs","scope","auth2","getAuthInstance","isSignedIn","listen","auth","getToken","access_token","signIn","responseType","lastModifiedDate","readAsArrayBuffer","btoa","request","uploadType","fields","Length","execute","onclick","signOut","handleClientLoad","onreadystatechange","Me","$existing_img","st","videoSplitHTML","videoResponsive","videoDefaultDisplay","videoDefaultAlign","videoDefaultWidth","HAVE_FUTURE_DATA","Oe","Ne","De","msSaveBlob","download","imageInsertButtons","Ke","getDate","getMonth","getFullYear","ze","We","Ve","alt_layer","Ge","Ye","je","size_layer","Ze","Qe","Je","items","getAsFile","et","nt","ot","verticalAlign","marginBottom","minimizePopup","showLayer","refreshUploadButton","refreshByURLButton","insertByURL","videoAllowedProviders","existing_image","insertAllFiles","deleteAllFiles","showProgressBar","showAltPopup","showSizePopup","setAlt","toggleCaption","refreshEmbedButton","hasCaption","exitEdit","cancelFileInsert","file_manager_dialog_open","editImage","saveImage","_showErrorMessage","_showFileErrorMessage","getFileThumbnail","deleteFile","checkAutoplay","checkInsertAllState","_disableInsertCheckbox","_getFileType","setChildWindowState","resetAllFilesCheckbox","Uint32Array","lib","mixIn","$super","WordArray","sigBytes","clamp","Hex","Latin1","Utf8","decodeURIComponent","escape","unescape","BufferedBlockAlgorithm","_data","_nDataBytes","_append","_process","_minBufferSize","_doProcessBlock","Hasher","cfg","_doReset","finalize","_doFinalize","_createHelper","_createHmacHelper","HMAC","_map","_reverseMap","HmacMD5","SHA1","HmacSHA1","Utf16","Utf16BE","Utf16LE","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Float32Array","Float64Array","HmacRIPEMD160","_hasher","_oKey","_iKey","PBKDF2","hasher","compute","EvpKDF","SHA224","HmacSHA224","x64","Word","high","low","toX32","SHA3","outputLength","HmacSHA3","HmacSHA512","SHA384","HmacSHA384","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","_xformMode","ivSize","BlockCipherMode","Encryptor","Decryptor","_iv","_prevBlock","processBlock","Pkcs7","unpad","BlockCipher","__creator","CipherParams","formatter","OpenSSL","ciphertext","SerializableCipher","_parse","kdf","PasswordBasedCipher","AnsiX923","Iso10126","Iso97971","ZeroPadding","_keystream","NoPadding","_keyPriorReset","_doCryptBlock","_subKeys","_invSubKeys","_lBlock","_rBlock","TripleDES","_des1","_des2","_des3","RC4","_S","_j","RC4Drop","drop","CTRGladman","_counter","Rabbit","_X","_C","RabbitLegacy","fontFamilyDefaultSelection","fontSizeDefaultSelection","fontSizeUnit","formEditButtons","formStyles","formMultipleStyles","formUpdateButtons","forms","text_layer","updateInput","getInput","showUpdatePopup","showEditPopup","z_index","helpSets","imageUploadURL","imageUploadParam","imageUploadParams","imageUploadToS3","imageUploadToAzure","imageUploadMethod","imageMaxSize","imageAllowedTypes","clientTop","offsetParent","crossOrigin","getContext","naturalHeight","naturalWidth","drawImage","toDataURL","selectNode","refreshAlign","refreshAlignOnShow","refreshDisplayOnShow","inline","imageAlign","imageManagerLoadURL","imageManagerLoadMethod","imageManagerLoadParams","imageManagerPreloader","imageManagerDeleteURL","imageManagerDeleteMethod","imageManagerDeleteParams","imageManagerPageSize","imageManagerScrollOffset","imageManagerToggleTags","thumb","confirm","require","inlineClasses","inlineStyles","lineBreakerTags","lineBreakerOffset","lineBreakerHorizontalOffset","lineBreaker","inFroalaWrapper","$line_breaker","lineHeights","Default","Single","Double","linkEditButtons","linkInsertButtons","linkAttributes","linkAutoPrefix","linkMultipleStyles","linkConvertEmailAddress","linkAlwaysNoFollow","linkNoOpener","linkNoReferrer","linkList","displayText","linkText","compareBoundaryPoints","END_TO_START","START_TO_END","compareEndPoints","input_layer","rel","usePredefined","insertCallback","allSelected","imageLink","listAdvancedTypes","circle","disc","square","H1","H2","H3","H4","PRE","paragraphDefaultSelection","BLOCKQUOTE","paragraphStyles","paragraphMultipleStyles","html2pdf","print_iframe","media","frames","toPDF","html2canvas","useCORS","quickInsertButtons","quickInsertTags","QUICK_INSERT_BUTTONS","RegisterQuickInsertButton","requiredPlugin","$qi_image_input","quickInsert","prompt","embedly","$quick_insert","$qi_helper","quote","increase","decrease","saveInterval","saveURL","saveParams","saveParam","saveMethod","letteringClass","force","specialCharactersSets","specialCharButtons","specialCharacters","splCharValue","setSpecialCharacterCategory","showSpecialCharsPopup","tableInsertMaxSize","tableEditButtons","tableInsertButtons","tableResizer","tableDefaultWidth","tableResizerOffset","tableResizingLimit","tableColorsButtons","tableColors","tableColorsStep","tableCellStyles","tableStyles","tableCellMultipleStyles","tableMultipleStyles","tableInsertHelper","tableInsertHelperOffset","rows_columns","min_i","max_i","min_j","max_j","$table_resizer","$ti_helper","insertColumn","insertRow","focusOffset","deleteRow","insertAdjacentElement","deleteColumn","mergeCells","splitCellVertically","splitCellHorizontally","addHeader","removeHeader","setBackground","horizontalAlign","selectedTable","selectedCells","selectCells","above","below","tableRows","tableColumns","tableCells","Top","Middle","Bottom","tableCellVerticalAlign","tableCellHorizontalAlign","URLRegEx","videoAllowedTypes","videoEditButtons","videoInsertButtons","videoMaxSize","videoResize","videoSizeButtons","videoTextNear","videoUpload","videoUploadMethod","videoUploadParam","videoUploadParams","videoUploadToS3","videoUploadToAzure","videoUploadURL","currentSrc","$video_resizer","$vid_overlay","vid_exit_flag","dragDrop","setAutoplay","videoAlign","wordDeniedTags","wordDeniedAttrs","wordAllowedStyleProps","wordPasteModal","wordPasteKeepFormatting","image_hex","image_type","getNamedItem","_wordClean","FroalaEditor","$navbarBurgers","dataset","$target","factory","noGlobal","Sizzle","Expr","getText","isXML","compile","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","pushNative","booleans","identifier","pseudos","rwhitespace","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rinputs","rheader","rnative","rsibling","runescape","funescape","nonHex","rcssescape","fcssescape","asCodePoint","unloadHandler","inDisabledFieldset","addCombinator","els","nid","groups","newSelector","newContext","qsa","testContext","toSelector","qsaError","cacheLength","markFunction","addHandle","attrHandle","siblingCheck","sourceIndex","createInputPseudo","createButtonPseudo","createDisabledPseudo","createPositionalPseudo","argument","matchIndexes","namespaceURI","hasCompare","subWindow","attachEvent","createComment","getById","getElementsByName","attrId","getAttributeNode","disconnectedMatch","compareDocumentPosition","adown","bup","sortDetached","aup","ap","bp","specified","duplicates","detectDuplicates","sortStable","createPseudo","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","what","_argument","simple","forward","ofType","_context","uniqueCache","outerCache","nodeIndex","useCache","uniqueID","pseudo","setFilters","idx","matcher","unmatched","lang","elemLang","_matchIndexes","radio","checkbox","submit","tokens","combinator","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","compiled","_name","escapeSelector","_dir","truncate","rerrorNames","rbrace","rmultiDash","dataAttr","_removeData","defaultDisplayMap","getDefaultDisplay","eased","linear","swing","delay","boolHook","attrHooks","bool","attrNames","lowercaseName","classesToArray","classes","curValue","clazz","finalValue","stateVal","isValidValue","classNames","rreturn","valHooks","optionSet","focusin","attaches","htmlIsFunction","visible","xhr","xhrSuccessStatus","xhrSupported","cors","_callback","errorCallback","username","xhrFields","ontimeout","binary","_callback2","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","rect","parentOffset","Height","Width","defaultExtra","funcName","unbind","delegate","undelegate","hover","fnOver","fnOut","proxy","holdReady","hold","parseJSON","isNumeric","_jQuery","_$","noConflict","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","loadCSPNonce","ref","cspNonce","csrfParam","csrfToken","meta","CSRFProtection","refreshCSRFTokens","CustomEvent","initCustomEvent","stopEverything","eventType","AcceptHeaders","createXHR","prepareOptions","processResponse","OPENED","accept","DONE","parser","isCrossDomain","serializeElement","additionalParam","inputs","formElements","form","allowAction","handleConfirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","action","isRemote","handleRemote","enctype","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","rails","_rails_loaded","_sizzle","Turbolinks","supported","history","pushState","visit","controller","clearCache","setProgressBarDelay","copyObject","throttle","uuid","Location","absoluteURL","requestURL","anchor","getOrigin","getPath","getPathComponents","getLastPathComponent","getExtension","isHTML","isPrefixedBy","isEqualTo","toCacheKey","valueOf","HttpRequest","requestCanceled","requestTimedOut","requestFailed","requestLoaded","requestProgressed","referrer","NETWORK_FAILURE","TIMEOUT_FAILURE","sent","notifyApplicationBeforeRequestStart","setProgress","requestStarted","endRequest","requestCompletedWithResponse","failed","requestFailedWithStatusCode","notifyApplicationAfterRequestEnd","requestFinished","ProgressBar","trickle","_t2","stylesheetElement","createStylesheetElement","progressElement","createProgressElement","defaultCSS","installStylesheetElement","installProgressElement","startTrickling","hiding","fadeProgressElement","uninstallProgressElement","stopTrickling","trickleInterval","clearInterval","BrowserAdapter","_t3","progressBar","visitProposedToLocationWithAction","startVisitToLocationWithAction","visitStarted","issueRequest","changeHistory","loadCachedSnapshot","visitRequestStarted","hasCachedSnapshot","showProgressBarAfterDelay","visitRequestProgressed","visitRequestCompleted","loadResponse","visitRequestFailedWithStatusCode","reload","visitRequestFinished","visitCompleted","followRedirect","pageInvalidated","progressBarTimeout","progressBarDelay","_t4","History","onPageLoad","onPopState","started","shouldHandlePopState","turbolinks","restorationIdentifier","historyPoppedToLocationWithRestorationIdentifier","pageLoaded","pageIsLoaded","HeadDetails","tracked","fromHeadElement","hasElementWithKey","getTrackedElementSignature","getScriptElementsNotInDetails","getElementsMatchingTypeNotInDetails","getStylesheetElementsNotInDetails","getProvisionalElements","getMetaValue","findMetaElementByName","Snapshot","headDetails","bodyElement","fromHTMLString","fromHTMLElement","getRootLocation","getSetting","getCacheControlValue","getElementForAnchor","getPermanentElements","getPermanentElementById","getPermanentElementsPresentInSnapshot","findFirstAutofocusableElement","hasAnchor","isPreviewable","isCacheable","isVisitable","Renderer","render","renderView","viewWillRender","newBody","viewRendered","invalidateView","viewInvalidated","createScriptElement","__super__","SnapshotRenderer","currentSnapshot","newSnapshot","isPreview","currentHeadDetails","newHeadDetails","currentBody","shouldRender","mergeHead","replaceBody","focusFirstAutofocusableElement","copyNewHeadStylesheetElements","copyNewHeadScriptElements","removeCurrentHeadProvisionalElements","copyNewHeadProvisionalElements","relocateCurrentBodyPermanentElements","activateNewBodyScriptElements","assignNewBody","replacePlaceholderElementsWithClonedPermanentElements","trackedElementsAreIdentical","getNewHeadStylesheetElements","getNewHeadScriptElements","getCurrentHeadProvisionalElements","getNewHeadProvisionalElements","getCurrentBodyPermanentElements","permanentElement","getNewBodyScriptElements","_t5","_t6","ErrorRenderer","newHead","replaceHeadAndBody","activateBodyScriptElements","getScriptElements","View","htmlElement","getSnapshot","markAsPreview","renderSnapshot","renderError","ScrollManager","onScroll","_t7","scrollToElement","scrollIntoView","scrollToPosition","updatePosition","scrollPositionChanged","SnapshotCache","snapshots","touch","put","Visit","performScroll","_t8","adapter","timingMetrics","recordTimingMetric","cancelRender","visitFailed","historyChanged","shouldIssueRequest","getCachedSnapshot","getCachedSnapshotForLocation","cacheSnapshot","visitRendered","redirectedToLocation","followedRedirect","replaceHistoryWithLocationAndRestorationIdentifier","scrolled","scrollToRestoredPosition","scrollToTop","scrollToAnchor","restorationData","scrollPosition","getTimingMetrics","snapshotCached","frame","cancelAnimationFrame","_t9","Controller","clickBubbled","clickCaptured","scrollManager","startHistory","enabled","stopHistory","applicationAllowsVisitingLocation","locationIsVisitable","getRestorationDataForIdentifier","startVisit","pushHistoryWithLocationAndRestorationIdentifier","shouldCacheSnapshot","notifyApplicationBeforeCachingSnapshot","lastRenderedLocation","getCurrentRestorationData","notifyApplicationBeforeRender","currentVisit","notifyApplicationAfterRender","notifyApplicationAfterPageLoad","clickEventIsSignificant","getVisitableLinkForNode","getVisitableLocationForLink","applicationAllowsFollowingLinkToLocation","getActionForLink","notifyApplicationAfterClickingLinkToLocation","notifyApplicationBeforeVisitingLocation","notifyApplicationAfterVisitingLocation","timing","createVisit","isContentEditable","nodeIsVisitable","currentScript","sparkMd5","createCommonjsModule","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","md51_array","rhex","hex","toUtf8","utf8Str2ArrayBuffer","returnUInt8Array","buff","arrayBuffer2Utf8Str","concatenateArrayBuffers","hexToBinaryString","SparkMD5","targetArray","sourceArray","begin","appendBinary","_buff","_finish","getState","setState","hashBinary","classCallCheck","instance","Constructor","createClass","defineProperties","descriptor","protoProps","staticProps","fileSlice","File","mozSlice","webkitSlice","FileChecksum","chunkSize","chunkCount","chunkIndex","md5Buffer","fileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","findElement","eventInit","toArray$1","BlobRecord","checksum","filename","content_type","byte_size","requestDidLoad","requestDidError","blob","direct_upload","directUploadData","_xhr","BlobUpload","_blob$directUploadDat","DirectUpload","methodName","messages","DirectUploadController","directUpload","hiddenInput","dispatchError","signed_id","alert","uploadRequestDidProgress","DirectUploadsController","controllers","createDirectUploadControllers","startNextController","processingAttribute","submitButtonsByForm","WeakMap","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","delete","submitForm","ActiveStorage","channels","webpackEmptyContext","rng","pseudoRandomBytes","prng","createHmac","algos","algoKeys","hashes","getHashes","DiffieHellmanGroup","createDiffieHellmanGroup","getDiffieHellman","createDiffieHellman","DiffieHellman","createSign","Sign","createVerify","Verify","createECDH","publicEncrypt","privateEncrypt","publicDecrypt","privateDecrypt","rf","randomFill","randomFillSync","createCredentials","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","maxChunkLength","len2","encodeChunk","lookup","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","LN2","pipeline","enumerableOnly","sym","getOwnPropertyDescriptor","_defineProperty","_defineProperties","custom","_classCallCheck","_getString","_getBuffer","getOwnPropertyDescriptors","_objectSpread","customInspect","_Object$setPrototypeO","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","iter","onReadable","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","setPrototypeOf","lastPromise","wrapForNext","_Object$create","ERR_MISSING_ARGS","destroyer","closed","popCallback","streams","destroys","Sha","rotl30","ft","Sha1","rotl5","Sha224","Sha384","EE","_isStdio","didOnEnd","cleanup","Timeout","clearFn","_id","_clearFn","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","clearImmediate","registerImmediate","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","runIfPresent","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","task","ZERO_BUF","subtle","toBrowser","checks","getNextTick","queueMicrotask","browserPbkdf2","importKey","deriveBits","resolvePromise","prom","checkNative","resp","aesModes","desModes","ebtk","suite","des","instantiate","EDE","modeName","_des","des3","CBCState","_cbcInit","_cbcState","superProto","EDEState","k3","_edeState","MODES","AuthCipher","Splitter","_autopadding","PADDING","setTo","padBuff","encryptStart","encryptByte","byteParam","shiftIn","ZEROES","fromArray","_multiply","lsbVi","Vi","Zi","abl","_last","padded","autoPadding","DH","ENCODINGS","generator","genc","generatePrime","setPublicKey","pub","_pub","setPrivateKey","_priv","primeCache","malleable","setGenerator","__prime","_primeLen","_primeCode","formatReturnValue","checkPrime","__gen","generateKeys","_gen","getPublicKey","computeSecret","other","secret","getPrime","front","getPrivateKey","getGenerator","verify","algorithms","_hashType","_tag","_signType","sig","EC","getKey","hlen","hbits","bits2int","bits2octets","obits","makeKey","kv","makeR","hashType","signType","curveId","keyFromPrivate","toDER","ecSign","dsaSign","ShortCurve","tinv","zeroA","threeA","endo","_getEndomorphism","_endoWnafT1","_endoWnafT2","Point","isRed","inf","JPoint","zOne","betas","_getEndoRoots","lambdas","vec","_getEndoBasis","ntinv","prevR","aprxSqrt","y1","y2","len1","_endoSplit","v1","v2","p1","p2","q1","q2","ax","rhs","_endoWnafMulAdd","npoints","ncoeffs","fromJSON","endoMul","obj2point","nx","ny","ys1","dyinv","mulAdd","jmulAdd","_precompute","negate","zinv","zinv2","ay","pz2","z2","h2","h3","nz","jx","jy","jz","jz4","jyd","jx2","jyd2","jyd4","dny","_zeroDbl","_threeDbl","_dbl","xx","yy","yyyy","yyyy8","c8","gamma","alpha","beta4","beta8","ggamma8","jy2","jxd4","jyd8","trpl","zz","mm","yyu4","kbase","z3","pz3","eqXToP","zs","xc","MontCurve","i4","a24","aa","bb","diffAdd","da","jumlAdd","EdwardsCurve","twisted","mOneA","dd","oneC","_mulA","_mulC","lhs","pointFromY","_extDbl","_projDbl","_extAdd","_projAdd","zi","sha1_K","Kh","Ah","Bh","Dh","Eh","rh","sh","inner","outer","HmacDRBG","KeyPair","Signature","nh","keyPair","fromPrivate","keyFromPublic","fromPublic","genKeyPair","drbg","pers","persEnc","entropy","entropyEnc","ns2","_truncateToN","truncOnly","bkey","getPrivate","ns1","kp","kpX","recoveryParam","canonical","sinv","getPublic","recoverPubKey","isYOdd","isSecondKey","rInv","getKeyRecoveryParam","Qprime","predResist","minEntropy","_reseed","reseedInterval","nonceEnc","_hmac","kmac","reseed","addEnc","_importPrivate","privEnc","_importPublic","pubEnc","reason","derive","_importDER","Position","getLength","octetLen","rmPadding","constructLength","octets","slen","backHalf","EDDSA","pointClass","encodingLength","keyFromSecret","hashInt","Rencoded","encodePoint","s_","pubBytes","makeSignature","SG","fromSecret","lastIx","normed","xIsOdd","encodeInt","decodeInt","isPoint","_secret","_pubBytes","privBytes","getSecret","_R","_Rencoded","_Sencoded","Sencoded","toBytes","seq","int","AlgorithmIdentifier","bitstr","null_","PrivateKeyInfo","octstr","EncryptedPrivateKeyInfo","ECParameters","namedCurve","Entity","_createNamed","Generated","_initNamed","PEMEncoder","label","PEMDecoder","lines","_reverse","asn","Time","utcTime","utctime","generalTime","gentime","AttributeTypeValue","SubjectPublicKeyInfo","RelativeDistinguishedName","setof","RDNSequence","seqof","Name","rdnSequence","Validity","Extension","TBSCertificate","X509Certificate","findProc","startRegex","fullRegex","evp","okey","decrypted","cipherKey","match2","checkValue","pubkey","ecVerify","unpacked","montp","dsaVerify","padNum","ECDH","aliases","secp256k1","secp224r1","prime256v1","prime192v1","ed25519","secp384r1","secp521r1","curveType","p256","secp256r1","secp192r1","p384","p521","inenc","mgf","withPublic","publicKey","iHash","hLen2","ps","dblen","maskedDb","maskedSeed","oaep","nonZero","pkcs1","zBuffer","db","dif","oldBrowser","safeBuffer","randombytes","kBufferMaxLength","kMaxUint32","assertOffset","actualFill","ourBuf","uint"],"mappings":"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AAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,E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CACDzyG,KAAM,QACNyyG,KAAM,kCACL,CACDzyG,KAAM,QACNyyG,KAAM,iCACL,CACDzyG,KAAM,QACNyyG,KAAM,gCACL,CACDzyG,KAAM,QACNyyG,KAAM,uCACL,CACDzyG,KAAM,QACNyyG,KAAM,wBACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,kCACL,CACDzyG,KAAM,QACNyyG,KAAM,iCACL,CACDzyG,KAAM,OACNyyG,KAAM,sBACL,CACDzyG,KAAM,QACNyyG,KAAM,yBACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,uBACL,CACDzyG,KAAM,QACNyyG,KAAM,sBACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,QACNyyG,KAAM,oBACL,CACDzyG,KAAM,QACNyyG,KAAM,kCACL,CACDzyG,KAAM,QACNyyG,KAAM,wBACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,QACNyyG,KAAM,8BACL,CACDzyG,KAAM,QACNyyG,KAAM,8CACL,CACDzyG,KAAM,QACNyyG,KAAM,sDACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,QACNyyG,KAAM,wBACL,CACDzyG,KAAM,QACNyyG,KAAM,wBACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,QACNyyG,KAAM,oBACL,CACDzyG,KAAM,QACNyyG,KAAM,mBACL,CACDzyG,KAAM,QACNyyG,KAAM,qBACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,6BACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,sBACL,CACDzyG,KAAM,QACNyyG,KAAM,iCACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,uCACL,CACDzyG,KAAM,QACNyyG,KAAM,0BACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,0BACL,CACDzyG,KAAM,QACNyyG,KAAM,0BACL,CACDzyG,KAAM,QACNyyG,KAAM,2BACL,CACDzyG,KAAM,QACNyyG,KAAM,OACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,QACNyyG,KAAM,mBACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,0BACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,oCACL,CACDzyG,KAAM,QACNyyG,KAAM,uCACL,CACDzyG,KAAM,QACNyyG,KAAM,8BACL,CACDzyG,KAAM,QACNyyG,KAAM,2CACL,CACDzyG,KAAM,QACNyyG,KAAM,2BACL,CACDzyG,KAAM,QACNyyG,KAAM,qCACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,mBACL,CACDzyG,KAAM,QACNyyG,KAAM,oBACL,CACDzyG,KAAM,QACNyyG,KAAM,sBACL,CACDzyG,KAAM,QACNyyG,KAAM,uBACL,CACDzyG,KAAM,QACNyyG,KAAM,wBACL,CACDzyG,KAAM,QACNyyG,KAAM,QACL,CACDzyG,KAAM,QACNyyG,KAAM,OACL,CACDzyG,KAAM,QACNyyG,KAAM,QACL,CACDzyG,KAAM,QACNyyG,KAAM,OACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,wBACL,CACDzyG,KAAM,QACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,mBACL,CACDzyG,KAAM,QACNyyG,KAAM,uBACL,CACDzyG,KAAM,QACNyyG,KAAM,0BACL,CACDzyG,KAAM,QACNyyG,KAAM,mBACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,oBACL,CACDzyG,KAAM,QACNyyG,KAAM,4BACL,CACDzyG,KAAM,QACNyyG,KAAM,6BACL,CACDzyG,KAAM,QACNyyG,KAAM,wBACL,CACDzyG,KAAM,QACNyyG,KAAM,2BACL,CACDzyG,KAAM,QACNyyG,KAAM,iCACL,CACDzyG,KAAM,QACNyyG,KAAM,wBACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,yBACL,CACDzyG,KAAM,QACNyyG,KAAM,QACL,CACDzyG,KAAM,QACNyyG,KAAM,sBACL,CACDzyG,KAAM,QACNyyG,KAAM,uBACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,sBACL,CACDzyG,KAAM,QACNyyG,KAAM,gCACL,CACDzyG,KAAM,QACNyyG,KAAM,yBACL,CACDzyG,KAAM,QACNyyG,KAAM,2BACL,CACDzyG,KAAM,QACNyyG,KAAM,QACL,CACDzyG,KAAM,yBACN0yG,MAAO,qEACPD,KAAM,gBACL,CACDzyG,KAAM,yBACN0yG,MAAO,mDACPD,KAAM,oBACL,CACDzyG,KAAM,QACNyyG,KAAM,qBACL,CACDzyG,KAAM,mBACN0yG,MAAO,mDACPD,KAAM,iBACL,CACDzyG,KAAM,mBACN0yG,MAAO,mDACPD,KAAM,qBACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,oBACNyyG,KAAM,kBACL,CACDzyG,KAAM,0BACNyyG,KAAM,sBACL,CACDzyG,KAAM,0BACNyyG,KAAM,qBACL,CACDzyG,KAAM,0BACNyyG,KAAM,uBACL,CACDzyG,KAAM,oBACNyyG,KAAM,eACL,CACDzyG,KAAM,oBACNyyG,KAAM,gBACL,CACDzyG,KAAM,0BACNyyG,KAAM,oBACL,CACDzyG,KAAM,0BACNyyG,KAAM,mBACL,CACDzyG,KAAM,oBACNyyG,KAAM,mBACL,CACDzyG,KAAM,oBACNyyG,KAAM,oBACL,CACDzyG,KAAM,0BACNyyG,KAAM,wBACL,CACDzyG,KAAM,0BACNyyG,KAAM,yBACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,QACNyyG,KAAM,sCACL,CACDzyG,KAAM,QACNyyG,KAAM,uCACL,CACDzyG,KAAM,QACNyyG,KAAM,oCACL,CACDzyG,KAAM,QACNyyG,KAAM,sCACL,CACDzyG,KAAM,OACNyyG,KAAM,gBACL,CACDzyG,KAAM,OACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,oBACL,CACDzyG,KAAM,OACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,oBACL,CACDzyG,KAAM,QACNyyG,KAAM,oBACL,CACDzyG,KAAM,QACNyyG,KAAM,uBACL,CACDzyG,KAAM,QACNyyG,KAAM,oBACL,CACDzyG,KAAM,QACNyyG,KAAM,4CACL,CACDzyG,KAAM,QACNyyG,KAAM,4BACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,OACL,CACDzyG,KAAM,QACNyyG,KAAM,QACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,QACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,oBACL,CACDzyG,KAAM,OACNyyG,KAAM,qBACL,CACDzyG,KAAM,QACNyyG,KAAM,qBACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,oBACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,qBACL,CACDzyG,KAAM,QACNyyG,KAAM,oBACL,CACDzyG,KAAM,QACNyyG,KAAM,oBACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,mBACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,QACL,CACDzyG,KAAM,QACNyyG,KAAM,oBACL,CACDzyG,KAAM,QACNyyG,KAAM,0BACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,mBACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,QACNyyG,KAAM,oBACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,QACL,CACDzyG,KAAM,QACNyyG,KAAM,eAEP,CACD5+B,GAAI,SACJx6E,KAAM,mBACN2G,KAAM,QACNuyG,UAAW,CAAC,CACVvyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,OACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,OACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,MACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,QACNyyG,KAAM,OACL,CACDzyG,KAAM,QACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,OACL,CACDzyG,KAAM,QACNyyG,KAAM,QACL,CACDzyG,KAAM,QACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,OACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,QACL,CACDzyG,KAAM,QACNyyG,KAAM,mBACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,OACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,2BACL,CACDzyG,KAAM,QACNyyG,KAAM,QACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,QACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,QACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,OACL,CACDzyG,KAAM,QACNyyG,KAAM,OACL,CACDzyG,KAAM,QACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,QACL,CACDzyG,KAAM,QACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,QACL,CACDzyG,KAAM,OACNyyG,KAAM,oBACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,6BAEP,CACD5+B,GAAI,QACJx6E,KAAM,eACN2G,KAAM,QACNuyG,UAAW,CAAC,CACVvyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,QACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,wBACL,CACDzyG,KAAM,QACNyyG,KAAM,QACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,+BACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,OACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,yBACL,CACDzyG,KAAM,QACNyyG,KAAM,uBACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,sBACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,WAEP,CACD5+B,GAAI,WACJx6E,KAAM,aACN2G,KAAM,QACNuyG,UAAW,CAAC,CACVvyG,KAAM,QACNyyG,KAAM,mBACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,qBACL,CACDzyG,KAAM,OACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,QACNyyG,KAAM,mBACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,yBACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,mBACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,OACNyyG,KAAM,eACL,CACDzyG,KAAM,OACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,uBACL,CACDzyG,KAAM,QACNyyG,KAAM,qBACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,2BACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,OACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,yBACL,CACDzyG,KAAM,QACNyyG,KAAM,2BACL,CACDzyG,KAAM,QACNyyG,KAAM,oBACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,YACL,CACDzyG,KAAM,OACNyyG,KAAM,oBACL,CACDzyG,KAAM,OACNyyG,KAAM,oBACL,CACDzyG,KAAM,OACNyyG,KAAM,sBACL,CACDzyG,KAAM,OACNyyG,KAAM,mBACL,CACDzyG,KAAM,QACNyyG,KAAM,4BACL,CACDzyG,KAAM,QACNyyG,KAAM,2BACL,CACDzyG,KAAM,QACNyyG,KAAM,0BAEP,CACD5+B,GAAI,SACJx6E,KAAM,kBACN2G,KAAM,QACNuyG,UAAW,CAAC,CACVvyG,KAAM,QACNyyG,KAAM,6BACL,CACDzyG,KAAM,QACNyyG,KAAM,wBACL,CACDzyG,KAAM,QACNyyG,KAAM,8BACL,CACDzyG,KAAM,QACNyyG,KAAM,wBACL,CACDzyG,KAAM,QACNyyG,KAAM,uBACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,qBACL,CACDzyG,KAAM,QACNyyG,KAAM,mBACL,CACDzyG,KAAM,QACNyyG,KAAM,wBACL,CACDzyG,KAAM,QACNyyG,KAAM,wBACL,CACDzyG,KAAM,QACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,QACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,qBACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,oBACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,mBACL,CACDzyG,KAAM,QACNyyG,KAAM,mBACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,qBACL,CACDzyG,KAAM,OACNyyG,KAAM,UACL,CACDzyG,KAAM,OACNyyG,KAAM,YACL,CACDzyG,KAAM,OACNyyG,KAAM,QACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,oBACL,CACDzyG,KAAM,QACNyyG,KAAM,0BACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,qBACL,CACDzyG,KAAM,QACNyyG,KAAM,yBACL,CACDzyG,KAAM,QACNyyG,KAAM,mBACL,CACDzyG,KAAM,OACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,mBACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,oBACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,oBACL,CACDzyG,KAAM,QACNyyG,KAAM,qCACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,QACL,CACDzyG,KAAM,QACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,oBACL,CACDzyG,KAAM,QACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,OACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,uBACL,CACDzyG,KAAM,QACNyyG,KAAM,QACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,uBACL,CACDzyG,KAAM,QACNyyG,KAAM,wBACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,qBACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,YACL,CACDzyG,KAAM,OACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,+BACL,CACDzyG,KAAM,QACNyyG,KAAM,4BACL,CACDzyG,KAAM,QACNyyG,KAAM,0BACL,CACDzyG,KAAM,QACNyyG,KAAM,qBACL,CACDzyG,KAAM,OACNyyG,KAAM,UACL,CACDzyG,KAAM,OACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,QACL,CACDzyG,KAAM,OACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,QACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,sBACL,CACDzyG,KAAM,QACNyyG,KAAM,qBACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,QACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,OACNyyG,KAAM,aACL,CACDzyG,KAAM,OACNyyG,KAAM,+BACL,CACDzyG,KAAM,OACNyyG,KAAM,SACL,CACDzyG,KAAM,OACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,4BACL,CACDzyG,KAAM,QACNyyG,KAAM,4BACL,CACDzyG,KAAM,QACNyyG,KAAM,yBACL,CACDzyG,KAAM,QACNyyG,KAAM,yBACL,CACDzyG,KAAM,QACNyyG,KAAM,yBACL,CACDzyG,KAAM,QACNyyG,KAAM,yBACL,CACDzyG,KAAM,QACNyyG,KAAM,2BACL,CACDzyG,KAAM,QACNyyG,KAAM,2BACL,CACDzyG,KAAM,QACNyyG,KAAM,0BACL,CACDzyG,KAAM,QACNyyG,KAAM,0BACL,CACDzyG,KAAM,QACNyyG,KAAM,0BACL,CACDzyG,KAAM,QACNyyG,KAAM,0BACL,CACDzyG,KAAM,QACNyyG,KAAM,yBACL,CACDzyG,KAAM,QACNyyG,KAAM,yBACL,CACDzyG,KAAM,QACNyyG,KAAM,2BACL,CACDzyG,KAAM,QACNyyG,KAAM,2BACL,CACDzyG,KAAM,QACNyyG,KAAM,2BACL,CACDzyG,KAAM,QACNyyG,KAAM,2BACL,CACDzyG,KAAM,QACNyyG,KAAM,0BACL,CACDzyG,KAAM,QACNyyG,KAAM,0BACL,CACDzyG,KAAM,QACNyyG,KAAM,yBACL,CACDzyG,KAAM,QACNyyG,KAAM,yBACL,CACDzyG,KAAM,QACNyyG,KAAM,4BACL,CACDzyG,KAAM,QACNyyG,KAAM,4BACL,CACDzyG,KAAM,QACNyyG,KAAM,mBACL,CACDzyG,KAAM,QACNyyG,KAAM,+BACL,CACDzyG,KAAM,QACNyyG,KAAM,6BACL,CACDzyG,KAAM,QACNyyG,KAAM,8BACL,CACDzyG,KAAM,QACNyyG,KAAM,oBACL,CACDzyG,KAAM,QACNyyG,KAAM,8BACL,CACDzyG,KAAM,QACNyyG,KAAM,4BACL,CACDzyG,KAAM,QACNyyG,KAAM,+BACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,QACNyyG,KAAM,sBACL,CACDzyG,KAAM,QACNyyG,KAAM,gCACL,CACDzyG,KAAM,QACNyyG,KAAM,+BACL,CACDzyG,KAAM,OACNyyG,KAAM,uBACL,CACDzyG,KAAM,QACNyyG,KAAM,uBACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,OACNyyG,KAAM,qBACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,OACNyyG,KAAM,SACL,CACDzyG,KAAM,OACNyyG,KAAM,oBACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,mBACL,CACDzyG,KAAM,OACNyyG,KAAM,4BACL,CACDzyG,KAAM,OACNyyG,KAAM,qBACL,CACDzyG,KAAM,OACNyyG,KAAM,aACL,CACDzyG,KAAM,OACNyyG,KAAM,wBACL,CACDzyG,KAAM,QACNyyG,KAAM,QACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,gBAEP,CACD5+B,GAAI,UACJx6E,KAAM,UACN2G,KAAM,QACNuyG,UAAW,CAAC,CACVvyG,KAAM,QACNyyG,KAAM,oCACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,+BACL,CACDzyG,KAAM,QACNyyG,KAAM,iCACL,CACDzyG,KAAM,QACNyyG,KAAM,8BACL,CACDzyG,KAAM,QACNyyG,KAAM,sBACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,QACL,CACDzyG,KAAM,QACNyyG,KAAM,iCACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,0BACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,oBACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,8CACL,CACDzyG,KAAM,OACNyyG,KAAM,mBACL,CACDzyG,KAAM,QACNyyG,KAAM,sBACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,QACNyyG,KAAM,qBACL,CACDzyG,KAAM,QACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,OACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,QACNyyG,KAAM,kCACL,CACDzyG,KAAM,QACNyyG,KAAM,mCACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,qBACL,CACDzyG,KAAM,QACNyyG,KAAM,uBACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,mBACL,CACDzyG,KAAM,QACNyyG,KAAM,kCACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,QACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,QACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,0BACL,CACDzyG,KAAM,QACNyyG,KAAM,6BACL,CACDzyG,KAAM,QACNyyG,KAAM,2BACL,CACDzyG,KAAM,QACNyyG,KAAM,4BACL,CACDzyG,KAAM,QACNyyG,KAAM,oBACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,yCACL,CACDzyG,KAAM,QACNyyG,KAAM,qBACL,CACDzyG,KAAM,QACNyyG,KAAM,qBACL,CACDzyG,KAAM,OACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,QACNyyG,KAAM,qBACL,CACDzyG,KAAM,QACNyyG,KAAM,uCACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,mCACL,CACDzyG,KAAM,QACNyyG,KAAM,oCACL,CACDzyG,KAAM,QACNyyG,KAAM,iCACL,CACDzyG,KAAM,QACNyyG,KAAM,kCACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,OACNyyG,KAAM,UACL,CACDzyG,KAAM,OACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,QACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,oBACL,CACDzyG,KAAM,QACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,qBACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,4BACL,CACDzyG,KAAM,QACNyyG,KAAM,8BACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,oBACL,CACDzyG,KAAM,OACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,QACL,CACDzyG,KAAM,QACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,qBACL,CACDzyG,KAAM,QACNyyG,KAAM,wBACL,CACDzyG,KAAM,QACNyyG,KAAM,OACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,QACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,SACL,CACDzyG,KAAM,QACNyyG,KAAM,kBAEP,CACD5+B,GAAI,UACJx6E,KAAM,UACN2G,KAAM,QACNuyG,UAAW,CAAC,CACVvyG,KAAM,QACNyyG,KAAM,4BACL,CACDzyG,KAAM,QACNyyG,KAAM,kCACL,CACDzyG,KAAM,QACNyyG,KAAM,wBACL,CACDzyG,KAAM,OACNyyG,KAAM,qBACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,QACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,oBACL,CACDzyG,KAAM,QACNyyG,KAAM,WACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,OACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,qBACL,CACDzyG,KAAM,OACNyyG,KAAM,YACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,qBACL,CACDzyG,KAAM,QACNyyG,KAAM,wBACL,CACDzyG,KAAM,QACNyyG,KAAM,4BACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,oBACL,CACDzyG,KAAM,QACNyyG,KAAM,gCACL,CACDzyG,KAAM,OACNyyG,KAAM,uBACL,CACDzyG,KAAM,OACNyyG,KAAM,oBACL,CACDzyG,KAAM,OACNyyG,KAAM,0BACL,CACDzyG,KAAM,OACNyyG,KAAM,oBACL,CACDzyG,KAAM,OACNyyG,KAAM,yBACL,CACDzyG,KAAM,OACNyyG,KAAM,oBACL,CACDzyG,KAAM,OACNyyG,KAAM,yBACL,CACDzyG,KAAM,OACNyyG,KAAM,oBACL,CACDzyG,KAAM,OACNyyG,KAAM,iBACL,CACDzyG,KAAM,OACNyyG,KAAM,oBACL,CACDzyG,KAAM,OACNyyG,KAAM,6BACL,CACDzyG,KAAM,OACNyyG,KAAM,8BACL,CACDzyG,KAAM,OACNyyG,KAAM,kDACL,CACDzyG,KAAM,OACNyyG,KAAM,oDACL,CACDzyG,KAAM,QACNyyG,KAAM,sDACL,CACDzyG,KAAM,QACNyyG,KAAM,0DACL,CACDzyG,KAAM,QACNyyG,KAAM,mCACL,CACDzyG,KAAM,QACNyyG,KAAM,kCACL,CACDzyG,KAAM,QACNyyG,KAAM,wDACL,CACDzyG,KAAM,QACNyyG,KAAM,oCACL,CACDzyG,KAAM,QACNyyG,KAAM,gCACL,CACDzyG,KAAM,QACNyyG,KAAM,oCACL,CACDzyG,KAAM,OACNyyG,KAAM,SACL,CACDzyG,KAAM,OACNyyG,KAAM,UACL,CACDzyG,KAAM,OACNyyG,KAAM,UACL,CACDzyG,KAAM,OACNyyG,KAAM,UACL,CACDzyG,KAAM,OACNyyG,KAAM,OACL,CACDzyG,KAAM,OACNyyG,KAAM,SACL,CACDzyG,KAAM,OACNyyG,KAAM,SACL,CACDzyG,KAAM,OACNyyG,KAAM,YACL,CACDzyG,KAAM,OACNyyG,KAAM,eACL,CACDzyG,KAAM,OACNyyG,KAAM,aACL,CACDzyG,KAAM,OACNyyG,KAAM,YACL,CACDzyG,KAAM,OACNyyG,KAAM,UACL,CACDzyG,KAAM,OACNyyG,KAAM,aACL,CACDzyG,KAAM,QACNyyG,KAAM,6BACL,CACDzyG,KAAM,QACNyyG,KAAM,yDACL,CACDzyG,KAAM,QACNyyG,KAAM,kFACL,CACDzyG,KAAM,OACNyyG,KAAM,iCACL,CACDzyG,KAAM,OACNyyG,KAAM,wCACL,CACDzyG,KAAM,OACNyyG,KAAM,gCACL,CACDzyG,KAAM,OACNyyG,KAAM,uCACL,CACDzyG,KAAM,QACNyyG,KAAM,kCACL,CACDzyG,KAAM,OACNyyG,KAAM,qCACL,CACDzyG,KAAM,QACNyyG,KAAM,oCACL,CACDzyG,KAAM,OACNyyG,KAAM,uCACL,CACDzyG,KAAM,QACNyyG,KAAM,UACL,CACDzyG,KAAM,QACNyyG,KAAM,yBACL,CACDzyG,KAAM,QACNyyG,KAAM,0BACL,CACDzyG,KAAM,QACNyyG,KAAM,qBACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,oBACL,CACDzyG,KAAM,OACNyyG,KAAM,oCACL,CACDzyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,gCACL,CACDzyG,KAAM,OACNyyG,KAAM,sBACL,CACDzyG,KAAM,OACNyyG,KAAM,0BACL,CACDzyG,KAAM,OACNyyG,KAAM,yBACL,CACDzyG,KAAM,OACNyyG,KAAM,oBACL,CACDzyG,KAAM,OACNyyG,KAAM,0BACL,CACDzyG,KAAM,OACNyyG,KAAM,cACL,CACDzyG,KAAM,OACNyyG,KAAM,+BACL,CACDzyG,KAAM,OACNyyG,KAAM,mBACL,CACDzyG,KAAM,OACNyyG,KAAM,oBACL,CACDzyG,KAAM,OACNyyG,KAAM,uBACL,CACDzyG,KAAM,OACNyyG,KAAM,cACL,CACDzyG,KAAM,OACNyyG,KAAM,qBACL,CACDzyG,KAAM,OACNyyG,KAAM,yBACL,CACDzyG,KAAM,OACNyyG,KAAM,yBACL,CACDzyG,KAAM,OACNyyG,KAAM,4BACL,CACDzyG,KAAM,OACNyyG,KAAM,WACL,CACDzyG,KAAM,OACNyyG,KAAM,2BACL,CACDzyG,KAAM,OACNyyG,KAAM,6BACL,CACDzyG,KAAM,OACNyyG,KAAM,gCACL,CACDzyG,KAAM,OACNyyG,KAAM,gCACL,CACDzyG,KAAM,OACNyyG,KAAM,mCACL,CACDzyG,KAAM,OACNyyG,KAAM,iCACL,CACDzyG,KAAM,OACNyyG,KAAM,aACL,CACDzyG,KAAM,OACNyyG,KAAM,mBACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,yBACL,CACDzyG,KAAM,QACNyyG,KAAM,0CACL,CACDzyG,KAAM,QACNyyG,KAAM,wCACL,CACDzyG,KAAM,QACNyyG,KAAM,4BACL,CACDzyG,KAAM,QACNyyG,KAAM,4BACL,CACDzyG,KAAM,QACNyyG,KAAM,kCACL,CACDzyG,KAAM,QACNyyG,KAAM,2CACL,CACDzyG,KAAM,QACNyyG,KAAM,uBACL,CACDzyG,KAAM,QACNyyG,KAAM,2CACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,OACNyyG,KAAM,sBACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,OACNyyG,KAAM,kCACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,2CACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,2CACL,CACDzyG,KAAM,QACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,oCACL,CACDzyG,KAAM,QACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,yBACL,CACDzyG,KAAM,QACNyyG,KAAM,uBACL,CACDzyG,KAAM,QACNyyG,KAAM,sCACL,CACDzyG,KAAM,QACNyyG,KAAM,sCACL,CACDzyG,KAAM,QACNyyG,KAAM,sCACL,CACDzyG,KAAM,QACNyyG,KAAM,+BACL,CACDzyG,KAAM,QACNyyG,KAAM,sCACL,CACDzyG,KAAM,QACNyyG,KAAM,sCACL,CACDzyG,KAAM,QACNyyG,KAAM,sCACL,CACDzyG,KAAM,QACNyyG,KAAM,4BACL,CACDzyG,KAAM,QACNyyG,KAAM,sCACL,CACDzyG,KAAM,QACNyyG,KAAM,sCACL,CACDzyG,KAAM,QACNyyG,KAAM,sCACL,CACDzyG,KAAM,OACNyyG,KAAM,oCACL,CACDzyG,KAAM,OACNyyG,KAAM,4BACL,CACDzyG,KAAM,QACNyyG,KAAM,sCACL,CACDzyG,KAAM,QACNyyG,KAAM,sCACL,CACDzyG,KAAM,OACNyyG,KAAM,sBACL,CACDzyG,KAAM,OACNyyG,KAAM,sBACL,CACDzyG,KAAM,OACNyyG,KAAM,uBACL,CACDzyG,KAAM,OACNyyG,KAAM,uBACL,CACDzyG,KAAM,OACNyyG,KAAM,6BACL,CACDzyG,KAAM,OACNyyG,KAAM,6BACL,CACDzyG,KAAM,OACNyyG,KAAM,sBACL,CACDzyG,KAAM,OACNyyG,KAAM,sBACL,CACDzyG,KAAM,QACNyyG,KAAM,wBACL,CACDzyG,KAAM,QACNyyG,KAAM,sBACL,CACDzyG,KAAM,QACNyyG,KAAM,wBACL,CACDzyG,KAAM,QACNyyG,KAAM,sBACL,CACDzyG,KAAM,QACNyyG,KAAM,4BACL,CACDzyG,KAAM,QACNyyG,KAAM,8BACL,CACDzyG,KAAM,QACNyyG,KAAM,mCACL,CACDzyG,KAAM,QACNyyG,KAAM,gBACL,CACDzyG,KAAM,QACNyyG,KAAM,uBACL,CACDzyG,KAAM,QACNyyG,KAAM,uBACL,CACDzyG,KAAM,OACNyyG,KAAM,uBACL,CACDzyG,KAAM,OACNyyG,KAAM,uBACL,CACDzyG,KAAM,QACNyyG,KAAM,oBACL,CACDzyG,KAAM,QACNyyG,KAAM,uBAEP,CACD5+B,GAAI,QACJx6E,KAAM,QACN2G,KAAM,QACNuyG,UAAW,CAAC,CACVvyG,KAAM,QACNyyG,KAAM,kBACL,CACDzyG,KAAM,cACNyyG,KAAM,cACL,CACDzyG,KAAM,QACNyyG,KAAM,iBACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,cACL,CACDzyG,KAAM,cACNyyG,KAAM,yBACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,6BACL,CACDzyG,KAAM,cACNyyG,KAAM,oBACL,CACDzyG,KAAM,cACNyyG,KAAM,0BACL,CACDzyG,KAAM,cACNyyG,KAAM,iBACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,mBACL,CACDzyG,KAAM,cACNyyG,KAAM,kBACL,CACDzyG,KAAM,cACNyyG,KAAM,uBACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,kBACL,CACDzyG,KAAM,cACNyyG,KAAM,cACL,CACDzyG,KAAM,cACNyyG,KAAM,yBACL,CACDzyG,KAAM,cACNyyG,KAAM,mBACL,CACDzyG,KAAM,cACNyyG,KAAM,iBACL,CACDzyG,KAAM,cACNyyG,KAAM,mBACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,qBACL,CACDzyG,KAAM,cACNyyG,KAAM,iBACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,cACL,CACDzyG,KAAM,cACNyyG,KAAM,0BACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,8BACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,sBACL,CACDzyG,KAAM,cACNyyG,KAAM,iBACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,gCACL,CACDzyG,KAAM,cACNyyG,KAAM,yBACL,CACDzyG,KAAM,cACNyyG,KAAM,iCACL,CACDzyG,KAAM,cACNyyG,KAAM,4BACL,CACDzyG,KAAM,cACNyyG,KAAM,oBACL,CACDzyG,KAAM,cACNyyG,KAAM,8BACL,CACDzyG,KAAM,cACNyyG,KAAM,qBACL,CACDzyG,KAAM,cACNyyG,KAAM,cACL,CACDzyG,KAAM,cACNyyG,KAAM,iBACL,CACDzyG,KAAM,cACNyyG,KAAM,iBACL,CACDzyG,KAAM,cACNyyG,KAAM,mBACL,CACDzyG,KAAM,cACNyyG,KAAM,aACL,CACDzyG,KAAM,cACNyyG,KAAM,mBACL,CACDzyG,KAAM,cACNyyG,KAAM,mBACL,CACDzyG,KAAM,cACNyyG,KAAM,yBACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,iBACL,CACDzyG,KAAM,cACNyyG,KAAM,qBACL,CACDzyG,KAAM,cACNyyG,KAAM,iBACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,iBACL,CACDzyG,KAAM,cACNyyG,KAAM,2BACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,wBACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,cACL,CACDzyG,KAAM,cACNyyG,KAAM,uBACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,iBACL,CACDzyG,KAAM,cACNyyG,KAAM,uBACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,aACL,CACDzyG,KAAM,cACNyyG,KAAM,yBACL,CACDzyG,KAAM,cACNyyG,KAAM,mBACL,CACDzyG,KAAM,cACNyyG,KAAM,sBACL,CACDzyG,KAAM,cACNyyG,KAAM,cACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,sBACL,CACDzyG,KAAM,cACNyyG,KAAM,iBACL,CACDzyG,KAAM,cACNyyG,KAAM,cACL,CACDzyG,KAAM,cACNyyG,KAAM,kBACL,CACDzyG,KAAM,cACNyyG,KAAM,kBACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,mBACL,CACDzyG,KAAM,cACNyyG,KAAM,0BACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,+CACL,CACDzyG,KAAM,cACNyyG,KAAM,kBACL,CACDzyG,KAAM,cACNyyG,KAAM,aACL,CACDzyG,KAAM,cACNyyG,KAAM,sBACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,4BACL,CACDzyG,KAAM,cACNyyG,KAAM,iCACL,CACDzyG,KAAM,cACNyyG,KAAM,iBACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,cACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,uBACL,CACDzyG,KAAM,cACNyyG,KAAM,kBACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,oBACL,CACDzyG,KAAM,cACNyyG,KAAM,cACL,CACDzyG,KAAM,cACNyyG,KAAM,uCACL,CACDzyG,KAAM,cACNyyG,KAAM,aACL,CACDzyG,KAAM,cACNyyG,KAAM,aACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,cACL,CACDzyG,KAAM,cACNyyG,KAAM,mBACL,CACDzyG,KAAM,cACNyyG,KAAM,iBACL,CACDzyG,KAAM,cACNyyG,KAAM,iBACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,0BACL,CACDzyG,KAAM,cACNyyG,KAAM,oBACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,uBACL,CACDzyG,KAAM,cACNyyG,KAAM,mBACL,CACDzyG,KAAM,cACNyyG,KAAM,aACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,kBACL,CACDzyG,KAAM,cACNyyG,KAAM,sBACL,CACDzyG,KAAM,cACNyyG,KAAM,kBACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,kBACL,CACDzyG,KAAM,cACNyyG,KAAM,mBACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,cACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,mBACL,CACDzyG,KAAM,cACNyyG,KAAM,mBACL,CACDzyG,KAAM,cACNyyG,KAAM,mBACL,CACDzyG,KAAM,cACNyyG,KAAM,yBACL,CACDzyG,KAAM,cACNyyG,KAAM,kBACL,CACDzyG,KAAM,cACNyyG,KAAM,aACL,CACDzyG,KAAM,cACNyyG,KAAM,wBACL,CACDzyG,KAAM,cACNyyG,KAAM,iBACL,CACDzyG,KAAM,cACNyyG,KAAM,wBACL,CACDzyG,KAAM,cACNyyG,KAAM,iCACL,CACDzyG,KAAM,cACNyyG,KAAM,mBACL,CACDzyG,KAAM,cACNyyG,KAAM,mBACL,CACDzyG,KAAM,cACNyyG,KAAM,mBACL,CACDzyG,KAAM,cACNyyG,KAAM,cACL,CACDzyG,KAAM,cACNyyG,KAAM,kBACL,CACDzyG,KAAM,cACNyyG,KAAM,iBACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,iBACL,CACDzyG,KAAM,cACNyyG,KAAM,mBACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,sBACL,CACDzyG,KAAM,cACNyyG,KAAM,cACL,CACDzyG,KAAM,cACNyyG,KAAM,uBACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,kBACL,CACDzyG,KAAM,cACNyyG,KAAM,oBACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,cACL,CACDzyG,KAAM,cACNyyG,KAAM,cACL,CACDzyG,KAAM,cACNyyG,KAAM,aACL,CACDzyG,KAAM,cACNyyG,KAAM,oBACL,CACDzyG,KAAM,cACNyyG,KAAM,aACL,CACDzyG,KAAM,cACNyyG,KAAM,kBACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,aACL,CACDzyG,KAAM,cACNyyG,KAAM,yBACL,CACDzyG,KAAM,cACNyyG,KAAM,yBACL,CACDzyG,KAAM,cACNyyG,KAAM,oBACL,CACDzyG,KAAM,cACNyyG,KAAM,iBACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,+BACL,CACDzyG,KAAM,cACNyyG,KAAM,yBACL,CACDzyG,KAAM,cACNyyG,KAAM,oBACL,CACDzyG,KAAM,cACNyyG,KAAM,gCACL,CACDzyG,KAAM,cACNyyG,KAAM,iBACL,CACDzyG,KAAM,cACNyyG,KAAM,cACL,CACDzyG,KAAM,cACNyyG,KAAM,iBACL,CACDzyG,KAAM,cACNyyG,KAAM,cACL,CACDzyG,KAAM,cACNyyG,KAAM,mBACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,qBACL,CACDzyG,KAAM,cACNyyG,KAAM,wBACL,CACDzyG,KAAM,cACNyyG,KAAM,mBACL,CACDzyG,KAAM,cACNyyG,KAAM,cACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,kBACL,CACDzyG,KAAM,cACNyyG,KAAM,iBACL,CACDzyG,KAAM,cACNyyG,KAAM,oBACL,CACDzyG,KAAM,cACNyyG,KAAM,8BACL,CACDzyG,KAAM,cACNyyG,KAAM,qBACL,CACDzyG,KAAM,cACNyyG,KAAM,mBACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,iBACL,CACDzyG,KAAM,cACNyyG,KAAM,qBACL,CACDzyG,KAAM,cACNyyG,KAAM,qCACL,CACDzyG,KAAM,cACNyyG,KAAM,oBACL,CACDzyG,KAAM,cACNyyG,KAAM,qBACL,CACDzyG,KAAM,cACNyyG,KAAM,cACL,CACDzyG,KAAM,cACNyyG,KAAM,yBACL,CACDzyG,KAAM,cACNyyG,KAAM,gCACL,CACDzyG,KAAM,cACNyyG,KAAM,oCACL,CACDzyG,KAAM,cACNyyG,KAAM,aACL,CACDzyG,KAAM,cACNyyG,KAAM,iBACL,CACDzyG,KAAM,cACNyyG,KAAM,mBACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,oBACL,CACDzyG,KAAM,cACNyyG,KAAM,qBACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,cACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,0BACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,iBACL,CACDzyG,KAAM,cACNyyG,KAAM,sBACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,+BACL,CACDzyG,KAAM,cACNyyG,KAAM,iBACL,CACDzyG,KAAM,cACNyyG,KAAM,mBACL,CACDzyG,KAAM,cACNyyG,KAAM,sBACL,CACDzyG,KAAM,cACNyyG,KAAM,iCACL,CACDzyG,KAAM,cACNyyG,KAAM,kBACL,CACDzyG,KAAM,cACNyyG,KAAM,+BACL,CACDzyG,KAAM,cACNyyG,KAAM,4BACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,cACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,yBACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,cACL,CACDzyG,KAAM,cACNyyG,KAAM,gBACL,CACDzyG,KAAM,cACNyyG,KAAM,qBACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,iBACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,cACNyyG,KAAM,wBACL,CACDzyG,KAAM,cACNyyG,KAAM,cACL,CACDzyG,KAAM,cACNyyG,KAAM,cACL,CACDzyG,KAAM,cACNyyG,KAAM,oBACL,CACDzyG,KAAM,cACNyyG,KAAM,eACL,CACDzyG,KAAM,QACNyyG,KAAM,2BACL,CACDzyG,KAAM,cACNyyG,KAAM,yBAGVE,iBAAkB,CAAC,gBAAiB,KACpCC,mBAAmB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ACR1kD,SAAU,WACRR,KAAKsiG,WAAWp9C,UAElBugC,QAAS,SAAiBv/E,GACxBlG,KAAKsiG,WAAW7c,QAAQv/E,IAE1B64F,OAAQ,eACN9kB,EAAGqmB,WAAW,aAAc,CAC9BR,KAAM,SACNC,QAAS,eACP9lB,EAAGqmB,WAAW,qBAAsB,CACtCR,KAAM,WACNC,QAAS,mBACPpjG,OAAO+9E,OAAOT,EAAGoB,SAAU,CAC7BmzC,SAAU,CAAC,CACTrnH,MAAO,gBACP2/E,SAAU,CAAC,CACTt+E,IAAK,SACLotG,KAAM,qBAEP,CACDzuG,MAAO,iBACP2/E,SAAU,CAAC,CACTt+E,IAAK,SACLotG,KAAM,QACL,CACDptG,IAAK,SACLotG,KAAM,OACL,CACDptG,IAAK,SACLotG,KAAM,SACL,CACDptG,IAAK,SACLotG,KAAM,QACL,CACDptG,IAAK,eACLotG,KAAM,QACL,CACDptG,IAAK,SACLotG,KAAM,eACL,CACDptG,IAAK,SACLotG,KAAM,kBAEP,CACDzuG,MAAO,mBACP2/E,SAAU,CAAC,CACTt+E,IAAK,SACLotG,KAAM,cACL,CACDptG,IAAK,SACLotG,KAAM,QACL,CACDptG,IAAK,SACLotG,KAAM,UACL,CACDptG,IAAK,SACLotG,KAAM,aACL,CACDptG,IAAK,SACLotG,KAAM,iBACL,CACDptG,IAAK,SACLotG,KAAM,mBACL,CACDptG,IAAK,SACLotG,KAAM,qBAEP,CACDzuG,MAAO,QACP2/E,SAAU,CAAC,CACTt+E,IAAK,SACLotG,KAAM,wBACL,CACDptG,IAAK,eACLotG,KAAM,0BAEP,CACDzuG,MAAO,gBACP2/E,SAAU,CAAC,CACTt+E,IAAK,SACLotG,KAAM,iBACL,CACDptG,IAAK,SACLotG,KAAM,oBAEP,CACDzuG,MAAO,QACP2/E,SAAU,CAAC,CACTt+E,IAAK,YACLotG,KAAM,qBACL,CACDptG,IAAK,yBACLotG,KAAM,6BACL,CACDptG,IAAK,sBACLotG,KAAM,8BAEP,CACDzuG,MAAO,aACP2/E,SAAU,CAAC,CACTt+E,IAAK,SACLotG,KAAM,a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qE,CAAC,mEAAoE,oEAAqE,CAAC,kEAAmE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,mEAAoE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,mEAAoE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,kEAAmE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,kEAAmE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,mEAAoE,CAAC,mEAAoE,oEAAqE,CAAC,kEAAmE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,sEAEtsRryB,IAAK,CACH9K,IAAK,EACLm9B,OAAQ,CAAC,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,mEAAoE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,mEAAoE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,mEAAoE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,mEAAoE,CAAC,mEAAoE,oEAAqE,CAAC,kEAAmE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,mEAAoE,CAAC,mEAAoE,mEAAoE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,mEAAoE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,mEAAoE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,kEAAmE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,mEAAoE,CAAC,mEAAoE,mEAAoE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,kEAAmE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,mEAAoE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,mEAAoE,CAAC,mEAAoE,oEAAqE,CAAC,kEAAmE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CAAC,mEAAoE,oEAAqE,CA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","file":"js/application-bb4365feff72990ffebe.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 175);\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\ndefine([\"./var/arr\", \"./var/getProto\", \"./var/slice\", \"./var/flat\", \"./var/push\", \"./var/indexOf\", \"./var/class2type\", \"./var/toString\", \"./var/hasOwn\", \"./var/fnToString\", \"./var/ObjectFunctionString\", \"./var/support\", \"./var/isFunction\", \"./var/isWindow\", \"./core/DOMEval\", \"./core/toType\"], function (arr, getProto, _slice, flat, push, indexOf, class2type, toString, hasOwn, fnToString, ObjectFunctionString, support, isFunction, isWindow, DOMEval, toType) {\n \"use strict\";\n\n var version = \"3.6.0\",\n // Define a local copy of jQuery\n jQuery = function jQuery(selector, context) {\n // The jQuery object is actually just the init constructor 'enhanced'\n // Need init if jQuery is called (just allow error to be thrown if not included)\n return new jQuery.fn.init(selector, context);\n };\n\n jQuery.fn = jQuery.prototype = {\n // The current version of jQuery being used\n jquery: version,\n constructor: jQuery,\n // The default length of a jQuery object is 0\n length: 0,\n toArray: function toArray() {\n return _slice.call(this);\n },\n // Get the Nth element in the matched element set OR\n // Get the whole matched element set as a clean array\n get: function get(num) {\n // Return all the elements in a clean array\n if (num == null) {\n return _slice.call(this);\n } // Return just the one element from the set\n\n\n return num < 0 ? this[num + this.length] : this[num];\n },\n // Take an array of elements and push it onto the stack\n // (returning the new matched element set)\n pushStack: function pushStack(elems) {\n // Build a new jQuery matched element set\n var ret = jQuery.merge(this.constructor(), elems); // Add the old object onto the stack (as a reference)\n\n ret.prevObject = this; // Return the newly-formed element set\n\n return ret;\n },\n // Execute a callback for every element in the matched set.\n each: function each(callback) {\n return jQuery.each(this, callback);\n },\n map: function map(callback) {\n return this.pushStack(jQuery.map(this, function (elem, i) {\n return callback.call(elem, i, elem);\n }));\n },\n slice: function slice() {\n return this.pushStack(_slice.apply(this, arguments));\n },\n first: function first() {\n return this.eq(0);\n },\n last: function last() {\n return this.eq(-1);\n },\n even: function even() {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return (i + 1) % 2;\n }));\n },\n odd: function odd() {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return i % 2;\n }));\n },\n eq: function eq(i) {\n var len = this.length,\n j = +i + (i < 0 ? len : 0);\n return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\n },\n end: function end() {\n return this.prevObject || this.constructor();\n },\n // For internal use only.\n // Behaves like an Array's method, not like a jQuery method.\n push: push,\n sort: arr.sort,\n splice: arr.splice\n };\n\n jQuery.extend = jQuery.fn.extend = function () {\n var options,\n name,\n src,\n copy,\n copyIsArray,\n clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false; // Handle a deep copy situation\n\n if (typeof target === \"boolean\") {\n deep = target; // Skip the boolean and the target\n\n target = arguments[i] || {};\n i++;\n } // Handle case when target is a string or something (possible in deep copy)\n\n\n if (_typeof(target) !== \"object\" && !isFunction(target)) {\n target = {};\n } // Extend jQuery itself if only one argument is passed\n\n\n if (i === length) {\n target = this;\n i--;\n }\n\n for (; i < length; i++) {\n // Only deal with non-null/undefined values\n if ((options = arguments[i]) != null) {\n // Extend the base object\n for (name in options) {\n copy = options[name]; // Prevent Object.prototype pollution\n // Prevent never-ending loop\n\n if (name === \"__proto__\" || target === copy) {\n continue;\n } // Recurse if we're merging plain objects or arrays\n\n\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n src = target[name]; // Ensure proper type for the source value\n\n if (copyIsArray && !Array.isArray(src)) {\n clone = [];\n } else if (!copyIsArray && !jQuery.isPlainObject(src)) {\n clone = {};\n } else {\n clone = src;\n }\n\n copyIsArray = false; // Never move original objects, clone them\n\n target[name] = jQuery.extend(deep, clone, copy); // Don't bring in undefined values\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n } // Return the modified object\n\n\n return target;\n };\n\n jQuery.extend({\n // Unique for each copy of jQuery on the page\n expando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\n // Assume jQuery is ready without the ready module\n isReady: true,\n error: function error(msg) {\n throw new Error(msg);\n },\n noop: function noop() {},\n isPlainObject: function isPlainObject(obj) {\n var proto, Ctor; // Detect obvious negatives\n // Use toString instead of jQuery.type to catch host objects\n\n if (!obj || toString.call(obj) !== \"[object Object]\") {\n return false;\n }\n\n proto = getProto(obj); // Objects with no prototype (e.g., `Object.create( null )`) are plain\n\n if (!proto) {\n return true;\n } // Objects with prototype are plain iff they were constructed by a global Object function\n\n\n Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n },\n isEmptyObject: function isEmptyObject(obj) {\n var name;\n\n for (name in obj) {\n return false;\n }\n\n return true;\n },\n // Evaluates a script in a provided context; falls back to the global one\n // if not specified.\n globalEval: function globalEval(code, options, doc) {\n DOMEval(code, {\n nonce: options && options.nonce\n }, doc);\n },\n each: function each(obj, callback) {\n var length,\n i = 0;\n\n if (isArrayLike(obj)) {\n length = obj.length;\n\n for (; i < length; i++) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n }\n\n return obj;\n },\n // results is for internal usage only\n makeArray: function makeArray(arr, results) {\n var ret = results || [];\n\n if (arr != null) {\n if (isArrayLike(Object(arr))) {\n jQuery.merge(ret, typeof arr === \"string\" ? [arr] : arr);\n } else {\n push.call(ret, arr);\n }\n }\n\n return ret;\n },\n inArray: function inArray(elem, arr, i) {\n return arr == null ? -1 : indexOf.call(arr, elem, i);\n },\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n merge: function merge(first, second) {\n var len = +second.length,\n j = 0,\n i = first.length;\n\n for (; j < len; j++) {\n first[i++] = second[j];\n }\n\n first.length = i;\n return first;\n },\n grep: function grep(elems, callback, invert) {\n var callbackInverse,\n matches = [],\n i = 0,\n length = elems.length,\n callbackExpect = !invert; // Go through the array, only saving the items\n // that pass the validator function\n\n for (; i < length; i++) {\n callbackInverse = !callback(elems[i], i);\n\n if (callbackInverse !== callbackExpect) {\n matches.push(elems[i]);\n }\n }\n\n return matches;\n },\n // arg is for internal usage only\n map: function map(elems, callback, arg) {\n var length,\n value,\n i = 0,\n ret = []; // Go through the array, translating each of the items to their new values\n\n if (isArrayLike(elems)) {\n length = elems.length;\n\n for (; i < length; i++) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n } // Go through every key on the object,\n\n } else {\n for (i in elems) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n }\n } // Flatten any nested arrays\n\n\n return flat(ret);\n },\n // A global GUID counter for objects\n guid: 1,\n // jQuery.support is not used in Core but other projects attach their\n // properties to it so it needs to exist.\n support: support\n });\n\n if (typeof Symbol === \"function\") {\n jQuery.fn[Symbol.iterator] = arr[Symbol.iterator];\n } // Populate the class2type map\n\n\n jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (_i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n\n function isArrayLike(obj) {\n // Support: real iOS 8.2 only (not reproducible in simulator)\n // `in` check used to prevent JIT error (gh-2145)\n // hasOwn isn't used here due to false negatives\n // regarding Nodelist length in IE\n var length = !!obj && \"length\" in obj && obj.length,\n type = toType(obj);\n\n if (isFunction(obj) || isWindow(obj)) {\n return false;\n }\n\n return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\n\n return jQuery;\n});","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n}","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer');\n\nvar Buffer = buffer.Buffer; // alternative to using Object.keys for old browsers\n\nfunction copyProps(src, dst) {\n for (var key in src) {\n dst[key] = src[key];\n }\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); // Copy static methods from Buffer\n\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\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\n var buf = Buffer(size);\n\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\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\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\n return buffer.SlowBuffer(size);\n};","define(function () {\n \"use strict\";\n\n return function isFunction(obj) {\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n // Plus for old WebKit, typeof returns \"function\" for HTML collections\n // (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\" && typeof obj.item !== \"function\";\n };\n});","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n(function (module, exports) {\n 'use strict'; // Utils\n\n function assert(val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n } // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n\n\n function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n } // BN\n\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; // Reduction context\n\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\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 var Buffer;\n\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {}\n\n BN.isBN = function isBN(num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && _typeof(num) === 'object' && 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\n assert(base === (base | 0) && base >= 2 && base <= 36);\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber(number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n\n this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff, 1];\n this.length = 3;\n }\n\n if (endian !== 'le') return; // Reverse the bytes\n\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\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\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\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\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\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n\n return this.strip();\n };\n\n function parseHex4Bits(string, index) {\n var c = string.charCodeAt(index); // 'A' - 'F'\n\n if (c >= 65 && c <= 70) {\n return c - 55; // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87; // '0' - '9'\n } else {\n return c - 48 & 0xf;\n }\n }\n\n function parseHexByte(string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex(number, start, endian) {\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\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n } // 24-bits chunks\n\n\n var off = 0;\n var j = 0;\n var w;\n\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\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\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n r *= mul; // 'a'\n\n if (c >= 49) {\n r += c - 49 + 0xa; // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa; // '0' - '9'\n } else {\n r += c;\n }\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; // Find length of limb in base\n\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n\n limbLen--;\n limbPow = limbPow / base | 0;\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n var word = 0;\n\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n this.imuln(limbPow);\n\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\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy(dest) {\n dest.words = new Array(this.length);\n\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\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\n return this;\n }; // Remove leading `0` from `this`\n\n\n BN.prototype.strip = function strip() {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\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\n return this;\n };\n\n BN.prototype.inspect = function inspect() {\n return (this.red ? '';\n };\n /*\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\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 = ['', '0', '00', '000', '0000', '00000', '000000', '0000000', '00000000', '000000000', '0000000000', '00000000000', '000000000000', '0000000000000', '00000000000000', '000000000000000', '0000000000000000', '00000000000000000', '000000000000000000', '0000000000000000000', '00000000000000000000', '000000000000000000000', '0000000000000000000000', '00000000000000000000000', '000000000000000000000000', '0000000000000000000000000'];\n var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5];\n var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176];\n\n BN.prototype.toString = function toString(base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n var out;\n\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n\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\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n\n off += 2;\n\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n\n if (this.negative !== 0) {\n out = '-' + out;\n }\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]; // var groupBase = Math.pow(base, groupSize);\n\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n\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\n if (this.isZero()) {\n out = '0' + out;\n }\n\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n\n if (this.negative !== 0) {\n out = '-' + out;\n }\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\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\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 this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n var b, i;\n var q = this.clone();\n\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 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 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\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\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 var t = w;\n var r = 0;\n\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n\n if ((t & 0x1) === 0) {\n r++;\n }\n\n return r;\n }; // Return number of used bits in a BN\n\n\n BN.prototype.bitLength = function bitLength() {\n var w = this.words[this.length - 1];\n\n var hi = this._countBits(w);\n\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 w[bit] = (num.words[off] & 1 << wbit) >>> wbit;\n }\n\n return w;\n } // Number of trailing zero bits\n\n\n BN.prototype.zeroBits = function zeroBits() {\n if (this.isZero()) return 0;\n var r = 0;\n\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n\n r += b;\n if (b !== 26) break;\n }\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\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\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg() {\n return this.negative !== 0;\n }; // Return negative clone of `this`\n\n\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 }; // Or `num` with `this` in-place\n\n\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 }; // Or `num` with `this`\n\n\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 }; // And `num` with `this` in-place\n\n\n BN.prototype.iuand = function iuand(num) {\n // b = min-length(num, this)\n var b;\n\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 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 }; // And `num` with `this`\n\n\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 }; // Xor `num` with `this` in-place\n\n\n BN.prototype.iuxor = function iuxor(num) {\n // a.length > b.length\n var a;\n var b;\n\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 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 }; // Xor `num` with `this`\n\n\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 }; // Not ``this`` with ``width`` bitwidth\n\n\n BN.prototype.inotn = function inotn(width) {\n assert(typeof width === 'number' && width >= 0);\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26; // Extend the buffer with leading zeroes\n\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n } // Handle complete words\n\n\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n } // Handle the residue\n\n\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & 0x3ffffff >> 26 - bitsLeft;\n } // And remove leading zeroes\n\n\n return this.strip();\n };\n\n BN.prototype.notn = function notn(width) {\n return this.clone().inotn(width);\n }; // Set `bit` of `this`\n\n\n BN.prototype.setn = function setn(bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\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 }; // Add `num` to `this` in-place\n\n\n BN.prototype.iadd = function iadd(num) {\n var r; // negative + positive\n\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(); // 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 } // a.length > b.length\n\n\n var a, b;\n\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\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\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\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++; // 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 }; // Add `num` to `this`\n\n\n BN.prototype.add = function add(num) {\n var res;\n\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 return num.clone().iadd(this);\n }; // Subtract `num` from `this` in-place\n\n\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(); // -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 } // At this point both numbers are positive\n\n\n var cmp = this.cmp(num); // Optimization - zeroify\n\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n } // a > b\n\n\n var a, b;\n\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\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\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 } // Copy rest of the words\n\n\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 }; // Subtract `num` from `this`\n\n\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; // Peel one iteration (compiler can't do it, because of code complexity)\n\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\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\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\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\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\n\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 out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n\n return out;\n }; // Polyfill comb\n\n\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 var carry = 0;\n var hncarry = 0;\n\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\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 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 hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\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\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 }; // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\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\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n }; // Returns binary-reversed representation of `x`\n\n\n FFTM.prototype.revBin = function revBin(x, l, N) {\n if (x === 0 || x === N - 1) return x;\n var rb = 0;\n\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << l - i - 1;\n x >>= 1;\n }\n\n return rb;\n }; // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n\n\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 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 var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n var rx = rtwdf_ * ro - itwdf_ * io;\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n /* jshint maxdepth : false */\n\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\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\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 rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n t = iws[i];\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\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + Math.round(ws[2 * i] / N) + carry;\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\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n rws[2 * i] = carry & 0x1fff;\n carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff;\n carry = carry >>> 13;\n } // Pad with zeroes\n\n\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\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 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 var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n var rmws = out.words;\n rmws.length = N;\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, 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 out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n }; // Multiply `this` by `num`\n\n\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 }; // Multiply employing FFT\n\n\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 }; // In-place Multiplication\n\n\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); // Carry\n\n var carry = 0;\n\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; // NOTE: lo is 27bit maximum\n\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 }; // `this` * `this`\n\n\n BN.prototype.sqr = function sqr() {\n return this.mul(this);\n }; // `this` * `this` in-place\n\n\n BN.prototype.isqr = function isqr() {\n return this.imul(this.clone());\n }; // Math.pow(`this`, `num`)\n\n\n BN.prototype.pow = function pow(num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1); // Skip leading zeroes\n\n var res = this;\n\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 res = res.mul(q);\n }\n }\n\n return res;\n }; // Shift-left in-place\n\n\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 }; // 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\n\n BN.prototype.iushrn = function iushrn(bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n\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 h -= s;\n h = Math.max(0, h); // Extended mode, copy masked part\n\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n\n maskedWords.length = s;\n }\n\n if (s === 0) {// No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n\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\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 } // Push carried bits as a mask\n\n\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 }; // Shift-left\n\n\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 }; // Shift-right\n\n\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 }; // Test if n bit is set\n\n\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; // Fast case: bit is much higher than all existing words\n\n if (this.length <= s) return false; // Check bit and return\n\n var w = this.words[s];\n return !!(w & q);\n }; // Return only lowers bits of number (in-place)\n\n\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 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\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 }; // Return only lowers bits of number\n\n\n BN.prototype.maskn = function maskn(bits) {\n return this.clone().imaskn(bits);\n }; // Add plain number `num` to `this`\n\n\n BN.prototype.iaddn = function iaddn(num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num); // Possible sign change\n\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 } // Add without checks\n\n\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn(num) {\n this.words[0] += num; // Carry\n\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n\n this.length = Math.max(this.length, i + 1);\n return this;\n }; // Subtract plain number `num` from `this`\n\n\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 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\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\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(); // Subtraction overflow\n\n assert(carry === -1);\n carry = 0;\n\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\n this.negative = 1;\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv(num, mode) {\n var shift = this.length - num.length;\n var a = this.clone();\n var b = num; // Normalize\n\n var bhi = b.words[b.length - 1] | 0;\n\n var bhiBits = this._countBits(bhi);\n\n shift = 26 - bhiBits;\n\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n } // Initialize quotient\n\n\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\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\n if (diff.negative === 0) {\n a = diff;\n\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 + (a.words[b.length + j - 1] | 0); // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n\n qj = Math.min(qj / bhi | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n\n a._ishlnsubmul(b, 1, j);\n\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n\n if (q) {\n q.words[j] = qj;\n }\n }\n\n if (q) {\n q.strip();\n }\n\n a.strip(); // Denormalize\n\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\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\n\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\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\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\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n } // Both numbers are positive at this point\n // Strip both numbers to approximate shift value\n\n\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n } // Very short reduction\n\n\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 }; // Find `this` / `num`\n\n\n BN.prototype.div = function div(num) {\n return this.divmod(num, 'div', false).div;\n }; // Find `this` % `num`\n\n\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 }; // Find Round(`this` / `num`)\n\n\n BN.prototype.divRound = function divRound(num) {\n var dm = this.divmod(num); // Fast case - exact division\n\n if (dm.mod.isZero()) return dm.div;\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half); // Round down\n\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; // Round up\n\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 var acc = 0;\n\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 }; // In-place division by number\n\n\n BN.prototype.idivn = function idivn(num) {\n assert(num <= 0x3ffffff);\n var carry = 0;\n\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 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 } // A * x + B * y = x\n\n\n var A = new BN(1);\n var B = new BN(0); // C * x + D * y = y\n\n var C = new BN(0);\n var D = new BN(1);\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 ;\n }\n\n if (i > 0) {\n x.iushrn(i);\n\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 ;\n }\n\n if (j > 0) {\n y.iushrn(j);\n\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 }; // 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\n\n BN.prototype._invmp = function _invmp(p) {\n assert(p.negative === 0);\n assert(!p.isZero());\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 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 ;\n }\n\n if (i > 0) {\n a.iushrn(i);\n\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 ;\n }\n\n if (j > 0) {\n b.iushrn(j);\n\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\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 var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0; // Remove common factor of two\n\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\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n\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 }; // Invert number in the field F(num)\n\n\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 }; // And first word and num\n\n\n BN.prototype.andln = function andln(num) {\n return this.words[0] & num;\n }; // Increment at the bit position in-line\n\n\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; // Fast case: bit is much higher than all existing words\n\n if (this.length <= s) {\n this._expand(s + 1);\n\n this.words[s] |= q;\n return this;\n } // Add bit and propagate, if needed\n\n\n var carry = q;\n\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\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\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 if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n this.strip();\n var res;\n\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 var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n\n if (this.negative !== 0) return -res | 0;\n return res;\n }; // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n\n\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 var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n }; // Unsigned comparison\n\n\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 var res = 0;\n\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 if (a === b) continue;\n\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n\n break;\n }\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 // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n\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\n this.red._verify2(this, num);\n\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\n this.red._verify2(this, num);\n\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\n this.red._verify1(this);\n\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\n this.red._verify1(this);\n\n return this.red.isqr(this);\n }; // Square root over p\n\n\n BN.prototype.redSqrt = function redSqrt() {\n assert(this.red, 'redSqrt works only with red numbers');\n\n this.red._verify1(this);\n\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\n this.red._verify1(this);\n\n return this.red.invm(this);\n }; // Return negative clone of `this` % `red modulo`\n\n\n BN.prototype.redNeg = function redNeg() {\n assert(this.red, 'redNeg works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow(num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n\n this.red._verify1(this);\n\n return this.red.pow(this, num);\n }; // Prime numbers with efficient reduction\n\n\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n }; // Pseudo-Mersenne prime\n\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 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\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(this, 'k256', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n\n inherits(K256, MPrime);\n\n K256.prototype.split = function split(input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n var outLen = Math.min(input.length, 9);\n\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n } // Shift by 9 limbs\n\n\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\n prev >>>= 22;\n input.words[i - 10] = prev;\n\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; // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n\n var lo = 0;\n\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 } // Fast length reduction\n\n\n if (num.words[num.length - 1] === 0) {\n num.length--;\n\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n\n return num;\n };\n\n function P224() {\n MPrime.call(this, 'p224', 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n\n inherits(P224, MPrime);\n\n function P192() {\n MPrime.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n\n inherits(P192, MPrime);\n\n function P25519() {\n // 2 ^ 255 - 19\n MPrime.call(this, '25519', '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK(num) {\n // K = 0x13\n var carry = 0;\n\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 num.words[i] = lo;\n carry = hi;\n }\n\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n\n return num;\n }; // Exported mostly for testing purposes, use plain name instead\n\n\n BN._prime = function prime(name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n var prime;\n\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\n primes[name] = prime;\n return prime;\n }; //\n // Base reduction engine\n //\n\n\n function Red(m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n\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, '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\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\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\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\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\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\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\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n\n return res;\n };\n\n Red.prototype.shl = function shl(a, num) {\n this._verify1(a);\n\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul(a, b) {\n this._verify2(a, b);\n\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul(a, b) {\n this._verify2(a, b);\n\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 var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1); // Fast case\n\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n } // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n\n\n var q = this.m.subn(1);\n var s = 0;\n\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n\n assert(!q.isZero());\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg(); // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n\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\n while (t.cmp(one) !== 0) {\n var tmp = t;\n\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\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\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 var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n\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\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\n for (var j = start - 1; j >= 0; j--) {\n var bit = word >> j & 1;\n\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 res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\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 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 // Montgomery method engine\n //\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 this.shift = this.m.bitLength();\n\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 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\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 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\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 * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n/* eslint-disable no-proto */\n'use strict';\n\nvar base64 = require('base64-js');\n\nvar ieee754 = require('ieee754');\n\nvar isArray = require('isarray');\n\nexports.Buffer = Buffer;\nexports.SlowBuffer = SlowBuffer;\nexports.INSPECT_MAX_BYTES = 50;\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 */\n\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined ? global.TYPED_ARRAY_SUPPORT : typedArraySupport();\n/*\n * Export kMaxLength after typed array support is determined.\n */\n\nexports.kMaxLength = kMaxLength();\n\nfunction typedArraySupport() {\n try {\n var arr = new Uint8Array(1);\n arr.__proto__ = {\n __proto__: Uint8Array.prototype,\n foo: function foo() {\n return 42;\n }\n };\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 ? 0x7fffffff : 0x3fffffff;\n}\n\nfunction createBuffer(that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length');\n }\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\n that.length = length;\n }\n\n return that;\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\n\nfunction Buffer(arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length);\n } // Common case.\n\n\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error('If encoding is specified then the first argument must be a string');\n }\n\n return allocUnsafe(this, arg);\n }\n\n return from(this, arg, encodingOrOffset, length);\n}\n\nBuffer.poolSize = 8192; // not used by this implementation\n// TODO: Legacy, not needed anymore. Remove in next major version.\n\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 * 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 **/\n\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\n if (typeof Symbol !== 'undefined' && Symbol.species && 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\n if (size <= 0) {\n return createBuffer(that, size);\n }\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' ? createBuffer(that, size).fill(fill, encoding) : createBuffer(that, size).fill(fill);\n }\n\n return createBuffer(that, size);\n}\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\n\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\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n\n return that;\n}\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\n\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 */\n\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 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\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\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\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' && obj.buffer instanceof ArrayBuffer || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0);\n }\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 ' + 'size: 0x' + kMaxLength().toString(16) + ' bytes');\n }\n\n return length | 0;\n}\n\nfunction SlowBuffer(length) {\n if (+length != length) {\n // eslint-disable-line eqeqeq\n length = 0;\n }\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 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\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\n if (length === undefined) {\n length = 0;\n\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\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n\n return buffer;\n};\n\nfunction byteLength(string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length;\n }\n\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength;\n }\n\n if (typeof string !== 'string') {\n string = '' + string;\n }\n\n var len = string.length;\n if (len === 0) return 0; // Use a for loop to avoid recursion\n\n var loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len;\n\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length;\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2;\n\n case 'hex':\n return len >>> 1;\n\n case 'base64':\n return base64ToBytes(string).length;\n\n default:\n if (loweredCase) return utf8ToBytes(string).length; // assume utf8\n\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n}\n\nBuffer.byteLength = byteLength;\n\nfunction slowToString(encoding, start, end) {\n var loweredCase = false; // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\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\n if (start === undefined || start < 0) {\n start = 0;\n } // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n\n\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 } // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n\n\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} // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\n\n\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\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits');\n }\n\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n\n return this;\n};\n\nBuffer.prototype.swap32 = function swap32() {\n var len = this.length;\n\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits');\n }\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\n return this;\n};\n\nBuffer.prototype.swap64 = function swap64() {\n var len = this.length;\n\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits');\n }\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\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\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\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\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n\n if (thisStart === undefined) {\n thisStart = 0;\n }\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\n if (thisStart >= thisEnd) {\n return -1;\n }\n\n if (start >= end) {\n return 1;\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) return 0;\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\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}; // 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\n\n\nfunction bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1; // Normalize byteOffset\n\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\n byteOffset = +byteOffset; // Coerce to Number.\n\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 } // Normalize byteOffset: negative offsets start from the end of the buffer\n\n\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\n if (byteOffset >= buffer.length) {\n if (dir) return -1;else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;else return -1;\n } // Normalize val\n\n\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding);\n } // Finally, search either indexOf (if dir is true) or lastIndexOf\n\n\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\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\n if (Buffer.TYPED_ARRAY_SUPPORT && 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\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\n if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\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\n if (dir) {\n var foundIndex = -1;\n\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\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n\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\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\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n\n if (length > remaining) {\n length = remaining;\n }\n } // must be an even number of digits\n\n\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\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\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; // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0; // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n } // legacy write(string, encoding, offset, length) - remove in v0.13\n\n } else {\n throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported');\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 var loweredCase = false;\n\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 var i = start;\n\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = firstByte > 0xEF ? 4 : firstByte > 0xDF ? 3 : firstByte > 0xBF ? 2 : 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\n break;\n\n case 2:\n secondByte = buf[i + 1];\n\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | secondByte & 0x3F;\n\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | thirdByte & 0x3F;\n\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n\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\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\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} // 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\n\n\nvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\nfunction decodeCodePointsArray(codePoints) {\n var len = codePoints.length;\n\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints); // avoid extra slice()\n } // Decode in chunks to avoid \"call stack size exceeded\".\n\n\n var res = '';\n var i = 0;\n\n while (i < len) {\n res += String.fromCharCode.apply(String, 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\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\n return ret;\n}\n\nfunction hexSlice(buf, start, end) {\n var len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n var out = '';\n\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i]);\n }\n\n return out;\n}\n\nfunction utf16leSlice(buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\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 var newBuf;\n\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\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n\n return newBuf;\n};\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\n\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 var val = this[offset];\n var mul = 1;\n var i = 0;\n\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\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n\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 return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 0x1000000;\n};\n\nBuffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 0x1000000 + (this[offset + 1] << 16 | this[offset + 2] << 8 | 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 var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\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 var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\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 return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n};\n\nBuffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | 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\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\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\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\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\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)) >>> (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\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\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\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\n return offset + 2;\n};\n\nfunction objectWriteUInt32(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n\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\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\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\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\n return offset + 4;\n};\n\nBuffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\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\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\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\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\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\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\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\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\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\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\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\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\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\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\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\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\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}; // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\n\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; // Copy 0 bytes; we're done\n\n if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0; // Fatal error conditions\n\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds');\n }\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'); // Are we oob?\n\n if (end > this.length) end = this.length;\n\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(target, this.subarray(start, start + len), targetStart);\n }\n\n return len;\n}; // Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\n\n\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\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n\n if (code < 256) {\n val = code;\n }\n }\n\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string');\n }\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 } // Invalid ranges are not set to a default, so can range check early.\n\n\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 if (!val) val = 0;\n var i;\n\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) ? val : utf8ToBytes(new Buffer(val, encoding).toString());\n var len = bytes.length;\n\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this;\n}; // HELPER FUNCTIONS\n// ================\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, ''); // Node converts strings with length < 2 to ''\n\n if (str.length < 2) return ''; // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\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); // is surrogate component\n\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 } // valid lead\n\n\n leadSurrogate = codePoint;\n continue;\n } // 2 leads in a row\n\n\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue;\n } // valid surrogate pair\n\n\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; // encode utf8\n\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(codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break;\n bytes.push(codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break;\n bytes.push(codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else {\n throw new Error('Invalid code point');\n }\n }\n\n return bytes;\n}\n\nfunction asciiToBytes(str) {\n var byteArray = [];\n\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\n return byteArray;\n}\n\nfunction utf16leToBytes(str, units) {\n var c, hi, lo;\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break;\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\n return i;\n}\n\nfunction isnan(val) {\n return val !== val; // eslint-disable-line no-self-compare\n}","define(function () {\n \"use strict\";\n\n return window.document;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar g; // This works in non-strict mode\n\ng = function () {\n return this;\n}();\n\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\n} // g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\n\nmodule.exports = g;","define([\"./selector-sizzle\"], function () {\n \"use strict\";\n});","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r) throw new Error(msg || 'Assertion failed: ' + l + ' != ' + r);\n};","'use strict';\n\nvar utils = exports;\n\nvar BN = require('bn.js');\n\nvar minAssert = require('minimalistic-assert');\n\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; // Represent num in a w-NAF form\n\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\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\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1) z = (ws >> 1) - mod;else 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}\n\nutils.getNAF = getNAF; // Represent k1, k2 in a Joint Sparse Form\n\nfunction getJSF(k1, k2) {\n var jsf = [[], []];\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = k1.andln(3) + d1 & 3;\n var m24 = k2.andln(3) + d2 & 3;\n if (m14 === 3) m14 = -1;\n if (m24 === 3) m24 = -1;\n var u1;\n\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = k1.andln(7) + d1 & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2) u1 = -m14;else u1 = m14;\n }\n\n jsf[0].push(u1);\n var u2;\n\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = k2.andln(7) + d2 & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2) u2 = -m24;else u2 = m24;\n }\n\n jsf[1].push(u2); // Second phase\n\n if (2 * d1 === u1 + 1) d1 = 1 - d1;\n if (2 * d2 === u2 + 1) d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\n\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] : this[key] = computer.call(this);\n };\n}\n\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') : bytes;\n}\n\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\n\nutils.intFromLE = intFromLE;","// Initialize a jQuery object\ndefine([\"../core\", \"../var/document\", \"../var/isFunction\", \"./var/rsingleTag\", \"../traversing/findFilter\"], function (jQuery, document, isFunction, rsingleTag) {\n \"use strict\"; // A central reference to the root jQuery(document)\n\n var rootjQuery,\n // A simple way to check for HTML strings\n // Prioritize #id over to avoid XSS via location.hash (#9521)\n // Strict HTML recognition (#11290: must start with <)\n // Shortcut simple #id case for speed\n rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n init = jQuery.fn.init = function (selector, context, root) {\n var match, elem; // HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\n if (!selector) {\n return this;\n } // Method init() accepts an alternate rootjQuery\n // so migrate can support jQuery.sub (gh-2101)\n\n\n root = root || rootjQuery; // Handle HTML strings\n\n if (typeof selector === \"string\") {\n if (selector[0] === \"<\" && selector[selector.length - 1] === \">\" && selector.length >= 3) {\n // Assume that strings that start and end with <> are HTML and skip the regex check\n match = [null, selector, null];\n } else {\n match = rquickExpr.exec(selector);\n } // Match html or make sure no context is specified for #id\n\n\n if (match && (match[1] || !context)) {\n // HANDLE: $(html) -> $(array)\n if (match[1]) {\n context = context instanceof jQuery ? context[0] : context; // Option to run scripts is true for back-compat\n // Intentionally let the error be thrown if parseHTML is not present\n\n jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true)); // HANDLE: $(html, props)\n\n if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\n for (match in context) {\n // Properties of context are called as methods if possible\n if (isFunction(this[match])) {\n this[match](context[match]); // ...and otherwise set as attributes\n } else {\n this.attr(match, context[match]);\n }\n }\n }\n\n return this; // HANDLE: $(#id)\n } else {\n elem = document.getElementById(match[2]);\n\n if (elem) {\n // Inject the element directly into the jQuery object\n this[0] = elem;\n this.length = 1;\n }\n\n return this;\n } // HANDLE: $(expr, $(...))\n\n } else if (!context || context.jquery) {\n return (context || root).find(selector); // HANDLE: $(expr, context)\n // (which is just equivalent to: $(context).find(expr)\n } else {\n return this.constructor(context).find(selector);\n } // HANDLE: $(DOMElement)\n\n } else if (selector.nodeType) {\n this[0] = selector;\n this.length = 1;\n return this; // HANDLE: $(function)\n // Shortcut for document ready\n } else if (isFunction(selector)) {\n return root.ready !== undefined ? root.ready(selector) : // Execute immediately if ready is not present\n selector(jQuery);\n }\n\n return jQuery.makeArray(selector, this);\n }; // Give the init function the jQuery prototype for later instantiation\n\n\n init.prototype = jQuery.fn; // Initialize central reference\n\n rootjQuery = jQuery(document);\n return init;\n});","define([\"../Data\"], function (Data) {\n \"use strict\";\n\n return new Data();\n});","'use strict';\n\nvar assert = require('minimalistic-assert');\n\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\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg)) return msg.slice();\n if (!msg) return [];\n var res = [];\n\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\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n\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) msg = '0' + msg;\n\n for (i = 0; i < msg.length; i += 2) {\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n }\n } else {\n for (i = 0; i < msg.length; i++) {\n res[i] = msg[i] | 0;\n }\n }\n\n return res;\n}\n\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n\n for (var i = 0; i < msg.length; i++) {\n res += zero2(msg[i].toString(16));\n }\n\n return res;\n}\n\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = w >>> 24 | w >>> 8 & 0xff00 | w << 8 & 0xff0000 | (w & 0xff) << 24;\n return res >>> 0;\n}\n\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little') w = htonl(w);\n res += zero8(w.toString(16));\n }\n\n return res;\n}\n\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1) return '0' + word;else return word;\n}\n\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7) return '0' + word;else if (word.length === 6) return '00' + word;else if (word.length === 5) return '000' + word;else if (word.length === 4) return '0000' + word;else if (word.length === 3) return '00000' + word;else if (word.length === 2) return '000000' + word;else if (word.length === 1) return '0000000' + word;else return word;\n}\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\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big') w = msg[k] << 24 | msg[k + 1] << 16 | msg[k + 2] << 8 | msg[k + 3];else w = msg[k + 3] << 24 | msg[k + 2] << 16 | msg[k + 1] << 8 | msg[k];\n res[i] = w >>> 0;\n }\n\n return res;\n}\n\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n\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\n return res;\n}\n\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return w >>> b | w << 32 - b;\n}\n\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return w << b | w >>> 32 - b;\n}\n\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return a + b >>> 0;\n}\n\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return a + b + c >>> 0;\n}\n\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return a + b + c + d >>> 0;\n}\n\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return a + b + c + d + e >>> 0;\n}\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 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}\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}\n\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\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 var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\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}\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 var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\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 return lo >>> 0;\n}\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}\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}\n\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\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}\n\nexports.shr64_lo = shr64_lo;","define(function () {\n \"use strict\";\n\n function nodeName(elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n }\n\n return nodeName;\n});","define(function () {\n \"use strict\"; // Only count HTML whitespace\n // Other whitespace should count in values\n // https://infra.spec.whatwg.org/#ascii-whitespace\n\n return /[^\\x20\\t\\r\\n\\f]+/g;\n});","var Buffer = require('safe-buffer').Buffer;\n\nvar Transform = require('stream').Transform;\n\nvar StringDecoder = require('string_decoder').StringDecoder;\n\nvar inherits = require('inherits');\n\nfunction CipherBase(hashMode) {\n Transform.call(this);\n this.hashMode = typeof hashMode === 'string';\n\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest;\n } else {\n this.final = this._finalOrDigest;\n }\n\n if (this._final) {\n this.__final = this._final;\n this._final = null;\n }\n\n this._decoder = null;\n this._encoding = null;\n}\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\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 () {};\n\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\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};\n\nCipherBase.prototype._flush = function (done) {\n var err;\n\n try {\n this.push(this.__final());\n } catch (e) {\n err = e;\n }\n\n done(err);\n};\n\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0);\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true);\n }\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\n if (fin) {\n out += this._decoder.end();\n }\n\n return out;\n};\n\nmodule.exports = CipherBase;","define(function () {\n \"use strict\"; // All support tests are defined in their respective modules.\n\n return {};\n});","define([\"../core\", \"../core/toType\", \"../var/isFunction\"], function (jQuery, toType, isFunction) {\n \"use strict\"; // Multifunctional method to get and set values of a collection\n // The value/s can optionally be executed if it's a function\n\n var access = function access(elems, fn, key, value, chainable, emptyGet, raw) {\n var i = 0,\n len = elems.length,\n bulk = key == null; // Sets many values\n\n if (toType(key) === \"object\") {\n chainable = true;\n\n for (i in key) {\n access(elems, fn, i, key[i], true, emptyGet, raw);\n } // Sets one value\n\n } else if (value !== undefined) {\n chainable = true;\n\n if (!isFunction(value)) {\n raw = true;\n }\n\n if (bulk) {\n // Bulk operations run against the entire set\n if (raw) {\n fn.call(elems, value);\n fn = null; // ...except when executing function values\n } else {\n bulk = fn;\n\n fn = function fn(elem, _key, value) {\n return bulk.call(jQuery(elem), value);\n };\n }\n }\n\n if (fn) {\n for (; i < len; i++) {\n fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));\n }\n }\n }\n\n if (chainable) {\n return elems;\n } // Gets\n\n\n if (bulk) {\n return fn.call(elems);\n }\n\n return len ? fn(elems[0], key) : emptyGet;\n };\n\n return access;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\ndefine([\"./core\", \"./var/document\", \"./var/isFunction\", \"./var/rnothtmlwhite\", \"./ajax/var/location\", \"./ajax/var/nonce\", \"./ajax/var/rquery\", \"./core/init\", \"./core/parseXML\", \"./event/trigger\", \"./deferred\", \"./serialize\" // jQuery.param\n], function (jQuery, document, isFunction, rnothtmlwhite, location, nonce, rquery) {\n \"use strict\";\n\n var r20 = /%20/g,\n rhash = /#.*$/,\n rantiCache = /([?&])_=[^&]*/,\n rheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n // #7653, #8125, #8152: local protocol detection\n rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n rnoContent = /^(?:GET|HEAD)$/,\n rprotocol = /^\\/\\//,\n\n /* Prefilters\n * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n * 2) These are called:\n * - BEFORE asking for a transport\n * - AFTER param serialization (s.data is a string if s.processData is true)\n * 3) key is the dataType\n * 4) the catchall symbol \"*\" can be used\n * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n */\n prefilters = {},\n\n /* Transports bindings\n * 1) key is the dataType\n * 2) the catchall symbol \"*\" can be used\n * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n */\n transports = {},\n // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n allTypes = \"*/\".concat(\"*\"),\n // Anchor tag for parsing the document origin\n originAnchor = document.createElement(\"a\");\n originAnchor.href = location.href; // Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\n\n function addToPrefiltersOrTransports(structure) {\n // dataTypeExpression is optional and defaults to \"*\"\n return function (dataTypeExpression, func) {\n if (typeof dataTypeExpression !== \"string\") {\n func = dataTypeExpression;\n dataTypeExpression = \"*\";\n }\n\n var dataType,\n i = 0,\n dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || [];\n\n if (isFunction(func)) {\n // For each dataType in the dataTypeExpression\n while (dataType = dataTypes[i++]) {\n // Prepend if requested\n if (dataType[0] === \"+\") {\n dataType = dataType.slice(1) || \"*\";\n (structure[dataType] = structure[dataType] || []).unshift(func); // Otherwise append\n } else {\n (structure[dataType] = structure[dataType] || []).push(func);\n }\n }\n }\n };\n } // Base inspection function for prefilters and transports\n\n\n function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\n var inspected = {},\n seekingTransport = structure === transports;\n\n function inspect(dataType) {\n var selected;\n inspected[dataType] = true;\n jQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) {\n var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR);\n\n if (typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[dataTypeOrTransport]) {\n options.dataTypes.unshift(dataTypeOrTransport);\n inspect(dataTypeOrTransport);\n return false;\n } else if (seekingTransport) {\n return !(selected = dataTypeOrTransport);\n }\n });\n return selected;\n }\n\n return inspect(options.dataTypes[0]) || !inspected[\"*\"] && inspect(\"*\");\n } // A special extend for ajax options\n // that takes \"flat\" options (not to be deep extended)\n // Fixes #9887\n\n\n function ajaxExtend(target, src) {\n var key,\n deep,\n flatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n for (key in src) {\n if (src[key] !== undefined) {\n (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key];\n }\n }\n\n if (deep) {\n jQuery.extend(true, target, deep);\n }\n\n return target;\n }\n /* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\n\n\n function ajaxHandleResponses(s, jqXHR, responses) {\n var ct,\n type,\n finalDataType,\n firstDataType,\n contents = s.contents,\n dataTypes = s.dataTypes; // Remove auto dataType and get content-type in the process\n\n while (dataTypes[0] === \"*\") {\n dataTypes.shift();\n\n if (ct === undefined) {\n ct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n }\n } // Check if we're dealing with a known content-type\n\n\n if (ct) {\n for (type in contents) {\n if (contents[type] && contents[type].test(ct)) {\n dataTypes.unshift(type);\n break;\n }\n }\n } // Check to see if we have a response for the expected dataType\n\n\n if (dataTypes[0] in responses) {\n finalDataType = dataTypes[0];\n } else {\n // Try convertible dataTypes\n for (type in responses) {\n if (!dataTypes[0] || s.converters[type + \" \" + dataTypes[0]]) {\n finalDataType = type;\n break;\n }\n\n if (!firstDataType) {\n firstDataType = type;\n }\n } // Or just use first one\n\n\n finalDataType = finalDataType || firstDataType;\n } // If we found a dataType\n // We add the dataType to the list if needed\n // and return the corresponding response\n\n\n if (finalDataType) {\n if (finalDataType !== dataTypes[0]) {\n dataTypes.unshift(finalDataType);\n }\n\n return responses[finalDataType];\n }\n }\n /* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\n\n\n function ajaxConvert(s, response, jqXHR, isSuccess) {\n var conv2,\n current,\n conv,\n tmp,\n prev,\n converters = {},\n // Work with a copy of dataTypes in case we need to modify it for conversion\n dataTypes = s.dataTypes.slice(); // Create converters map with lowercased keys\n\n if (dataTypes[1]) {\n for (conv in s.converters) {\n converters[conv.toLowerCase()] = s.converters[conv];\n }\n }\n\n current = dataTypes.shift(); // Convert to each sequential dataType\n\n while (current) {\n if (s.responseFields[current]) {\n jqXHR[s.responseFields[current]] = response;\n } // Apply the dataFilter if provided\n\n\n if (!prev && isSuccess && s.dataFilter) {\n response = s.dataFilter(response, s.dataType);\n }\n\n prev = current;\n current = dataTypes.shift();\n\n if (current) {\n // There's only work to do if current dataType is non-auto\n if (current === \"*\") {\n current = prev; // Convert response if prev dataType is non-auto and differs from current\n } else if (prev !== \"*\" && prev !== current) {\n // Seek a direct converter\n conv = converters[prev + \" \" + current] || converters[\"* \" + current]; // If none found, seek a pair\n\n if (!conv) {\n for (conv2 in converters) {\n // If conv2 outputs current\n tmp = conv2.split(\" \");\n\n if (tmp[1] === current) {\n // If prev can be converted to accepted input\n conv = converters[prev + \" \" + tmp[0]] || converters[\"* \" + tmp[0]];\n\n if (conv) {\n // Condense equivalence converters\n if (conv === true) {\n conv = converters[conv2]; // Otherwise, insert the intermediate dataType\n } else if (converters[conv2] !== true) {\n current = tmp[0];\n dataTypes.unshift(tmp[1]);\n }\n\n break;\n }\n }\n }\n } // Apply converter (if not an equivalence)\n\n\n if (conv !== true) {\n // Unless errors are allowed to bubble, catch and return them\n if (conv && s.throws) {\n response = conv(response);\n } else {\n try {\n response = conv(response);\n } catch (e) {\n return {\n state: \"parsererror\",\n error: conv ? e : \"No conversion from \" + prev + \" to \" + current\n };\n }\n }\n }\n }\n }\n }\n\n return {\n state: \"success\",\n data: response\n };\n }\n\n jQuery.extend({\n // Counter for holding the number of active queries\n active: 0,\n // Last-Modified header cache for next request\n lastModified: {},\n etag: {},\n ajaxSettings: {\n url: location.href,\n type: \"GET\",\n isLocal: rlocalProtocol.test(location.protocol),\n global: true,\n processData: true,\n async: true,\n contentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n /*\n timeout: 0,\n data: null,\n dataType: null,\n username: null,\n password: null,\n cache: null,\n throws: false,\n traditional: false,\n headers: {},\n */\n accepts: {\n \"*\": allTypes,\n text: \"text/plain\",\n html: \"text/html\",\n xml: \"application/xml, text/xml\",\n json: \"application/json, text/javascript\"\n },\n contents: {\n xml: /\\bxml\\b/,\n html: /\\bhtml/,\n json: /\\bjson\\b/\n },\n responseFields: {\n xml: \"responseXML\",\n text: \"responseText\",\n json: \"responseJSON\"\n },\n // Data converters\n // Keys separate source (or catchall \"*\") and destination types with a single space\n converters: {\n // Convert anything to text\n \"* text\": String,\n // Text to html (true = no transformation)\n \"text html\": true,\n // Evaluate text as a json expression\n \"text json\": JSON.parse,\n // Parse text as xml\n \"text xml\": jQuery.parseXML\n },\n // For options that shouldn't be deep extended:\n // you can add your own custom options here if\n // and when you create one that shouldn't be\n // deep extended (see ajaxExtend)\n flatOptions: {\n url: true,\n context: true\n }\n },\n // Creates a full fledged settings object into target\n // with both ajaxSettings and settings fields.\n // If target is omitted, writes into ajaxSettings.\n ajaxSetup: function ajaxSetup(target, settings) {\n return settings ? // Building a settings object\n ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) : // Extending ajaxSettings\n ajaxExtend(jQuery.ajaxSettings, target);\n },\n ajaxPrefilter: addToPrefiltersOrTransports(prefilters),\n ajaxTransport: addToPrefiltersOrTransports(transports),\n // Main method\n ajax: function ajax(url, options) {\n // If url is an object, simulate pre-1.5 signature\n if (_typeof(url) === \"object\") {\n options = url;\n url = undefined;\n } // Force options to be an object\n\n\n options = options || {};\n\n var transport,\n // URL without anti-cache param\n cacheURL,\n // Response headers\n responseHeadersString,\n responseHeaders,\n // timeout handle\n timeoutTimer,\n // Url cleanup var\n urlAnchor,\n // Request state (becomes false upon send and true upon completion)\n completed,\n // To know if global events are to be dispatched\n fireGlobals,\n // Loop variable\n i,\n // uncached part of the url\n uncached,\n // Create the final options object\n s = jQuery.ajaxSetup({}, options),\n // Callbacks context\n callbackContext = s.context || s,\n // Context for global events is callbackContext if it is a DOM node or jQuery collection\n globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery(callbackContext) : jQuery.event,\n // Deferreds\n deferred = jQuery.Deferred(),\n completeDeferred = jQuery.Callbacks(\"once memory\"),\n // Status-dependent callbacks\n _statusCode = s.statusCode || {},\n // Headers (they are sent all at once)\n requestHeaders = {},\n requestHeadersNames = {},\n // Default abort message\n strAbort = \"canceled\",\n // Fake xhr\n jqXHR = {\n readyState: 0,\n // Builds headers hashtable if needed\n getResponseHeader: function getResponseHeader(key) {\n var match;\n\n if (completed) {\n if (!responseHeaders) {\n responseHeaders = {};\n\n while (match = rheaders.exec(responseHeadersString)) {\n responseHeaders[match[1].toLowerCase() + \" \"] = (responseHeaders[match[1].toLowerCase() + \" \"] || []).concat(match[2]);\n }\n }\n\n match = responseHeaders[key.toLowerCase() + \" \"];\n }\n\n return match == null ? null : match.join(\", \");\n },\n // Raw string\n getAllResponseHeaders: function getAllResponseHeaders() {\n return completed ? responseHeadersString : null;\n },\n // Caches the header\n setRequestHeader: function setRequestHeader(name, value) {\n if (completed == null) {\n name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name;\n requestHeaders[name] = value;\n }\n\n return this;\n },\n // Overrides response content-type header\n overrideMimeType: function overrideMimeType(type) {\n if (completed == null) {\n s.mimeType = type;\n }\n\n return this;\n },\n // Status-dependent callbacks\n statusCode: function statusCode(map) {\n var code;\n\n if (map) {\n if (completed) {\n // Execute the appropriate callbacks\n jqXHR.always(map[jqXHR.status]);\n } else {\n // Lazy-add the new callbacks in a way that preserves old ones\n for (code in map) {\n _statusCode[code] = [_statusCode[code], map[code]];\n }\n }\n }\n\n return this;\n },\n // Cancel the request\n abort: function abort(statusText) {\n var finalText = statusText || strAbort;\n\n if (transport) {\n transport.abort(finalText);\n }\n\n done(0, finalText);\n return this;\n }\n }; // Attach deferreds\n\n\n deferred.promise(jqXHR); // Add protocol if not provided (prefilters might expect it)\n // Handle falsy url in the settings object (#10093: consistency with old signature)\n // We also use the url parameter if available\n\n s.url = ((url || s.url || location.href) + \"\").replace(rprotocol, location.protocol + \"//\"); // Alias method option to type as per ticket #12004\n\n s.type = options.method || options.type || s.method || s.type; // Extract dataTypes list\n\n s.dataTypes = (s.dataType || \"*\").toLowerCase().match(rnothtmlwhite) || [\"\"]; // A cross-domain request is in order when the origin doesn't match the current origin.\n\n if (s.crossDomain == null) {\n urlAnchor = document.createElement(\"a\"); // Support: IE <=8 - 11, Edge 12 - 15\n // IE throws exception on accessing the href property if url is malformed,\n // e.g. http://example.com:80x/\n\n try {\n urlAnchor.href = s.url; // Support: IE <=8 - 11 only\n // Anchor's host property isn't correctly set when s.url is relative\n\n urlAnchor.href = urlAnchor.href;\n s.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host;\n } catch (e) {\n // If there is an error parsing the URL, assume it is crossDomain,\n // it can be rejected by the transport if it is invalid\n s.crossDomain = true;\n }\n } // Convert data if not already a string\n\n\n if (s.data && s.processData && typeof s.data !== \"string\") {\n s.data = jQuery.param(s.data, s.traditional);\n } // Apply prefilters\n\n\n inspectPrefiltersOrTransports(prefilters, s, options, jqXHR); // If request was aborted inside a prefilter, stop there\n\n if (completed) {\n return jqXHR;\n } // We can fire global events as of now if asked to\n // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\n\n fireGlobals = jQuery.event && s.global; // Watch for a new set of requests\n\n if (fireGlobals && jQuery.active++ === 0) {\n jQuery.event.trigger(\"ajaxStart\");\n } // Uppercase the type\n\n\n s.type = s.type.toUpperCase(); // Determine if request has content\n\n s.hasContent = !rnoContent.test(s.type); // Save the URL in case we're toying with the If-Modified-Since\n // and/or If-None-Match header later on\n // Remove hash to simplify url manipulation\n\n cacheURL = s.url.replace(rhash, \"\"); // More options handling for requests with no content\n\n if (!s.hasContent) {\n // Remember the hash so we can put it back\n uncached = s.url.slice(cacheURL.length); // If data is available and should be processed, append data to url\n\n if (s.data && (s.processData || typeof s.data === \"string\")) {\n cacheURL += (rquery.test(cacheURL) ? \"&\" : \"?\") + s.data; // #9682: remove data so that it's not used in an eventual retry\n\n delete s.data;\n } // Add or update anti-cache param if needed\n\n\n if (s.cache === false) {\n cacheURL = cacheURL.replace(rantiCache, \"$1\");\n uncached = (rquery.test(cacheURL) ? \"&\" : \"?\") + \"_=\" + nonce.guid++ + uncached;\n } // Put hash and anti-cache on the URL that will be requested (gh-1732)\n\n\n s.url = cacheURL + uncached; // Change '%20' to '+' if this is encoded form body content (gh-2658)\n } else if (s.data && s.processData && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0) {\n s.data = s.data.replace(r20, \"+\");\n } // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\n\n if (s.ifModified) {\n if (jQuery.lastModified[cacheURL]) {\n jqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\n }\n\n if (jQuery.etag[cacheURL]) {\n jqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\n }\n } // Set the correct header, if data is being sent\n\n\n if (s.data && s.hasContent && s.contentType !== false || options.contentType) {\n jqXHR.setRequestHeader(\"Content-Type\", s.contentType);\n } // Set the Accepts header for the server, depending on the dataType\n\n\n jqXHR.setRequestHeader(\"Accept\", s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\") : s.accepts[\"*\"]); // Check for headers option\n\n for (i in s.headers) {\n jqXHR.setRequestHeader(i, s.headers[i]);\n } // Allow custom headers/mimetypes and early abort\n\n\n if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || completed)) {\n // Abort if not done already and return\n return jqXHR.abort();\n } // Aborting is no longer a cancellation\n\n\n strAbort = \"abort\"; // Install callbacks on deferreds\n\n completeDeferred.add(s.complete);\n jqXHR.done(s.success);\n jqXHR.fail(s.error); // Get transport\n\n transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR); // If no transport, we auto-abort\n\n if (!transport) {\n done(-1, \"No Transport\");\n } else {\n jqXHR.readyState = 1; // Send global event\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\n } // If request was aborted inside ajaxSend, stop there\n\n\n if (completed) {\n return jqXHR;\n } // Timeout\n\n\n if (s.async && s.timeout > 0) {\n timeoutTimer = window.setTimeout(function () {\n jqXHR.abort(\"timeout\");\n }, s.timeout);\n }\n\n try {\n completed = false;\n transport.send(requestHeaders, done);\n } catch (e) {\n // Rethrow post-completion exceptions\n if (completed) {\n throw e;\n } // Propagate others as results\n\n\n done(-1, e);\n }\n } // Callback for when everything is done\n\n\n function done(status, nativeStatusText, responses, headers) {\n var isSuccess,\n success,\n error,\n response,\n modified,\n statusText = nativeStatusText; // Ignore repeat invocations\n\n if (completed) {\n return;\n }\n\n completed = true; // Clear timeout if it exists\n\n if (timeoutTimer) {\n window.clearTimeout(timeoutTimer);\n } // Dereference transport for early garbage collection\n // (no matter how long the jqXHR object will be used)\n\n\n transport = undefined; // Cache response headers\n\n responseHeadersString = headers || \"\"; // Set readyState\n\n jqXHR.readyState = status > 0 ? 4 : 0; // Determine if successful\n\n isSuccess = status >= 200 && status < 300 || status === 304; // Get response data\n\n if (responses) {\n response = ajaxHandleResponses(s, jqXHR, responses);\n } // Use a noop converter for missing script but not if jsonp\n\n\n if (!isSuccess && jQuery.inArray(\"script\", s.dataTypes) > -1 && jQuery.inArray(\"json\", s.dataTypes) < 0) {\n s.converters[\"text script\"] = function () {};\n } // Convert no matter what (that way responseXXX fields are always set)\n\n\n response = ajaxConvert(s, response, jqXHR, isSuccess); // If successful, handle type chaining\n\n if (isSuccess) {\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n modified = jqXHR.getResponseHeader(\"Last-Modified\");\n\n if (modified) {\n jQuery.lastModified[cacheURL] = modified;\n }\n\n modified = jqXHR.getResponseHeader(\"etag\");\n\n if (modified) {\n jQuery.etag[cacheURL] = modified;\n }\n } // if no content\n\n\n if (status === 204 || s.type === \"HEAD\") {\n statusText = \"nocontent\"; // if not modified\n } else if (status === 304) {\n statusText = \"notmodified\"; // If we have data, let's convert it\n } else {\n statusText = response.state;\n success = response.data;\n error = response.error;\n isSuccess = !error;\n }\n } else {\n // Extract error from statusText and normalize for non-aborts\n error = statusText;\n\n if (status || !statusText) {\n statusText = \"error\";\n\n if (status < 0) {\n status = 0;\n }\n }\n } // Set data for the fake xhr object\n\n\n jqXHR.status = status;\n jqXHR.statusText = (nativeStatusText || statusText) + \"\"; // Success/Error\n\n if (isSuccess) {\n deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\n } else {\n deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\n } // Status-dependent callbacks\n\n\n jqXHR.statusCode(_statusCode);\n _statusCode = undefined;\n\n if (fireGlobals) {\n globalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\", [jqXHR, s, isSuccess ? success : error]);\n } // Complete\n\n\n completeDeferred.fireWith(callbackContext, [jqXHR, statusText]);\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]); // Handle the global AJAX counter\n\n if (! --jQuery.active) {\n jQuery.event.trigger(\"ajaxStop\");\n }\n }\n }\n\n return jqXHR;\n },\n getJSON: function getJSON(url, data, callback) {\n return jQuery.get(url, data, callback, \"json\");\n },\n getScript: function getScript(url, callback) {\n return jQuery.get(url, undefined, callback, \"script\");\n }\n });\n jQuery.each([\"get\", \"post\"], function (_i, method) {\n jQuery[method] = function (url, data, callback, type) {\n // Shift arguments if data argument was omitted\n if (isFunction(data)) {\n type = type || callback;\n callback = data;\n data = undefined;\n } // The url can be an options object (which then must have .url)\n\n\n return jQuery.ajax(jQuery.extend({\n url: url,\n type: method,\n dataType: type,\n data: data,\n success: callback\n }, jQuery.isPlainObject(url) && url));\n };\n });\n jQuery.ajaxPrefilter(function (s) {\n var i;\n\n for (i in s.headers) {\n if (i.toLowerCase() === \"content-type\") {\n s.contentType = s.headers[i] || \"\";\n }\n }\n });\n return jQuery;\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\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar R = (typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) === 'object' ? Reflect : null;\nvar ReflectApply = R && typeof R.apply === 'function' ? R.apply : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n};\nvar ReflectOwnKeys;\n\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).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}\n\nmodule.exports = EventEmitter;\nmodule.exports.once = once; // Backwards-compat with node 0.10.x\n\nEventEmitter.EventEmitter = EventEmitter;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined; // 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.\n\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 get() {\n return defaultMaxListeners;\n },\n set: function set(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\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function () {\n if (this._events === undefined || 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}; // Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\n\n\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\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined) 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\n for (var i = 1; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var doError = type === 'error';\n var events = this._events;\n if (events !== undefined) doError = doError && events.error === undefined;else if (!doError) return false; // If there is no 'error' event listener then throw.\n\n if (doError) {\n var er;\n if (args.length > 0) er = args[0];\n\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 } // At least give some kind of context to the user\n\n\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 if (handler === undefined) 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\n for (var i = 0; i < len; ++i) {\n ReflectApply(listeners[i], this, args);\n }\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n checkListener(listener);\n events = target._events;\n\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, listener.listener ? listener.listener : listener); // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n\n events = target._events;\n }\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] = prepend ? [listener, existing] : [existing, listener]; // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n } // Check for listener leak\n\n\n m = _getMaxListeners(target);\n\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true; // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n\n var w = new Error('Possible EventEmitter memory leak detected. ' + existing.length + ' ' + String(type) + ' listeners ' + 'added. Use emitter.setMaxListeners() to ' + '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 = 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) 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 = {\n fired: false,\n wrapFn: undefined,\n target: target,\n type: type,\n listener: listener\n };\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 = function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n}; // Emits a 'removeListener' event if and only if the listener was removed.\n\n\nEventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n checkListener(listener);\n events = this._events;\n if (events === undefined) return this;\n list = events[type];\n if (list === undefined) return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0) this._events = Object.create(null);else {\n delete events[type];\n if (events.removeListener) 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) return this;\n if (position === 0) list.shift();else {\n spliceOne(list, position);\n }\n if (list.length === 1) events[type] = list[0];\n if (events.removeListener !== undefined) this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === undefined) return this; // not listening for removeListener, no need to emit\n\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) this._events = Object.create(null);else delete events[type];\n }\n\n return this;\n } // emit removeListener for all listeners on all events\n\n\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\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 if (events === undefined) return [];\n var evlistener = events[type];\n if (evlistener === undefined) return [];\n if (typeof evlistener === 'function') return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? 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;\n\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\n for (var i = 0; i < n; ++i) {\n copy[i] = arr[i];\n }\n\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++) {\n list[index] = list[index + 1];\n }\n\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n\n resolve([].slice.call(arguments));\n }\n\n ;\n eventTargetAgnosticAddListener(emitter, name, resolver, {\n once: true\n });\n\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, {\n once: true\n });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + _typeof(emitter));\n }\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n case 'raw':\n return true;\n\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n\n case 'latin1':\n case 'binary':\n return 'latin1';\n\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n\n default:\n if (retried) return; // undefined\n\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\n\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\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.\n\n\nexports.StringDecoder = StringDecoder;\n\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\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\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\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; // Returns only complete characters in a Buffer\n\nStringDecoder.prototype.text = utf8Text; // Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\n\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\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\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.\n\n\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} // 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.\n\n\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n\n return nb;\n }\n\n return 0;\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.\n\n\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return \"\\uFFFD\";\n }\n\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return \"\\uFFFD\";\n }\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} // Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\n\n\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n\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\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\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.\n\n\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} // For UTF-8, a replacement character is added when ending on a partial\n// character.\n\n\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + \"\\uFFFD\";\n return r;\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.\n\n\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n\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\n return r;\n }\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} // 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.\n\n\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\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\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\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} // Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\n\n\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// 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 pna = require('process-nextick-args');\n/**/\n\n/**/\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/**/\n\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n{\n // avoid scope creep, the keys array can then be collected\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 if (options && options.readable === false) this.readable = false;\n if (options && options.writable === false) this.writable = false;\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\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 get() {\n return this._writableState.highWaterMark;\n }\n}); // the no-half-open enforcer\n\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; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\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});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n pna.nextTick(cb, err);\n};","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\ndefine([\"../var/class2type\", \"../var/toString\"], function (class2type, toString) {\n \"use strict\";\n\n function toType(obj) {\n if (obj == null) {\n return obj + \"\";\n } // Support: Android <=2.3 only (functionish RegExp)\n\n\n return _typeof(obj) === \"object\" || typeof obj === \"function\" ? class2type[toString.call(obj)] || \"object\" : _typeof(obj);\n }\n\n return toType;\n});","define([\"./core\", \"./var/getProto\", \"./var/indexOf\", \"./traversing/var/dir\", \"./traversing/var/siblings\", \"./traversing/var/rneedsContext\", \"./core/nodeName\", \"./core/init\", \"./traversing/findFilter\", \"./selector\"], function (jQuery, getProto, indexOf, dir, _siblings, rneedsContext, nodeName) {\n \"use strict\";\n\n var rparentsprev = /^(?:parents|prev(?:Until|All))/,\n // Methods guaranteed to produce a unique set when starting from a unique set\n guaranteedUnique = {\n children: true,\n contents: true,\n next: true,\n prev: true\n };\n jQuery.fn.extend({\n has: function has(target) {\n var targets = jQuery(target, this),\n l = targets.length;\n return this.filter(function () {\n var i = 0;\n\n for (; i < l; i++) {\n if (jQuery.contains(this, targets[i])) {\n return true;\n }\n }\n });\n },\n closest: function closest(selectors, context) {\n var cur,\n i = 0,\n l = this.length,\n matched = [],\n targets = typeof selectors !== \"string\" && jQuery(selectors); // Positional selectors never match, since there's no _selection_ context\n\n if (!rneedsContext.test(selectors)) {\n for (; i < l; i++) {\n for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\n // Always skip document fragments\n if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 : // Don't pass non-elements to Sizzle\n cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors))) {\n matched.push(cur);\n break;\n }\n }\n }\n }\n\n return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched);\n },\n // Determine the position of an element within the set\n index: function index(elem) {\n // No argument, return index in parent\n if (!elem) {\n return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n } // Index in selector\n\n\n if (typeof elem === \"string\") {\n return indexOf.call(jQuery(elem), this[0]);\n } // Locate the position of the desired element\n\n\n return indexOf.call(this, // If it receives a jQuery object, the first element is used\n elem.jquery ? elem[0] : elem);\n },\n add: function add(selector, context) {\n return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context))));\n },\n addBack: function addBack(selector) {\n return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));\n }\n });\n\n function sibling(cur, dir) {\n while ((cur = cur[dir]) && cur.nodeType !== 1) {}\n\n return cur;\n }\n\n jQuery.each({\n parent: function parent(elem) {\n var parent = elem.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function parents(elem) {\n return dir(elem, \"parentNode\");\n },\n parentsUntil: function parentsUntil(elem, _i, until) {\n return dir(elem, \"parentNode\", until);\n },\n next: function next(elem) {\n return sibling(elem, \"nextSibling\");\n },\n prev: function prev(elem) {\n return sibling(elem, \"previousSibling\");\n },\n nextAll: function nextAll(elem) {\n return dir(elem, \"nextSibling\");\n },\n prevAll: function prevAll(elem) {\n return dir(elem, \"previousSibling\");\n },\n nextUntil: function nextUntil(elem, _i, until) {\n return dir(elem, \"nextSibling\", until);\n },\n prevUntil: function prevUntil(elem, _i, until) {\n return dir(elem, \"previousSibling\", until);\n },\n siblings: function siblings(elem) {\n return _siblings((elem.parentNode || {}).firstChild, elem);\n },\n children: function children(elem) {\n return _siblings(elem.firstChild);\n },\n contents: function contents(elem) {\n if (elem.contentDocument != null && // Support: IE 11+\n // elements with no `data` attribute has an object\n // `contentDocument` with a `null` prototype.\n getProto(elem.contentDocument)) {\n return elem.contentDocument;\n } // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n // Treat the template element as a regular one in browsers that\n // don't support it.\n\n\n if (nodeName(elem, \"template\")) {\n elem = elem.content || elem;\n }\n\n return jQuery.merge([], elem.childNodes);\n }\n }, function (name, fn) {\n jQuery.fn[name] = function (until, selector) {\n var matched = jQuery.map(this, fn, until);\n\n if (name.slice(-5) !== \"Until\") {\n selector = until;\n }\n\n if (selector && typeof selector === \"string\") {\n matched = jQuery.filter(selector, matched);\n }\n\n if (this.length > 1) {\n // Remove duplicates\n if (!guaranteedUnique[name]) {\n jQuery.uniqueSort(matched);\n } // Reverse order for parents* and prev-derivatives\n\n\n if (rparentsprev.test(name)) {\n matched.reverse();\n }\n }\n\n return this.pushStack(matched);\n };\n });\n return jQuery;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\ndefine([\"./core\", \"./var/isFunction\", \"./var/slice\", \"./callbacks\"], function (jQuery, isFunction, slice) {\n \"use strict\";\n\n function Identity(v) {\n return v;\n }\n\n function Thrower(ex) {\n throw ex;\n }\n\n function adoptValue(value, resolve, reject, noValue) {\n var method;\n\n try {\n // Check for promise aspect first to privilege synchronous behavior\n if (value && isFunction(method = value.promise)) {\n method.call(value).done(resolve).fail(reject); // Other thenables\n } else if (value && isFunction(method = value.then)) {\n method.call(value, resolve, reject); // Other non-thenables\n } else {\n // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n // * false: [ value ].slice( 0 ) => resolve( value )\n // * true: [ value ].slice( 1 ) => resolve()\n resolve.apply(undefined, [value].slice(noValue));\n } // For Promises/A+, convert exceptions into rejections\n // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n // Deferred#then to conditionally suppress rejection.\n\n } catch (value) {\n // Support: Android 4.0 only\n // Strict mode functions invoked without .call/.apply get global-object context\n reject.apply(undefined, [value]);\n }\n }\n\n jQuery.extend({\n Deferred: function Deferred(func) {\n var tuples = [// action, add listener, callbacks,\n // ... .then handlers, argument index, [final state]\n [\"notify\", \"progress\", jQuery.Callbacks(\"memory\"), jQuery.Callbacks(\"memory\"), 2], [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 0, \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 1, \"rejected\"]],\n _state = \"pending\",\n _promise = {\n state: function state() {\n return _state;\n },\n always: function always() {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n \"catch\": function _catch(fn) {\n return _promise.then(null, fn);\n },\n // Keep pipe for back-compat\n pipe: function\n /* fnDone, fnFail, fnProgress */\n pipe() {\n var fns = arguments;\n return jQuery.Deferred(function (newDefer) {\n jQuery.each(tuples, function (_i, tuple) {\n // Map tuples (progress, done, fail) to arguments (done, fail, progress)\n var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]]; // deferred.progress(function() { bind to newDefer or newDefer.notify })\n // deferred.done(function() { bind to newDefer or newDefer.resolve })\n // deferred.fail(function() { bind to newDefer or newDefer.reject })\n\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n\n if (returned && isFunction(returned.promise)) {\n returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);\n } else {\n newDefer[tuple[0] + \"With\"](this, fn ? [returned] : arguments);\n }\n });\n });\n fns = null;\n }).promise();\n },\n then: function then(onFulfilled, onRejected, onProgress) {\n var maxDepth = 0;\n\n function resolve(depth, deferred, handler, special) {\n return function () {\n var that = this,\n args = arguments,\n mightThrow = function mightThrow() {\n var returned, then; // Support: Promises/A+ section 2.3.3.3.3\n // https://promisesaplus.com/#point-59\n // Ignore double-resolution attempts\n\n if (depth < maxDepth) {\n return;\n }\n\n returned = handler.apply(that, args); // Support: Promises/A+ section 2.3.1\n // https://promisesaplus.com/#point-48\n\n if (returned === deferred.promise()) {\n throw new TypeError(\"Thenable self-resolution\");\n } // Support: Promises/A+ sections 2.3.3.1, 3.5\n // https://promisesaplus.com/#point-54\n // https://promisesaplus.com/#point-75\n // Retrieve `then` only once\n\n\n then = returned && ( // Support: Promises/A+ section 2.3.4\n // https://promisesaplus.com/#point-64\n // Only check objects and functions for thenability\n _typeof(returned) === \"object\" || typeof returned === \"function\") && returned.then; // Handle a returned thenable\n\n if (isFunction(then)) {\n // Special processors (notify) just wait for resolution\n if (special) {\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special)); // Normal processors (resolve) also hook into progress\n } else {\n // ...and disregard older resolution values\n maxDepth++;\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special), resolve(maxDepth, deferred, Identity, deferred.notifyWith));\n } // Handle all other returned values\n\n } else {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Identity) {\n that = undefined;\n args = [returned];\n } // Process the value(s)\n // Default process is resolve\n\n\n (special || deferred.resolveWith)(that, args);\n }\n },\n // Only normal processors (resolve) catch and reject exceptions\n process = special ? mightThrow : function () {\n try {\n mightThrow();\n } catch (e) {\n if (jQuery.Deferred.exceptionHook) {\n jQuery.Deferred.exceptionHook(e, process.stackTrace);\n } // Support: Promises/A+ section 2.3.3.3.4.1\n // https://promisesaplus.com/#point-61\n // Ignore post-resolution exceptions\n\n\n if (depth + 1 >= maxDepth) {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Thrower) {\n that = undefined;\n args = [e];\n }\n\n deferred.rejectWith(that, args);\n }\n }\n }; // Support: Promises/A+ section 2.3.3.3.1\n // https://promisesaplus.com/#point-57\n // Re-resolve promises immediately to dodge false rejection from\n // subsequent errors\n\n\n if (depth) {\n process();\n } else {\n // Call an optional hook to record the stack, in case of exception\n // since it's otherwise lost when execution goes async\n if (jQuery.Deferred.getStackHook) {\n process.stackTrace = jQuery.Deferred.getStackHook();\n }\n\n window.setTimeout(process);\n }\n };\n }\n\n return jQuery.Deferred(function (newDefer) {\n // progress_handlers.add( ... )\n tuples[0][3].add(resolve(0, newDefer, isFunction(onProgress) ? onProgress : Identity, newDefer.notifyWith)); // fulfilled_handlers.add( ... )\n\n tuples[1][3].add(resolve(0, newDefer, isFunction(onFulfilled) ? onFulfilled : Identity)); // rejected_handlers.add( ... )\n\n tuples[2][3].add(resolve(0, newDefer, isFunction(onRejected) ? onRejected : Thrower));\n }).promise();\n },\n // Get a promise for this deferred\n // If obj is provided, the promise aspect is added to the object\n promise: function promise(obj) {\n return obj != null ? jQuery.extend(obj, _promise) : _promise;\n }\n },\n deferred = {}; // Add list-specific methods\n\n jQuery.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[5]; // promise.progress = list.add\n // promise.done = list.add\n // promise.fail = list.add\n\n _promise[tuple[1]] = list.add; // Handle state\n\n if (stateString) {\n list.add(function () {\n // state = \"resolved\" (i.e., fulfilled)\n // state = \"rejected\"\n _state = stateString;\n }, // rejected_callbacks.disable\n // fulfilled_callbacks.disable\n tuples[3 - i][2].disable, // rejected_handlers.disable\n // fulfilled_handlers.disable\n tuples[3 - i][3].disable, // progress_callbacks.lock\n tuples[0][2].lock, // progress_handlers.lock\n tuples[0][3].lock);\n } // progress_handlers.fire\n // fulfilled_handlers.fire\n // rejected_handlers.fire\n\n\n list.add(tuple[3].fire); // deferred.notify = function() { deferred.notifyWith(...) }\n // deferred.resolve = function() { deferred.resolveWith(...) }\n // deferred.reject = function() { deferred.rejectWith(...) }\n\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? undefined : this, arguments);\n return this;\n }; // deferred.notifyWith = list.fireWith\n // deferred.resolveWith = list.fireWith\n // deferred.rejectWith = list.fireWith\n\n\n deferred[tuple[0] + \"With\"] = list.fireWith;\n }); // Make the deferred a promise\n\n _promise.promise(deferred); // Call given func if any\n\n\n if (func) {\n func.call(deferred, deferred);\n } // All done!\n\n\n return deferred;\n },\n // Deferred helper\n when: function when(singleValue) {\n var // count of uncompleted subordinates\n remaining = arguments.length,\n // count of unprocessed arguments\n i = remaining,\n // subordinate fulfillment data\n resolveContexts = Array(i),\n resolveValues = slice.call(arguments),\n // the primary Deferred\n primary = jQuery.Deferred(),\n // subordinate callback factory\n updateFunc = function updateFunc(i) {\n return function (value) {\n resolveContexts[i] = this;\n resolveValues[i] = arguments.length > 1 ? slice.call(arguments) : value;\n\n if (! --remaining) {\n primary.resolveWith(resolveContexts, resolveValues);\n }\n };\n }; // Single- and empty arguments are adopted like Promise.resolve\n\n\n if (remaining <= 1) {\n adoptValue(singleValue, primary.done(updateFunc(i)).resolve, primary.reject, !remaining); // Use .then() to unwrap secondary thenables (cf. gh-3000)\n\n if (primary.state() === \"pending\" || isFunction(resolveValues[i] && resolveValues[i].then)) {\n return primary.then();\n }\n } // Multiple arguments are aggregated like Promise.all array elements\n\n\n while (i--) {\n adoptValue(resolveValues[i], updateFunc(i), primary.reject);\n }\n\n return primary.promise();\n }\n });\n return jQuery;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\ndefine([\"./core\", \"./var/document\", \"./var/documentElement\", \"./var/isFunction\", \"./var/rnothtmlwhite\", \"./var/rcheckableType\", \"./var/slice\", \"./data/var/acceptData\", \"./data/var/dataPriv\", \"./core/nodeName\", \"./core/init\", \"./selector\"], function (jQuery, document, documentElement, isFunction, rnothtmlwhite, rcheckableType, slice, acceptData, dataPriv, nodeName) {\n \"use strict\";\n\n var rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\n function returnTrue() {\n return true;\n }\n\n function returnFalse() {\n return false;\n } // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous, except when they are no-op.\n // So expect focus to be synchronous when the element is already active,\n // and blur to be synchronous when the element is not already active.\n // (focus and blur are always synchronous in other supported browsers,\n // this just defines when we can count on it).\n\n\n function expectSync(elem, type) {\n return elem === safeActiveElement() === (type === \"focus\");\n } // Support: IE <=9 only\n // Accessing document.activeElement can throw unexpectedly\n // https://bugs.jquery.com/ticket/13393\n\n\n function safeActiveElement() {\n try {\n return document.activeElement;\n } catch (err) {}\n }\n\n function _on(elem, types, selector, data, fn, one) {\n var origFn, type; // Types can be a map of types/handlers\n\n if (_typeof(types) === \"object\") {\n // ( types-Object, selector, data )\n if (typeof selector !== \"string\") {\n // ( types-Object, data )\n data = data || selector;\n selector = undefined;\n }\n\n for (type in types) {\n _on(elem, type, selector, data, types[type], one);\n }\n\n return elem;\n }\n\n if (data == null && fn == null) {\n // ( types, fn )\n fn = selector;\n data = selector = undefined;\n } else if (fn == null) {\n if (typeof selector === \"string\") {\n // ( types, selector, fn )\n fn = data;\n data = undefined;\n } else {\n // ( types, data, fn )\n fn = data;\n data = selector;\n selector = undefined;\n }\n }\n\n if (fn === false) {\n fn = returnFalse;\n } else if (!fn) {\n return elem;\n }\n\n if (one === 1) {\n origFn = fn;\n\n fn = function fn(event) {\n // Can use an empty set, since event contains the info\n jQuery().off(event);\n return origFn.apply(this, arguments);\n }; // Use same guid so caller can remove using origFn\n\n\n fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n }\n\n return elem.each(function () {\n jQuery.event.add(this, types, fn, data, selector);\n });\n }\n /*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\n\n\n jQuery.event = {\n global: {},\n add: function add(elem, types, handler, data, selector) {\n var handleObjIn,\n eventHandle,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.get(elem); // Only attach events to objects that accept data\n\n if (!acceptData(elem)) {\n return;\n } // Caller can pass in an object of custom data in lieu of the handler\n\n\n if (handler.handler) {\n handleObjIn = handler;\n handler = handleObjIn.handler;\n selector = handleObjIn.selector;\n } // Ensure that invalid selectors throw exceptions at attach time\n // Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\n\n if (selector) {\n jQuery.find.matchesSelector(documentElement, selector);\n } // Make sure that the handler has a unique ID, used to find/remove it later\n\n\n if (!handler.guid) {\n handler.guid = jQuery.guid++;\n } // Init the element's event structure and main handler, if this is the first\n\n\n if (!(events = elemData.events)) {\n events = elemData.events = Object.create(null);\n }\n\n if (!(eventHandle = elemData.handle)) {\n eventHandle = elemData.handle = function (e) {\n // Discard the second event of a jQuery.event.trigger() and\n // when an event is called after a page has unloaded\n return typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply(elem, arguments) : undefined;\n };\n } // Handle multiple events separated by a space\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // There *must* be a type, no attaching namespace-only handlers\n\n if (!type) {\n continue;\n } // If event changes its type, use the special event handlers for the changed type\n\n\n special = jQuery.event.special[type] || {}; // If selector defined, determine special event api type, otherwise given type\n\n type = (selector ? special.delegateType : special.bindType) || type; // Update special based on newly reset type\n\n special = jQuery.event.special[type] || {}; // handleObj is passed to all event handlers\n\n handleObj = jQuery.extend({\n type: type,\n origType: origType,\n data: data,\n handler: handler,\n guid: handler.guid,\n selector: selector,\n needsContext: selector && jQuery.expr.match.needsContext.test(selector),\n namespace: namespaces.join(\".\")\n }, handleObjIn); // Init the event handler queue if we're the first\n\n if (!(handlers = events[type])) {\n handlers = events[type] = [];\n handlers.delegateCount = 0; // Only use addEventListener if the special events handler returns false\n\n if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle);\n }\n }\n }\n\n if (special.add) {\n special.add.call(elem, handleObj);\n\n if (!handleObj.handler.guid) {\n handleObj.handler.guid = handler.guid;\n }\n } // Add to the element's handler list, delegates in front\n\n\n if (selector) {\n handlers.splice(handlers.delegateCount++, 0, handleObj);\n } else {\n handlers.push(handleObj);\n } // Keep track of which events have ever been used, for event optimization\n\n\n jQuery.event.global[type] = true;\n }\n },\n // Detach an event or set of events from an element\n remove: function remove(elem, types, handler, selector, mappedTypes) {\n var j,\n origCount,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.hasData(elem) && dataPriv.get(elem);\n\n if (!elemData || !(events = elemData.events)) {\n return;\n } // Once for each type.namespace in types; type may be omitted\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // Unbind all events (on this namespace, if provided) for the element\n\n if (!type) {\n for (type in events) {\n jQuery.event.remove(elem, type + types[t], handler, selector, true);\n }\n\n continue;\n }\n\n special = jQuery.event.special[type] || {};\n type = (selector ? special.delegateType : special.bindType) || type;\n handlers = events[type] || [];\n tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\"); // Remove matching events\n\n origCount = j = handlers.length;\n\n while (j--) {\n handleObj = handlers[j];\n\n if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector)) {\n handlers.splice(j, 1);\n\n if (handleObj.selector) {\n handlers.delegateCount--;\n }\n\n if (special.remove) {\n special.remove.call(elem, handleObj);\n }\n }\n } // Remove generic event handler if we removed something and no more handlers exist\n // (avoids potential for endless recursion during removal of special event handlers)\n\n\n if (origCount && !handlers.length) {\n if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\n jQuery.removeEvent(elem, type, elemData.handle);\n }\n\n delete events[type];\n }\n } // Remove data and the expando if it's no longer used\n\n\n if (jQuery.isEmptyObject(events)) {\n dataPriv.remove(elem, \"handle events\");\n }\n },\n dispatch: function dispatch(nativeEvent) {\n var i,\n j,\n ret,\n matched,\n handleObj,\n handlerQueue,\n args = new Array(arguments.length),\n // Make a writable jQuery.Event from the native event object\n event = jQuery.event.fix(nativeEvent),\n handlers = (dataPriv.get(this, \"events\") || Object.create(null))[event.type] || [],\n special = jQuery.event.special[event.type] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event\n\n args[0] = event;\n\n for (i = 1; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n\n event.delegateTarget = this; // Call the preDispatch hook for the mapped type, and let it bail if desired\n\n if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n return;\n } // Determine handlers\n\n\n handlerQueue = jQuery.event.handlers.call(this, event, handlers); // Run delegates first; they may want to stop propagation beneath us\n\n i = 0;\n\n while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n event.currentTarget = matched.elem;\n j = 0;\n\n while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\n // If the event is namespaced, then each handler is only invoked if it is\n // specially universal or its namespaces are a superset of the event's.\n if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) {\n event.handleObj = handleObj;\n event.data = handleObj.data;\n ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args);\n\n if (ret !== undefined) {\n if ((event.result = ret) === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n } // Call the postDispatch hook for the mapped type\n\n\n if (special.postDispatch) {\n special.postDispatch.call(this, event);\n }\n\n return event.result;\n },\n handlers: function handlers(event, _handlers) {\n var i,\n handleObj,\n sel,\n matchedHandlers,\n matchedSelectors,\n handlerQueue = [],\n delegateCount = _handlers.delegateCount,\n cur = event.target; // Find delegate handlers\n\n if (delegateCount && // Support: IE <=9\n // Black-hole SVG instance trees (trac-13180)\n cur.nodeType && // Support: Firefox <=42\n // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n // Support: IE 11 only\n // ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n !(event.type === \"click\" && event.button >= 1)) {\n for (; cur !== this; cur = cur.parentNode || this) {\n // Don't check non-elements (#13208)\n // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n if (cur.nodeType === 1 && !(event.type === \"click\" && cur.disabled === true)) {\n matchedHandlers = [];\n matchedSelectors = {};\n\n for (i = 0; i < delegateCount; i++) {\n handleObj = _handlers[i]; // Don't conflict with Object.prototype properties (#13203)\n\n sel = handleObj.selector + \" \";\n\n if (matchedSelectors[sel] === undefined) {\n matchedSelectors[sel] = handleObj.needsContext ? jQuery(sel, this).index(cur) > -1 : jQuery.find(sel, this, null, [cur]).length;\n }\n\n if (matchedSelectors[sel]) {\n matchedHandlers.push(handleObj);\n }\n }\n\n if (matchedHandlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: matchedHandlers\n });\n }\n }\n }\n } // Add the remaining (directly-bound) handlers\n\n\n cur = this;\n\n if (delegateCount < _handlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: _handlers.slice(delegateCount)\n });\n }\n\n return handlerQueue;\n },\n addProp: function addProp(name, hook) {\n Object.defineProperty(jQuery.Event.prototype, name, {\n enumerable: true,\n configurable: true,\n get: isFunction(hook) ? function () {\n if (this.originalEvent) {\n return hook(this.originalEvent);\n }\n } : function () {\n if (this.originalEvent) {\n return this.originalEvent[name];\n }\n },\n set: function set(value) {\n Object.defineProperty(this, name, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: value\n });\n }\n });\n },\n fix: function fix(originalEvent) {\n return originalEvent[jQuery.expando] ? originalEvent : new jQuery.Event(originalEvent);\n },\n special: {\n load: {\n // Prevent triggered image.load events from bubbling to window.load\n noBubble: true\n },\n click: {\n // Utilize native event to ensure correct state for checkable inputs\n setup: function setup(data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Claim the first handler\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n // dataPriv.set( el, \"click\", ... )\n leverageNative(el, \"click\", returnTrue);\n } // Return false to allow normal processing in the caller\n\n\n return false;\n },\n trigger: function trigger(data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Force setup before triggering a click\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n leverageNative(el, \"click\");\n } // Return non-false to allow normal event-path propagation\n\n\n return true;\n },\n // For cross-browser consistency, suppress native .click() on links\n // Also prevent it if we're currently inside a leveraged native-event stack\n _default: function _default(event) {\n var target = event.target;\n return rcheckableType.test(target.type) && target.click && nodeName(target, \"input\") && dataPriv.get(target, \"click\") || nodeName(target, \"a\");\n }\n },\n beforeunload: {\n postDispatch: function postDispatch(event) {\n // Support: Firefox 20+\n // Firefox doesn't alert if the returnValue field is not set.\n if (event.result !== undefined && event.originalEvent) {\n event.originalEvent.returnValue = event.result;\n }\n }\n }\n }\n }; // Ensure the presence of an event listener that handles manually-triggered\n // synthetic events by interrupting progress until reinvoked in response to\n // *native* events that it fires directly, ensuring that state changes have\n // already occurred before other listeners are invoked.\n\n function leverageNative(el, type, expectSync) {\n // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n if (!expectSync) {\n if (dataPriv.get(el, type) === undefined) {\n jQuery.event.add(el, type, returnTrue);\n }\n\n return;\n } // Register the controller as a special universal handler for all event namespaces\n\n\n dataPriv.set(el, type, false);\n jQuery.event.add(el, type, {\n namespace: false,\n handler: function handler(event) {\n var notAsync,\n result,\n saved = dataPriv.get(this, type);\n\n if (event.isTrigger & 1 && this[type]) {\n // Interrupt processing of the outer synthetic .trigger()ed event\n // Saved data should be false in such cases, but might be a leftover capture object\n // from an async native handler (gh-4350)\n if (!saved.length) {\n // Store arguments for use when handling the inner native event\n // There will always be at least one argument (an event object), so this array\n // will not be confused with a leftover capture object.\n saved = slice.call(arguments);\n dataPriv.set(this, type, saved); // Trigger the native event and capture its result\n // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous\n\n notAsync = expectSync(this, type);\n this[type]();\n result = dataPriv.get(this, type);\n\n if (saved !== result || notAsync) {\n dataPriv.set(this, type, false);\n } else {\n result = {};\n }\n\n if (saved !== result) {\n // Cancel the outer synthetic event\n event.stopImmediatePropagation();\n event.preventDefault(); // Support: Chrome 86+\n // In Chrome, if an element having a focusout handler is blurred by\n // clicking outside of it, it invokes the handler synchronously. If\n // that handler calls `.remove()` on the element, the data is cleared,\n // leaving `result` undefined. We need to guard against this.\n\n return result && result.value;\n } // If this is an inner synthetic event for an event with a bubbling surrogate\n // (focus or blur), assume that the surrogate already propagated from triggering the\n // native event and prevent that from happening again here.\n // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n // bubbling surrogate propagates *after* the non-bubbling base), but that seems\n // less bad than duplication.\n\n } else if ((jQuery.event.special[type] || {}).delegateType) {\n event.stopPropagation();\n } // If this is a native event triggered above, everything is now in order\n // Fire an inner synthetic event with the original arguments\n\n } else if (saved.length) {\n // ...and capture the result\n dataPriv.set(this, type, {\n value: jQuery.event.trigger( // Support: IE <=9 - 11+\n // Extend with the prototype to reset the above stopImmediatePropagation()\n jQuery.extend(saved[0], jQuery.Event.prototype), saved.slice(1), this)\n }); // Abort handling of the native event\n\n event.stopImmediatePropagation();\n }\n }\n });\n }\n\n jQuery.removeEvent = function (elem, type, handle) {\n // This \"if\" is needed for plain objects\n if (elem.removeEventListener) {\n elem.removeEventListener(type, handle);\n }\n };\n\n jQuery.Event = function (src, props) {\n // Allow instantiation without the 'new' keyword\n if (!(this instanceof jQuery.Event)) {\n return new jQuery.Event(src, props);\n } // Event object\n\n\n if (src && src.type) {\n this.originalEvent = src;\n this.type = src.type; // Events bubbling up the document may have been marked as prevented\n // by a handler lower down the tree; reflect the correct value.\n\n this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined && // Support: Android <=2.3 only\n src.returnValue === false ? returnTrue : returnFalse; // Create target properties\n // Support: Safari <=6 - 7 only\n // Target should not be a text node (#504, #13143)\n\n this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target;\n this.currentTarget = src.currentTarget;\n this.relatedTarget = src.relatedTarget; // Event type\n } else {\n this.type = src;\n } // Put explicitly provided properties onto the event object\n\n\n if (props) {\n jQuery.extend(this, props);\n } // Create a timestamp if incoming event doesn't have one\n\n\n this.timeStamp = src && src.timeStamp || Date.now(); // Mark it as fixed\n\n this[jQuery.expando] = true;\n }; // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n // https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\n\n\n jQuery.Event.prototype = {\n constructor: jQuery.Event,\n isDefaultPrevented: returnFalse,\n isPropagationStopped: returnFalse,\n isImmediatePropagationStopped: returnFalse,\n isSimulated: false,\n preventDefault: function preventDefault() {\n var e = this.originalEvent;\n this.isDefaultPrevented = returnTrue;\n\n if (e && !this.isSimulated) {\n e.preventDefault();\n }\n },\n stopPropagation: function stopPropagation() {\n var e = this.originalEvent;\n this.isPropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopPropagation();\n }\n },\n stopImmediatePropagation: function stopImmediatePropagation() {\n var e = this.originalEvent;\n this.isImmediatePropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopImmediatePropagation();\n }\n\n this.stopPropagation();\n }\n }; // Includes all common event props including KeyEvent and MouseEvent specific props\n\n jQuery.each({\n altKey: true,\n bubbles: true,\n cancelable: true,\n changedTouches: true,\n ctrlKey: true,\n detail: true,\n eventPhase: true,\n metaKey: true,\n pageX: true,\n pageY: true,\n shiftKey: true,\n view: true,\n \"char\": true,\n code: true,\n charCode: true,\n key: true,\n keyCode: true,\n button: true,\n buttons: true,\n clientX: true,\n clientY: true,\n offsetX: true,\n offsetY: true,\n pointerId: true,\n pointerType: true,\n screenX: true,\n screenY: true,\n targetTouches: true,\n toElement: true,\n touches: true,\n which: true\n }, jQuery.event.addProp);\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (type, delegateType) {\n jQuery.event.special[type] = {\n // Utilize native event if possible so blur/focus sequence is correct\n setup: function setup() {\n // Claim the first handler\n // dataPriv.set( this, \"focus\", ... )\n // dataPriv.set( this, \"blur\", ... )\n leverageNative(this, type, expectSync); // Return false to allow normal processing in the caller\n\n return false;\n },\n trigger: function trigger() {\n // Force setup before trigger\n leverageNative(this, type); // Return non-false to allow normal event-path propagation\n\n return true;\n },\n // Suppress native focus or blur as it's already being fired\n // in leverageNative.\n _default: function _default() {\n return true;\n },\n delegateType: delegateType\n };\n }); // Create mouseenter/leave events using mouseover/out and event-time checks\n // so that event delegation works in jQuery.\n // Do the same for pointerenter/pointerleave and pointerover/pointerout\n //\n // Support: Safari 7 only\n // Safari sends mouseenter too often; see:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n // for the description of the bug (it existed in older Chrome versions as well).\n\n jQuery.each({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\",\n pointerenter: \"pointerover\",\n pointerleave: \"pointerout\"\n }, function (orig, fix) {\n jQuery.event.special[orig] = {\n delegateType: fix,\n bindType: fix,\n handle: function handle(event) {\n var ret,\n target = this,\n related = event.relatedTarget,\n handleObj = event.handleObj; // For mouseenter/leave call the handler if related is outside the target.\n // NB: No relatedTarget if the mouse left/entered the browser window\n\n if (!related || related !== target && !jQuery.contains(target, related)) {\n event.type = handleObj.origType;\n ret = handleObj.handler.apply(this, arguments);\n event.type = fix;\n }\n\n return ret;\n }\n };\n });\n jQuery.fn.extend({\n on: function on(types, selector, data, fn) {\n return _on(this, types, selector, data, fn);\n },\n one: function one(types, selector, data, fn) {\n return _on(this, types, selector, data, fn, 1);\n },\n off: function off(types, selector, fn) {\n var handleObj, type;\n\n if (types && types.preventDefault && types.handleObj) {\n // ( event ) dispatched jQuery.Event\n handleObj = types.handleObj;\n jQuery(types.delegateTarget).off(handleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler);\n return this;\n }\n\n if (_typeof(types) === \"object\") {\n // ( types-object [, selector] )\n for (type in types) {\n this.off(type, selector, types[type]);\n }\n\n return this;\n }\n\n if (selector === false || typeof selector === \"function\") {\n // ( types [, fn] )\n fn = selector;\n selector = undefined;\n }\n\n if (fn === false) {\n fn = returnFalse;\n }\n\n return this.each(function () {\n jQuery.event.remove(this, types, fn, selector);\n });\n }\n });\n return jQuery;\n});","'use strict'; // limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\n\nvar MAX_BYTES = 65536; // Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\n\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;\n\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 var bytes = Buffer.allocUnsafe(size);\n\n if (size > 0) {\n // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) {\n // 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}","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\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 = /*#__PURE__*/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;","// 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});","var Buffer = require('safe-buffer').Buffer; // prototype class for hash functions\n\n\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 this._block[rem] = 0x80; // 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\n this._block.fill(0, rem + 1);\n\n if (rem >= this._finalSize) {\n this._update(this._block);\n\n this._block.fill(0);\n }\n\n var bits = this._len * 8; // uint32\n\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4); // uint64\n\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0;\n var highBits = (bits - lowBits) / 0x100000000;\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8);\n\n this._block.writeUInt32BE(lowBits, this._blockSize - 4);\n }\n\n this._update(this._block);\n\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;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\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 = /*#__PURE__*/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;","// 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});","define(function () {\n \"use strict\";\n\n return [];\n});","define(function () {\n \"use strict\";\n\n return function isWindow(obj) {\n return obj != null && obj === obj.window;\n };\n});","define([], function () {\n \"use strict\"; // Matches dashed string for camelizing\n\n var rmsPrefix = /^-ms-/,\n rdashAlpha = /-([a-z])/g; // Used by camelCase as callback to replace()\n\n function fcamelCase(_all, letter) {\n return letter.toUpperCase();\n } // Convert dashed to camelCase; used by the css and data modules\n // Support: IE <=9 - 11, Edge 12 - 15\n // Microsoft forgot to hump their vendor prefix (#9572)\n\n\n function camelCase(string) {\n return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n }\n\n return camelCase;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\ndefine([\"./core\", \"./core/access\", \"./core/camelCase\", \"./core/nodeName\", \"./var/rcssNum\", \"./css/var/rnumnonpx\", \"./css/var/cssExpand\", \"./css/var/getStyles\", \"./css/var/swap\", \"./css/curCSS\", \"./css/adjustCSS\", \"./css/addGetHookIf\", \"./css/support\", \"./css/finalPropName\", \"./core/init\", \"./core/ready\", \"./selector\" // contains\n], function (jQuery, access, camelCase, nodeName, rcssNum, rnumnonpx, cssExpand, getStyles, swap, curCSS, adjustCSS, addGetHookIf, support, finalPropName) {\n \"use strict\";\n\n var // Swappable if display is none or starts with table\n // except \"table\", \"table-cell\", or \"table-caption\"\n // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n rdisplayswap = /^(none|table(?!-c[ea]).+)/,\n rcustomProp = /^--/,\n cssShow = {\n position: \"absolute\",\n visibility: \"hidden\",\n display: \"block\"\n },\n cssNormalTransform = {\n letterSpacing: \"0\",\n fontWeight: \"400\"\n };\n\n function setPositiveNumber(_elem, value, subtract) {\n // Any relative (+/-) values have already been\n // normalized at this point\n var matches = rcssNum.exec(value);\n return matches ? // Guard against undefined \"subtract\", e.g., when used as in cssHooks\n Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || \"px\") : value;\n }\n\n function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) {\n var i = dimension === \"width\" ? 1 : 0,\n extra = 0,\n delta = 0; // Adjustment may not be necessary\n\n if (box === (isBorderBox ? \"border\" : \"content\")) {\n return 0;\n }\n\n for (; i < 4; i += 2) {\n // Both box models exclude margin\n if (box === \"margin\") {\n delta += jQuery.css(elem, box + cssExpand[i], true, styles);\n } // If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\n\n if (!isBorderBox) {\n // Add padding\n delta += jQuery.css(elem, \"padding\" + cssExpand[i], true, styles); // For \"border\" or \"margin\", add border\n\n if (box !== \"padding\") {\n delta += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles); // But still keep track of it otherwise\n } else {\n extra += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n } // If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n // \"padding\" or \"margin\"\n\n } else {\n // For \"content\", subtract padding\n if (box === \"content\") {\n delta -= jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n } // For \"content\" or \"padding\", subtract border\n\n\n if (box !== \"margin\") {\n delta -= jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n }\n } // Account for positive content-box scroll gutter when requested by providing computedVal\n\n\n if (!isBorderBox && computedVal >= 0) {\n // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n // Assuming integer scroll gutter, subtract the rest and round down\n delta += Math.max(0, Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5 // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n // Use an explicit zero to avoid NaN (gh-3964)\n )) || 0;\n }\n\n return delta;\n }\n\n function getWidthOrHeight(elem, dimension, extra) {\n // Start with computed style\n var styles = getStyles(elem),\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n // Fake content-box until we know it's needed to know the true value.\n boxSizingNeeded = !support.boxSizingReliable() || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n valueIsBorderBox = isBorderBox,\n val = curCSS(elem, dimension, styles),\n offsetProp = \"offset\" + dimension[0].toUpperCase() + dimension.slice(1); // Support: Firefox <=54\n // Return a confounding non-pixel value or feign ignorance, as appropriate.\n\n if (rnumnonpx.test(val)) {\n if (!extra) {\n return val;\n }\n\n val = \"auto\";\n } // Support: IE 9 - 11 only\n // Use offsetWidth/offsetHeight for when box sizing is unreliable.\n // In those cases, the computed value can be trusted to be border-box.\n\n\n if ((!support.boxSizingReliable() && isBorderBox || // Support: IE 10 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Interestingly, in some cases IE 9 doesn't suffer from this issue.\n !support.reliableTrDimensions() && nodeName(elem, \"tr\") || // Fall back to offsetWidth/offsetHeight when value is \"auto\"\n // This happens for inline elements with no explicit setting (gh-3571)\n val === \"auto\" || // Support: Android <=4.1 - 4.3 only\n // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n !parseFloat(val) && jQuery.css(elem, \"display\", false, styles) === \"inline\") && // Make sure the element is visible & connected\n elem.getClientRects().length) {\n isBorderBox = jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\"; // Where available, offsetWidth/offsetHeight approximate border box dimensions.\n // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n // retrieved value as a content box dimension.\n\n valueIsBorderBox = offsetProp in elem;\n\n if (valueIsBorderBox) {\n val = elem[offsetProp];\n }\n } // Normalize \"\" and auto\n\n\n val = parseFloat(val) || 0; // Adjust for the element's box model\n\n return val + boxModelAdjustment(elem, dimension, extra || (isBorderBox ? \"border\" : \"content\"), valueIsBorderBox, styles, // Provide the current computed size to request scroll gutter calculation (gh-3589)\n val) + \"px\";\n }\n\n jQuery.extend({\n // Add in style property hooks for overriding the default\n // behavior of getting and setting a style property\n cssHooks: {\n opacity: {\n get: function get(elem, computed) {\n if (computed) {\n // We should always get a number back from opacity\n var ret = curCSS(elem, \"opacity\");\n return ret === \"\" ? \"1\" : ret;\n }\n }\n }\n },\n // Don't automatically add \"px\" to these possibly-unitless properties\n cssNumber: {\n \"animationIterationCount\": true,\n \"columnCount\": true,\n \"fillOpacity\": true,\n \"flexGrow\": true,\n \"flexShrink\": true,\n \"fontWeight\": true,\n \"gridArea\": true,\n \"gridColumn\": true,\n \"gridColumnEnd\": true,\n \"gridColumnStart\": true,\n \"gridRow\": true,\n \"gridRowEnd\": true,\n \"gridRowStart\": true,\n \"lineHeight\": true,\n \"opacity\": true,\n \"order\": true,\n \"orphans\": true,\n \"widows\": true,\n \"zIndex\": true,\n \"zoom\": true\n },\n // Add in properties whose names you wish to fix before\n // setting or getting the value\n cssProps: {},\n // Get and set the style property on a DOM Node\n style: function style(elem, name, value, extra) {\n // Don't set styles on text and comment nodes\n if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) {\n return;\n } // Make sure that we're working with the right name\n\n\n var ret,\n type,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name),\n style = elem.style; // Make sure that we're working with the right name. We don't\n // want to query the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Gets hook for the prefixed version, then unprefixed version\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // Check if we're setting a value\n\n if (value !== undefined) {\n type = _typeof(value); // Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\n if (type === \"string\" && (ret = rcssNum.exec(value)) && ret[1]) {\n value = adjustCSS(elem, name, ret); // Fixes bug #9237\n\n type = \"number\";\n } // Make sure that null and NaN values aren't set (#7116)\n\n\n if (value == null || value !== value) {\n return;\n } // If a number was passed in, add the unit (except for certain CSS properties)\n // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n // \"px\" to a few hardcoded values.\n\n\n if (type === \"number\" && !isCustomProp) {\n value += ret && ret[3] || (jQuery.cssNumber[origName] ? \"\" : \"px\");\n } // background-* props affect original clone's values\n\n\n if (!support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0) {\n style[name] = \"inherit\";\n } // If a hook was provided, use that value, otherwise just set the specified value\n\n\n if (!hooks || !(\"set\" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) {\n if (isCustomProp) {\n style.setProperty(name, value);\n } else {\n style[name] = value;\n }\n }\n } else {\n // If a hook was provided get the non-computed value from there\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) {\n return ret;\n } // Otherwise just get the value from the style object\n\n\n return style[name];\n }\n },\n css: function css(elem, name, extra, styles) {\n var val,\n num,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name); // Make sure that we're working with the right name. We don't\n // want to modify the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Try prefixed name followed by the unprefixed name\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // If a hook was provided get the computed value from there\n\n if (hooks && \"get\" in hooks) {\n val = hooks.get(elem, true, extra);\n } // Otherwise, if a way to get the computed value exists, use that\n\n\n if (val === undefined) {\n val = curCSS(elem, name, styles);\n } // Convert \"normal\" to computed value\n\n\n if (val === \"normal\" && name in cssNormalTransform) {\n val = cssNormalTransform[name];\n } // Make numeric if forced or a qualifier was provided and val looks numeric\n\n\n if (extra === \"\" || extra) {\n num = parseFloat(val);\n return extra === true || isFinite(num) ? num || 0 : val;\n }\n\n return val;\n }\n });\n jQuery.each([\"height\", \"width\"], function (_i, dimension) {\n jQuery.cssHooks[dimension] = {\n get: function get(elem, computed, extra) {\n if (computed) {\n // Certain elements can have dimension info if we invisibly show them\n // but it must have a current display style that would benefit\n return rdisplayswap.test(jQuery.css(elem, \"display\")) && ( // Support: Safari 8+\n // Table columns in Safari have non-zero offsetWidth & zero\n // getBoundingClientRect().width unless display is changed.\n // Support: IE <=11 only\n // Running getBoundingClientRect on a disconnected node\n // in IE throws an error.\n !elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function () {\n return getWidthOrHeight(elem, dimension, extra);\n }) : getWidthOrHeight(elem, dimension, extra);\n }\n },\n set: function set(elem, value, extra) {\n var matches,\n styles = getStyles(elem),\n // Only read styles.position if the test has a chance to fail\n // to avoid forcing a reflow.\n scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === \"absolute\",\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n boxSizingNeeded = scrollboxSizeBuggy || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n subtract = extra ? boxModelAdjustment(elem, dimension, extra, isBorderBox, styles) : 0; // Account for unreliable border-box dimensions by comparing offset* to computed and\n // faking a content-box to get border and padding (gh-3699)\n\n if (isBorderBox && scrollboxSizeBuggy) {\n subtract -= Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, \"border\", false, styles) - 0.5);\n } // Convert to pixels if value adjustment is needed\n\n\n if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || \"px\") !== \"px\") {\n elem.style[dimension] = value;\n value = jQuery.css(elem, dimension);\n }\n\n return setPositiveNumber(elem, value, subtract);\n }\n };\n });\n jQuery.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft, function (elem, computed) {\n if (computed) {\n return (parseFloat(curCSS(elem, \"marginLeft\")) || elem.getBoundingClientRect().left - swap(elem, {\n marginLeft: 0\n }, function () {\n return elem.getBoundingClientRect().left;\n })) + \"px\";\n }\n }); // These hooks are used by animate to expand properties\n\n jQuery.each({\n margin: \"\",\n padding: \"\",\n border: \"Width\"\n }, function (prefix, suffix) {\n jQuery.cssHooks[prefix + suffix] = {\n expand: function expand(value) {\n var i = 0,\n expanded = {},\n // Assumes a single number if not a string\n parts = typeof value === \"string\" ? value.split(\" \") : [value];\n\n for (; i < 4; i++) {\n expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0];\n }\n\n return expanded;\n }\n };\n\n if (prefix !== \"margin\") {\n jQuery.cssHooks[prefix + suffix].set = setPositiveNumber;\n }\n });\n jQuery.fn.extend({\n css: function css(name, value) {\n return access(this, function (elem, name, value) {\n var styles,\n len,\n map = {},\n i = 0;\n\n if (Array.isArray(name)) {\n styles = getStyles(elem);\n len = name.length;\n\n for (; i < len; i++) {\n map[name[i]] = jQuery.css(elem, name[i], false, styles);\n }\n\n return map;\n }\n\n return value !== undefined ? jQuery.style(elem, name, value) : jQuery.css(elem, name);\n }, name, value, arguments.length > 1);\n }\n });\n return jQuery;\n});","'use strict';\n\nvar inherits = require('inherits');\n\nvar MD5 = require('md5.js');\n\nvar RIPEMD160 = require('ripemd160');\n\nvar sha = require('sha.js');\n\nvar Base = require('cipher-base');\n\nfunction Hash(hash) {\n Base.call(this, 'digest');\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 return new Hash(sha(alg));\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(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// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n\n return objectToString(arg) === '[object Array]';\n}\n\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\n\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\n\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\n\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\n\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return _typeof(arg) === 'symbol';\n}\n\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\n\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return _typeof(arg) === 'object' && arg !== null;\n}\n\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\n\nexports.isDate = isDate;\n\nfunction isError(e) {\n return objectToString(e) === '[object Error]' || e instanceof Error;\n}\n\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null || typeof arg === 'boolean' || typeof arg === 'number' || typeof arg === 'string' || _typeof(arg) === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\n\nexports.isPrimitive = isPrimitive;\nexports.isBuffer = require('buffer').Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}","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};","'use strict';\n\nvar utils = require('./utils');\n\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 this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\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) this.pending = msg;else this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length; // Enough data, try updating\n\n if (this.pending.length >= this._delta8) {\n msg = this.pending; // Process pending data in blocks\n\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0) this.pending = null;\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n\n for (var i = 0; i < msg.length; i += this._delta32) {\n this._update(msg, i, i + this._delta32);\n }\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\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\n for (var i = 1; i < k; i++) {\n res[i] = 0;\n } // Append length\n\n\n len <<= 3;\n\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++) {\n res[i++] = 0;\n }\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\n return res;\n};","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar inherits = require('inherits');\n\nvar Reporter = require('../base/reporter').Reporter;\n\nvar Buffer = require('safer-buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n\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}\n\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.isDecoderBuffer = function isDecoderBuffer(data) {\n if (data instanceof DecoderBuffer) {\n return true;\n } // Or accept compatible API\n\n\n var isCompatible = _typeof(data) === 'object' && Buffer.isBuffer(data.base) && data.constructor.name === 'DecoderBuffer' && typeof data.offset === 'number' && typeof data.length === 'number' && typeof data.save === 'function' && typeof data.restore === 'function' && typeof data.isEmpty === 'function' && typeof data.readUInt8 === 'function' && typeof data.skip === 'function' && typeof data.raw === 'function';\n return isCompatible;\n};\n\nDecoderBuffer.prototype.save = function save() {\n return {\n offset: this.offset,\n reporter: Reporter.prototype.save.call(this)\n };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n var res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\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) return this.base.readUInt8(this.offset++, true);else return this.error(fail || 'DecoderBuffer overrun');\n};\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length)) return this.error(fail || 'DecoderBuffer overrun');\n var res = new DecoderBuffer(this.base); // Share reporter state\n\n res._reporterState = this._reporterState;\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)) 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)) 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}\n\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.isEncoderBuffer = function isEncoderBuffer(data) {\n if (data instanceof EncoderBuffer) {\n return true;\n } // Or accept compatible API\n\n\n var isCompatible = _typeof(data) === 'object' && data.constructor.name === 'EncoderBuffer' && typeof data.length === 'number' && typeof data.join === 'function';\n return isCompatible;\n};\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out) out = Buffer.alloc(this.length);\n if (!offset) offset = 0;\n if (this.length === 0) 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') out[offset] = this.value;else if (typeof this.value === 'string') out.write(this.value, offset);else if (Buffer.isBuffer(this.value)) this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};","define([\"./arr\"], function (arr) {\n \"use strict\";\n\n return arr.slice;\n});","define(function () {\n \"use strict\"; // [[Class]] -> type pairs\n\n return {};\n});","define(function () {\n \"use strict\";\n /**\n * Determines whether an object can have data\n */\n\n return function (owner) {\n // Accepts only:\n // - Node\n // - Node.ELEMENT_NODE\n // - Node.DOCUMENT_NODE\n // - Object\n // - Any\n return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType;\n };\n});","define([\"../core\", \"../var/documentElement\", \"../selector\" // jQuery.contains\n], function (jQuery, documentElement) {\n \"use strict\";\n\n var isAttached = function isAttached(elem) {\n return jQuery.contains(elem.ownerDocument, elem);\n },\n composed = {\n composed: true\n }; // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n // Check attachment across shadow DOM boundaries when possible (gh-3504)\n // Support: iOS 10.0-10.2 only\n // Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n // leading to errors. We need to check for `getRootNode`.\n\n\n if (documentElement.getRootNode) {\n isAttached = function isAttached(elem) {\n return jQuery.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument;\n };\n }\n\n return isAttached;\n});","define([\"./document\"], function (document) {\n \"use strict\";\n\n return document.documentElement;\n});","define([\"./core\", \"./core/isAttached\", \"./var/flat\", \"./var/isFunction\", \"./var/push\", \"./var/rcheckableType\", \"./core/access\", \"./manipulation/var/rtagName\", \"./manipulation/var/rscriptType\", \"./manipulation/wrapMap\", \"./manipulation/getAll\", \"./manipulation/setGlobalEval\", \"./manipulation/buildFragment\", \"./manipulation/support\", \"./data/var/dataPriv\", \"./data/var/dataUser\", \"./data/var/acceptData\", \"./core/DOMEval\", \"./core/nodeName\", \"./core/init\", \"./traversing\", \"./selector\", \"./event\"], function (jQuery, isAttached, flat, isFunction, push, rcheckableType, access, rtagName, rscriptType, wrapMap, getAll, setGlobalEval, buildFragment, support, dataPriv, dataUser, acceptData, DOMEval, nodeName) {\n \"use strict\";\n\n var // Support: IE <=10 - 11, Edge 12 - 13 only\n // In IE/Edge using regex groups here causes severe slowdowns.\n // See https://connect.microsoft.com/IE/feedback/details/1736512/\n rnoInnerhtml = /\\s*$/g; // Prefer a tbody over its parent table for containing new rows\n\n function manipulationTarget(elem, content) {\n if (nodeName(elem, \"table\") && nodeName(content.nodeType !== 11 ? content : content.firstChild, \"tr\")) {\n return jQuery(elem).children(\"tbody\")[0] || elem;\n }\n\n return elem;\n } // Replace/restore the type attribute of script elements for safe DOM manipulation\n\n\n function disableScript(elem) {\n elem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n return elem;\n }\n\n function restoreScript(elem) {\n if ((elem.type || \"\").slice(0, 5) === \"true/\") {\n elem.type = elem.type.slice(5);\n } else {\n elem.removeAttribute(\"type\");\n }\n\n return elem;\n }\n\n function cloneCopyEvent(src, dest) {\n var i, l, type, pdataOld, udataOld, udataCur, events;\n\n if (dest.nodeType !== 1) {\n return;\n } // 1. Copy private data: events, handlers, etc.\n\n\n if (dataPriv.hasData(src)) {\n pdataOld = dataPriv.get(src);\n events = pdataOld.events;\n\n if (events) {\n dataPriv.remove(dest, \"handle events\");\n\n for (type in events) {\n for (i = 0, l = events[type].length; i < l; i++) {\n jQuery.event.add(dest, type, events[type][i]);\n }\n }\n }\n } // 2. Copy user data\n\n\n if (dataUser.hasData(src)) {\n udataOld = dataUser.access(src);\n udataCur = jQuery.extend({}, udataOld);\n dataUser.set(dest, udataCur);\n }\n } // Fix IE bugs, see support tests\n\n\n function fixInput(src, dest) {\n var nodeName = dest.nodeName.toLowerCase(); // Fails to persist the checked state of a cloned checkbox or radio button.\n\n if (nodeName === \"input\" && rcheckableType.test(src.type)) {\n dest.checked = src.checked; // Fails to return the selected option to the default selected state when cloning options\n } else if (nodeName === \"input\" || nodeName === \"textarea\") {\n dest.defaultValue = src.defaultValue;\n }\n }\n\n function domManip(collection, args, callback, ignored) {\n // Flatten any nested arrays\n args = flat(args);\n var fragment,\n first,\n scripts,\n hasScripts,\n node,\n doc,\n i = 0,\n l = collection.length,\n iNoClone = l - 1,\n value = args[0],\n valueIsFunction = isFunction(value); // We can't cloneNode fragments that contain checked, in WebKit\n\n if (valueIsFunction || l > 1 && typeof value === \"string\" && !support.checkClone && rchecked.test(value)) {\n return collection.each(function (index) {\n var self = collection.eq(index);\n\n if (valueIsFunction) {\n args[0] = value.call(this, index, self.html());\n }\n\n domManip(self, args, callback, ignored);\n });\n }\n\n if (l) {\n fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored);\n first = fragment.firstChild;\n\n if (fragment.childNodes.length === 1) {\n fragment = first;\n } // Require either new content or an interest in ignored elements to invoke the callback\n\n\n if (first || ignored) {\n scripts = jQuery.map(getAll(fragment, \"script\"), disableScript);\n hasScripts = scripts.length; // Use the original fragment for the last item\n // instead of the first because it can end up\n // being emptied incorrectly in certain situations (#8070).\n\n for (; i < l; i++) {\n node = fragment;\n\n if (i !== iNoClone) {\n node = jQuery.clone(node, true, true); // Keep references to cloned scripts for later restoration\n\n if (hasScripts) {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(scripts, getAll(node, \"script\"));\n }\n }\n\n callback.call(collection[i], node, i);\n }\n\n if (hasScripts) {\n doc = scripts[scripts.length - 1].ownerDocument; // Reenable scripts\n\n jQuery.map(scripts, restoreScript); // Evaluate executable scripts on first document insertion\n\n for (i = 0; i < hasScripts; i++) {\n node = scripts[i];\n\n if (rscriptType.test(node.type || \"\") && !dataPriv.access(node, \"globalEval\") && jQuery.contains(doc, node)) {\n if (node.src && (node.type || \"\").toLowerCase() !== \"module\") {\n // Optional AJAX dependency, but won't run scripts if not present\n if (jQuery._evalUrl && !node.noModule) {\n jQuery._evalUrl(node.src, {\n nonce: node.nonce || node.getAttribute(\"nonce\")\n }, doc);\n }\n } else {\n DOMEval(node.textContent.replace(rcleanScript, \"\"), node, doc);\n }\n }\n }\n }\n }\n }\n\n return collection;\n }\n\n function _remove(elem, selector, keepData) {\n var node,\n nodes = selector ? jQuery.filter(selector, elem) : elem,\n i = 0;\n\n for (; (node = nodes[i]) != null; i++) {\n if (!keepData && node.nodeType === 1) {\n jQuery.cleanData(getAll(node));\n }\n\n if (node.parentNode) {\n if (keepData && isAttached(node)) {\n setGlobalEval(getAll(node, \"script\"));\n }\n\n node.parentNode.removeChild(node);\n }\n }\n\n return elem;\n }\n\n jQuery.extend({\n htmlPrefilter: function htmlPrefilter(html) {\n return html;\n },\n clone: function clone(elem, dataAndEvents, deepDataAndEvents) {\n var i,\n l,\n srcElements,\n destElements,\n clone = elem.cloneNode(true),\n inPage = isAttached(elem); // Fix IE cloning issues\n\n if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) {\n // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n destElements = getAll(clone);\n srcElements = getAll(elem);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n fixInput(srcElements[i], destElements[i]);\n }\n } // Copy the events from the original to the clone\n\n\n if (dataAndEvents) {\n if (deepDataAndEvents) {\n srcElements = srcElements || getAll(elem);\n destElements = destElements || getAll(clone);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n cloneCopyEvent(srcElements[i], destElements[i]);\n }\n } else {\n cloneCopyEvent(elem, clone);\n }\n } // Preserve script evaluation history\n\n\n destElements = getAll(clone, \"script\");\n\n if (destElements.length > 0) {\n setGlobalEval(destElements, !inPage && getAll(elem, \"script\"));\n } // Return the cloned set\n\n\n return clone;\n },\n cleanData: function cleanData(elems) {\n var data,\n elem,\n type,\n special = jQuery.event.special,\n i = 0;\n\n for (; (elem = elems[i]) !== undefined; i++) {\n if (acceptData(elem)) {\n if (data = elem[dataPriv.expando]) {\n if (data.events) {\n for (type in data.events) {\n if (special[type]) {\n jQuery.event.remove(elem, type); // This is a shortcut to avoid jQuery.event.remove's overhead\n } else {\n jQuery.removeEvent(elem, type, data.handle);\n }\n }\n } // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n\n\n elem[dataPriv.expando] = undefined;\n }\n\n if (elem[dataUser.expando]) {\n // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n elem[dataUser.expando] = undefined;\n }\n }\n }\n }\n });\n jQuery.fn.extend({\n detach: function detach(selector) {\n return _remove(this, selector, true);\n },\n remove: function remove(selector) {\n return _remove(this, selector);\n },\n text: function text(value) {\n return access(this, function (value) {\n return value === undefined ? jQuery.text(this) : this.empty().each(function () {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n this.textContent = value;\n }\n });\n }, null, value, arguments.length);\n },\n append: function append() {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.appendChild(elem);\n }\n });\n },\n prepend: function prepend() {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.insertBefore(elem, target.firstChild);\n }\n });\n },\n before: function before() {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this);\n }\n });\n },\n after: function after() {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this.nextSibling);\n }\n });\n },\n empty: function empty() {\n var elem,\n i = 0;\n\n for (; (elem = this[i]) != null; i++) {\n if (elem.nodeType === 1) {\n // Prevent memory leaks\n jQuery.cleanData(getAll(elem, false)); // Remove any remaining nodes\n\n elem.textContent = \"\";\n }\n }\n\n return this;\n },\n clone: function clone(dataAndEvents, deepDataAndEvents) {\n dataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n return this.map(function () {\n return jQuery.clone(this, dataAndEvents, deepDataAndEvents);\n });\n },\n html: function html(value) {\n return access(this, function (value) {\n var elem = this[0] || {},\n i = 0,\n l = this.length;\n\n if (value === undefined && elem.nodeType === 1) {\n return elem.innerHTML;\n } // See if we can take a shortcut and just use innerHTML\n\n\n if (typeof value === \"string\" && !rnoInnerhtml.test(value) && !wrapMap[(rtagName.exec(value) || [\"\", \"\"])[1].toLowerCase()]) {\n value = jQuery.htmlPrefilter(value);\n\n try {\n for (; i < l; i++) {\n elem = this[i] || {}; // Remove element nodes and prevent memory leaks\n\n if (elem.nodeType === 1) {\n jQuery.cleanData(getAll(elem, false));\n elem.innerHTML = value;\n }\n }\n\n elem = 0; // If using innerHTML throws an exception, use the fallback method\n } catch (e) {}\n }\n\n if (elem) {\n this.empty().append(value);\n }\n }, null, value, arguments.length);\n },\n replaceWith: function replaceWith() {\n var ignored = []; // Make the changes, replacing each non-ignored context element with the new content\n\n return domManip(this, arguments, function (elem) {\n var parent = this.parentNode;\n\n if (jQuery.inArray(this, ignored) < 0) {\n jQuery.cleanData(getAll(this));\n\n if (parent) {\n parent.replaceChild(elem, this);\n }\n } // Force callback invocation\n\n }, ignored);\n }\n });\n jQuery.each({\n appendTo: \"append\",\n prependTo: \"prepend\",\n insertBefore: \"before\",\n insertAfter: \"after\",\n replaceAll: \"replaceWith\"\n }, function (name, original) {\n jQuery.fn[name] = function (selector) {\n var elems,\n ret = [],\n insert = jQuery(selector),\n last = insert.length - 1,\n i = 0;\n\n for (; i <= last; i++) {\n elems = i === last ? this : this.clone(true);\n jQuery(insert[i])[original](elems); // Support: Android <=4.0 only, PhantomJS 1 only\n // .get() because push.apply(_, arraylike) throws on ancient WebKit\n\n push.apply(ret, elems.get());\n }\n\n return this.pushStack(ret);\n };\n });\n return jQuery;\n});","'use strict';\n\nif (typeof process === 'undefined' || !process.version || process.version.indexOf('v0.') === 0 || process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = {\n nextTick: nextTick\n };\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\n var len = arguments.length;\n var args, i;\n\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n\n default:\n args = new Array(len - 1);\n i = 0;\n\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\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/\nvar Buffer = require('safe-buffer').Buffer;\n\nfunction asUInt32Array(buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\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 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 return [t0, t1, t2, t3];\n} // AES constants\n\n\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\n\nvar G = function () {\n // Compute double table\n var d = new Array(256);\n\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 = [[], [], [], []]; // Walk GF(2^8)\n\n var x = 0;\n var xi = 0;\n\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; // Compute multiplication\n\n var x2 = d[x];\n var x4 = d[x2];\n var x8 = d[x4]; // Compute sub bytes, mix columns tables\n\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; // Compute inv sub bytes, inv mix columns tables\n\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\n this._reset();\n}\n\nAES.blockSize = 4 * 4;\nAES.keySize = 256 / 8;\nAES.prototype.blockSize = AES.blockSize;\nAES.prototype.keySize = AES.keySize;\n\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 var keySchedule = [];\n\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 = G.SBOX[t >>> 24] << 24 | G.SBOX[t >>> 16 & 0xff] << 16 | G.SBOX[t >>> 8 & 0xff] << 8 | G.SBOX[t & 0xff];\n t ^= RCON[k / keySize | 0] << 24;\n } else if (keySize > 6 && k % keySize === 4) {\n t = G.SBOX[t >>> 24] << 24 | G.SBOX[t >>> 16 & 0xff] << 16 | G.SBOX[t >>> 8 & 0xff] << 8 | G.SBOX[t & 0xff];\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t;\n }\n\n var invKeySchedule = [];\n\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] = G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^ G.INV_SUB_MIX[1][G.SBOX[tt >>> 16 & 0xff]] ^ G.INV_SUB_MIX[2][G.SBOX[tt >>> 8 & 0xff]] ^ 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); // swap\n\n var m1 = M[1];\n M[1] = M[3];\n M[3] = m1;\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;","var Buffer = require('safe-buffer').Buffer;\n\nvar MD5 = require('md5.js');\n/* eslint-disable camelcase */\n\n\nfunction EVP_BytesToKey(password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary');\n\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 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 {\n key: key,\n iv: iv\n };\n}\n\nmodule.exports = EVP_BytesToKey;","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\n\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); // Use Montgomery, when there is no fast reduction for the prime\n\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p); // Useful for many curves\n\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); // Curve configuration, optional\n\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed); // Temporary arrays\n\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 this._bitLength = this.n ? this.n.bitLength() : 0; // Generalized Greg Maxwell's trick\n\n var adjustCount = this.n && this.p.div(this.n);\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}\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\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; // Translate into more windowed form\n\n var repr = [];\n var j;\n var nafW;\n\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n\n for (var l = j + doubles.step - 1; l >= j; l--) {\n nafW = (nafW << 1) + naf[l];\n }\n\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i) b = b.mixedAdd(doubles.points[j]);else if (nafW === -i) b = b.mixedAdd(doubles.points[j].neg());\n }\n\n a = a.add(b);\n }\n\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4; // Precompute window\n\n var nafPoints = p._getNAFPoints(w);\n\n w = nafPoints.wnd;\n var wnd = nafPoints.points; // Get NAF form\n\n var naf = getNAF(k, w, this._bitLength); // Add `this`*(N+1) for every w-NAF index\n\n var acc = this.jpoint(null, null, null);\n\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--) {\n l++;\n }\n\n if (i >= 0) l++;\n acc = acc.dblp(l);\n if (i < 0) break;\n var z = naf[i];\n assert(z !== 0);\n\n if (p.type === 'affine') {\n // J +- P\n if (z > 0) acc = acc.mixedAdd(wnd[z - 1 >> 1]);else acc = acc.mixedAdd(wnd[-z - 1 >> 1].neg());\n } else {\n // J +- J\n if (z > 0) acc = acc.add(wnd[z - 1 >> 1]);else acc = acc.add(wnd[-z - 1 >> 1].neg());\n }\n }\n\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW, points, coeffs, len, jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3; // Fill all arrays\n\n var max = 0;\n var i;\n var j;\n var p;\n\n for (i = 0; i < len; i++) {\n p = points[i];\n\n var nafPoints = p._getNAFPoints(defW);\n\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n } // Comb small window NAFs\n\n\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n\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 = [points[a],\n /* 1 */\n null,\n /* 3 */\n null,\n /* 5 */\n points[b]\n /* 7 */\n ]; // Try to avoid Projective points, if possible\n\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 = [-3,\n /* -1 -1 */\n -1,\n /* -1 0 */\n -5,\n /* -1 1 */\n -7,\n /* 0 -1 */\n 0,\n /* 0 0 */\n 7,\n /* 0 1 */\n 5,\n /* 1 -1 */\n 1,\n /* 1 0 */\n 3\n /* 1 1 */\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\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\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\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0) zero = false;\n }\n\n if (!zero) break;\n k++;\n i--;\n }\n\n if (i >= 0) k++;\n acc = acc.dblp(k);\n if (i < 0) break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0) continue;else if (z > 0) p = wnd[j][z - 1 >> 1];else if (z < 0) p = wnd[j][-z - 1 >> 1].neg();\n if (p.type === 'affine') acc = acc.mixedAdd(p);else acc = acc.add(p);\n }\n } // Zeroify references\n\n\n for (i = 0; i < len; i++) {\n wnd[i] = null;\n }\n\n if (jacobianResult) return acc;else return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\n\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function\n /*other*/\neq() {\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 var len = this.p.byteLength(); // uncompressed, hybrid-odd, hybrid-even\n\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) && bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06) assert(bytes[bytes.length - 1] % 2 === 0);else if (bytes[0] === 0x07) assert(bytes[bytes.length - 1] % 2 === 1);\n var res = this.point(bytes.slice(1, 1 + len), bytes.slice(1 + len, 1 + 2 * len));\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) && bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\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 if (compact) return [this.getY().isEven() ? 0x02 : 0x03].concat(x);\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) return this;\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 return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed) return false;\n var doubles = this.precomputed.doubles;\n if (!doubles) return false;\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) return this.precomputed.doubles;\n var doubles = [this];\n var acc = this;\n\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++) {\n acc = acc.dbl();\n }\n\n doubles.push(acc);\n }\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) return this.precomputed.naf;\n var res = [this];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n\n for (var i = 1; i < max; i++) {\n res[i] = res[i - 1].add(dbl);\n }\n\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\n for (var i = 0; i < k; i++) {\n r = r.dbl();\n }\n\n return r;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar asn1 = require('./asn1');\n\nvar aesid = require('./aesid.json');\n\nvar fixProc = require('./fixProc');\n\nvar ciphers = require('browserify-aes');\n\nvar compat = require('pbkdf2');\n\nvar Buffer = require('safe-buffer').Buffer;\n\nmodule.exports = parseKeys;\n\nfunction parseKeys(buffer) {\n var password;\n\n if (_typeof(buffer) === 'object' && !Buffer.isBuffer(buffer)) {\n password = buffer.passphrase;\n buffer = buffer.key;\n }\n\n if (typeof buffer === 'string') {\n buffer = Buffer.from(buffer);\n }\n\n var stripped = fixProc(buffer, password);\n var type = stripped.tag;\n var data = stripped.data;\n var subtype, ndata;\n\n switch (type) {\n case 'CERTIFICATE':\n ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo;\n // falls through\n\n case 'PUBLIC KEY':\n if (!ndata) {\n ndata = asn1.PublicKey.decode(data, 'der');\n }\n\n subtype = ndata.algorithm.algorithm.join('.');\n\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der');\n\n case '1.2.840.10045.2.1':\n ndata.subjectPrivateKey = ndata.subjectPublicKey;\n return {\n type: 'ec',\n data: ndata\n };\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\n default:\n throw new Error('unknown key id ' + subtype);\n }\n\n // throw new Error('unknown key type ' + type)\n\n case 'ENCRYPTED PRIVATE KEY':\n data = asn1.EncryptedPrivateKey.decode(data, 'der');\n data = decrypt(data, password);\n // falls through\n\n case 'PRIVATE KEY':\n ndata = asn1.PrivateKey.decode(data, 'der');\n subtype = ndata.algorithm.algorithm.join('.');\n\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der');\n\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\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\n default:\n throw new Error('unknown key id ' + subtype);\n }\n\n // throw new Error('unknown key type ' + type)\n\n case 'RSA PUBLIC KEY':\n return asn1.RSAPublicKey.decode(data, 'der');\n\n case 'RSA PRIVATE KEY':\n return asn1.RSAPrivateKey.decode(data, 'der');\n\n case 'DSA PRIVATE KEY':\n return {\n type: 'dsa',\n params: asn1.DSAPrivateKey.decode(data, 'der')\n };\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\n default:\n throw new Error('unknown key type ' + type);\n }\n}\n\nparseKeys.signature = asn1.signature;\n\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}","define([\"./arr\"], function (arr) {\n \"use strict\";\n\n return arr.indexOf;\n});","define([\"./class2type\"], function (class2type) {\n \"use strict\";\n\n return class2type.hasOwnProperty;\n});","define([\"./core\", \"./core/toType\", \"./var/isFunction\", \"./var/rnothtmlwhite\"], function (jQuery, toType, isFunction, rnothtmlwhite) {\n \"use strict\"; // Convert String-formatted options into Object-formatted ones\n\n function createOptions(options) {\n var object = {};\n jQuery.each(options.match(rnothtmlwhite) || [], function (_, flag) {\n object[flag] = true;\n });\n return object;\n }\n /*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\n\n\n jQuery.Callbacks = function (options) {\n // Convert options from String-formatted to Object-formatted if needed\n // (we check in cache first)\n options = typeof options === \"string\" ? createOptions(options) : jQuery.extend({}, options);\n\n var // Flag to know if list is currently firing\n firing,\n // Last fire value for non-forgettable lists\n memory,\n // Flag to know if list was already fired\n _fired,\n // Flag to prevent firing\n _locked,\n // Actual callback list\n list = [],\n // Queue of execution data for repeatable lists\n queue = [],\n // Index of currently firing callback (modified by add/remove as needed)\n firingIndex = -1,\n // Fire callbacks\n fire = function fire() {\n // Enforce single-firing\n _locked = _locked || options.once; // Execute callbacks for all pending executions,\n // respecting firingIndex overrides and runtime changes\n\n _fired = firing = true;\n\n for (; queue.length; firingIndex = -1) {\n memory = queue.shift();\n\n while (++firingIndex < list.length) {\n // Run callback and check for early termination\n if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) {\n // Jump to end and forget the data so .add doesn't re-fire\n firingIndex = list.length;\n memory = false;\n }\n }\n } // Forget the data if we're done with it\n\n\n if (!options.memory) {\n memory = false;\n }\n\n firing = false; // Clean up if we're done firing for good\n\n if (_locked) {\n // Keep an empty list if we have data for future add calls\n if (memory) {\n list = []; // Otherwise, this object is spent\n } else {\n list = \"\";\n }\n }\n },\n // Actual Callbacks object\n self = {\n // Add a callback or a collection of callbacks to the list\n add: function add() {\n if (list) {\n // If we have memory from a past run, we should fire after adding\n if (memory && !firing) {\n firingIndex = list.length - 1;\n queue.push(memory);\n }\n\n (function add(args) {\n jQuery.each(args, function (_, arg) {\n if (isFunction(arg)) {\n if (!options.unique || !self.has(arg)) {\n list.push(arg);\n }\n } else if (arg && arg.length && toType(arg) !== \"string\") {\n // Inspect recursively\n add(arg);\n }\n });\n })(arguments);\n\n if (memory && !firing) {\n fire();\n }\n }\n\n return this;\n },\n // Remove a callback from the list\n remove: function remove() {\n jQuery.each(arguments, function (_, arg) {\n var index;\n\n while ((index = jQuery.inArray(arg, list, index)) > -1) {\n list.splice(index, 1); // Handle firing indexes\n\n if (index <= firingIndex) {\n firingIndex--;\n }\n }\n });\n return this;\n },\n // Check if a given callback is in the list.\n // If no argument is given, return whether or not list has callbacks attached.\n has: function has(fn) {\n return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0;\n },\n // Remove all callbacks from the list\n empty: function empty() {\n if (list) {\n list = [];\n }\n\n return this;\n },\n // Disable .fire and .add\n // Abort any current/pending executions\n // Clear all callbacks and values\n disable: function disable() {\n _locked = queue = [];\n list = memory = \"\";\n return this;\n },\n disabled: function disabled() {\n return !list;\n },\n // Disable .fire\n // Also disable .add unless we have memory (since it would have no effect)\n // Abort any pending executions\n lock: function lock() {\n _locked = queue = [];\n\n if (!memory && !firing) {\n list = memory = \"\";\n }\n\n return this;\n },\n locked: function locked() {\n return !!_locked;\n },\n // Call all callbacks with the given context and arguments\n fireWith: function fireWith(context, args) {\n if (!_locked) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n queue.push(args);\n\n if (!firing) {\n fire();\n }\n }\n\n return this;\n },\n // Call all the callbacks with the given arguments\n fire: function fire() {\n self.fireWith(this, arguments);\n return this;\n },\n // To know if the callbacks have already been called at least once\n fired: function fired() {\n return !!_fired;\n }\n };\n\n return self;\n };\n\n return jQuery;\n});","define([\"./core\", \"./data/var/dataPriv\", \"./deferred\", \"./callbacks\"], function (jQuery, dataPriv) {\n \"use strict\";\n\n jQuery.extend({\n queue: function queue(elem, type, data) {\n var queue;\n\n if (elem) {\n type = (type || \"fx\") + \"queue\";\n queue = dataPriv.get(elem, type); // Speed up dequeue by getting out quickly if this is just a lookup\n\n if (data) {\n if (!queue || Array.isArray(data)) {\n queue = dataPriv.access(elem, type, jQuery.makeArray(data));\n } else {\n queue.push(data);\n }\n }\n\n return queue || [];\n }\n },\n dequeue: function dequeue(elem, type) {\n type = type || \"fx\";\n\n var queue = jQuery.queue(elem, type),\n startLength = queue.length,\n fn = queue.shift(),\n hooks = jQuery._queueHooks(elem, type),\n next = function next() {\n jQuery.dequeue(elem, type);\n }; // If the fx queue is dequeued, always remove the progress sentinel\n\n\n if (fn === \"inprogress\") {\n fn = queue.shift();\n startLength--;\n }\n\n if (fn) {\n // Add a progress sentinel to prevent the fx queue from being\n // automatically dequeued\n if (type === \"fx\") {\n queue.unshift(\"inprogress\");\n } // Clear up the last queue stop function\n\n\n delete hooks.stop;\n fn.call(elem, next, hooks);\n }\n\n if (!startLength && hooks) {\n hooks.empty.fire();\n }\n },\n // Not public - generate a queueHooks object, or return the current one\n _queueHooks: function _queueHooks(elem, type) {\n var key = type + \"queueHooks\";\n return dataPriv.get(elem, key) || dataPriv.access(elem, key, {\n empty: jQuery.Callbacks(\"once memory\").add(function () {\n dataPriv.remove(elem, [type + \"queue\", key]);\n })\n });\n }\n });\n jQuery.fn.extend({\n queue: function queue(type, data) {\n var setter = 2;\n\n if (typeof type !== \"string\") {\n data = type;\n type = \"fx\";\n setter--;\n }\n\n if (arguments.length < setter) {\n return jQuery.queue(this[0], type);\n }\n\n return data === undefined ? this : this.each(function () {\n var queue = jQuery.queue(this, type, data); // Ensure a hooks for this queue\n\n jQuery._queueHooks(this, type);\n\n if (type === \"fx\" && queue[0] !== \"inprogress\") {\n jQuery.dequeue(this, type);\n }\n });\n },\n dequeue: function dequeue(type) {\n return this.each(function () {\n jQuery.dequeue(this, type);\n });\n },\n clearQueue: function clearQueue(type) {\n return this.queue(type || \"fx\", []);\n },\n // Get a promise resolved when queues of a certain type\n // are emptied (fx is the type by default)\n promise: function promise(type, obj) {\n var tmp,\n count = 1,\n defer = jQuery.Deferred(),\n elements = this,\n i = this.length,\n resolve = function resolve() {\n if (! --count) {\n defer.resolveWith(elements, [elements]);\n }\n };\n\n if (typeof type !== \"string\") {\n obj = type;\n type = undefined;\n }\n\n type = type || \"fx\";\n\n while (i--) {\n tmp = dataPriv.get(elements[i], type + \"queueHooks\");\n\n if (tmp && tmp.empty) {\n count++;\n tmp.empty.add(resolve);\n }\n }\n\n resolve();\n return defer.promise(obj);\n }\n });\n return jQuery;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\ndefine([\"./core\", \"./core/camelCase\", \"./var/document\", \"./var/isFunction\", \"./var/rcssNum\", \"./var/rnothtmlwhite\", \"./css/var/cssExpand\", \"./css/var/isHiddenWithinTree\", \"./css/adjustCSS\", \"./data/var/dataPriv\", \"./css/showHide\", \"./core/init\", \"./queue\", \"./deferred\", \"./traversing\", \"./manipulation\", \"./css\", \"./effects/Tween\"], function (jQuery, camelCase, document, isFunction, rcssNum, rnothtmlwhite, cssExpand, isHiddenWithinTree, adjustCSS, dataPriv, showHide) {\n \"use strict\";\n\n var fxNow,\n inProgress,\n rfxtypes = /^(?:toggle|show|hide)$/,\n rrun = /queueHooks$/;\n\n function schedule() {\n if (inProgress) {\n if (document.hidden === false && window.requestAnimationFrame) {\n window.requestAnimationFrame(schedule);\n } else {\n window.setTimeout(schedule, jQuery.fx.interval);\n }\n\n jQuery.fx.tick();\n }\n } // Animations created synchronously will run synchronously\n\n\n function createFxNow() {\n window.setTimeout(function () {\n fxNow = undefined;\n });\n return fxNow = Date.now();\n } // Generate parameters to create a standard animation\n\n\n function genFx(type, includeWidth) {\n var which,\n i = 0,\n attrs = {\n height: type\n }; // If we include width, step value is 1 to do all cssExpand values,\n // otherwise step value is 2 to skip over Left and Right\n\n includeWidth = includeWidth ? 1 : 0;\n\n for (; i < 4; i += 2 - includeWidth) {\n which = cssExpand[i];\n attrs[\"margin\" + which] = attrs[\"padding\" + which] = type;\n }\n\n if (includeWidth) {\n attrs.opacity = attrs.width = type;\n }\n\n return attrs;\n }\n\n function createTween(value, prop, animation) {\n var tween,\n collection = (Animation.tweeners[prop] || []).concat(Animation.tweeners[\"*\"]),\n index = 0,\n length = collection.length;\n\n for (; index < length; index++) {\n if (tween = collection[index].call(animation, prop, value)) {\n // We're done with this property\n return tween;\n }\n }\n }\n\n function defaultPrefilter(elem, props, opts) {\n var prop,\n value,\n toggle,\n hooks,\n oldfire,\n propTween,\n restoreDisplay,\n display,\n isBox = \"width\" in props || \"height\" in props,\n anim = this,\n orig = {},\n style = elem.style,\n hidden = elem.nodeType && isHiddenWithinTree(elem),\n dataShow = dataPriv.get(elem, \"fxshow\"); // Queue-skipping animations hijack the fx hooks\n\n if (!opts.queue) {\n hooks = jQuery._queueHooks(elem, \"fx\");\n\n if (hooks.unqueued == null) {\n hooks.unqueued = 0;\n oldfire = hooks.empty.fire;\n\n hooks.empty.fire = function () {\n if (!hooks.unqueued) {\n oldfire();\n }\n };\n }\n\n hooks.unqueued++;\n anim.always(function () {\n // Ensure the complete handler is called before this completes\n anim.always(function () {\n hooks.unqueued--;\n\n if (!jQuery.queue(elem, \"fx\").length) {\n hooks.empty.fire();\n }\n });\n });\n } // Detect show/hide animations\n\n\n for (prop in props) {\n value = props[prop];\n\n if (rfxtypes.test(value)) {\n delete props[prop];\n toggle = toggle || value === \"toggle\";\n\n if (value === (hidden ? \"hide\" : \"show\")) {\n // Pretend to be hidden if this is a \"show\" and\n // there is still data from a stopped show/hide\n if (value === \"show\" && dataShow && dataShow[prop] !== undefined) {\n hidden = true; // Ignore all other no-op show/hide data\n } else {\n continue;\n }\n }\n\n orig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop);\n }\n } // Bail out if this is a no-op like .hide().hide()\n\n\n propTween = !jQuery.isEmptyObject(props);\n\n if (!propTween && jQuery.isEmptyObject(orig)) {\n return;\n } // Restrict \"overflow\" and \"display\" styles during box animations\n\n\n if (isBox && elem.nodeType === 1) {\n // Support: IE <=9 - 11, Edge 12 - 15\n // Record all 3 overflow attributes because IE does not infer the shorthand\n // from identically-valued overflowX and overflowY and Edge just mirrors\n // the overflowX value there.\n opts.overflow = [style.overflow, style.overflowX, style.overflowY]; // Identify a display type, preferring old show/hide data over the CSS cascade\n\n restoreDisplay = dataShow && dataShow.display;\n\n if (restoreDisplay == null) {\n restoreDisplay = dataPriv.get(elem, \"display\");\n }\n\n display = jQuery.css(elem, \"display\");\n\n if (display === \"none\") {\n if (restoreDisplay) {\n display = restoreDisplay;\n } else {\n // Get nonempty value(s) by temporarily forcing visibility\n showHide([elem], true);\n restoreDisplay = elem.style.display || restoreDisplay;\n display = jQuery.css(elem, \"display\");\n showHide([elem]);\n }\n } // Animate inline elements as inline-block\n\n\n if (display === \"inline\" || display === \"inline-block\" && restoreDisplay != null) {\n if (jQuery.css(elem, \"float\") === \"none\") {\n // Restore the original display value at the end of pure show/hide animations\n if (!propTween) {\n anim.done(function () {\n style.display = restoreDisplay;\n });\n\n if (restoreDisplay == null) {\n display = style.display;\n restoreDisplay = display === \"none\" ? \"\" : display;\n }\n }\n\n style.display = \"inline-block\";\n }\n }\n }\n\n if (opts.overflow) {\n style.overflow = \"hidden\";\n anim.always(function () {\n style.overflow = opts.overflow[0];\n style.overflowX = opts.overflow[1];\n style.overflowY = opts.overflow[2];\n });\n } // Implement show/hide animations\n\n\n propTween = false;\n\n for (prop in orig) {\n // General show/hide setup for this element animation\n if (!propTween) {\n if (dataShow) {\n if (\"hidden\" in dataShow) {\n hidden = dataShow.hidden;\n }\n } else {\n dataShow = dataPriv.access(elem, \"fxshow\", {\n display: restoreDisplay\n });\n } // Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\n\n if (toggle) {\n dataShow.hidden = !hidden;\n } // Show elements before animating them\n\n\n if (hidden) {\n showHide([elem], true);\n }\n /* eslint-disable no-loop-func */\n\n\n anim.done(function () {\n /* eslint-enable no-loop-func */\n // The final step of a \"hide\" animation is actually hiding the element\n if (!hidden) {\n showHide([elem]);\n }\n\n dataPriv.remove(elem, \"fxshow\");\n\n for (prop in orig) {\n jQuery.style(elem, prop, orig[prop]);\n }\n });\n } // Per-property setup\n\n\n propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim);\n\n if (!(prop in dataShow)) {\n dataShow[prop] = propTween.start;\n\n if (hidden) {\n propTween.end = propTween.start;\n propTween.start = 0;\n }\n }\n }\n }\n\n function propFilter(props, specialEasing) {\n var index, name, easing, value, hooks; // camelCase, specialEasing and expand cssHook pass\n\n for (index in props) {\n name = camelCase(index);\n easing = specialEasing[name];\n value = props[index];\n\n if (Array.isArray(value)) {\n easing = value[1];\n value = props[index] = value[0];\n }\n\n if (index !== name) {\n props[name] = value;\n delete props[index];\n }\n\n hooks = jQuery.cssHooks[name];\n\n if (hooks && \"expand\" in hooks) {\n value = hooks.expand(value);\n delete props[name]; // Not quite $.extend, this won't overwrite existing keys.\n // Reusing 'index' because we have the correct \"name\"\n\n for (index in value) {\n if (!(index in props)) {\n props[index] = value[index];\n specialEasing[index] = easing;\n }\n }\n } else {\n specialEasing[name] = easing;\n }\n }\n }\n\n function Animation(elem, properties, options) {\n var result,\n stopped,\n index = 0,\n length = Animation.prefilters.length,\n deferred = jQuery.Deferred().always(function () {\n // Don't match elem in the :animated selector\n delete tick.elem;\n }),\n tick = function tick() {\n if (stopped) {\n return false;\n }\n\n var currentTime = fxNow || createFxNow(),\n remaining = Math.max(0, animation.startTime + animation.duration - currentTime),\n // Support: Android 2.3 only\n // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n temp = remaining / animation.duration || 0,\n percent = 1 - temp,\n index = 0,\n length = animation.tweens.length;\n\n for (; index < length; index++) {\n animation.tweens[index].run(percent);\n }\n\n deferred.notifyWith(elem, [animation, percent, remaining]); // If there's more to do, yield\n\n if (percent < 1 && length) {\n return remaining;\n } // If this was an empty animation, synthesize a final progress notification\n\n\n if (!length) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n } // Resolve the animation and report its conclusion\n\n\n deferred.resolveWith(elem, [animation]);\n return false;\n },\n animation = deferred.promise({\n elem: elem,\n props: jQuery.extend({}, properties),\n opts: jQuery.extend(true, {\n specialEasing: {},\n easing: jQuery.easing._default\n }, options),\n originalProperties: properties,\n originalOptions: options,\n startTime: fxNow || createFxNow(),\n duration: options.duration,\n tweens: [],\n createTween: function createTween(prop, end) {\n var tween = jQuery.Tween(elem, animation.opts, prop, end, animation.opts.specialEasing[prop] || animation.opts.easing);\n animation.tweens.push(tween);\n return tween;\n },\n stop: function stop(gotoEnd) {\n var index = 0,\n // If we are going to the end, we want to run all the tweens\n // otherwise we skip this part\n length = gotoEnd ? animation.tweens.length : 0;\n\n if (stopped) {\n return this;\n }\n\n stopped = true;\n\n for (; index < length; index++) {\n animation.tweens[index].run(1);\n } // Resolve when we played the last frame; otherwise, reject\n\n\n if (gotoEnd) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n deferred.resolveWith(elem, [animation, gotoEnd]);\n } else {\n deferred.rejectWith(elem, [animation, gotoEnd]);\n }\n\n return this;\n }\n }),\n props = animation.props;\n\n propFilter(props, animation.opts.specialEasing);\n\n for (; index < length; index++) {\n result = Animation.prefilters[index].call(animation, elem, props, animation.opts);\n\n if (result) {\n if (isFunction(result.stop)) {\n jQuery._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result);\n }\n\n return result;\n }\n }\n\n jQuery.map(props, createTween, animation);\n\n if (isFunction(animation.opts.start)) {\n animation.opts.start.call(elem, animation);\n } // Attach callbacks from options\n\n\n animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);\n jQuery.fx.timer(jQuery.extend(tick, {\n elem: elem,\n anim: animation,\n queue: animation.opts.queue\n }));\n return animation;\n }\n\n jQuery.Animation = jQuery.extend(Animation, {\n tweeners: {\n \"*\": [function (prop, value) {\n var tween = this.createTween(prop, value);\n adjustCSS(tween.elem, prop, rcssNum.exec(value), tween);\n return tween;\n }]\n },\n tweener: function tweener(props, callback) {\n if (isFunction(props)) {\n callback = props;\n props = [\"*\"];\n } else {\n props = props.match(rnothtmlwhite);\n }\n\n var prop,\n index = 0,\n length = props.length;\n\n for (; index < length; index++) {\n prop = props[index];\n Animation.tweeners[prop] = Animation.tweeners[prop] || [];\n Animation.tweeners[prop].unshift(callback);\n }\n },\n prefilters: [defaultPrefilter],\n prefilter: function prefilter(callback, prepend) {\n if (prepend) {\n Animation.prefilters.unshift(callback);\n } else {\n Animation.prefilters.push(callback);\n }\n }\n });\n\n jQuery.speed = function (speed, easing, fn) {\n var opt = speed && _typeof(speed) === \"object\" ? jQuery.extend({}, speed) : {\n complete: fn || !fn && easing || isFunction(speed) && speed,\n duration: speed,\n easing: fn && easing || easing && !isFunction(easing) && easing\n }; // Go to the end state if fx are off\n\n if (jQuery.fx.off) {\n opt.duration = 0;\n } else {\n if (typeof opt.duration !== \"number\") {\n if (opt.duration in jQuery.fx.speeds) {\n opt.duration = jQuery.fx.speeds[opt.duration];\n } else {\n opt.duration = jQuery.fx.speeds._default;\n }\n }\n } // Normalize opt.queue - true/undefined/null -> \"fx\"\n\n\n if (opt.queue == null || opt.queue === true) {\n opt.queue = \"fx\";\n } // Queueing\n\n\n opt.old = opt.complete;\n\n opt.complete = function () {\n if (isFunction(opt.old)) {\n opt.old.call(this);\n }\n\n if (opt.queue) {\n jQuery.dequeue(this, opt.queue);\n }\n };\n\n return opt;\n };\n\n jQuery.fn.extend({\n fadeTo: function fadeTo(speed, to, easing, callback) {\n // Show any hidden elements after setting opacity to 0\n return this.filter(isHiddenWithinTree).css(\"opacity\", 0).show() // Animate to the value specified\n .end().animate({\n opacity: to\n }, speed, easing, callback);\n },\n animate: function animate(prop, speed, easing, callback) {\n var empty = jQuery.isEmptyObject(prop),\n optall = jQuery.speed(speed, easing, callback),\n doAnimation = function doAnimation() {\n // Operate on a copy of prop so per-property easing won't be lost\n var anim = Animation(this, jQuery.extend({}, prop), optall); // Empty animations, or finishing resolves immediately\n\n if (empty || dataPriv.get(this, \"finish\")) {\n anim.stop(true);\n }\n };\n\n doAnimation.finish = doAnimation;\n return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation);\n },\n stop: function stop(type, clearQueue, gotoEnd) {\n var stopQueue = function stopQueue(hooks) {\n var stop = hooks.stop;\n delete hooks.stop;\n stop(gotoEnd);\n };\n\n if (typeof type !== \"string\") {\n gotoEnd = clearQueue;\n clearQueue = type;\n type = undefined;\n }\n\n if (clearQueue) {\n this.queue(type || \"fx\", []);\n }\n\n return this.each(function () {\n var dequeue = true,\n index = type != null && type + \"queueHooks\",\n timers = jQuery.timers,\n data = dataPriv.get(this);\n\n if (index) {\n if (data[index] && data[index].stop) {\n stopQueue(data[index]);\n }\n } else {\n for (index in data) {\n if (data[index] && data[index].stop && rrun.test(index)) {\n stopQueue(data[index]);\n }\n }\n }\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && (type == null || timers[index].queue === type)) {\n timers[index].anim.stop(gotoEnd);\n dequeue = false;\n timers.splice(index, 1);\n }\n } // Start the next in the queue if the last step wasn't forced.\n // Timers currently will call their complete callbacks, which\n // will dequeue but only if they were gotoEnd.\n\n\n if (dequeue || !gotoEnd) {\n jQuery.dequeue(this, type);\n }\n });\n },\n finish: function finish(type) {\n if (type !== false) {\n type = type || \"fx\";\n }\n\n return this.each(function () {\n var index,\n data = dataPriv.get(this),\n queue = data[type + \"queue\"],\n hooks = data[type + \"queueHooks\"],\n timers = jQuery.timers,\n length = queue ? queue.length : 0; // Enable finishing flag on private data\n\n data.finish = true; // Empty the queue first\n\n jQuery.queue(this, type, []);\n\n if (hooks && hooks.stop) {\n hooks.stop.call(this, true);\n } // Look for any active animations, and finish them\n\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && timers[index].queue === type) {\n timers[index].anim.stop(true);\n timers.splice(index, 1);\n }\n } // Look for any animations in the old queue and finish them\n\n\n for (index = 0; index < length; index++) {\n if (queue[index] && queue[index].finish) {\n queue[index].finish.call(this);\n }\n } // Turn off finishing flag\n\n\n delete data.finish;\n });\n }\n });\n jQuery.each([\"toggle\", \"show\", \"hide\"], function (_i, name) {\n var cssFn = jQuery.fn[name];\n\n jQuery.fn[name] = function (speed, easing, callback) {\n return speed == null || typeof speed === \"boolean\" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback);\n };\n }); // Generate shortcuts for custom animations\n\n jQuery.each({\n slideDown: genFx(\"show\"),\n slideUp: genFx(\"hide\"),\n slideToggle: genFx(\"toggle\"),\n fadeIn: {\n opacity: \"show\"\n },\n fadeOut: {\n opacity: \"hide\"\n },\n fadeToggle: {\n opacity: \"toggle\"\n }\n }, function (name, props) {\n jQuery.fn[name] = function (speed, easing, callback) {\n return this.animate(props, speed, easing, callback);\n };\n });\n jQuery.timers = [];\n\n jQuery.fx.tick = function () {\n var timer,\n i = 0,\n timers = jQuery.timers;\n fxNow = Date.now();\n\n for (; i < timers.length; i++) {\n timer = timers[i]; // Run the timer and safely remove it when done (allowing for external removal)\n\n if (!timer() && timers[i] === timer) {\n timers.splice(i--, 1);\n }\n }\n\n if (!timers.length) {\n jQuery.fx.stop();\n }\n\n fxNow = undefined;\n };\n\n jQuery.fx.timer = function (timer) {\n jQuery.timers.push(timer);\n jQuery.fx.start();\n };\n\n jQuery.fx.interval = 13;\n\n jQuery.fx.start = function () {\n if (inProgress) {\n return;\n }\n\n inProgress = true;\n schedule();\n };\n\n jQuery.fx.stop = function () {\n inProgress = null;\n };\n\n jQuery.fx.speeds = {\n slow: 600,\n fast: 200,\n // Default speed\n _default: 400\n };\n return jQuery;\n});","define([\"../var/pnum\"], function (pnum) {\n \"use strict\";\n\n return new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\n});","define(function () {\n \"use strict\";\n\n return [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n});","define(function () {\n \"use strict\";\n\n return /^(?:checkbox|radio)$/i;\n});","define([\"../../var/pnum\"], function (pnum) {\n \"use strict\";\n\n return new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\n});","define([\"../core\", \"../var/document\", \"../var/documentElement\", \"../var/support\"], function (jQuery, document, documentElement, support) {\n \"use strict\";\n\n (function () {\n // Executing both pixelPosition & boxSizingReliable tests require only one layout\n // so they're executed at the same time to save the second computation.\n function computeStyleTests() {\n // This is a singleton, we need to execute it only once\n if (!div) {\n return;\n }\n\n container.style.cssText = \"position:absolute;left:-11111px;width:60px;\" + \"margin-top:1px;padding:0;border:0\";\n div.style.cssText = \"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" + \"margin:auto;border:1px;padding:1px;\" + \"width:60%;top:1%\";\n documentElement.appendChild(container).appendChild(div);\n var divStyle = window.getComputedStyle(div);\n pixelPositionVal = divStyle.top !== \"1%\"; // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\n reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12; // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n // Some styles come back with percentage values, even though they shouldn't\n\n div.style.right = \"60%\";\n pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36; // Support: IE 9 - 11 only\n // Detect misreporting of content dimensions for box-sizing:border-box elements\n\n boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36; // Support: IE 9 only\n // Detect overflow:scroll screwiness (gh-3699)\n // Support: Chrome <=64\n // Don't get tricked when zoom affects offsetWidth (gh-4029)\n\n div.style.position = \"absolute\";\n scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12;\n documentElement.removeChild(container); // Nullify the div so it wouldn't be stored in the memory and\n // it will also be a sign that checks already performed\n\n div = null;\n }\n\n function roundPixelMeasures(measure) {\n return Math.round(parseFloat(measure));\n }\n\n var pixelPositionVal,\n boxSizingReliableVal,\n scrollboxSizeVal,\n pixelBoxStylesVal,\n reliableTrDimensionsVal,\n reliableMarginLeftVal,\n container = document.createElement(\"div\"),\n div = document.createElement(\"div\"); // Finish early in limited (non-browser) environments\n\n if (!div.style) {\n return;\n } // Support: IE <=9 - 11 only\n // Style of cloned element affects source element cloned (#8908)\n\n\n div.style.backgroundClip = \"content-box\";\n div.cloneNode(true).style.backgroundClip = \"\";\n support.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n jQuery.extend(support, {\n boxSizingReliable: function boxSizingReliable() {\n computeStyleTests();\n return boxSizingReliableVal;\n },\n pixelBoxStyles: function pixelBoxStyles() {\n computeStyleTests();\n return pixelBoxStylesVal;\n },\n pixelPosition: function pixelPosition() {\n computeStyleTests();\n return pixelPositionVal;\n },\n reliableMarginLeft: function reliableMarginLeft() {\n computeStyleTests();\n return reliableMarginLeftVal;\n },\n scrollboxSize: function scrollboxSize() {\n computeStyleTests();\n return scrollboxSizeVal;\n },\n // Support: IE 9 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Behavior in IE 9 is more subtle than in newer versions & it passes\n // some versions of this test; make sure not to make it pass there!\n //\n // Support: Firefox 70+\n // Only Firefox includes border widths\n // in computed dimensions. (gh-4529)\n reliableTrDimensions: function reliableTrDimensions() {\n var table, tr, trChild, trStyle;\n\n if (reliableTrDimensionsVal == null) {\n table = document.createElement(\"table\");\n tr = document.createElement(\"tr\");\n trChild = document.createElement(\"div\");\n table.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n tr.style.cssText = \"border:1px solid\"; // Support: Chrome 86+\n // Height set through cssText does not get applied.\n // Computed height then comes back as 0.\n\n tr.style.height = \"1px\";\n trChild.style.height = \"9px\"; // Support: Android 8 Chrome 86+\n // In our bodyBackground.html iframe,\n // display for all div elements is set to \"inline\",\n // which causes a problem only in Android 8 Chrome 86.\n // Ensuring the div is display: block\n // gets around this issue.\n\n trChild.style.display = \"block\";\n documentElement.appendChild(table).appendChild(tr).appendChild(trChild);\n trStyle = window.getComputedStyle(tr);\n reliableTrDimensionsVal = parseInt(trStyle.height, 10) + parseInt(trStyle.borderTopWidth, 10) + parseInt(trStyle.borderBottomWidth, 10) === tr.offsetHeight;\n documentElement.removeChild(table);\n }\n\n return reliableTrDimensionsVal;\n }\n });\n })();\n\n return support;\n});","define([\"../var/document\", \"../var/support\"], function (document, support) {\n \"use strict\";\n\n (function () {\n var input = document.createElement(\"input\"),\n select = document.createElement(\"select\"),\n opt = select.appendChild(document.createElement(\"option\"));\n input.type = \"checkbox\"; // Support: Android <=4.3 only\n // Default value for a checkbox should be \"on\"\n\n support.checkOn = input.value !== \"\"; // Support: IE <=11 only\n // Must access selectedIndex to make default options select\n\n support.optSelected = opt.selected; // Support: IE <=11 only\n // An input loses its value after becoming a radio\n\n input = document.createElement(\"input\");\n input.value = \"t\";\n input.type = \"radio\";\n support.radioValue = input.value === \"t\";\n })();\n\n return support;\n});","define([\"../var/rnothtmlwhite\"], function (rnothtmlwhite) {\n \"use strict\"; // Strip and collapse whitespace according to HTML spec\n // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\n function stripAndCollapse(value) {\n var tokens = value.match(rnothtmlwhite) || [];\n return tokens.join(\" \");\n }\n\n return stripAndCollapse;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\ndefine([\"../core\", \"../var/document\", \"../data/var/dataPriv\", \"../data/var/acceptData\", \"../var/hasOwn\", \"../var/isFunction\", \"../var/isWindow\", \"../event\"], function (jQuery, document, dataPriv, acceptData, hasOwn, isFunction, isWindow) {\n \"use strict\";\n\n var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n stopPropagationCallback = function stopPropagationCallback(e) {\n e.stopPropagation();\n };\n\n jQuery.extend(jQuery.event, {\n trigger: function trigger(event, data, elem, onlyHandlers) {\n var i,\n cur,\n tmp,\n bubbleType,\n ontype,\n handle,\n special,\n lastElement,\n eventPath = [elem || document],\n type = hasOwn.call(event, \"type\") ? event.type : event,\n namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\n cur = lastElement = tmp = elem = elem || document; // Don't do events on text and comment nodes\n\n if (elem.nodeType === 3 || elem.nodeType === 8) {\n return;\n } // focus/blur morphs to focusin/out; ensure we're not firing them right now\n\n\n if (rfocusMorph.test(type + jQuery.event.triggered)) {\n return;\n }\n\n if (type.indexOf(\".\") > -1) {\n // Namespaced trigger; create a regexp to match event type in handle()\n namespaces = type.split(\".\");\n type = namespaces.shift();\n namespaces.sort();\n }\n\n ontype = type.indexOf(\":\") < 0 && \"on\" + type; // Caller can pass in a jQuery.Event object, Object, or just an event type string\n\n event = event[jQuery.expando] ? event : new jQuery.Event(type, _typeof(event) === \"object\" && event); // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\n event.isTrigger = onlyHandlers ? 2 : 3;\n event.namespace = namespaces.join(\".\");\n event.rnamespace = event.namespace ? new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null; // Clean up the event in case it is being reused\n\n event.result = undefined;\n\n if (!event.target) {\n event.target = elem;\n } // Clone any incoming data and prepend the event, creating the handler arg list\n\n\n data = data == null ? [event] : jQuery.makeArray(data, [event]); // Allow special events to draw outside the lines\n\n special = jQuery.event.special[type] || {};\n\n if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n return;\n } // Determine event propagation path in advance, per W3C events spec (#9951)\n // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\n\n if (!onlyHandlers && !special.noBubble && !isWindow(elem)) {\n bubbleType = special.delegateType || type;\n\n if (!rfocusMorph.test(bubbleType + type)) {\n cur = cur.parentNode;\n }\n\n for (; cur; cur = cur.parentNode) {\n eventPath.push(cur);\n tmp = cur;\n } // Only add window if we got to document (e.g., not plain obj or detached DOM)\n\n\n if (tmp === (elem.ownerDocument || document)) {\n eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n }\n } // Fire handlers on the event path\n\n\n i = 0;\n\n while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n lastElement = cur;\n event.type = i > 1 ? bubbleType : special.bindType || type; // jQuery handler\n\n handle = (dataPriv.get(cur, \"events\") || Object.create(null))[event.type] && dataPriv.get(cur, \"handle\");\n\n if (handle) {\n handle.apply(cur, data);\n } // Native handler\n\n\n handle = ontype && cur[ontype];\n\n if (handle && handle.apply && acceptData(cur)) {\n event.result = handle.apply(cur, data);\n\n if (event.result === false) {\n event.preventDefault();\n }\n }\n }\n\n event.type = type; // If nobody prevented the default action, do it now\n\n if (!onlyHandlers && !event.isDefaultPrevented()) {\n if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) {\n // Call a native DOM method on the target with the same name as the event.\n // Don't do default actions on window, that's where global variables be (#6170)\n if (ontype && isFunction(elem[type]) && !isWindow(elem)) {\n // Don't re-trigger an onFOO event when we call its FOO() method\n tmp = elem[ontype];\n\n if (tmp) {\n elem[ontype] = null;\n } // Prevent re-triggering of the same event, since we already bubbled it above\n\n\n jQuery.event.triggered = type;\n\n if (event.isPropagationStopped()) {\n lastElement.addEventListener(type, stopPropagationCallback);\n }\n\n elem[type]();\n\n if (event.isPropagationStopped()) {\n lastElement.removeEventListener(type, stopPropagationCallback);\n }\n\n jQuery.event.triggered = undefined;\n\n if (tmp) {\n elem[ontype] = tmp;\n }\n }\n }\n }\n\n return event.result;\n },\n // Piggyback on a donor event to simulate a different one\n // Used only for `focus(in | out)` events\n simulate: function simulate(type, elem, event) {\n var e = jQuery.extend(new jQuery.Event(), event, {\n type: type,\n isSimulated: true\n });\n jQuery.event.trigger(e, null, elem);\n }\n });\n jQuery.fn.extend({\n trigger: function trigger(type, data) {\n return this.each(function () {\n jQuery.event.trigger(type, data, this);\n });\n },\n triggerHandler: function triggerHandler(type, data) {\n var elem = this[0];\n\n if (elem) {\n return jQuery.event.trigger(type, data, elem, true);\n }\n }\n });\n return jQuery;\n});","'use strict';\n\nvar inherits = require('inherits');\n\nvar HashBase = require('hash-base');\n\nvar Buffer = require('safe-buffer').Buffer;\n\nvar ARRAY16 = new Array(16);\n\nfunction MD5() {\n HashBase.call(this, 64); // state\n\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\n for (var i = 0; i < 16; ++i) {\n M[i] = this._block.readInt32LE(i * 4);\n }\n\n var a = this._a;\n var b = this._b;\n var c = this._c;\n var d = this._d;\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 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 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 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 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\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64);\n\n this._update();\n\n this._blockOffset = 0;\n }\n\n this._block.fill(0, this._blockOffset, 56);\n\n this._block.writeUInt32LE(this._length[0], 56);\n\n this._block.writeUInt32LE(this._length[1], 60);\n\n this._update(); // produce result\n\n\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.\n */\nmodule.exports = deprecate;\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\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\n warned = true;\n }\n\n return fn.apply(this, arguments);\n }\n\n return deprecated;\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\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\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\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\nvar Buffer = require('buffer').Buffer;\n\nvar inherits = require('inherits');\n\nvar HashBase = require('hash-base');\n\nvar ARRAY16 = new Array(16);\nvar zl = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13];\nvar zr = [5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11];\nvar sl = [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6];\nvar sr = [8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11];\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e];\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000];\n\nfunction RIPEMD160() {\n HashBase.call(this, 64); // state\n\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\n for (var j = 0; j < 16; ++j) {\n words[j] = this._block.readInt32LE(j * 4);\n }\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 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; // computation\n\n for (var i = 0; i < 80; i += 1) {\n var tl;\n var tr;\n\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 {\n // 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 ar = er;\n er = dr;\n dr = rotl(cr, 10);\n cr = br;\n br = tr;\n } // update state\n\n\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\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64);\n\n this._update();\n\n this._blockOffset = 0;\n }\n\n this._block.fill(0, this._blockOffset, 56);\n\n this._block.writeUInt32LE(this._length[0], 56);\n\n this._block.writeUInt32LE(this._length[1], 60);\n\n this._update(); // produce result\n\n\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;","var exports = module.exports = function SHA(algorithm) {\n algorithm = algorithm.toLowerCase();\n var Algorithm = exports[algorithm];\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)');\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');","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');","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer');\n\nvar Buffer = buffer.Buffer; // alternative to using Object.keys for old browsers\n\nfunction copyProps(src, dst) {\n for (var key in src) {\n dst[key] = src[key];\n }\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} // Copy static methods from Buffer\n\n\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\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\n var buf = Buffer(size);\n\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\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\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\n return buffer.SlowBuffer(size);\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/**/\n\nvar pna = require('process-nextick-args');\n/**/\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} // 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 asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\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/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\n\nvar Buffer = require('safe-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 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 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 var 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 var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm; // cast to ints.\n\n this.highWaterMark = Math.floor(this.highWaterMark); // 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; // 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 () {\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\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this); // 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 this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end'); // TODO: defer error events consistently everywhere, not just the cb\n\n stream.emit('error', er);\n pna.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 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\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n\n return valid;\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.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 return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n state.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.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\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 (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); // this can emit finish, and it will always happen\n // after error\n\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); // 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 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);\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} // 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 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); // .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 && !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}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n stream.emit('error', 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') {\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\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\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) pna.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 }\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 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 this.end();\n cb(err);\n};","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n this.type = this.options.type;\n this.blockSize = 8;\n\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n}\n\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {// Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0) return [];\n if (this.type === 'decrypt') return this._updateDecrypt(data);else 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\n for (var i = 0; i < min; i++) {\n this.buffer[this.bufferOff + i] = data[off + i];\n }\n\n this.bufferOff += min; // Shift next\n\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n\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 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 if (this.bufferOff === this.buffer.length) outputOff += this._flushBuffer(out, outputOff);\n } // Write blocks\n\n\n var max = data.length - (data.length - inputOff) % this.blockSize;\n\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n\n outputOff += this.blockSize;\n } // Queue rest\n\n\n for (; inputOff < data.length; inputOff++, this.bufferOff++) {\n this.buffer[this.bufferOff] = data[inputOff];\n }\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize); // TODO(indutny): optimize it, this is far from optimal\n\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n } // Buffer rest of the input\n\n\n inputOff += this._buffer(data, inputOff);\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer) first = this.update(buffer);\n var last;\n if (this.type === 'encrypt') last = this._finalEncrypt();else last = this._finalDecrypt();\n if (first) return first.concat(last);else return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0) return false;\n\n while (off < buffer.length) {\n buffer[off++] = 0;\n }\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff)) return [];\n var out = new Array(this.blockSize);\n\n this._update(this.buffer, 0, out, 0);\n\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\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};","var ciphers = require('./encrypter');\n\nvar deciphers = require('./decrypter');\n\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;","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;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar r;\n\nmodule.exports = function rand(len) {\n if (!r) r = new Rand(null);\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\n\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n}; // Emulate crypto API using randy\n\n\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes) return this.rand.getBytes(n);\n var res = new Uint8Array(n);\n\n for (var i = 0; i < res.length; i++) {\n res[i] = this.rand.getByte();\n }\n\n return res;\n};\n\nif ((typeof self === \"undefined\" ? \"undefined\" : _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 }; // Safari's WebWorkers do not have `crypto`\n\n } else if ((typeof window === \"undefined\" ? \"undefined\" : _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\n if (typeof crypto.randomBytes !== 'function') throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {}\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;","var BN = require('bn.js');\n\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 {\n blinder: blinder,\n unblinder: r.invm(priv.modulus)\n };\n}\n\nfunction getr(priv) {\n var len = priv.modulus.byteLength();\n var r;\n\n do {\n r = new BN(randomBytes(len));\n } while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2));\n\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}\n\ncrt.getr = getr;\nmodule.exports = crt;","'use strict';\n\nvar elliptic = exports;\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'); // Protocols\n\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\n\nvar curve = require('./curve');\n\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short') this.curve = new curve.short(options);else if (options.type === 'edwards') this.curve = new curve.edwards(options);else this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\n\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function get() {\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: ['188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012', '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811']\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: ['b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21', 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34']\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: ['6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296', '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5']\n});\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' + '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' + 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: ['aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' + '5502f25d bf55296c 3a545e38 72760ab7', '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' + '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f']\n});\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' + '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' + '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' + 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' + 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: ['000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' + '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' + 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66', '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' + '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' + '3fad0761 353c7086 a272c240 88be9476 9fd16650']\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: ['9']\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: ['216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a', // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658']\n});\nvar pre;\n\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 // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [{\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3'\n }, {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15'\n }],\n gRed: false,\n g: ['79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798', '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8', pre]\n});","var hash = exports;\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'); // Proxy hash functions to the main object\n\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;","/* eslint-disable node/no-deprecated-api */\n'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar buffer = require('buffer');\n\nvar Buffer = buffer.Buffer;\nvar safer = {};\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 = {};\n\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\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\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\n if (size < 0 || size >= 2 * (1 << 30)) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"');\n }\n\n var buf = Buffer(size);\n\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\n return buf;\n };\n}\n\nif (!safer.kStringMaxLength) {\n try {\n safer.kStringMaxLength = process.binding('buffer').kStringMaxLength;\n } catch (e) {// 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\n if (safer.kStringMaxLength) {\n safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength;\n }\n}\n\nmodule.exports = safer;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar Reporter = require('../base/reporter').Reporter;\n\nvar EncoderBuffer = require('../base/buffer').EncoderBuffer;\n\nvar DecoderBuffer = require('../base/buffer').DecoderBuffer;\n\nvar assert = require('minimalistic-assert'); // Supported tags\n\n\nvar tags = ['seq', 'seqof', 'set', 'setof', 'objid', 'bool', 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc', 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str', 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr']; // Public methods list\n\nvar methods = ['key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice', 'any', 'contains'].concat(tags); // Overrided methods list\n\nvar overrided = ['_peekTag', '_decodeTag', '_use', '_decodeStr', '_decodeObjid', '_decodeTime', '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList', '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime', '_encodeNull', '_encodeInt', '_encodeBool'];\n\nfunction Node(enc, parent, name) {\n var state = {};\n this._baseState = state;\n state.name = name;\n state.enc = enc;\n state.parent = parent || null;\n state.children = null; // State\n\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; // Should create new instance on each method\n\n if (!state.parent) {\n state.children = [];\n\n this._wrap();\n }\n}\n\nmodule.exports = Node;\nvar stateProps = ['enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice', 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit', 'implicit', 'contains'];\n\nNode.prototype.clone = function clone() {\n var state = this._baseState;\n var cstate = {};\n stateProps.forEach(function (prop) {\n cstate[prop] = state[prop];\n });\n var res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n var state = this._baseState;\n methods.forEach(function (method) {\n this[method] = function _wrappedMethod() {\n var 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 var state = this._baseState;\n assert(state.parent === null);\n body.call(this); // Filter children\n\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 var state = this._baseState; // Filter children and args\n\n var 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; // Replace parent to maintain backward link\n\n children.forEach(function (child) {\n child._baseState.parent = this;\n }, this);\n }\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) return arg;\n var res = {};\n Object.keys(arg).forEach(function (key) {\n if (key == (key | 0)) key |= 0;\n var value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n}; //\n// Overrided methods\n//\n\n\noverrided.forEach(function (method) {\n Node.prototype[method] = function _overrided() {\n var state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n}); //\n// Public methods\n//\n\ntags.forEach(function (tag) {\n Node.prototype[tag] = function _tagMethod() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\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 var state = this._baseState;\n assert(state.use === null);\n state.use = item;\n return this;\n};\n\nNode.prototype.optional = function optional() {\n var state = this._baseState;\n state.optional = true;\n return this;\n};\n\nNode.prototype.def = function def(val) {\n var state = this._baseState;\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n var state = this._baseState;\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n var state = this._baseState;\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n return this;\n};\n\nNode.prototype.obj = function obj() {\n var state = this._baseState;\n var args = Array.prototype.slice.call(arguments);\n state.obj = true;\n if (args.length !== 0) this._useArgs(args);\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n var state = this._baseState;\n assert(state.key === null);\n state.key = newKey;\n return this;\n};\n\nNode.prototype.any = function any() {\n var state = this._baseState;\n state.any = true;\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n var state = this._baseState;\n assert(state.choice === null);\n state.choice = obj;\n\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 var state = this._baseState;\n assert(state.use === null);\n state.contains = item;\n return this;\n}; //\n// Decoding\n//\n\n\nNode.prototype._decode = function decode(input, options) {\n var state = this._baseState; // Decode root node\n\n if (state.parent === null) return input.wrapResult(state.children[0]._decode(input, options));\n var result = state['default'];\n var present = true;\n var prevKey = null;\n if (state.key !== null) prevKey = input.enterKey(state.key); // Check if tag is there\n\n if (state.optional) {\n var tag = null;\n if (state.explicit !== null) tag = state.explicit;else if (state.implicit !== null) tag = state.implicit;else if (state.tag !== null) tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n var save = input.save();\n\n try {\n if (state.choice === null) this._decodeGeneric(state.tag, input, options);else this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n if (input.isError(present)) return present;\n }\n } // Push object on stack\n\n\n var prevObj;\n if (state.obj && present) prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n var explicit = this._decodeTag(input, state.explicit);\n\n if (input.isError(explicit)) return explicit;\n input = explicit;\n }\n\n var start = input.offset; // Unwrap implicit and normal values\n\n if (state.use === null && state.choice === null) {\n var _save;\n\n if (state.any) _save = input.save();\n\n var body = this._decodeTag(input, state.implicit !== null ? state.implicit : state.tag, state.any);\n\n if (input.isError(body)) return body;\n if (state.any) result = input.raw(_save);else input = body;\n }\n\n if (options && options.track && state.tag !== null) options.track(input.path(), start, input.length, 'tagged');\n if (options && options.track && state.tag !== null) options.track(input.path(), input.offset, input.length, 'content'); // Select proper method for tag\n\n if (state.any) {// 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)) return result; // Decode children\n\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 } // Decode contained/encoded by schema, only in bit or octet strings\n\n\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n var data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)._decode(data, options);\n }\n } // Pop object\n\n\n if (state.obj && present) result = input.leaveObject(prevObj); // Set key\n\n if (state.key !== null && (result !== null || present === true)) input.leaveKey(prevKey, state.key, result);else if (prevKey !== null) input.exitKey(prevKey);\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n var state = this._baseState;\n if (tag === 'seq' || tag === 'set') return null;\n if (tag === 'seqof' || tag === 'setof') return this._decodeList(input, tag, state.args[0], options);else if (/str$/.test(tag)) return this._decodeStr(input, tag, options);else if (tag === 'objid' && state.args) return this._decodeObjid(input, state.args[0], state.args[1], options);else if (tag === 'objid') return this._decodeObjid(input, null, null, options);else if (tag === 'gentime' || tag === 'utctime') return this._decodeTime(input, tag, options);else if (tag === 'null_') return this._decodeNull(input, options);else if (tag === 'bool') return this._decodeBool(input, options);else if (tag === 'objDesc') return this._decodeStr(input, tag, options);else if (tag === 'int' || tag === 'enum') 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)._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n var state = this._baseState; // Create altered use decoder if implicit is set\n\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n var state = this._baseState;\n var result = null;\n var match = false;\n Object.keys(state.choice).some(function (key) {\n var save = input.save();\n var node = state.choice[key];\n\n try {\n var value = node._decode(input, options);\n\n if (input.isError(value)) return false;\n result = {\n type: key,\n value: value\n };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n\n return true;\n }, this);\n if (!match) return input.error('Choice not matched');\n return result;\n}; //\n// Encoding\n//\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 var state = this._baseState;\n if (state['default'] !== null && state['default'] === data) return;\n\n var result = this._encodeValue(data, reporter, parent);\n\n if (result === undefined) return;\n if (this._skipDefault(result, reporter, parent)) return;\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n var state = this._baseState; // Decode root node\n\n if (state.parent === null) return state.children[0]._encode(data, reporter || new Reporter());\n var result = null; // Set reporter to share it with a child class\n\n this.reporter = reporter; // Check if data is there\n\n if (state.optional && data === undefined) {\n if (state['default'] !== null) data = state['default'];else return;\n } // Encode children first\n\n\n var content = null;\n var primitive = false;\n\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_') return child._encode(null, reporter, data);\n if (child._baseState.key === null) return reporter.error('Child should have a key');\n var prevKey = reporter.enterKey(child._baseState.key);\n if (_typeof(data) !== 'object') return reporter.error('Child expected, but input is not object');\n\n var res = child._encode(data[child._baseState.key], reporter, data);\n\n reporter.leaveKey(prevKey);\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)) return reporter.error('Too many args for : ' + state.tag);\n if (!Array.isArray(data)) return reporter.error('seqof/setof, but data is not Array');\n var child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function (item) {\n var state = this._baseState;\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 } // Encode data itself\n\n\n if (!state.any && state.choice === null) {\n var tag = state.implicit !== null ? state.implicit : state.tag;\n var cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null) reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null) result = this._encodeComposite(tag, primitive, cls, content);\n }\n } // Wrap in explicit\n\n\n if (state.explicit !== null) result = this._encodeComposite(state.explicit, false, 'context', result);\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n var state = this._baseState;\n var node = state.choice[data.type];\n\n if (!node) {\n assert(false, data.type + ' not found in ' + JSON.stringify(Object.keys(state.choice)));\n }\n\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n var state = this._baseState;\n if (/str$/.test(tag)) return this._encodeStr(data, tag);else if (tag === 'objid' && state.args) return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);else if (tag === 'objid') return this._encodeObjid(data, null, null);else if (tag === 'gentime' || tag === 'utctime') return this._encodeTime(data, tag);else if (tag === 'null_') return this._encodeNull();else if (tag === 'int' || tag === 'enum') return this._encodeInt(data, state.args && state.reverseArgs[0]);else if (tag === 'bool') return this._encodeBool(data);else if (tag === 'objDesc') return this._encodeStr(data, tag);else 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};","'use strict';\n\nvar inherits = require('inherits');\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\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 var state = this._reporterState;\n return {\n obj: state.obj,\n pathLen: state.path.length\n };\n};\n\nReporter.prototype.restore = function restore(data) {\n var state = this._reporterState;\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 var state = this._reporterState;\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n var state = this._reporterState;\n this.exitKey(index);\n if (state.obj !== null) 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 var state = this._reporterState;\n var prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n var state = this._reporterState;\n var now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n var err;\n var state = this._reporterState;\n var inherited = msg instanceof ReporterError;\n\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) throw err;\n if (!inherited) state.errors.push(err);\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n var state = this._reporterState;\n if (!state.options.partial) return result;\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}\n\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace) 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\n return this;\n};","'use strict'; // Helper\n\nfunction reverse(map) {\n var res = {};\n Object.keys(map).forEach(function (key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key) key = key | 0;\n var value = map[key];\n res[value] = key;\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);\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);","define([\"./core\", \"./selector\", \"./traversing\", \"./callbacks\", \"./deferred\", \"./deferred/exceptionHook\", \"./core/ready\", \"./data\", \"./queue\", \"./queue/delay\", \"./attributes\", \"./event\", \"./event/focusin\", \"./manipulation\", \"./manipulation/_evalUrl\", \"./wrap\", \"./css\", \"./css/hiddenVisibleSelectors\", \"./serialize\", \"./ajax\", \"./ajax/xhr\", \"./ajax/script\", \"./ajax/jsonp\", \"./ajax/load\", \"./core/parseXML\", \"./core/parseHTML\", \"./effects\", \"./effects/animatedSelector\", \"./offset\", \"./dimensions\", \"./deprecated\", \"./exports/amd\", \"./exports/global\"], function (jQuery) {\n \"use strict\";\n\n return jQuery;\n});","define(function () {\n \"use strict\";\n\n return Object.getPrototypeOf;\n});","define([\"./arr\"], function (arr) {\n \"use strict\"; // Support: IE 9 - 11+, Edge 18+, Android Browser 4.0 - 4.3 only, iOS 7 - 11 only, Safari 11 only,\n // Firefox <= 61 only\n // Provide fallback for browsers without Array#flat.\n\n return arr.flat ? function (array) {\n return arr.flat.call(array);\n } : function (array) {\n return arr.concat.apply([], array);\n };\n});","define([\"./arr\"], function (arr) {\n \"use strict\";\n\n return arr.push;\n});","define([\"./class2type\"], function (class2type) {\n \"use strict\";\n\n return class2type.toString;\n});","define([\"./hasOwn\"], function (hasOwn) {\n \"use strict\";\n\n return hasOwn.toString;\n});","define([\"../var/document\"], function (document) {\n \"use strict\";\n\n var preservedScriptAttributes = {\n type: true,\n src: true,\n nonce: true,\n noModule: true\n };\n\n function DOMEval(code, node, doc) {\n doc = doc || document;\n var i,\n val,\n script = doc.createElement(\"script\");\n script.text = code;\n\n if (node) {\n for (i in preservedScriptAttributes) {\n // Support: Firefox 64+, Edge 18+\n // Some browsers don't support the \"nonce\" property on scripts.\n // On the other hand, just using `getAttribute` is not enough as\n // the `nonce` attribute is reset to an empty string whenever it\n // becomes browsing-context connected.\n // See https://github.com/whatwg/html/issues/2369\n // See https://html.spec.whatwg.org/#nonce-attributes\n // The `node.getAttribute` check was added for the sake of\n // `jQuery.globalEval` so that it can fake a nonce-containing node\n // via an object.\n val = node[i] || node.getAttribute && node.getAttribute(i);\n\n if (val) {\n script.setAttribute(i, val);\n }\n }\n }\n\n doc.head.appendChild(script).parentNode.removeChild(script);\n }\n\n return DOMEval;\n});","define([\"../../core\", \"../../selector\"], function (jQuery) {\n \"use strict\";\n\n return jQuery.expr.match.needsContext;\n});","define(function () {\n \"use strict\"; // rsingleTag matches a string consisting of a single HTML element with no attributes\n // and captures the element's name\n\n return /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;\n});","define([\"../core\", \"../var/indexOf\", \"../var/isFunction\", \"./var/rneedsContext\", \"../selector\"], function (jQuery, indexOf, isFunction, rneedsContext) {\n \"use strict\"; // Implement the identical functionality for filter and not\n\n function winnow(elements, qualifier, not) {\n if (isFunction(qualifier)) {\n return jQuery.grep(elements, function (elem, i) {\n return !!qualifier.call(elem, i, elem) !== not;\n });\n } // Single element\n\n\n if (qualifier.nodeType) {\n return jQuery.grep(elements, function (elem) {\n return elem === qualifier !== not;\n });\n } // Arraylike of elements (jQuery, arguments, Array)\n\n\n if (typeof qualifier !== \"string\") {\n return jQuery.grep(elements, function (elem) {\n return indexOf.call(qualifier, elem) > -1 !== not;\n });\n } // Filtered directly for both simple and complex selectors\n\n\n return jQuery.filter(qualifier, elements, not);\n }\n\n jQuery.filter = function (expr, elems, not) {\n var elem = elems[0];\n\n if (not) {\n expr = \":not(\" + expr + \")\";\n }\n\n if (elems.length === 1 && elem.nodeType === 1) {\n return jQuery.find.matchesSelector(elem, expr) ? [elem] : [];\n }\n\n return jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\n return elem.nodeType === 1;\n }));\n };\n\n jQuery.fn.extend({\n find: function find(selector) {\n var i,\n ret,\n len = this.length,\n self = this;\n\n if (typeof selector !== \"string\") {\n return this.pushStack(jQuery(selector).filter(function () {\n for (i = 0; i < len; i++) {\n if (jQuery.contains(self[i], this)) {\n return true;\n }\n }\n }));\n }\n\n ret = this.pushStack([]);\n\n for (i = 0; i < len; i++) {\n jQuery.find(selector, self[i], ret);\n }\n\n return len > 1 ? jQuery.uniqueSort(ret) : ret;\n },\n filter: function filter(selector) {\n return this.pushStack(winnow(this, selector || [], false));\n },\n not: function not(selector) {\n return this.pushStack(winnow(this, selector || [], true));\n },\n is: function is(selector) {\n return !!winnow(this, // If this is a positional/relative selector, check membership in the returned set\n // so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n typeof selector === \"string\" && rneedsContext.test(selector) ? jQuery(selector) : selector || [], false).length;\n }\n });\n});","define([\"../core\", \"../var/document\", \"../core/readyException\", \"../deferred\"], function (jQuery, document) {\n \"use strict\"; // The deferred used on DOM ready\n\n var readyList = jQuery.Deferred();\n\n jQuery.fn.ready = function (fn) {\n readyList.then(fn) // Wrap jQuery.readyException in a function so that the lookup\n // happens at the time of error handling instead of callback\n // registration.\n .catch(function (error) {\n jQuery.readyException(error);\n });\n return this;\n };\n\n jQuery.extend({\n // Is the DOM ready to be used? Set to true once it occurs.\n isReady: false,\n // A counter to track how many items to wait for before\n // the ready event fires. See #6781\n readyWait: 1,\n // Handle when the DOM is ready\n ready: function ready(wait) {\n // Abort if there are pending holds or we're already ready\n if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\n return;\n } // Remember that the DOM is ready\n\n\n jQuery.isReady = true; // If a normal DOM Ready event fired, decrement, and wait if need be\n\n if (wait !== true && --jQuery.readyWait > 0) {\n return;\n } // If there are functions bound, to execute\n\n\n readyList.resolveWith(document, [jQuery]);\n }\n });\n jQuery.ready.then = readyList.then; // The ready event handler and self cleanup method\n\n function completed() {\n document.removeEventListener(\"DOMContentLoaded\", completed);\n window.removeEventListener(\"load\", completed);\n jQuery.ready();\n } // Catch cases where $(document).ready() is called\n // after the browser event has already occurred.\n // Support: IE <=9 - 10 only\n // Older IE sometimes signals \"interactive\" too soon\n\n\n if (document.readyState === \"complete\" || document.readyState !== \"loading\" && !document.documentElement.doScroll) {\n // Handle it asynchronously to allow scripts the opportunity to delay ready\n window.setTimeout(jQuery.ready);\n } else {\n // Use the handy event callback\n document.addEventListener(\"DOMContentLoaded\", completed); // A fallback to window.onload, that will always work\n\n window.addEventListener(\"load\", completed);\n }\n});","define([\"../core\", \"../core/camelCase\", \"../var/rnothtmlwhite\", \"./var/acceptData\"], function (jQuery, camelCase, rnothtmlwhite, acceptData) {\n \"use strict\";\n\n function Data() {\n this.expando = jQuery.expando + Data.uid++;\n }\n\n Data.uid = 1;\n Data.prototype = {\n cache: function cache(owner) {\n // Check if the owner object already has a cache\n var value = owner[this.expando]; // If not, create one\n\n if (!value) {\n value = {}; // We can accept data for non-element nodes in modern browsers,\n // but we should not, see #8335.\n // Always return an empty object.\n\n if (acceptData(owner)) {\n // If it is a node unlikely to be stringify-ed or looped over\n // use plain assignment\n if (owner.nodeType) {\n owner[this.expando] = value; // Otherwise secure it in a non-enumerable property\n // configurable must be true to allow the property to be\n // deleted when data is removed\n } else {\n Object.defineProperty(owner, this.expando, {\n value: value,\n configurable: true\n });\n }\n }\n }\n\n return value;\n },\n set: function set(owner, data, value) {\n var prop,\n cache = this.cache(owner); // Handle: [ owner, key, value ] args\n // Always use camelCase key (gh-2257)\n\n if (typeof data === \"string\") {\n cache[camelCase(data)] = value; // Handle: [ owner, { properties } ] args\n } else {\n // Copy the properties one-by-one to the cache object\n for (prop in data) {\n cache[camelCase(prop)] = data[prop];\n }\n }\n\n return cache;\n },\n get: function get(owner, key) {\n return key === undefined ? this.cache(owner) : // Always use camelCase key (gh-2257)\n owner[this.expando] && owner[this.expando][camelCase(key)];\n },\n access: function access(owner, key, value) {\n // In cases where either:\n //\n // 1. No key was specified\n // 2. A string key was specified, but no value provided\n //\n // Take the \"read\" path and allow the get method to determine\n // which value to return, respectively either:\n //\n // 1. The entire cache object\n // 2. The data stored at the key\n //\n if (key === undefined || key && typeof key === \"string\" && value === undefined) {\n return this.get(owner, key);\n } // When the key is not a string, or both a key and value\n // are specified, set or extend (existing objects) with either:\n //\n // 1. An object of properties\n // 2. A key and value\n //\n\n\n this.set(owner, key, value); // Since the \"set\" path can have two possible entry points\n // return the expected data based on which path was taken[*]\n\n return value !== undefined ? value : key;\n },\n remove: function remove(owner, key) {\n var i,\n cache = owner[this.expando];\n\n if (cache === undefined) {\n return;\n }\n\n if (key !== undefined) {\n // Support array or space separated string of keys\n if (Array.isArray(key)) {\n // If key is an array of keys...\n // We always set camelCase keys, so remove that.\n key = key.map(camelCase);\n } else {\n key = camelCase(key); // If a key with the spaces exists, use it.\n // Otherwise, create an array by matching non-whitespace\n\n key = key in cache ? [key] : key.match(rnothtmlwhite) || [];\n }\n\n i = key.length;\n\n while (i--) {\n delete cache[key[i]];\n }\n } // Remove the expando if there's no more data\n\n\n if (key === undefined || jQuery.isEmptyObject(cache)) {\n // Support: Chrome <=35 - 45\n // Webkit & Blink performance suffers when deleting properties\n // from DOM nodes, so set to undefined instead\n // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n if (owner.nodeType) {\n owner[this.expando] = undefined;\n } else {\n delete owner[this.expando];\n }\n }\n },\n hasData: function hasData(owner) {\n var cache = owner[this.expando];\n return cache !== undefined && !jQuery.isEmptyObject(cache);\n }\n };\n return Data;\n});","define([\"../Data\"], function (Data) {\n \"use strict\";\n\n return new Data();\n});","define(function () {\n \"use strict\";\n\n return /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n});","define([\"../../core\", \"../../core/isAttached\" // css is assumed\n], function (jQuery, isAttached) {\n \"use strict\"; // isHiddenWithinTree reports if an element has a non-\"none\" display style (inline and/or\n // through the CSS cascade), which is useful in deciding whether or not to make it visible.\n // It differs from the :hidden selector (jQuery.expr.pseudos.hidden) in two important ways:\n // * A hidden ancestor does not force an element to be classified as hidden.\n // * Being disconnected from the document does not force an element to be classified as hidden.\n // These differences improve the behavior of .toggle() et al. when applied to elements that are\n // detached or contained within hidden ancestors (gh-2404, gh-2863).\n\n return function (elem, el) {\n // isHiddenWithinTree might be called from jQuery#filter function;\n // in that case, element will be second argument\n elem = el || elem; // Inline style trumps all\n\n return elem.style.display === \"none\" || elem.style.display === \"\" && // Otherwise, check computed style\n // Support: Firefox <=43 - 45\n // Disconnected elements can have computed display: none, so first confirm that elem is\n // in the document.\n isAttached(elem) && jQuery.css(elem, \"display\") === \"none\";\n };\n});","define([\"../core\", \"../var/rcssNum\"], function (jQuery, rcssNum) {\n \"use strict\";\n\n function adjustCSS(elem, prop, valueParts, tween) {\n var adjusted,\n scale,\n maxIterations = 20,\n currentValue = tween ? function () {\n return tween.cur();\n } : function () {\n return jQuery.css(elem, prop, \"\");\n },\n initial = currentValue(),\n unit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? \"\" : \"px\"),\n // Starting value computation is required for potential unit mismatches\n initialInUnit = elem.nodeType && (jQuery.cssNumber[prop] || unit !== \"px\" && +initial) && rcssNum.exec(jQuery.css(elem, prop));\n\n if (initialInUnit && initialInUnit[3] !== unit) {\n // Support: Firefox <=54\n // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n initial = initial / 2; // Trust units reported by jQuery.css\n\n unit = unit || initialInUnit[3]; // Iteratively approximate from a nonzero starting point\n\n initialInUnit = +initial || 1;\n\n while (maxIterations--) {\n // Evaluate and update our best guess (doubling guesses that zero out).\n // Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n jQuery.style(elem, prop, initialInUnit + unit);\n\n if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) {\n maxIterations = 0;\n }\n\n initialInUnit = initialInUnit / scale;\n }\n\n initialInUnit = initialInUnit * 2;\n jQuery.style(elem, prop, initialInUnit + unit); // Make sure we update the tween properties later on\n\n valueParts = valueParts || [];\n }\n\n if (valueParts) {\n initialInUnit = +initialInUnit || +initial || 0; // Apply relative offset (+=/-=) if specified\n\n adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2];\n\n if (tween) {\n tween.unit = unit;\n tween.start = initialInUnit;\n tween.end = adjusted;\n }\n }\n\n return adjusted;\n }\n\n return adjustCSS;\n});","define(function () {\n \"use strict\"; // rtagName captures the name from the first start tag in a string of HTML\n // https://html.spec.whatwg.org/multipage/syntax.html#tag-open-state\n // https://html.spec.whatwg.org/multipage/syntax.html#tag-name-state\n\n return /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i;\n});","define(function () {\n \"use strict\";\n\n return /^$|^module$|\\/(?:java|ecma)script/i;\n});","define([\"./support\"], function (support) {\n \"use strict\"; // We have to close these tags to support XHTML (#13200)\n\n var wrapMap = {\n // XHTML parsers do not magically insert elements in the\n // same way that tag soup parsers do. So we cannot shorten\n // this by omitting or other required elements.\n thead: [1, \"\", \"
\"],\n col: [2, \"\", \"
\"],\n tr: [2, \"\", \"
\"],\n td: [3, \"\", \"
\"],\n _default: [0, \"\", \"\"]\n };\n wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n wrapMap.th = wrapMap.td; // Support: IE <=9 only\n\n if (!support.option) {\n wrapMap.optgroup = wrapMap.option = [1, \"\"];\n }\n\n return wrapMap;\n});","define([\"../var/document\", \"../var/support\"], function (document, support) {\n \"use strict\";\n\n (function () {\n var fragment = document.createDocumentFragment(),\n div = fragment.appendChild(document.createElement(\"div\")),\n input = document.createElement(\"input\"); // Support: Android 4.0 - 4.3 only\n // Check state lost if the name is set (#11217)\n // Support: Windows Web Apps (WWA)\n // `name` and `type` must use .setAttribute for WWA (#14901)\n\n input.setAttribute(\"type\", \"radio\");\n input.setAttribute(\"checked\", \"checked\");\n input.setAttribute(\"name\", \"t\");\n div.appendChild(input); // Support: Android <=4.1 only\n // Older WebKit doesn't clone checked state correctly in fragments\n\n support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked; // Support: IE <=11 only\n // Make sure textarea (and checkbox) defaultValue is properly cloned\n\n div.innerHTML = \"\";\n support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue; // Support: IE <=9 only\n // IE <=9 replaces \";\n support.option = !!div.lastChild;\n })();\n\n return support;\n});","define([\"../core\", \"../core/nodeName\"], function (jQuery, nodeName) {\n \"use strict\";\n\n function getAll(context, tag) {\n // Support: IE <=9 - 11 only\n // Use typeof to avoid zero-argument method invocation on host objects (#15151)\n var ret;\n\n if (typeof context.getElementsByTagName !== \"undefined\") {\n ret = context.getElementsByTagName(tag || \"*\");\n } else if (typeof context.querySelectorAll !== \"undefined\") {\n ret = context.querySelectorAll(tag || \"*\");\n } else {\n ret = [];\n }\n\n if (tag === undefined || tag && nodeName(context, tag)) {\n return jQuery.merge([context], ret);\n }\n\n return ret;\n }\n\n return getAll;\n});","define([\"../data/var/dataPriv\"], function (dataPriv) {\n \"use strict\"; // Mark scripts as having already been evaluated\n\n function setGlobalEval(elems, refElements) {\n var i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n dataPriv.set(elems[i], \"globalEval\", !refElements || dataPriv.get(refElements[i], \"globalEval\"));\n }\n }\n\n return setGlobalEval;\n});","define([\"../core\", \"../core/toType\", \"../core/isAttached\", \"./var/rtagName\", \"./var/rscriptType\", \"./wrapMap\", \"./getAll\", \"./setGlobalEval\"], function (jQuery, toType, isAttached, rtagName, rscriptType, wrapMap, getAll, setGlobalEval) {\n \"use strict\";\n\n var rhtml = /<|&#?\\w+;/;\n\n function buildFragment(elems, context, scripts, selection, ignored) {\n var elem,\n tmp,\n tag,\n wrap,\n attached,\n j,\n fragment = context.createDocumentFragment(),\n nodes = [],\n i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n elem = elems[i];\n\n if (elem || elem === 0) {\n // Add nodes directly\n if (toType(elem) === \"object\") {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(nodes, elem.nodeType ? [elem] : elem); // Convert non-html into a text node\n } else if (!rhtml.test(elem)) {\n nodes.push(context.createTextNode(elem)); // Convert html into DOM nodes\n } else {\n tmp = tmp || fragment.appendChild(context.createElement(\"div\")); // Deserialize a standard representation\n\n tag = (rtagName.exec(elem) || [\"\", \"\"])[1].toLowerCase();\n wrap = wrapMap[tag] || wrapMap._default;\n tmp.innerHTML = wrap[1] + jQuery.htmlPrefilter(elem) + wrap[2]; // Descend through wrappers to the right content\n\n j = wrap[0];\n\n while (j--) {\n tmp = tmp.lastChild;\n } // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n\n\n jQuery.merge(nodes, tmp.childNodes); // Remember the top-level container\n\n tmp = fragment.firstChild; // Ensure the created nodes are orphaned (#12392)\n\n tmp.textContent = \"\";\n }\n }\n } // Remove wrapper from fragment\n\n\n fragment.textContent = \"\";\n i = 0;\n\n while (elem = nodes[i++]) {\n // Skip elements already in the context collection (trac-4087)\n if (selection && jQuery.inArray(elem, selection) > -1) {\n if (ignored) {\n ignored.push(elem);\n }\n\n continue;\n }\n\n attached = isAttached(elem); // Append to fragment\n\n tmp = getAll(fragment.appendChild(elem), \"script\"); // Preserve script evaluation history\n\n if (attached) {\n setGlobalEval(tmp);\n } // Capture executables\n\n\n if (scripts) {\n j = 0;\n\n while (elem = tmp[j++]) {\n if (rscriptType.test(elem.type || \"\")) {\n scripts.push(elem);\n }\n }\n }\n }\n\n return fragment;\n }\n\n return buildFragment;\n});","define(function () {\n \"use strict\";\n\n return function (elem) {\n // Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n // IE throws on elements created in popups\n // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n var view = elem.ownerDocument.defaultView;\n\n if (!view || !view.opener) {\n view = window;\n }\n\n return view.getComputedStyle(elem);\n };\n});","define([\"../core\", \"../core/isAttached\", \"./var/rboxStyle\", \"./var/rnumnonpx\", \"./var/getStyles\", \"./support\"], function (jQuery, isAttached, rboxStyle, rnumnonpx, getStyles, support) {\n \"use strict\";\n\n function curCSS(elem, name, computed) {\n var width,\n minWidth,\n maxWidth,\n ret,\n // Support: Firefox 51+\n // Retrieving style before computed somehow\n // fixes an issue with getting wrong values\n // on detached elements\n style = elem.style;\n computed = computed || getStyles(elem); // getPropertyValue is needed for:\n // .css('filter') (IE 9 only, #12537)\n // .css('--customProperty) (#3144)\n\n if (computed) {\n ret = computed.getPropertyValue(name) || computed[name];\n\n if (ret === \"\" && !isAttached(elem)) {\n ret = jQuery.style(elem, name);\n } // A tribute to the \"awesome hack by Dean Edwards\"\n // Android Browser returns percentage for some values,\n // but width seems to be reliably pixels.\n // This is against the CSSOM draft spec:\n // https://drafts.csswg.org/cssom/#resolved-values\n\n\n if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) {\n // Remember the original values\n width = style.width;\n minWidth = style.minWidth;\n maxWidth = style.maxWidth; // Put in the new values to get a computed value out\n\n style.minWidth = style.maxWidth = style.width = ret;\n ret = computed.width; // Revert the changed values\n\n style.width = width;\n style.minWidth = minWidth;\n style.maxWidth = maxWidth;\n }\n }\n\n return ret !== undefined ? // Support: IE <=9 - 11 only\n // IE returns zIndex value as an integer.\n ret + \"\" : ret;\n }\n\n return curCSS;\n});","define(function () {\n \"use strict\";\n\n function addGetHookIf(conditionFn, hookFn) {\n // Define the hook, we'll check on the first run if it's really needed.\n return {\n get: function get() {\n if (conditionFn()) {\n // Hook not needed (or it's not possible to use it due\n // to missing dependency), remove it.\n delete this.get;\n return;\n } // Hook needed; redefine it so that the support test is not executed again.\n\n\n return (this.get = hookFn).apply(this, arguments);\n }\n };\n }\n\n return addGetHookIf;\n});","define([\"../var/document\", \"../core\"], function (document, jQuery) {\n \"use strict\";\n\n var cssPrefixes = [\"Webkit\", \"Moz\", \"ms\"],\n emptyStyle = document.createElement(\"div\").style,\n vendorProps = {}; // Return a vendor-prefixed property or undefined\n\n function vendorPropName(name) {\n // Check for vendor prefixed names\n var capName = name[0].toUpperCase() + name.slice(1),\n i = cssPrefixes.length;\n\n while (i--) {\n name = cssPrefixes[i] + capName;\n\n if (name in emptyStyle) {\n return name;\n }\n }\n } // Return a potentially-mapped jQuery.cssProps or vendor prefixed property\n\n\n function finalPropName(name) {\n var final = jQuery.cssProps[name] || vendorProps[name];\n\n if (final) {\n return final;\n }\n\n if (name in emptyStyle) {\n return name;\n }\n\n return vendorProps[name] = vendorPropName(name) || name;\n }\n\n return finalPropName;\n});","define([\"../core\", \"../core/access\", \"./support\", \"../selector\"], function (jQuery, access, support) {\n \"use strict\";\n\n var rfocusable = /^(?:input|select|textarea|button)$/i,\n rclickable = /^(?:a|area)$/i;\n jQuery.fn.extend({\n prop: function prop(name, value) {\n return access(this, jQuery.prop, name, value, arguments.length > 1);\n },\n removeProp: function removeProp(name) {\n return this.each(function () {\n delete this[jQuery.propFix[name] || name];\n });\n }\n });\n jQuery.extend({\n prop: function prop(elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set properties on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n }\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n // Fix name and attach hooks\n name = jQuery.propFix[name] || name;\n hooks = jQuery.propHooks[name];\n }\n\n if (value !== undefined) {\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n return elem[name] = value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n return elem[name];\n },\n propHooks: {\n tabIndex: {\n get: function get(elem) {\n // Support: IE <=9 - 11 only\n // elem.tabIndex doesn't always return the\n // correct value when it hasn't been explicitly set\n // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n // Use proper attribute retrieval(#12072)\n var tabindex = jQuery.find.attr(elem, \"tabindex\");\n\n if (tabindex) {\n return parseInt(tabindex, 10);\n }\n\n if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) {\n return 0;\n }\n\n return -1;\n }\n }\n },\n propFix: {\n \"for\": \"htmlFor\",\n \"class\": \"className\"\n }\n }); // Support: IE <=11 only\n // Accessing the selectedIndex property\n // forces the browser to respect setting selected\n // on the option\n // The getter ensures a default option is selected\n // when in an optgroup\n // eslint rule \"no-unused-expressions\" is disabled for this code\n // since it considers such accessions noop\n\n if (!support.optSelected) {\n jQuery.propHooks.selected = {\n get: function get(elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent && parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n\n return null;\n },\n set: function set(elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent) {\n parent.selectedIndex;\n\n if (parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n }\n }\n };\n }\n\n jQuery.each([\"tabIndex\", \"readOnly\", \"maxLength\", \"cellSpacing\", \"cellPadding\", \"rowSpan\", \"colSpan\", \"useMap\", \"frameBorder\", \"contentEditable\"], function () {\n jQuery.propFix[this.toLowerCase()] = this;\n });\n});","define(function () {\n \"use strict\";\n\n return {\n guid: Date.now()\n };\n});","define(function () {\n \"use strict\";\n\n return /\\?/;\n});","define([\"../core\"], function (jQuery) {\n \"use strict\"; // Cross-browser xml parsing\n\n jQuery.parseXML = function (data) {\n var xml, parserErrorElem;\n\n if (!data || typeof data !== \"string\") {\n return null;\n } // Support: IE 9 - 11 only\n // IE throws on parseFromString with invalid input.\n\n\n try {\n xml = new window.DOMParser().parseFromString(data, \"text/xml\");\n } catch (e) {}\n\n parserErrorElem = xml && xml.getElementsByTagName(\"parsererror\")[0];\n\n if (!xml || parserErrorElem) {\n jQuery.error(\"Invalid XML: \" + (parserErrorElem ? jQuery.map(parserErrorElem.childNodes, function (el) {\n return el.textContent;\n }).join(\"\\n\") : data));\n }\n\n return xml;\n };\n\n return jQuery.parseXML;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\ndefine([\"./core\", \"./core/toType\", \"./var/rcheckableType\", \"./var/isFunction\", \"./core/init\", \"./traversing\", // filter\n\"./attributes/prop\"], function (jQuery, toType, rcheckableType, isFunction) {\n \"use strict\";\n\n var rbracket = /\\[\\]$/,\n rCRLF = /\\r?\\n/g,\n rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n rsubmittable = /^(?:input|select|textarea|keygen)/i;\n\n function buildParams(prefix, obj, traditional, add) {\n var name;\n\n if (Array.isArray(obj)) {\n // Serialize array item.\n jQuery.each(obj, function (i, v) {\n if (traditional || rbracket.test(prefix)) {\n // Treat each array item as a scalar.\n add(prefix, v);\n } else {\n // Item is non-scalar (array or object), encode its numeric index.\n buildParams(prefix + \"[\" + (_typeof(v) === \"object\" && v != null ? i : \"\") + \"]\", v, traditional, add);\n }\n });\n } else if (!traditional && toType(obj) === \"object\") {\n // Serialize object item.\n for (name in obj) {\n buildParams(prefix + \"[\" + name + \"]\", obj[name], traditional, add);\n }\n } else {\n // Serialize scalar item.\n add(prefix, obj);\n }\n } // Serialize an array of form elements or a set of\n // key/values into a query string\n\n\n jQuery.param = function (a, traditional) {\n var prefix,\n s = [],\n add = function add(key, valueOrFunction) {\n // If value is a function, invoke it and use its return value\n var value = isFunction(valueOrFunction) ? valueOrFunction() : valueOrFunction;\n s[s.length] = encodeURIComponent(key) + \"=\" + encodeURIComponent(value == null ? \"\" : value);\n };\n\n if (a == null) {\n return \"\";\n } // If an array was passed in, assume that it is an array of form elements.\n\n\n if (Array.isArray(a) || a.jquery && !jQuery.isPlainObject(a)) {\n // Serialize the form elements\n jQuery.each(a, function () {\n add(this.name, this.value);\n });\n } else {\n // If traditional, encode the \"old\" way (the way 1.3.2 or older\n // did it), otherwise encode params recursively.\n for (prefix in a) {\n buildParams(prefix, a[prefix], traditional, add);\n }\n } // Return the resulting serialization\n\n\n return s.join(\"&\");\n };\n\n jQuery.fn.extend({\n serialize: function serialize() {\n return jQuery.param(this.serializeArray());\n },\n serializeArray: function serializeArray() {\n return this.map(function () {\n // Can add propHook for \"elements\" to filter or add form elements\n var elements = jQuery.prop(this, \"elements\");\n return elements ? jQuery.makeArray(elements) : this;\n }).filter(function () {\n var type = this.type; // Use .is( \":disabled\" ) so that fieldset[disabled] works\n\n return this.name && !jQuery(this).is(\":disabled\") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type));\n }).map(function (_i, elem) {\n var val = jQuery(this).val();\n\n if (val == null) {\n return null;\n }\n\n if (Array.isArray(val)) {\n return jQuery.map(val, function (val) {\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n });\n }\n\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n }).get();\n }\n });\n return jQuery;\n});","define([\"../core\", \"../var/document\", \"./var/rsingleTag\", \"../manipulation/buildFragment\", // This is the only module that needs core/support\n\"./support\"], function (jQuery, document, rsingleTag, buildFragment, support) {\n \"use strict\"; // Argument \"data\" should be string of html\n // context (optional): If specified, the fragment will be created in this context,\n // defaults to document\n // keepScripts (optional): If true, will include scripts passed in the html string\n\n jQuery.parseHTML = function (data, context, keepScripts) {\n if (typeof data !== \"string\") {\n return [];\n }\n\n if (typeof context === \"boolean\") {\n keepScripts = context;\n context = false;\n }\n\n var base, parsed, scripts;\n\n if (!context) {\n // Stop scripts or inline event handlers from being executed immediately\n // by using document.implementation\n if (support.createHTMLDocument) {\n context = document.implementation.createHTMLDocument(\"\"); // Set the base href for the created document\n // so any parsed elements with URLs\n // are based on the document's URL (gh-2965)\n\n base = context.createElement(\"base\");\n base.href = document.location.href;\n context.head.appendChild(base);\n } else {\n context = document;\n }\n }\n\n parsed = rsingleTag.exec(data);\n scripts = !keepScripts && []; // Single tag\n\n if (parsed) {\n return [context.createElement(parsed[1])];\n }\n\n parsed = buildFragment([data], context, scripts);\n\n if (scripts && scripts.length) {\n jQuery(scripts).remove();\n }\n\n return jQuery.merge([], parsed.childNodes);\n };\n\n return jQuery.parseHTML;\n});","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\n\nvar Transform = require('readable-stream').Transform;\n\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 this._block = Buffer.allocUnsafe(blockSize);\n this._blockSize = blockSize;\n this._blockOffset = 0;\n this._length = [0, 0, 0, 0];\n this._finalized = false;\n}\n\ninherits(HashBase, Transform);\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null;\n\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\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); // consume data\n\n var block = this._block;\n var offset = 0;\n\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) {\n block[i++] = data[offset++];\n }\n\n this._update();\n\n this._blockOffset = 0;\n }\n\n while (offset < data.length) {\n block[this._blockOffset++] = data[offset++];\n } // update length\n\n\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\n if (encoding !== undefined) digest = digest.toString(encoding); // reset state\n\n this._block.fill(0);\n\n this._blockOffset = 0;\n\n for (var i = 0; i < 4; ++i) {\n this._length[i] = 0;\n }\n\n return digest;\n};\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented');\n};\n\nmodule.exports = HashBase;","// 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;","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","/**\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 */\nvar inherits = require('inherits');\n\nvar Hash = require('./hash');\n\nvar Buffer = require('safe-buffer').Buffer;\n\nvar K = [0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5, 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5, 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3, 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174, 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC, 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA, 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7, 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967, 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13, 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85, 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3, 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070, 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5, 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3, 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208, 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2];\nvar W = new Array(64);\n\nfunction Sha256() {\n this.init();\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 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 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) {\n W[i] = M.readInt32BE(i * 4);\n }\n\n for (; i < 64; ++i) {\n W[i] = gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16] | 0;\n }\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 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 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 return H;\n};\n\nmodule.exports = Sha256;","var inherits = require('inherits');\n\nvar Hash = require('./hash');\n\nvar Buffer = require('safe-buffer').Buffer;\n\nvar K = [0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd, 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc, 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019, 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118, 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe, 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2, 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1, 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694, 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3, 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65, 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483, 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5, 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210, 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4, 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725, 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70, 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926, 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df, 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8, 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b, 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001, 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30, 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910, 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8, 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53, 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8, 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb, 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3, 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60, 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec, 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9, 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b, 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207, 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178, 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6, 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b, 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493, 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c, 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a, 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817];\nvar W = new Array(160);\n\nfunction Sha512() {\n this.init();\n this._w = W;\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 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 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 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 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\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 xh = W[i - 2 * 2];\n xl = W[i - 2 * 2 + 1];\n var gamma1 = Gamma1(xh, xl);\n var gamma1l = Gamma1l(xl, xh); // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n\n var Wi7h = W[i - 7 * 2];\n var Wi7l = W[i - 7 * 2 + 1];\n var Wi16h = W[i - 16 * 2];\n var Wi16l = W[i - 16 * 2 + 1];\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 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 var majh = maj(ah, bh, ch);\n var majl = maj(al, bl, cl);\n var sigma0h = sigma0(ah, al);\n var sigma0l = sigma0(al, ah);\n var sigma1h = sigma1(eh, el);\n var sigma1l = sigma1(el, eh); // t1 = h + sigma1 + ch + K[j] + W[j]\n\n var Kih = K[j];\n var Kil = K[j + 1];\n var chh = Ch(eh, fh, gh);\n var chl = Ch(el, fl, gl);\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; // t2 = sigma0 + maj\n\n var t2l = sigma0l + majl | 0;\n var t2h = sigma0h + majh + getCarry(t2l, sigma0l) | 0;\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 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 return H;\n};\n\nmodule.exports = Sha512;","// 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/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n\nmodule.exports = Readable;\n/**/\n\nvar isArray = require('isarray');\n/**/\n\n/**/\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/**/\n\n\nvar Buffer = require('safe-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/**/\n\n\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\n\nvar debugUtil = require('util');\n\nvar debug = void 0;\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/BufferList');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar StringDecoder;\nutil.inherits(Readable, Stream);\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 (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 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 var 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 var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm; // cast to ints.\n\n this.highWaterMark = Math.floor(this.highWaterMark); // 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; // 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);\n this._readableState = new ReadableState(options, this); // 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 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 this.push(null);\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 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 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\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 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 TypeError('Invalid non-string/buffer chunk');\n }\n\n return er;\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.\n\n\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}; // backwards compatibility.\n\n\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}; // Don't raise the hwm > 8MB\n\n\nvar MAX_HWM = 0x800000;\n\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\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.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); // 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 = 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; // 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 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; // emit 'readable' now to make sure it gets picked up.\n\n emitReadable(stream);\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 state.needReadable = false;\n\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} // 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 pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n\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) // didn't get any data, stop spinning.\n break;else len = state.length;\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 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\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) pna.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 } // 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\n\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n\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\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) dest.emit('error', 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 () {\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, unpipeInfo);\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\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\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n\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};\n\nReadable.prototype.addListener = Readable.prototype.on;\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');\n state.flowing = true;\n resume(this, state);\n }\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\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\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} // 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 (method) {\n return function () {\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\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}); // exposed for testing purposes only.\n\nReadable._fromList = fromList; // 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.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 return ret;\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.\n\n\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n\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\n return ret;\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.\n\n\nfunction copyFromBufferString(n, list) {\n var p = list.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) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n list.length -= c;\n return ret;\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.\n\n\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\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) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState; // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n\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\n return -1;\n}","module.exports = require('events').EventEmitter;","'use strict';\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n// undocumented cb() API, needed for core, not for public API\n\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 && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\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 pna.nextTick(emitErrorNT, _this, err);\n\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};","// 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 Duplex = require('./_stream_duplex');\n/**/\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 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 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') {\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 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\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.writecb && !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 var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n\n _this2.emit('close');\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); // 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 Error('Calling transform done when ws.length != 0');\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n return stream.push(null);\n}","'use strict';\n\nvar inherits = require('inherits');\n\nvar Legacy = require('./legacy');\n\nvar Base = require('cipher-base');\n\nvar Buffer = require('safe-buffer').Buffer;\n\nvar md5 = require('create-hash/md5');\n\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\n if (typeof key === 'string') {\n key = Buffer.from(key);\n }\n\n var blocksize = alg === 'sha512' || alg === 'sha384' ? 128 : 64;\n this._alg = alg;\n this._key = key;\n\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\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg);\n\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\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\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key);\n }\n\n if (alg === 'md5') {\n return new Legacy(md5, key);\n }\n\n return new Hmac(alg, key);\n};","var MD5 = require('md5.js');\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest();\n};","exports.pbkdf2 = require('./lib/async');\nexports.pbkdf2Sync = require('./lib/sync');","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) {\n /* eslint no-self-compare: 0 */\n throw new TypeError('Bad key length');\n }\n};","var defaultEncoding;\n/* istanbul ignore next */\n\nif (global.process && global.process.browser) {\n defaultEncoding = 'utf-8';\n} else if (global.process && global.process.version) {\n var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10);\n defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary';\n} else {\n defaultEncoding = 'utf-8';\n}\n\nmodule.exports = defaultEncoding;","var md5 = require('create-hash/md5');\n\nvar RIPEMD160 = require('ripemd160');\n\nvar sha = require('sha.js');\n\nvar Buffer = require('safe-buffer').Buffer;\n\nvar checkParameters = require('./precondition');\n\nvar defaultEncoding = require('./default-encoding');\n\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\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\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 digest = digest || 'sha1';\n var hmac = new Hmac(digest, password, salt.length);\n var DK = Buffer.allocUnsafe(keylen);\n var block1 = Buffer.allocUnsafe(salt.length + 4);\n salt.copy(block1, 0, 0, salt.length);\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 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\n for (var k = 0; k < hLen; k++) {\n T[k] ^= U[k];\n }\n }\n\n T.copy(DK, destPos);\n destPos += hLen;\n }\n\n return DK;\n}\n\nmodule.exports = pbkdf2;","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};","'use strict';\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n var res = bytes[0 + off] << 24 | bytes[1 + off] << 16 | bytes[2 + off] << 8 | 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\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\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\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; // 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\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\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= inL >> j + i & 1;\n }\n }\n\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= inR >> j + i & 1;\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\n\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\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= inL >> j + i & 1;\n }\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 = [// inL => outL\n14, 11, 17, 4, 27, 23, 25, 0, 13, 22, 7, 18, 5, 9, 16, 24, 2, 20, 12, 21, 1, 8, 15, 26, // inR => outR\n15, 4, 25, 19, 9, 1, 26, 16, 5, 11, 23, 8, 12, 7, 17, 0, 22, 3, 10, 14, 6, 20, 27, 24];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n var len = pc2table.length >>> 1;\n\n for (var i = 0; i < len; i++) {\n outL <<= 1;\n outL |= inL >>> pc2table[i] & 0x1;\n }\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 outL = (r & 1) << 5 | r >>> 27;\n\n for (var i = 23; i >= 15; i -= 4) {\n outL <<= 6;\n outL |= r >>> i & 0x3f;\n }\n\n for (var i = 11; i >= 3; i -= 4) {\n outR |= r >>> i & 0x3f;\n outR <<= 6;\n }\n\n outR |= (r & 0x1f) << 1 | r >>> 31;\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1, 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8, 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7, 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13, 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14, 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5, 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2, 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9, 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10, 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1, 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7, 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12, 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3, 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9, 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8, 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14, 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1, 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6, 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13, 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3, 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5, 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8, 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10, 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13, 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10, 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6, 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7, 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12, 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4, 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2, 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13, 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11];\n\nexports.substitute = function substitute(inL, inR) {\n var out = 0;\n\n for (var i = 0; i < 4; i++) {\n var b = inL >>> 18 - i * 6 & 0x3f;\n var sb = sTable[i * 0x40 + b];\n out <<= 4;\n out |= sb;\n }\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 out <<= 4;\n out |= sb;\n }\n\n return out >>> 0;\n};\n\nvar permuteTable = [16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22, 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7];\n\nexports.permute = function permute(num) {\n var out = 0;\n\n for (var i = 0; i < permuteTable.length; i++) {\n out <<= 1;\n out |= num >>> permuteTable[i] & 0x1;\n }\n\n return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n var str = num.toString(2);\n\n while (str.length < size) {\n str = '0' + str;\n }\n\n var out = [];\n\n for (var i = 0; i < size; i += group) {\n out.push(str.slice(i, i + group));\n }\n\n return out.join(' ');\n};","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nvar inherits = require('inherits');\n\nvar utils = require('./utils');\n\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 var state = new DESState();\n this._desState = state;\n this.deriveKeys(state, options.key);\n}\n\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n\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 var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4); // Initial Permutation\n\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n if (this.type === 'encrypt') this._encrypt(state, l, r, state.tmp, 0);else this._decrypt(state, l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\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\n for (var i = off; i < buffer.length; i++) {\n buffer[i] = value;\n }\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n var pad = buffer[buffer.length - 1];\n\n for (var i = buffer.length - pad; i < buffer.length; i++) {\n assert.equal(buffer[i], pad);\n }\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; // Apply f() x16 times\n\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1]; // f(r, k)\n\n utils.expand(r, state.tmp, 0);\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n } // Reverse Initial Permutation\n\n\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; // Apply f() x16 times\n\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]; // f(r, k)\n\n utils.expand(l, state.tmp, 0);\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n } // Reverse Initial Permutation\n\n\n utils.rip(l, r, out, off);\n};","var xor = require('buffer-xor');\n\nvar Buffer = require('safe-buffer').Buffer;\n\nvar incr32 = require('../incr32');\n\nfunction getBlock(self) {\n var out = self._cipher.encryptBlockRaw(self._prev);\n\n incr32(self._prev);\n return out;\n}\n\nvar blockSize = 16;\n\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize);\n var start = self._cache.length;\n self._cache = Buffer.concat([self._cache, 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\n self._cache.writeUInt32BE(out[0], offset + 0);\n\n self._cache.writeUInt32BE(out[1], offset + 4);\n\n self._cache.writeUInt32BE(out[2], offset + 8);\n\n self._cache.writeUInt32BE(out[3], offset + 12);\n }\n\n var pad = self._cache.slice(0, chunk.length);\n\n self._cache = self._cache.slice(chunk.length);\n return xor(chunk, pad);\n};","function incr32(iv) {\n var len = iv.length;\n var item;\n\n while (len--) {\n item = iv.readUInt8(len);\n\n if (item === 255) {\n iv.writeUInt8(0, len);\n } else {\n item++;\n iv.writeUInt8(item, len);\n break;\n }\n }\n}\n\nmodule.exports = incr32;","var aes = require('./aes');\n\nvar Buffer = require('safe-buffer').Buffer;\n\nvar Transform = require('cipher-base');\n\nvar inherits = require('inherits');\n\nvar GHASH = require('./ghash');\n\nvar xor = require('buffer-xor');\n\nvar incr32 = require('./incr32');\n\nfunction xorTest(a, b) {\n var out = 0;\n if (a.length !== b.length) out++;\n var len = Math.min(a.length, b.length);\n\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\n var ghash = new GHASH(ck);\n var len = iv.length;\n var toPad = len % 16;\n ghash.update(iv);\n\n if (toPad) {\n toPad = 16 - toPad;\n ghash.update(Buffer.alloc(toPad, 0));\n }\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}\n\nfunction StreamCipher(mode, key, iv, decrypt) {\n Transform.call(this);\n var h = Buffer.alloc(4, 0);\n this._cipher = new aes.AES(key);\n\n var ck = this._cipher.encryptBlock(h);\n\n this._ghash = new GHASH(ck);\n iv = calcIv(this, iv, ck);\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 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\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0);\n\n this._ghash.update(rump);\n }\n }\n\n this._called = true;\n\n var out = this._mode.encrypt(this, chunk);\n\n if (this._decrypt) {\n this._ghash.update(chunk);\n } else {\n this._ghash.update(out);\n }\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 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 this._authTag = tag;\n\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 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 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\n this._alen += buf.length;\n};\n\nmodule.exports = StreamCipher;","var aes = require('./aes');\n\nvar Buffer = require('safe-buffer').Buffer;\n\nvar Transform = require('cipher-base');\n\nvar inherits = require('inherits');\n\nfunction StreamCipher(mode, key, iv, decrypt) {\n Transform.call(this);\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;","var randomBytes = require('randombytes');\n\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\n\nvar BN = require('bn.js');\n\nvar TWENTYFOUR = new BN(24);\n\nvar MillerRabin = require('miller-rabin');\n\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) return primes;\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n\n for (var j = 0; j < i && res[j] <= sqrt; j++) {\n if (k % res[j] === 0) break;\n }\n\n if (i !== j && res[j] <= sqrt) continue;\n res[i++] = k;\n }\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\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\n gen = new BN(gen);\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n\n if (num.isEven()) {\n num.iadd(ONE);\n }\n\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\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\n n2 = num.shrn(1);\n\n if (simpleSieve(n2) && simpleSieve(num) && fermatTest(n2) && fermatTest(num) && millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n}","var bn = require('bn.js');\n\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\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); // 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\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 if (!k) k = Math.max(1, len / 48 | 0); // Find d and s, (n - 1) = (2 ^ s) * d;\n\n var n1 = n.subn(1);\n\n for (var s = 0; !n1.testn(s); s++) {}\n\n var d = n.shrn(s);\n var rn1 = n1.toRed(red);\n var prime = true;\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n if (cb) cb(a);\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0) continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n if (x.cmp(rone) === 0) return false;\n if (x.cmp(rn1) === 0) break;\n }\n\n if (i === s) 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 if (!k) k = Math.max(1, len / 48 | 0); // Find d and s, (n - 1) = (2 ^ s) * d;\n\n var n1 = n.subn(1);\n\n for (var s = 0; !n1.testn(s); s++) {}\n\n var d = n.shrn(s);\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) return g;\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0) continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n if (x.cmp(rone) === 0) return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0) 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};","// 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;","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg)) return msg.slice();\n if (!msg) return [];\n var res = [];\n\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++) {\n res[i] = msg[i] | 0;\n }\n\n return res;\n }\n\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0) msg = '0' + msg;\n\n for (var i = 0; i < msg.length; i += 2) {\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\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) res.push(hi, lo);else res.push(lo);\n }\n }\n\n return res;\n}\n\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1) return '0' + word;else return word;\n}\n\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n\n for (var i = 0; i < msg.length; i++) {\n res += zero2(msg[i].toString(16));\n }\n\n return res;\n}\n\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex') return toHex(arr);else return arr;\n};","'use strict';\n\nvar curve = exports;\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');","'use strict';\n\nvar utils = require('../utils');\n\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0) return ch32(x, y, z);\n if (s === 1 || s === 3) return p32(x, y, z);\n if (s === 2) return maj32(x, y, z);\n}\n\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return x & y ^ ~x & z;\n}\n\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return x & y ^ x & z ^ y & z;\n}\n\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\n\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\n\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\n\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ x >>> 3;\n}\n\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ x >>> 10;\n}\n\nexports.g1_256 = g1_256;","'use strict';\n\nvar utils = require('../utils');\n\nvar common = require('../common');\n\nvar shaCommon = require('./common');\n\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;\nvar BlockHash = common.BlockHash;\nvar sha256_K = [0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2];\n\nfunction SHA256() {\n if (!(this instanceof SHA256)) return new SHA256();\n BlockHash.call(this);\n this.h = [0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19];\n this.k = sha256_K;\n this.W = new Array(64);\n}\n\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\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 }\n\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\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 assert(this.k.length === W.length);\n\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') return utils.toHex32(this.h, 'big');else return utils.split32(this.h, 'big');\n};","'use strict';\n\nvar utils = require('../utils');\n\nvar common = require('../common');\n\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;\nvar BlockHash = common.BlockHash;\nvar sha512_K = [0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd, 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc, 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019, 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118, 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe, 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2, 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1, 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694, 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3, 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65, 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483, 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5, 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210, 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4, 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725, 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70, 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926, 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df, 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8, 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b, 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001, 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30, 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910, 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8, 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53, 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8, 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb, 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3, 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60, 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec, 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9, 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b, 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207, 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178, 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6, 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b, 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493, 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c, 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a, 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817];\n\nfunction SHA512() {\n if (!(this instanceof SHA512)) return new SHA512();\n BlockHash.call(this);\n this.h = [0x6a09e667, 0xf3bcc908, 0xbb67ae85, 0x84caa73b, 0x3c6ef372, 0xfe94f82b, 0xa54ff53a, 0x5f1d36f1, 0x510e527f, 0xade682d1, 0x9b05688c, 0x2b3e6c1f, 0x1f83d9ab, 0xfb41bd6b, 0x5be0cd19, 0x137e2179];\n this.k = sha512_K;\n this.W = new Array(160);\n}\n\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\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; // 32 x 32bit words\n\n for (var i = 0; i < 32; i++) {\n W[i] = msg[start + i];\n }\n\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n\n var c3_lo = W[i - 31];\n W[i] = sum64_4_hi(c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, 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 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 assert(this.k.length === W.length);\n\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 var T1_hi = sum64_5_hi(c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo, c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(c0_hi, c0_lo, c1_hi, c1_lo, c2_hi, c2_lo, c3_hi, c3_lo, c4_hi, c4_lo);\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 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 hh = gh;\n hl = gl;\n gh = fh;\n gl = fl;\n fh = eh;\n fl = el;\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n dh = ch;\n dl = cl;\n ch = bh;\n cl = bl;\n bh = ah;\n bl = al;\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') return utils.toHex32(this.h, 'big');else 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) 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) 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) 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) 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\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0) 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\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0) 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) 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) 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 var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0) 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 var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0) 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\n var c2_hi = shr64_hi(xh, xl, 6);\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0) 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\n var c2_lo = shr64_lo(xh, xl, 6);\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0) r += 0x100000000;\n return r;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n(function (module, exports) {\n 'use strict'; // Utils\n\n function assert(val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n } // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n\n\n function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n } // BN\n\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; // Reduction context\n\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\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 var Buffer;\n\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {}\n\n BN.isBN = function isBN(num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && _typeof(num) === 'object' && 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\n assert(base === (base | 0) && base >= 2 && base <= 36);\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber(number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n\n this.words = [number & 0x3ffffff, number / 0x4000000 & 0x3ffffff, 1];\n this.length = 3;\n }\n\n if (endian !== 'le') return; // Reverse the bytes\n\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\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\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\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\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\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n\n return this._strip();\n };\n\n function parseHex4Bits(string, index) {\n var c = string.charCodeAt(index); // '0' - '9'\n\n if (c >= 48 && c <= 57) {\n return c - 48; // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55; // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte(string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex(number, start, endian) {\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\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n } // 24-bits chunks\n\n\n var off = 0;\n var j = 0;\n var w;\n\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\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\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n r *= mul; // 'a'\n\n if (c >= 49) {\n b = c - 49 + 0xa; // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa; // '0' - '9'\n } else {\n b = c;\n }\n\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\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; // Find length of limb in base\n\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n\n limbLen--;\n limbPow = limbPow / base | 0;\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n var word = 0;\n\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n this.imuln(limbPow);\n\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\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy(dest) {\n dest.words = new Array(this.length);\n\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\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\n return this;\n }; // Remove leading `0` from `this`\n\n\n BN.prototype._strip = function strip() {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\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\n return this;\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\n\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 var zeros = [];\n var groupSizes = [];\n var groupBases = [];\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 = ['', '0', '00', '000', '0000', '00000', '000000', '0000000', '00000000', '000000000', '0000000000', '00000000000', '000000000000', '0000000000000', '00000000000000', '000000000000000', '0000000000000000', '00000000000000000', '000000000000000000', '0000000000000000000', '00000000000000000000', '000000000000000000000', '0000000000000000000000', '00000000000000000000000', '000000000000000000000000', '0000000000000000000000000'];\n var groupSizes = [0, 0, 25, 16, 12, 11, 10, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5];\n var groupBases = [0, 0, 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216, 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625, 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632, 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149, 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176];\n\n BN.prototype.toString = function toString(base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n var out;\n\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n\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\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n\n off += 2;\n\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n\n if (this.negative !== 0) {\n out = '-' + out;\n }\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]; // var groupBase = Math.pow(base, groupSize);\n\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n\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\n if (this.isZero()) {\n out = '0' + out;\n }\n\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n\n if (this.negative !== 0) {\n out = '-' + out;\n }\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\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\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\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 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 res[position++] = word & 0xff;\n\n if (position < res.length) {\n res[position++] = word >> 8 & 0xff;\n }\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\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 res[position--] = word & 0xff;\n\n if (position >= 0) {\n res[position--] = word >> 8 & 0xff;\n }\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\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\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\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 var t = w;\n var r = 0;\n\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n\n if ((t & 0x1) === 0) {\n r++;\n }\n\n return r;\n }; // Return number of used bits in a BN\n\n\n BN.prototype.bitLength = function bitLength() {\n var w = this.words[this.length - 1];\n\n var hi = this._countBits(w);\n\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 w[bit] = num.words[off] >>> wbit & 0x01;\n }\n\n return w;\n } // Number of trailing zero bits\n\n\n BN.prototype.zeroBits = function zeroBits() {\n if (this.isZero()) return 0;\n var r = 0;\n\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n\n r += b;\n if (b !== 26) break;\n }\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\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\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg() {\n return this.negative !== 0;\n }; // Return negative clone of `this`\n\n\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 }; // Or `num` with `this` in-place\n\n\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 }; // Or `num` with `this`\n\n\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 }; // And `num` with `this` in-place\n\n\n BN.prototype.iuand = function iuand(num) {\n // b = min-length(num, this)\n var b;\n\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 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 }; // And `num` with `this`\n\n\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 }; // Xor `num` with `this` in-place\n\n\n BN.prototype.iuxor = function iuxor(num) {\n // a.length > b.length\n var a;\n var b;\n\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 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 }; // Xor `num` with `this`\n\n\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 }; // Not ``this`` with ``width`` bitwidth\n\n\n BN.prototype.inotn = function inotn(width) {\n assert(typeof width === 'number' && width >= 0);\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26; // Extend the buffer with leading zeroes\n\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n } // Handle complete words\n\n\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n } // Handle the residue\n\n\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & 0x3ffffff >> 26 - bitsLeft;\n } // And remove leading zeroes\n\n\n return this._strip();\n };\n\n BN.prototype.notn = function notn(width) {\n return this.clone().inotn(width);\n }; // Set `bit` of `this`\n\n\n BN.prototype.setn = function setn(bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\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 }; // Add `num` to `this` in-place\n\n\n BN.prototype.iadd = function iadd(num) {\n var r; // negative + positive\n\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(); // 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 } // a.length > b.length\n\n\n var a, b;\n\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\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\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\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++; // 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 }; // Add `num` to `this`\n\n\n BN.prototype.add = function add(num) {\n var res;\n\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 return num.clone().iadd(this);\n }; // Subtract `num` from `this` in-place\n\n\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(); // -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 } // At this point both numbers are positive\n\n\n var cmp = this.cmp(num); // Optimization - zeroify\n\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n } // a > b\n\n\n var a, b;\n\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\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\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 } // Copy rest of the words\n\n\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 }; // Subtract `num` from `this`\n\n\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; // Peel one iteration (compiler can't do it, because of code complexity)\n\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\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\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\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\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\n\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 out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\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\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n\n return out;\n }; // Polyfill comb\n\n\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 var carry = 0;\n var hncarry = 0;\n\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\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 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 hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\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\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 }; // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\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\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n }; // Returns binary-reversed representation of `x`\n\n\n FFTM.prototype.revBin = function revBin(x, l, N) {\n if (x === 0 || x === N - 1) return x;\n var rb = 0;\n\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << l - i - 1;\n x >>= 1;\n }\n\n return rb;\n }; // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n\n\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 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 var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n var rx = rtwdf_ * ro - itwdf_ * io;\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n /* jshint maxdepth : false */\n\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\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\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 rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n t = iws[i];\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\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 + Math.round(ws[2 * i] / N) + carry;\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\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n rws[2 * i] = carry & 0x1fff;\n carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff;\n carry = carry >>> 13;\n } // Pad with zeroes\n\n\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\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 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 var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n var rmws = out.words;\n rmws.length = N;\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, 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 out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n }; // Multiply `this` by `num`\n\n\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 }; // Multiply employing FFT\n\n\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 }; // In-place Multiplication\n\n\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 assert(typeof num === 'number');\n assert(num < 0x4000000); // Carry\n\n var carry = 0;\n\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; // NOTE: lo is 27bit maximum\n\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 }; // `this` * `this`\n\n\n BN.prototype.sqr = function sqr() {\n return this.mul(this);\n }; // `this` * `this` in-place\n\n\n BN.prototype.isqr = function isqr() {\n return this.imul(this.clone());\n }; // Math.pow(`this`, `num`)\n\n\n BN.prototype.pow = function pow(num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1); // Skip leading zeroes\n\n var res = this;\n\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 res = res.mul(q);\n }\n }\n\n return res;\n }; // Shift-left in-place\n\n\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 }; // 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\n\n BN.prototype.iushrn = function iushrn(bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n\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 h -= s;\n h = Math.max(0, h); // Extended mode, copy masked part\n\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n\n maskedWords.length = s;\n }\n\n if (s === 0) {// No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n\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\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 } // Push carried bits as a mask\n\n\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 }; // Shift-left\n\n\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 }; // Shift-right\n\n\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 }; // Test if n bit is set\n\n\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; // Fast case: bit is much higher than all existing words\n\n if (this.length <= s) return false; // Check bit and return\n\n var w = this.words[s];\n return !!(w & q);\n }; // Return only lowers bits of number (in-place)\n\n\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 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\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 }; // Return only lowers bits of number\n\n\n BN.prototype.maskn = function maskn(bits) {\n return this.clone().imaskn(bits);\n }; // Add plain number `num` to `this`\n\n\n BN.prototype.iaddn = function iaddn(num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num); // Possible sign change\n\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 } // Add without checks\n\n\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn(num) {\n this.words[0] += num; // Carry\n\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n\n this.length = Math.max(this.length, i + 1);\n return this;\n }; // Subtract plain number `num` from `this`\n\n\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 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\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\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(); // Subtraction overflow\n\n assert(carry === -1);\n carry = 0;\n\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\n this.negative = 1;\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv(num, mode) {\n var shift = this.length - num.length;\n var a = this.clone();\n var b = num; // Normalize\n\n var bhi = b.words[b.length - 1] | 0;\n\n var bhiBits = this._countBits(bhi);\n\n shift = 26 - bhiBits;\n\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n } // Initialize quotient\n\n\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\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\n if (diff.negative === 0) {\n a = diff;\n\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 + (a.words[b.length + j - 1] | 0); // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n\n qj = Math.min(qj / bhi | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n\n a._ishlnsubmul(b, 1, j);\n\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n\n if (q) {\n q.words[j] = qj;\n }\n }\n\n if (q) {\n q._strip();\n }\n\n a._strip(); // Denormalize\n\n\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\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\n\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\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\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\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n } // Both numbers are positive at this point\n // Strip both numbers to approximate shift value\n\n\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n } // Very short reduction\n\n\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 }; // Find `this` / `num`\n\n\n BN.prototype.div = function div(num) {\n return this.divmod(num, 'div', false).div;\n }; // Find `this` % `num`\n\n\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 }; // Find Round(`this` / `num`)\n\n\n BN.prototype.divRound = function divRound(num) {\n var dm = this.divmod(num); // Fast case - exact division\n\n if (dm.mod.isZero()) return dm.div;\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half); // Round down\n\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div; // Round up\n\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 assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n var acc = 0;\n\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 }; // WARNING: DEPRECATED\n\n\n BN.prototype.modn = function modn(num) {\n return this.modrn(num);\n }; // In-place division by number\n\n\n BN.prototype.idivn = function idivn(num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n assert(num <= 0x3ffffff);\n var carry = 0;\n\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\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 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 } // A * x + B * y = x\n\n\n var A = new BN(1);\n var B = new BN(0); // C * x + D * y = y\n\n var C = new BN(0);\n var D = new BN(1);\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 ;\n }\n\n if (i > 0) {\n x.iushrn(i);\n\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 ;\n }\n\n if (j > 0) {\n y.iushrn(j);\n\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 }; // 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\n\n BN.prototype._invmp = function _invmp(p) {\n assert(p.negative === 0);\n assert(!p.isZero());\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 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 ;\n }\n\n if (i > 0) {\n a.iushrn(i);\n\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 ;\n }\n\n if (j > 0) {\n b.iushrn(j);\n\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\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 var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0; // Remove common factor of two\n\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\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n\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 }; // Invert number in the field F(num)\n\n\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 }; // And first word and num\n\n\n BN.prototype.andln = function andln(num) {\n return this.words[0] & num;\n }; // Increment at the bit position in-line\n\n\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; // Fast case: bit is much higher than all existing words\n\n if (this.length <= s) {\n this._expand(s + 1);\n\n this.words[s] |= q;\n return this;\n } // Add bit and propagate, if needed\n\n\n var carry = q;\n\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\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\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 if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n\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 var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n\n if (this.negative !== 0) return -res | 0;\n return res;\n }; // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n\n\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 var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n }; // Unsigned comparison\n\n\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 var res = 0;\n\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 if (a === b) continue;\n\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n\n break;\n }\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 // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n\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\n this.red._verify2(this, num);\n\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\n this.red._verify2(this, num);\n\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\n this.red._verify1(this);\n\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\n this.red._verify1(this);\n\n return this.red.isqr(this);\n }; // Square root over p\n\n\n BN.prototype.redSqrt = function redSqrt() {\n assert(this.red, 'redSqrt works only with red numbers');\n\n this.red._verify1(this);\n\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\n this.red._verify1(this);\n\n return this.red.invm(this);\n }; // Return negative clone of `this` % `red modulo`\n\n\n BN.prototype.redNeg = function redNeg() {\n assert(this.red, 'redNeg works only with red numbers');\n\n this.red._verify1(this);\n\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow(num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n\n this.red._verify1(this);\n\n return this.red.pow(this, num);\n }; // Prime numbers with efficient reduction\n\n\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n }; // Pseudo-Mersenne prime\n\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 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\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(this, 'k256', 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n\n inherits(K256, MPrime);\n\n K256.prototype.split = function split(input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n var outLen = Math.min(input.length, 9);\n\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n } // Shift by 9 limbs\n\n\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\n prev >>>= 22;\n input.words[i - 10] = prev;\n\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; // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n\n var lo = 0;\n\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 } // Fast length reduction\n\n\n if (num.words[num.length - 1] === 0) {\n num.length--;\n\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n\n return num;\n };\n\n function P224() {\n MPrime.call(this, 'p224', 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n\n inherits(P224, MPrime);\n\n function P192() {\n MPrime.call(this, 'p192', 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n\n inherits(P192, MPrime);\n\n function P25519() {\n // 2 ^ 255 - 19\n MPrime.call(this, '25519', '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK(num) {\n // K = 0x13\n var carry = 0;\n\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 num.words[i] = lo;\n carry = hi;\n }\n\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n\n return num;\n }; // Exported mostly for testing purposes, use plain name instead\n\n\n BN._prime = function prime(name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n var prime;\n\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\n primes[name] = prime;\n return prime;\n }; //\n // Base reduction engine\n //\n\n\n function Red(m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n\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, '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 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\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\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\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\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\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\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\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n\n return res;\n };\n\n Red.prototype.shl = function shl(a, num) {\n this._verify1(a);\n\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul(a, b) {\n this._verify2(a, b);\n\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul(a, b) {\n this._verify2(a, b);\n\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 var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1); // Fast case\n\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n } // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n\n\n var q = this.m.subn(1);\n var s = 0;\n\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n\n assert(!q.isZero());\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg(); // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n\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\n while (t.cmp(one) !== 0) {\n var tmp = t;\n\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\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\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 var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n\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\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\n for (var j = start - 1; j >= 0; j--) {\n var bit = word >> j & 1;\n\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 res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\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 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 // Montgomery method engine\n //\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 this.shift = this.m.bitLength();\n\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 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\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 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\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);","'use strict';\n\nvar asn1 = exports;\nasn1.bignum = require('bn.js');\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');","'use strict';\n\nvar encoders = exports;\nencoders.der = require('./der');\nencoders.pem = require('./pem');","'use strict';\n\nvar inherits = require('inherits');\n\nvar Buffer = require('safer-buffer').Buffer;\n\nvar Node = require('../base/node'); // Import DER constants\n\n\nvar der = require('../constants/der');\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity; // Construct base tree\n\n this.tree = new DERNode();\n\n this.tree._init(entity.body);\n}\n\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n}; // Tree methods\n\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\n\ninherits(DERNode, Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag, primitive, cls, content) {\n var encodedTag = encodeTag(tag, primitive, cls, this.reporter); // Short form\n\n if (content.length < 0x80) {\n var _header = Buffer.alloc(2);\n\n _header[0] = encodedTag;\n _header[1] = content.length;\n return this._createEncoderBuffer([_header, content]);\n } // Long form\n // Count octets required to store length\n\n\n var lenOctets = 1;\n\n for (var i = content.length; i >= 0x100; i >>= 8) {\n lenOctets++;\n }\n\n var header = Buffer.alloc(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (var _i = 1 + lenOctets, j = content.length; j > 0; _i--, j >>= 8) {\n header[_i] = j & 0xff;\n }\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 var buf = Buffer.alloc(str.length * 2);\n\n for (var i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\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 ' + 'only digits and space');\n }\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 ' + 'only latin upper and lower case letters, ' + 'digits, space, apostrophe, left and rigth ' + 'parenthesis, plus sign, comma, hyphen, ' + 'dot, slash, colon, equal sign, ' + 'question mark');\n }\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 + ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values) return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id)) return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s.]+/g);\n\n for (var i = 0; i < id.length; i++) {\n id[i] |= 0;\n }\n } else if (Array.isArray(id)) {\n id = id.slice();\n\n for (var _i2 = 0; _i2 < id.length; _i2++) {\n id[_i2] |= 0;\n }\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' + 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40) return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n } // Count number of octets\n\n\n var size = 0;\n\n for (var _i3 = 0; _i3 < id.length; _i3++) {\n var ident = id[_i3];\n\n for (size++; ident >= 0x80; ident >>= 7) {\n size++;\n }\n }\n\n var objid = Buffer.alloc(size);\n var offset = objid.length - 1;\n\n for (var _i4 = id.length - 1; _i4 >= 0; _i4--) {\n var _ident = id[_i4];\n objid[offset--] = _ident & 0x7f;\n\n while ((_ident >>= 7) > 0) {\n objid[offset--] = 0x80 | _ident & 0x7f;\n }\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10) return '0' + num;else return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n var str;\n var date = new Date(time);\n\n if (tag === 'gentime') {\n str = [two(date.getUTCFullYear()), two(date.getUTCMonth() + 1), two(date.getUTCDate()), two(date.getUTCHours()), two(date.getUTCMinutes()), two(date.getUTCSeconds()), 'Z'].join('');\n } else if (tag === 'utctime') {\n str = [two(date.getUTCFullYear() % 100), two(date.getUTCMonth() + 1), two(date.getUTCDate()), two(date.getUTCHours()), two(date.getUTCMinutes()), two(date.getUTCSeconds()), 'Z'].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) return this.reporter.error('String int or enum given, but no values map');\n\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' + JSON.stringify(num));\n }\n\n num = values[num];\n } // Bignum, assume big endian\n\n\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n var numArray = num.toArray();\n\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n\n num = Buffer.from(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n var _size = num.length;\n if (num.length === 0) _size++;\n\n var _out = Buffer.alloc(_size);\n\n num.copy(_out);\n if (num.length === 0) _out[0] = 0;\n return this._createEncoderBuffer(_out);\n }\n\n if (num < 0x80) return this._createEncoderBuffer(num);\n if (num < 0x100) return this._createEncoderBuffer([0, num]);\n var size = 1;\n\n for (var i = num; i >= 0x100; i >>= 8) {\n size++;\n }\n\n var out = new Array(size);\n\n for (var _i5 = out.length - 1; _i5 >= 0; _i5--) {\n out[_i5] = num & 0xff;\n num >>= 8;\n }\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') entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n var state = this._baseState;\n var i;\n if (state['default'] === null) return false;\n var data = dataBuffer.join();\n if (state.defaultBuffer === undefined) state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n if (data.length !== state.defaultBuffer.length) return false;\n\n for (i = 0; i < data.length; i++) {\n if (data[i] !== state.defaultBuffer[i]) return false;\n }\n\n return true;\n}; // Utility methods\n\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n var res;\n if (tag === 'seqof') tag = 'seq';else if (tag === 'setof') tag = 'set';\n if (der.tagByName.hasOwnProperty(tag)) res = der.tagByName[tag];else if (typeof tag === 'number' && (tag | 0) === tag) res = tag;else return reporter.error('Unknown tag: ' + tag);\n if (res >= 0x1f) return reporter.error('Multi-octet tag encoding unsupported');\n if (!primitive) res |= 0x20;\n res |= der.tagClassByName[cls || 'universal'] << 6;\n return res;\n}","'use strict';\n\nvar decoders = exports;\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');","'use strict';\n\nvar inherits = require('inherits');\n\nvar bignum = require('bn.js');\n\nvar DecoderBuffer = require('../base/buffer').DecoderBuffer;\n\nvar Node = require('../base/node'); // Import DER constants\n\n\nvar der = require('../constants/der');\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity; // Construct base tree\n\n this.tree = new DERNode();\n\n this.tree._init(entity.body);\n}\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}; // Tree methods\n\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\n\ninherits(DERNode, Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty()) return false;\n var state = buffer.save();\n var decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag)) return decodedTag;\n buffer.restore(state);\n return decodedTag.tag === tag || decodedTag.tagStr === tag || decodedTag.tagStr + 'of' === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n var decodedTag = derDecodeTag(buffer, 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag)) return decodedTag;\n var len = derDecodeLen(buffer, decodedTag.primitive, 'Failed to get length of \"' + tag + '\"'); // Failure\n\n if (buffer.isError(len)) return len;\n\n if (!any && decodedTag.tag !== tag && decodedTag.tagStr !== tag && decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null) return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"'); // Indefinite length... find END tag\n\n var state = buffer.save();\n\n var res = this._skipUntilEnd(buffer, 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n\n if (buffer.isError(res)) return res;\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 var tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag)) return tag;\n var len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len)) return len;\n var res = void 0;\n if (tag.primitive || len !== null) res = buffer.skip(len);else res = this._skipUntilEnd(buffer, fail); // Failure\n\n if (buffer.isError(res)) return res;\n if (tag.tagStr === 'end') break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder, options) {\n var result = [];\n\n while (!buffer.isEmpty()) {\n var possibleEnd = this._peekTag(buffer, 'end');\n\n if (buffer.isError(possibleEnd)) return possibleEnd;\n var res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd) break;\n result.push(res);\n }\n\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n var unused = buffer.readUInt8();\n if (buffer.isError(unused)) return unused;\n return {\n unused: unused,\n data: buffer.raw()\n };\n } else if (tag === 'bmpstr') {\n var raw = buffer.raw();\n if (raw.length % 2 === 1) return buffer.error('Decoding of string type: bmpstr length mismatch');\n var str = '';\n\n for (var i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n\n return str;\n } else if (tag === 'numstr') {\n var numstr = buffer.raw().toString('ascii');\n\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' + 'numstr unsupported characters');\n }\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 var printstr = buffer.raw().toString('ascii');\n\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' + 'printstr unsupported characters');\n }\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 var result;\n var identifiers = [];\n var ident = 0;\n var subident = 0;\n\n while (!buffer.isEmpty()) {\n subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n\n if (subident & 0x80) identifiers.push(ident);\n var first = identifiers[0] / 40 | 0;\n var second = identifiers[0] % 40;\n if (relative) result = identifiers;else result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n var tmp = values[result.join(' ')];\n if (tmp === undefined) tmp = values[result.join('.')];\n if (tmp !== undefined) result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n var str = buffer.raw().toString();\n var year;\n var mon;\n var day;\n var hour;\n var min;\n var sec;\n\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) year = 2000 + year;else 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 var res = buffer.readUInt8();\n if (buffer.isError(res)) return res;else return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n var raw = buffer.raw();\n var res = new bignum(raw);\n if (values) res = values[res.toString(10)] || res;\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function') entity = entity(obj);\n return entity._getDecoder('der').tree;\n}; // Utility methods\n\n\nfunction derDecodeTag(buf, fail) {\n var tag = buf.readUInt8(fail);\n if (buf.isError(tag)) return tag;\n var cls = der.tagClass[tag >> 6];\n var primitive = (tag & 0x20) === 0; // Multi-octet tag - load\n\n if ((tag & 0x1f) === 0x1f) {\n var oct = tag;\n tag = 0;\n\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct)) return oct;\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n\n var tagStr = der.tag[tag];\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n var len = buf.readUInt8(fail);\n if (buf.isError(len)) return len; // Indefinite form\n\n if (!primitive && len === 0x80) return null; // Definite form\n\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n } // Long form\n\n\n var num = len & 0x7f;\n if (num > 4) return buf.error('length octect is too long');\n len = 0;\n\n for (var i = 0; i < num; i++) {\n len <<= 8;\n var j = buf.readUInt8(fail);\n if (buf.isError(j)) return j;\n len |= j;\n }\n\n return len;\n}","var createHash = require('create-hash');\n\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\n while (t.length < len) {\n c = i2ops(i++);\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()]);\n }\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}","module.exports = function xor(a, b) {\n var len = a.length;\n var i = -1;\n\n while (++i < len) {\n a[i] ^= b[i];\n }\n\n return a;\n};","var BN = require('bn.js');\n\nvar Buffer = require('safe-buffer').Buffer;\n\nfunction withPublic(paddedMsg, key) {\n return Buffer.from(paddedMsg.toRed(BN.mont(key.modulus)).redPow(new BN(key.publicExponent)).fromRed().toArray());\n}\n\nmodule.exports = withPublic;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*!\n * froala_editor v3.2.7 (https://www.froala.com/wysiwyg-editor)\n * License https://froala.com/wysiwyg-editor/terms/\n * Copyright 2014-2021 Froala Labs\n */\n!function (e, t) {\n \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) && \"undefined\" != typeof module ? module.exports = t() : \"function\" == typeof define && define.amd ? define(t) : e.FroalaEditor = t();\n}(this, function () {\n \"use strict\";\n\n function _t(e) {\n return (_t = \"function\" == typeof Symbol && \"symbol\" == _typeof(Symbol.iterator) ? function (e) {\n return _typeof(e);\n } : function (e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : _typeof(e);\n })(e);\n }\n\n Element.prototype.matches || (Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector), Element.prototype.closest || (Element.prototype.closest = function (e) {\n var t = this;\n if (!document.documentElement.contains(t)) return null;\n\n do {\n if (t.matches(e)) return t;\n t = t.parentElement || t.parentNode;\n } while (null !== t && 1 === t.nodeType);\n\n return null;\n }), Element.prototype.matches || (Element.prototype.matches = Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector || function (e) {\n for (var t = (this.document || this.ownerDocument).querySelectorAll(e), n = t.length; 0 <= --n && t.item(n) !== this;) {\n ;\n }\n\n return -1 < n;\n }), Array.isArray || (Array.isArray = function (e) {\n return \"[object Array]\" === Object.prototype.toString.call(e);\n }), \"function\" != typeof Object.assign && Object.defineProperty(Object, \"assign\", {\n value: function value(e, t) {\n if (null == e) throw new TypeError(\"Cannot convert undefined or null to object\");\n\n for (var n = Object(e), r = 1; r < arguments.length; r++) {\n var a = arguments[r];\n if (null != a) for (var o in a) {\n Object.prototype.hasOwnProperty.call(a, o) && (n[o] = a[o]);\n }\n }\n\n return n;\n },\n writable: !0,\n configurable: !0\n }), function () {\n var i = /^\\s*:scope/gi,\n s = /,\\s*:scope/gi,\n l = document.createElement(\"div\");\n\n function e(e, t) {\n var o = e[t];\n\n e[t] = function (e) {\n var t,\n n = !1,\n r = !1;\n if (!e || Array.isArray(e) || !e.match(i) && !e.match(s)) return o.call(this, e);\n this.parentNode || (l.appendChild(this), r = !0);\n var a = this.parentNode;\n return this.id || (this.id = \"rootedQuerySelector_id_\".concat(new Date().getTime()), n = !0), t = o.call(a, e.replace(i, \"#\".concat(this.id)).replace(s, \",#\".concat(this.id))), n && (this.id = \"\"), r && l.removeChild(this), t;\n };\n }\n\n try {\n var t = l.querySelectorAll(\":scope *\");\n if (!t || Array.isArray(t)) throw \"error\";\n } catch (n) {\n e(Element.prototype, \"querySelector\"), e(Element.prototype, \"querySelectorAll\"), e(HTMLElement.prototype, \"querySelector\"), e(HTMLElement.prototype, \"querySelectorAll\");\n }\n }(), \"document\" in self && (\"classList\" in document.createElement(\"_\") && (!document.createElementNS || \"classList\" in document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\")) || function (e) {\n if (\"Element\" in e) {\n var t = \"classList\",\n n = \"prototype\",\n r = e.Element[n],\n a = Object,\n o = String[n].trim || function () {\n return this.replace(/^\\s+|\\s+$/g, \"\");\n },\n i = Array[n].indexOf || function (e) {\n for (var t = 0, n = this.length; t < n; t++) {\n if (t in this && this[t] === e) return t;\n }\n\n return -1;\n },\n s = function s(e, t) {\n this.name = e, this.code = DOMException[e], this.message = t;\n },\n l = function l(e, t) {\n if (\"\" === t) throw new s(\"SYNTAX_ERR\", \"The token must not be empty.\");\n if (/\\s/.test(t)) throw new s(\"INVALID_CHARACTER_ERR\", \"The token must not contain space characters.\");\n return i.call(e, t);\n },\n c = function c(e) {\n for (var t = o.call(e.getAttribute(\"class\") || \"\"), n = t ? t.split(/\\s+/) : [], r = 0, a = n.length; r < a; r++) {\n this.push(n[r]);\n }\n\n this._updateClassName = function () {\n e.setAttribute(\"class\", this.toString());\n };\n },\n d = c[n] = [],\n f = function f() {\n return new c(this);\n };\n\n if (s[n] = Error[n], d.item = function (e) {\n return this[e] || null;\n }, d.contains = function (e) {\n return ~l(this, e + \"\");\n }, d.add = function () {\n for (var e, t = arguments, n = 0, r = t.length, a = !1; e = t[n] + \"\", ~l(this, e) || (this.push(e), a = !0), ++n < r;) {\n ;\n }\n\n a && this._updateClassName();\n }, d.remove = function () {\n var e,\n t,\n n = arguments,\n r = 0,\n a = n.length,\n o = !1;\n\n do {\n for (e = n[r] + \"\", t = l(this, e); ~t;) {\n this.splice(t, 1), o = !0, t = l(this, e);\n }\n } while (++r < a);\n\n o && this._updateClassName();\n }, d.toggle = function (e, t) {\n var n = this.contains(e),\n r = n ? !0 !== t && \"remove\" : !1 !== t && \"add\";\n return r && this[r](e), !0 === t || !1 === t ? t : !n;\n }, d.replace = function (e, t) {\n var n = l(e + \"\");\n ~n && (this.splice(n, 1, t), this._updateClassName());\n }, d.toString = function () {\n return this.join(\" \");\n }, a.defineProperty) {\n var p = {\n get: f,\n enumerable: !0,\n configurable: !0\n };\n\n try {\n a.defineProperty(r, t, p);\n } catch (u) {\n void 0 !== u.number && -2146823252 !== u.number || (p.enumerable = !1, a.defineProperty(r, t, p));\n }\n } else a[n].__defineGetter__ && r.__defineGetter__(t, f);\n }\n }(self), function () {\n var e = document.createElement(\"_\");\n\n if (e.classList.add(\"c1\", \"c2\"), !e.classList.contains(\"c2\")) {\n var t = function Cc(e) {\n var Cc = DOMTokenList.prototype[e];\n\n DOMTokenList.prototype[e] = function (e) {\n var t,\n n = arguments.length;\n\n for (t = 0; t < n; t++) {\n e = arguments[t], Cc.call(this, e);\n }\n };\n };\n\n t(\"add\"), t(\"remove\");\n }\n\n if (e.classList.toggle(\"c3\", !1), e.classList.contains(\"c3\")) {\n var n = DOMTokenList.prototype.toggle;\n\n DOMTokenList.prototype.toggle = function (e, t) {\n return 1 in arguments && !this.contains(e) == !t ? t : n.call(this, e);\n };\n }\n\n \"replace\" in document.createElement(\"_\").classList || (DOMTokenList.prototype.replace = function (e, t) {\n var n = this.toString().split(\" \"),\n r = n.indexOf(e + \"\");\n ~r && (n = n.slice(r), this.remove.apply(this, n), this.add(t), this.add.apply(this, n.slice(1)));\n }), e = null;\n }());\n\n function xt(e, t, n) {\n if (\"string\" != typeof e) return new xt.Bootstrap(e, t, n);\n var r = document.querySelectorAll(e);\n t && t.iframe_document && (r = t.iframe_document.querySelectorAll(e));\n\n for (var a = [], o = 0; o < r.length; o++) {\n var i = r[o][\"data-froala.editor\"];\n i ? a.push(i) : a.push(new xt.Bootstrap(r[o], t, n));\n }\n\n return 1 == a.length ? a[0] : a;\n }\n\n xt.RegisterPlugins = function (e) {\n for (var t = 0; t < e.length; t++) {\n e[t].call(xt);\n }\n }, Object.assign(xt, {\n DEFAULTS: {\n initOnClick: !1,\n pluginsEnabled: null\n },\n MODULES: {},\n PLUGINS: {},\n VERSION: \"3.2.7\",\n INSTANCES: [],\n OPTS_MAPPING: {},\n SHARED: {},\n ID: 0\n }), xt.MODULES.node = function (i) {\n var n = i.$;\n\n function s(e) {\n return e && \"IFRAME\" !== e.tagName ? Array.prototype.slice.call(e.childNodes || []) : [];\n }\n\n function l(e) {\n return !!e && e.nodeType === Node.ELEMENT_NODE && 0 <= xt.BLOCK_TAGS.indexOf(e.tagName.toLowerCase());\n }\n\n function c(e) {\n var t = {},\n n = e.attributes;\n if (n) for (var r = 0; r < n.length; r++) {\n var a = n[r];\n t[a.nodeName] = a.value;\n }\n return t;\n }\n\n function t(e) {\n for (var t = \"\", n = c(e), r = Object.keys(n).sort(), a = 0; a < r.length; a++) {\n var o = r[a],\n i = n[o];\n i.indexOf(\"'\") < 0 && 0 <= i.indexOf('\"') ? t += \" \".concat(o, \"='\").concat(i, \"'\") : (0 <= i.indexOf('\"') && 0 <= i.indexOf(\"'\") && (i = i.replace(/\"/g, \""\")), t += \" \".concat(o, '=\"').concat(i, '\"'));\n }\n\n return t;\n }\n\n function r(e) {\n return e === i.el;\n }\n\n return {\n isBlock: l,\n isEmpty: function d(e, t) {\n if (!e) return !0;\n if (e.querySelector(\"table\")) return !1;\n var n = s(e);\n 1 === n.length && l(n[0]) && (n = s(n[0]));\n\n for (var r = !1, a = 0; a < n.length; a++) {\n var o = n[a];\n\n if (!(t && i.node.hasClass(o, \"fr-marker\") || o.nodeType === Node.TEXT_NODE && 0 === o.textContent.length)) {\n if (\"BR\" !== o.tagName && 0 < (o.textContent || \"\").replace(/\\u200B/gi, \"\").replace(/\\n/g, \"\").length) return !1;\n if (r) return !1;\n \"BR\" === o.tagName && (r = !0);\n }\n }\n\n return !(e.querySelectorAll(xt.VOID_ELEMENTS.join(\",\")).length - e.querySelectorAll(\"br\").length || e.querySelector(\"\".concat(i.opts.htmlAllowedEmptyTags.join(\":not(.fr-marker),\"), \":not(.fr-marker)\")) || 1 < e.querySelectorAll(xt.BLOCK_TAGS.join(\",\")).length || e.querySelector(\"\".concat(i.opts.htmlDoNotWrapTags.join(\":not(.fr-marker),\"), \":not(.fr-marker)\")));\n },\n blockParent: function a(e) {\n for (; e && e.parentNode !== i.el && (!e.parentNode || !i.node.hasClass(e.parentNode, \"fr-inner\"));) {\n if (l(e = e.parentNode)) return e;\n }\n\n return null;\n },\n deepestParent: function o(e, t, n) {\n if (void 0 === t && (t = []), void 0 === n && (n = !0), t.push(i.el), 0 <= t.indexOf(e.parentNode) || e.parentNode && i.node.hasClass(e.parentNode, \"fr-inner\") || e.parentNode && 0 <= xt.SIMPLE_ENTER_TAGS.indexOf(e.parentNode.tagName) && n) return null;\n\n for (; t.indexOf(e.parentNode) < 0 && e.parentNode && !i.node.hasClass(e.parentNode, \"fr-inner\") && (xt.SIMPLE_ENTER_TAGS.indexOf(e.parentNode.tagName) < 0 || !n) && (!l(e) || l(e.parentNode)) && (!l(e) || !l(e.parentNode) || !n);) {\n e = e.parentNode;\n }\n\n return e;\n },\n rawAttributes: c,\n attributes: t,\n clearAttributes: function f(e) {\n for (var t = e.attributes, n = t.length - 1; 0 <= n; n--) {\n var r = t[n];\n e.removeAttribute(r.nodeName);\n }\n },\n openTagString: function p(e) {\n return \"<\".concat(e.tagName.toLowerCase()).concat(t(e), \">\");\n },\n closeTagString: function u(e) {\n return \"\");\n },\n isFirstSibling: function h(e, t) {\n void 0 === t && (t = !0);\n\n for (var n = e.previousSibling; n && t && i.node.hasClass(n, \"fr-marker\");) {\n n = n.previousSibling;\n }\n\n return !n || n.nodeType === Node.TEXT_NODE && \"\" === n.textContent && h(n);\n },\n isLastSibling: function g(e, t) {\n void 0 === t && (t = !0);\n\n for (var n = e.nextSibling; n && t && i.node.hasClass(n, \"fr-marker\");) {\n n = n.nextSibling;\n }\n\n return !n || n.nodeType === Node.TEXT_NODE && \"\" === n.textContent && g(n);\n },\n isList: function m(e) {\n return !!e && 0 <= [\"UL\", \"OL\"].indexOf(e.tagName);\n },\n isLink: function v(e) {\n return !!e && e.nodeType === Node.ELEMENT_NODE && \"a\" === e.tagName.toLowerCase();\n },\n isElement: r,\n contents: s,\n isVoid: function b(e) {\n return e && e.nodeType === Node.ELEMENT_NODE && 0 <= xt.VOID_ELEMENTS.indexOf((e.tagName || \"\").toLowerCase());\n },\n hasFocus: function C(e) {\n return e === i.doc.activeElement && (!i.doc.hasFocus || i.doc.hasFocus()) && Boolean(r(e) || e.type || e.href || ~e.tabIndex);\n },\n isEditable: function E(e) {\n return (!e.getAttribute || \"false\" !== e.getAttribute(\"contenteditable\")) && [\"STYLE\", \"SCRIPT\"].indexOf(e.tagName) < 0;\n },\n isDeletable: function y(e) {\n return e && e.nodeType === Node.ELEMENT_NODE && e.getAttribute(\"class\") && 0 <= (e.getAttribute(\"class\") || \"\").indexOf(\"fr-deletable\");\n },\n hasClass: function T(e, t) {\n return e instanceof n && (e = e.get(0)), e && e.classList && e.classList.contains(t);\n },\n filter: function A(e) {\n return i.browser.msie ? e : {\n acceptNode: e\n };\n }\n };\n }, Object.assign(xt.DEFAULTS, {\n DOMPurify: window.DOMPurify,\n htmlAllowedTags: [\"a\", \"abbr\", \"address\", \"area\", \"article\", \"aside\", \"audio\", \"b\", \"base\", \"bdi\", \"bdo\", \"blockquote\", \"br\", \"button\", \"canvas\", \"caption\", \"cite\", \"code\", \"col\", \"colgroup\", \"datalist\", \"dd\", \"del\", \"details\", \"dfn\", \"dialog\", \"div\", \"dl\", \"dt\", \"em\", \"embed\", \"fieldset\", \"figcaption\", \"figure\", \"footer\", \"form\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"header\", \"hgroup\", \"hr\", \"i\", \"iframe\", \"img\", \"input\", \"ins\", \"kbd\", \"keygen\", \"label\", \"legend\", \"li\", \"link\", \"main\", \"map\", \"mark\", \"menu\", \"menuitem\", \"meter\", \"nav\", \"noscript\", \"object\", \"ol\", \"optgroup\", \"option\", \"output\", \"p\", \"param\", \"pre\", \"progress\", \"queue\", \"rp\", \"rt\", \"ruby\", \"s\", \"samp\", \"script\", \"style\", \"section\", \"select\", \"small\", \"source\", \"span\", \"strike\", \"strong\", \"sub\", \"summary\", \"sup\", \"table\", \"tbody\", \"td\", \"textarea\", \"tfoot\", \"th\", \"thead\", \"time\", \"tr\", \"track\", \"u\", \"ul\", \"var\", \"video\", \"wbr\"],\n htmlRemoveTags: [\"script\", \"style\"],\n htmlAllowedAttrs: [\"accept\", \"accept-charset\", \"accesskey\", \"action\", \"align\", \"allowfullscreen\", \"allowtransparency\", \"alt\", \"async\", \"autocomplete\", \"autofocus\", \"autoplay\", \"autosave\", \"background\", \"bgcolor\", \"border\", \"charset\", \"cellpadding\", \"cellspacing\", \"checked\", \"cite\", \"class\", \"color\", \"cols\", \"colspan\", \"content\", \"contenteditable\", \"contextmenu\", \"controls\", \"coords\", \"data\", \"data-.*\", \"datetime\", \"default\", \"defer\", \"dir\", \"dirname\", \"disabled\", \"download\", \"draggable\", \"dropzone\", \"enctype\", \"for\", \"form\", \"formaction\", \"frameborder\", \"headers\", \"height\", \"hidden\", \"high\", \"href\", \"hreflang\", \"http-equiv\", \"icon\", \"id\", \"ismap\", \"itemprop\", \"keytype\", \"kind\", \"label\", \"lang\", \"language\", \"list\", \"loop\", \"low\", \"max\", \"maxlength\", \"media\", \"method\", \"min\", \"mozallowfullscreen\", \"multiple\", \"muted\", \"name\", \"novalidate\", \"open\", \"optimum\", \"pattern\", \"ping\", \"placeholder\", \"playsinline\", \"poster\", \"preload\", \"pubdate\", \"radiogroup\", \"readonly\", \"rel\", \"required\", \"reversed\", \"rows\", \"rowspan\", \"sandbox\", \"scope\", \"scoped\", \"scrolling\", \"seamless\", \"selected\", \"shape\", \"size\", \"sizes\", \"span\", \"src\", \"srcdoc\", \"srclang\", \"srcset\", \"start\", \"step\", \"summary\", \"spellcheck\", \"style\", \"tabindex\", \"target\", \"title\", \"type\", \"translate\", \"usemap\", \"value\", \"valign\", \"webkitallowfullscreen\", \"width\", \"wrap\"],\n htmlAllowedStyleProps: [\".*\"],\n htmlAllowComments: !0,\n htmlUntouched: !1,\n fullPage: !1\n }), xt.HTML5Map = {\n B: \"STRONG\",\n I: \"EM\",\n STRIKE: \"S\"\n }, xt.MODULES.clean = function (f) {\n var d,\n p,\n u,\n h,\n g = f.$;\n\n function a(e) {\n if (e.nodeType === Node.ELEMENT_NODE && e.getAttribute(\"class\") && 0 <= e.getAttribute(\"class\").indexOf(\"fr-marker\")) return !1;\n var t,\n n = f.node.contents(e),\n r = [];\n\n for (t = 0; t < n.length; t++) {\n n[t].nodeType !== Node.ELEMENT_NODE || f.node.isVoid(n[t]) ? n[t].nodeType === Node.TEXT_NODE && (n[t].textContent = n[t].textContent.replace(/\\u200b/g, \"\")) : n[t].textContent.replace(/\\u200b/g, \"\").length !== n[t].textContent.length && a(n[t]);\n }\n\n if (e.nodeType === Node.ELEMENT_NODE && !f.node.isVoid(e) && (e.normalize(), n = f.node.contents(e), r = e.querySelectorAll(\".fr-marker\"), n.length - r.length == 0)) {\n for (t = 0; t < n.length; t++) {\n if (n[t].nodeType === Node.ELEMENT_NODE && (n[t].getAttribute(\"class\") || \"\").indexOf(\"fr-marker\") < 0) return !1;\n }\n\n for (t = 0; t < r.length; t++) {\n e.parentNode.insertBefore(r[t].cloneNode(!0), e);\n }\n\n return e.parentNode.removeChild(e), !1;\n }\n }\n\n function s(e, t) {\n if (e.nodeType === Node.COMMENT_NODE) return \"\\x3c!--\".concat(e.nodeValue, \"--\\x3e\");\n if (e.nodeType === Node.TEXT_NODE) return t ? e.textContent.replace(/&/g, \"&\").replace(//g, \">\") : e.textContent.replace(/&/g, \"&\").replace(//g, \">\").replace(/\\u00A0/g, \" \").replace(/\\u0009/g, \"\");\n if (e.nodeType !== Node.ELEMENT_NODE) return e.outerHTML;\n if (e.nodeType === Node.ELEMENT_NODE && 0 <= [\"STYLE\", \"SCRIPT\", \"NOSCRIPT\"].indexOf(e.tagName)) return e.outerHTML;\n\n if (e.nodeType === Node.ELEMENT_NODE && \"svg\" === e.tagName) {\n var n = document.createElement(\"div\"),\n r = e.cloneNode(!0);\n return n.appendChild(r), n.innerHTML;\n }\n\n if (\"IFRAME\" === e.tagName) return e.outerHTML.replace(/</g, \"<\").replace(/>/g, \">\");\n var a = e.childNodes;\n if (0 === a.length) return e.outerHTML;\n\n for (var o = \"\", i = 0; i < a.length; i++) {\n \"PRE\" === e.tagName && (t = !0), o += s(a[i], t);\n }\n\n return f.node.openTagString(e) + o + f.node.closeTagString(e);\n }\n\n var l = [];\n\n function m(e) {\n var t = e.replace(/;;/gi, \";\");\n return \";\" !== (t = t.replace(/^;/gi, \"\")).charAt(t.length) && (t += \";\"), t;\n }\n\n function c(e) {\n var t;\n\n for (t in e) {\n if (Object.prototype.hasOwnProperty.call(e, t)) {\n var n = t.match(u),\n r = null;\n \"style\" === t && f.opts.htmlAllowedStyleProps.length && (r = e[t].match(h)), n && r ? e[t] = m(r.join(\";\")) : n && (\"style\" !== t || r) || delete e[t];\n }\n }\n\n for (var a = \"\", o = Object.keys(e).sort(), i = 0; i < o.length; i++) {\n e[t = o[i]].indexOf('\"') < 0 ? a += \" \".concat(t, '=\"').concat(e[t], '\"') : a += \" \".concat(t, \"='\").concat(e[t], \"'\");\n }\n\n return a;\n }\n\n function v(e, t) {\n var n,\n r = document.implementation.createHTMLDocument(\"Froala DOC\").createElement(\"DIV\");\n g(r).append(e);\n var a = \"\";\n\n if (r) {\n var o = f.node.contents(r);\n\n for (n = 0; n < o.length; n++) {\n t(o[n]);\n }\n\n for (o = f.node.contents(r), n = 0; n < o.length; n++) {\n a += s(o[n]);\n }\n }\n\n return a;\n }\n\n function b(e, t, n) {\n var r = e = function o(e) {\n return l = [], e = (e = (e = (e = e.replace(/)<[^<]*)*<\\/script>/gi, function (e) {\n return l.push(e), \"[FROALA.EDITOR.SCRIPT \".concat(l.length - 1, \"]\");\n })).replace(/)<[^<]*)*<\\/noscript>/gi, function (e) {\n return l.push(e), \"[FROALA.EDITOR.NOSCRIPT \".concat(l.length - 1, \"]\");\n })).replace(/\"),\n r = g(n);\n\n if (r && r.length) {\n var a = v(r.html(), E);\n r.html(a), n = r.get(0).outerHTML;\n }\n\n return n;\n })).replace(/\" : t;\n var o = c(f.html.extractNodeAttrs(n, \"head\")),\n i = c(f.html.extractNodeAttrs(n, \"body\"));\n return \"\".concat(r, \"\").concat(t, \"\").concat(e, \"\");\n }\n\n return e;\n }(r, a, e));\n }\n\n function C(e) {\n var t = f.doc.createElement(\"DIV\");\n return t.innerText = e, t.textContent;\n }\n\n function E(e) {\n for (var t = f.node.contents(e), n = 0; n < t.length; n++) {\n t[n].nodeType !== Node.TEXT_NODE && E(t[n]);\n }\n\n !function c(i) {\n if (\"SPAN\" === i.tagName && 0 <= (i.getAttribute(\"class\") || \"\").indexOf(\"fr-marker\")) return !1;\n if (\"PRE\" === i.tagName && function l(e) {\n var t = e.innerHTML;\n 0 <= t.indexOf(\"\\n\") && (e.innerHTML = t.replace(/\\n/g, \"
\"));\n }(i), i.nodeType === Node.ELEMENT_NODE && (i.getAttribute(\"data-fr-src\") && 0 !== i.getAttribute(\"data-fr-src\").indexOf(\"blob:\") && i.setAttribute(\"data-fr-src\", f.helpers.sanitizeURL(C(i.getAttribute(\"data-fr-src\")))), i.getAttribute(\"href\") && i.setAttribute(\"href\", f.helpers.sanitizeURL(C(i.getAttribute(\"href\")))), i.getAttribute(\"src\") && i.setAttribute(\"src\", f.helpers.sanitizeURL(C(i.getAttribute(\"src\")))), i.getAttribute(\"srcdoc\") && i.setAttribute(\"srcdoc\", f.clean.html(i.getAttribute(\"srcdoc\"))), 0 <= [\"TABLE\", \"TBODY\", \"TFOOT\", \"TR\"].indexOf(i.tagName) && (i.innerHTML = i.innerHTML.trim())), !f.opts.pasteAllowLocalImages && i.nodeType === Node.ELEMENT_NODE && \"IMG\" === i.tagName && i.getAttribute(\"data-fr-src\") && 0 === i.getAttribute(\"data-fr-src\").indexOf(\"file://\")) return i.parentNode.removeChild(i), !1;\n\n if (i.nodeType === Node.ELEMENT_NODE && xt.HTML5Map[i.tagName] && \"\" === f.node.attributes(i)) {\n var e = xt.HTML5Map[i.tagName],\n t = \"<\".concat(e, \">\").concat(i.innerHTML, \"\");\n i.insertAdjacentHTML(\"beforebegin\", t), (i = i.previousSibling).parentNode.removeChild(i.nextSibling);\n }\n\n if (f.opts.htmlAllowComments || i.nodeType !== Node.COMMENT_NODE) {\n if (i.tagName && i.tagName.match(p)) \"STYLE\" == i.tagName && f.helpers.isMac() && function () {\n var e,\n n = i.innerHTML.trim(),\n r = [],\n t = /{([^}]+)}/g;\n\n for (n = n.replace(/\\/\\*[\\s\\S]*?\\*\\/|([^\\\\:]|^)\\/\\/.*|$/, \"\"); e = t.exec(n);) {\n r.push(e[1]);\n }\n\n for (var a = function a(t) {\n var e = n.substring(0, n.indexOf(\"{\")).trim();\n 0 == !/^[a-z_-][a-z\\d_-]*$/i.test(e) && i.parentNode.querySelectorAll(e).forEach(function (e) {\n e.removeAttribute(\"class\"), e.setAttribute(\"style\", r[t]);\n }), n = n.substring(n.indexOf(\"}\") + 1);\n }, o = 0; -1 != n.indexOf(\"{\"); o++) {\n a(o);\n }\n }(), i.parentNode.removeChild(i);else if (i.tagName && !i.tagName.match(d)) \"svg\" === i.tagName ? i.parentNode.removeChild(i) : f.browser.safari && \"path\" === i.tagName && i.parentNode && \"svg\" === i.parentNode.tagName || (i.outerHTML = i.innerHTML);else {\n var n = i.attributes;\n if (n) for (var r = n.length - 1; 0 <= r; r--) {\n var a = n[r],\n o = a.nodeName.match(u),\n s = null;\n \"style\" === a.nodeName && f.opts.htmlAllowedStyleProps.length && (s = a.value.match(h)), o && s ? a.value = m(s.join(\";\")) : o && (\"style\" !== a.nodeName || s) || i.removeAttribute(a.nodeName);\n }\n }\n } else 0 !== i.data.indexOf(\"[FROALA.EDITOR\") && i.parentNode.removeChild(i);\n }(e);\n }\n\n return {\n _init: function e() {\n f.opts.fullPage && g.merge(f.opts.htmlAllowedTags, [\"head\", \"title\", \"style\", \"link\", \"base\", \"body\", \"html\", \"meta\"]);\n },\n html: function y(e, t, n, r) {\n void 0 === t && (t = []), void 0 === n && (n = []), void 0 === r && (r = !1);\n var a,\n o = g.merge([], f.opts.htmlAllowedTags);\n\n for (a = 0; a < t.length; a++) {\n 0 <= o.indexOf(t[a]) && o.splice(o.indexOf(t[a]), 1);\n }\n\n var i = g.merge([], f.opts.htmlAllowedAttrs);\n\n for (a = 0; a < n.length; a++) {\n 0 <= i.indexOf(n[a]) && i.splice(i.indexOf(n[a]), 1);\n }\n\n return i.push(\"data-fr-.*\"), i.push(\"fr-.*\"), d = new RegExp(\"^\".concat(o.join(\"$|^\"), \"$\"), \"gi\"), u = new RegExp(\"^\".concat(i.join(\"$|^\"), \"$\"), \"gi\"), p = new RegExp(\"^\".concat(f.opts.htmlRemoveTags.join(\"$|^\"), \"$\"), \"gi\"), h = f.opts.htmlAllowedStyleProps.length ? new RegExp(\"((^|;|\\\\s)\".concat(f.opts.htmlAllowedStyleProps.join(\":.+?(?=;|$))|((^|;|\\\\s)\"), \":.+?(?=(;)|$))\"), \"gi\") : null, e = b(e, E, !0), \"undefined\" != typeof f.opts.DOMPurify && (e = f.opts.DOMPurify.sanitize(e)), e;\n },\n toHTML5: function r() {\n var e = f.el.querySelectorAll(Object.keys(xt.HTML5Map).join(\",\"));\n\n if (e.length) {\n var t = !1;\n f.el.querySelector(\".fr-marker\") || (f.selection.save(), t = !0);\n\n for (var n = 0; n < e.length; n++) {\n \"\" === f.node.attributes(e[n]) && g(e[n]).replaceWith(\"<\".concat(xt.HTML5Map[e[n].tagName], \">\").concat(e[n].innerHTML, \"\"));\n }\n\n t && f.selection.restore();\n }\n },\n tables: function t() {\n !function s() {\n for (var e = f.el.querySelectorAll(\"tr\"), t = 0; t < e.length; t++) {\n for (var n = e[t].children, r = !0, a = 0; a < n.length; a++) {\n if (\"TH\" !== n[a].tagName) {\n r = !1;\n break;\n }\n }\n\n if (!1 !== r && 0 !== n.length) {\n for (var o = e[t]; o && \"TABLE\" !== o.tagName && \"THEAD\" !== o.tagName;) {\n o = o.parentNode;\n }\n\n var i = o;\n \"THEAD\" !== i.tagName && (i = f.doc.createElement(\"THEAD\"), o.insertBefore(i, o.firstChild)), i.appendChild(e[t]);\n }\n }\n }();\n },\n lists: function T() {\n !function s() {\n var e,\n t = [];\n\n do {\n if (t.length) {\n var n = t[0],\n r = f.doc.createElement(\"ul\");\n n.parentNode.insertBefore(r, n);\n\n do {\n var a = n;\n n = n.nextSibling, r.appendChild(a);\n } while (n && \"LI\" === n.tagName);\n }\n\n t = [];\n\n for (var o = f.el.querySelectorAll(\"li\"), i = 0; i < o.length; i++) {\n e = o[i], f.node.isList(e.parentNode) || t.push(o[i]);\n }\n } while (0 < t.length);\n }(), function o() {\n for (var e = f.el.querySelectorAll(\"ol + ol, ul + ul\"), t = 0; t < e.length; t++) {\n var n = e[t];\n\n if (f.node.isList(n.previousSibling) && f.node.openTagString(n) === f.node.openTagString(n.previousSibling)) {\n for (var r = f.node.contents(n), a = 0; a < r.length; a++) {\n n.previousSibling.appendChild(r[a]);\n }\n\n n.parentNode.removeChild(n);\n }\n }\n }(), function i() {\n for (var e = f.el.querySelectorAll(\"ul, ol\"), t = 0; t < e.length; t++) {\n for (var n = f.node.contents(e[t]), r = null, a = n.length - 1; 0 <= a; a--) {\n !n[a].tagName && f.opts.htmlUntouched || \"LI\" === n[a].tagName || \"UL\" == n[a].tagName || \"OL\" == n[a].tagName ? r = null : (r || (r = g(f.doc.createElement(\"LI\"))).insertBefore(n[a]), r.prepend(n[a]));\n }\n }\n }(), function l() {\n var e, t, n;\n\n do {\n t = !1;\n var r = f.el.querySelectorAll(\"li:empty\");\n\n for (e = 0; e < r.length; e++) {\n r[e].parentNode.removeChild(r[e]);\n }\n\n var a = f.el.querySelectorAll(\"ul, ol\");\n\n for (e = 0; e < a.length; e++) {\n (n = a[e]).querySelector(\"LI\") || (t = !0, n.parentNode.removeChild(n));\n }\n } while (!0 === t);\n }(), function a() {\n for (var e = f.el.querySelectorAll(\"ul > ul, ol > ol, ul > ol, ol > ul\"), t = 0; t < e.length; t++) {\n var n = e[t],\n r = n.previousSibling;\n r && (\"LI\" === r.tagName ? r.appendChild(n) : g(n).wrap(\"
  • \"));\n }\n }(), function c() {\n for (var e = f.el.querySelectorAll(\"li > ul, li > ol\"), t = 0; t < e.length; t++) {\n var n = e[t];\n if (n.nextSibling) for (var r = n.nextSibling; 0 < r.childNodes.length;) {\n n.append(r.childNodes[0]);\n }\n }\n }(), function d() {\n for (var e = f.el.querySelectorAll(\"li > ul, li > ol\"), t = 0; t < e.length; t++) {\n var n = e[t];\n if (f.node.isFirstSibling(n) && \"none\" != n.parentNode.style.listStyleType) g(n).before(\"
    \");else if (n.previousSibling && \"BR\" === n.previousSibling.tagName) {\n for (var r = n.previousSibling.previousSibling; r && f.node.hasClass(r, \"fr-marker\");) {\n r = r.previousSibling;\n }\n\n r && \"BR\" !== r.tagName && g(n.previousSibling).remove();\n }\n }\n }(), function n() {\n for (var e = f.el.querySelectorAll(\"li:empty\"), t = 0; t < e.length; t++) {\n g(e[t]).remove();\n }\n }();\n },\n invisibleSpaces: function n(e) {\n return e.replace(/\\u200b/g, \"\").length === e.length ? e : f.clean.exec(e, a);\n },\n exec: b\n };\n }, xt.XS = 0, xt.SM = 1, xt.MD = 2, xt.LG = 3;\n xt.LinkRegExCommon = \"[\".concat(\"a-z\\\\u0080-\\\\u009f\\\\u00a1-\\\\uffff0-9-_\\\\.\", \"]{1,}\"), xt.LinkRegExEnd = \"((:[0-9]{1,5})|)(((\\\\/|\\\\?|#)[a-z\\\\u00a1-\\\\uffff0-9@?\\\\|!^=%&\\\\/~+#-\\\\'*-_{}]*)|())\", xt.LinkRegExTLD = \"((\".concat(xt.LinkRegExCommon, \")(\\\\.(com|net|org|edu|mil|gov|co|biz|info|me|dev)))\"), xt.LinkRegExHTTP = \"((ftp|http|https):\\\\/\\\\/\".concat(xt.LinkRegExCommon, \")\"), xt.LinkRegExAuth = \"((ftp|http|https):\\\\/\\\\/[\\\\u0021-\\\\uffff]{1,}@\".concat(xt.LinkRegExCommon, \")\"), xt.LinkRegExWWW = \"(www\\\\.\".concat(xt.LinkRegExCommon, \"\\\\.[a-z0-9-]{2,24})\"), xt.LinkRegEx = \"(\".concat(xt.LinkRegExTLD, \"|\").concat(xt.LinkRegExHTTP, \"|\").concat(xt.LinkRegExWWW, \"|\").concat(xt.LinkRegExAuth, \")\").concat(xt.LinkRegExEnd), xt.LinkProtocols = [\"mailto\", \"tel\", \"sms\", \"notes\", \"data\"], xt.MAIL_REGEX = /.+@.+\\..+/i, xt.MODULES.helpers = function (o) {\n var i,\n s = o.$;\n\n function e() {\n var e = {},\n t = function o() {\n var e,\n t = -1;\n return \"Microsoft Internet Explorer\" === navigator.appName ? (e = navigator.userAgent, null !== new RegExp(\"MSIE ([0-9]{1,}[\\\\.0-9]{0,})\").exec(e) && (t = parseFloat(RegExp.$1))) : \"Netscape\" === navigator.appName && (e = navigator.userAgent, null !== new RegExp(\"Trident/.*rv:([0-9]{1,}[\\\\.0-9]{0,})\").exec(e) && (t = parseFloat(RegExp.$1))), t;\n }();\n\n if (0 < t) e.msie = !0;else {\n var n = navigator.userAgent.toLowerCase(),\n r = /(edge)[ /]([\\w.]+)/.exec(n) || /(chrome)[ /]([\\w.]+)/.exec(n) || /(webkit)[ /]([\\w.]+)/.exec(n) || /(opera)(?:.*version|)[ /]([\\w.]+)/.exec(n) || /(msie) ([\\w.]+)/.exec(n) || n.indexOf(\"compatible\") < 0 && /(mozilla)(?:.*? rv:([\\w.]+)|)/.exec(n) || [],\n a = r[1] || \"\";\n r[2];\n r[1] && (e[a] = !0), e.chrome ? e.webkit = !0 : e.webkit && (e.safari = !0);\n }\n return e.msie && (e.version = t), e;\n }\n\n function t() {\n return /(iPad|iPhone|iPod)/g.test(navigator.userAgent) && !a();\n }\n\n function n() {\n return /(Android)/g.test(navigator.userAgent) && !a();\n }\n\n function r() {\n return /(Blackberry)/g.test(navigator.userAgent);\n }\n\n function a() {\n return /(Windows Phone)/gi.test(navigator.userAgent);\n }\n\n var l = null;\n return {\n _init: function c() {\n o.browser = e();\n },\n isIOS: t,\n isMac: function d() {\n return null === l && (l = 0 <= navigator.platform.toUpperCase().indexOf(\"MAC\")), l;\n },\n isAndroid: n,\n isBlackberry: r,\n isWindowsPhone: a,\n isMobile: function f() {\n return n() || t() || r();\n },\n isEmail: function p(e) {\n return !/^(https?:|ftps?:|)\\/\\//i.test(e) && xt.MAIL_REGEX.test(e);\n },\n requestAnimationFrame: function u() {\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function (e) {\n window.setTimeout(e, 1e3 / 60);\n };\n },\n getPX: function h(e) {\n return parseInt(e, 10) || 0;\n },\n screenSize: function g(e) {\n try {\n var t = 0;\n if ((t = e ? o.$box.width() : o.$sc.width()) < 768) return xt.XS;\n if (768 <= t && t < 992) return xt.SM;\n if (992 <= t && t < 1200) return xt.MD;\n if (1200 <= t) return xt.LG;\n } catch (n) {\n return xt.LG;\n }\n },\n isTouch: function m() {\n return \"ontouchstart\" in window || window.DocumentTouch && document instanceof window.DocumentTouch;\n },\n sanitizeURL: function v(e) {\n return /^(https?:|ftps?:|)\\/\\//i.test(e) ? e : /^([A-Za-z]:(\\\\){1,2}|[A-Za-z]:((\\\\){1,2}[^\\\\]+)+)(\\\\)?$/i.test(e) ? e : new RegExp(\"^(\".concat(xt.LinkProtocols.join(\"|\"), \"):\"), \"i\").test(e) ? e : e = encodeURIComponent(e).replace(/%23/g, \"#\").replace(/%2F/g, \"/\").replace(/%25/g, \"%\").replace(/mailto%3A/gi, \"mailto:\").replace(/file%3A/gi, \"file:\").replace(/sms%3A/gi, \"sms:\").replace(/tel%3A/gi, \"tel:\").replace(/notes%3A/gi, \"notes:\").replace(/data%3Aimage/gi, \"data:image\").replace(/blob%3A/gi, \"blob:\").replace(/%3A(\\d)/gi, \":$1\").replace(/webkit-fake-url%3A/gi, \"webkit-fake-url:\").replace(/%3F/g, \"?\").replace(/%3D/g, \"=\").replace(/%26/g, \"&\").replace(/&/g, \"&\").replace(/%2C/g, \",\").replace(/%3B/g, \";\").replace(/%2B/g, \"+\").replace(/%40/g, \"@\").replace(/%5B/g, \"[\").replace(/%5D/g, \"]\").replace(/%7B/g, \"{\").replace(/%7D/g, \"}\");\n },\n isArray: function b(e) {\n return e && !Object.prototype.propertyIsEnumerable.call(e, \"length\") && \"object\" === _t(e) && \"number\" == typeof e.length;\n },\n RGBToHex: function C(e) {\n function t(e) {\n return \"0\".concat(parseInt(e, 10).toString(16)).slice(-2);\n }\n\n try {\n return e && \"transparent\" !== e ? /^#[0-9A-F]{6}$/i.test(e) ? e : (e = e.match(/^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)$/), \"#\".concat(t(e[1])).concat(t(e[2])).concat(t(e[3])).toUpperCase()) : \"\";\n } catch (n) {\n return null;\n }\n },\n HEXtoRGB: function E(e) {\n e = e.replace(/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i, function (e, t, n, r) {\n return t + t + n + n + r + r;\n });\n var t = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(e);\n return t ? \"rgb(\".concat(parseInt(t[1], 16), \", \").concat(parseInt(t[2], 16), \", \").concat(parseInt(t[3], 16), \")\") : \"\";\n },\n isURL: function y(e) {\n return !!/^(https?:|ftps?:|)\\/\\//i.test(e) && (e = String(e).replace(//g, \"%3E\").replace(/\"/g, \"%22\").replace(/ /g, \"%20\"), new RegExp(\"^\".concat(xt.LinkRegExHTTP).concat(xt.LinkRegExEnd, \"$\"), \"gi\").test(e));\n },\n getAlignment: function T(e) {\n e.css || (e = s(e));\n var t = (e.css(\"text-align\") || \"\").replace(/-(.*)-/g, \"\");\n\n if ([\"left\", \"right\", \"justify\", \"center\"].indexOf(t) < 0) {\n if (!i) {\n var n = s('
    ..
    '));\n s(\"body\").first().append(n);\n var r = n.find(\"#s1\").get(0).getBoundingClientRect().left,\n a = n.find(\"#s2\").get(0).getBoundingClientRect().left;\n n.remove(), i = r < a ? \"left\" : \"right\";\n }\n\n t = i;\n }\n\n return t;\n },\n scrollTop: function A() {\n return o.o_win.pageYOffset ? o.o_win.pageYOffset : o.o_doc.documentElement && o.o_doc.documentElement.scrollTop ? o.o_doc.documentElement.scrollTop : o.o_doc.body.scrollTop ? o.o_doc.body.scrollTop : 0;\n },\n scrollLeft: function L() {\n return o.o_win.pageXOffset ? o.o_win.pageXOffset : o.o_doc.documentElement && o.o_doc.documentElement.scrollLeft ? o.o_doc.documentElement.scrollLeft : o.o_doc.body.scrollLeft ? o.o_doc.body.scrollLeft : 0;\n },\n isInViewPort: function S(e) {\n var t = e.getBoundingClientRect();\n return 0 <= (t = {\n top: Math.round(t.top),\n bottom: Math.round(t.bottom)\n }).top && t.bottom <= (window.innerHeight || document.documentElement.clientHeight) || t.top <= 0 && t.bottom >= (window.innerHeight || document.documentElement.clientHeight);\n }\n };\n }, xt.MODULES.events = function (l) {\n var e,\n o = l.$,\n i = {};\n\n function s(e, t, n) {\n m(e, t, n);\n }\n\n function c(e) {\n if (void 0 === e && (e = !0), !l.$wp) return !1;\n if (l.helpers.isIOS() && l.$win.get(0).focus(), l.core.hasFocus()) return !1;\n\n if (l.selection.isCollapsed() && !l.selection.get().anchorNode) {\n var t = l.$el.find(l.html.blockTagsQuery()).get(0);\n t && (o(t).prepend(xt.MARKERS), l.selection.restore());\n }\n\n if (!l.core.hasFocus() && e) {\n var n = l.$win.scrollTop();\n if (l.browser.msie && l.$box && l.$box.css(\"position\", \"fixed\"), l.browser.msie && l.$wp && l.$wp.css(\"overflow\", \"visible\"), l.browser.msie && l.$sc && l.$sc.css(\"position\", \"fixed\"), l.browser.msie || (p(), l.el.focus(), l.events.trigger(\"focus\"), f()), l.browser.msie && l.$sc && l.$sc.css(\"position\", \"\"), l.browser.msie && l.$box && l.$box.css(\"position\", \"\"), l.browser.msie && l.$wp && l.$wp.css(\"overflow\", \"auto\"), n !== l.$win.scrollTop() && l.$win.scrollTop(n), !l.selection.info(l.el).atStart) return !1;\n }\n\n if (!l.core.hasFocus() || 0 < l.$el.find(\".fr-marker\").length) return !1;\n\n if (l.selection.info(l.el).atStart && l.selection.isCollapsed() && null !== l.html.defaultTag()) {\n var r = l.markers.insert();\n\n if (r && !l.node.blockParent(r)) {\n o(r).remove();\n var a = l.$el.find(l.html.blockTagsQuery()).get(0);\n a && (o(a).prepend(xt.MARKERS), l.selection.restore());\n } else r && o(r).remove();\n }\n }\n\n var d = !1;\n\n function f() {\n e = !0;\n }\n\n function p() {\n e = !1;\n }\n\n function u() {\n return e;\n }\n\n function h(e, t, n) {\n var r,\n a = e.split(\" \");\n\n if (1 < a.length) {\n for (var o = 0; o < a.length; o++) {\n h(a[o], t, n);\n }\n\n return !0;\n }\n\n void 0 === n && (n = !1), r = 0 !== e.indexOf(\"shared.\") ? (i[e] = i[e] || [], i[e]) : (l.shared._events[e] = l.shared._events[e] || [], l.shared._events[e]), n ? r.unshift(t) : r.push(t);\n }\n\n var g = [];\n\n function m(e, t, n, r, a) {\n \"function\" == typeof n && (a = r, r = n, n = !1);\n var o = a ? l.shared.$_events : g,\n i = a ? l.sid : l.id,\n s = \"\".concat(t.trim().split(\" \").join(\".ed\".concat(i, \" \")), \".ed\").concat(i);\n n ? e.on(s, n, r) : e.on(s, r), o.push([e, s]);\n }\n\n function t(e) {\n for (var t = 0; t < e.length; t++) {\n e[t][0].off(e[t][1]);\n }\n }\n\n function v(e, t, n) {\n if (!l.edit.isDisabled() || n) {\n var r, a;\n if (0 !== e.indexOf(\"shared.\")) r = i[e];else {\n if (0 < l.shared.count) return !1;\n r = l.shared._events[e];\n }\n if (r) for (var o = 0; o < r.length; o++) {\n if (!1 === (a = r[o].apply(l, t))) return !1;\n }\n return (!l.opts.events || !l.opts.events[e] || !1 !== (a = l.opts.events[e].apply(l, t))) && a;\n }\n }\n\n function b() {\n for (var e in i) {\n Object.prototype.hasOwnProperty.call(i, e) && delete i[e];\n }\n }\n\n function C() {\n for (var e in l.shared._events) {\n Object.prototype.hasOwnProperty.call(l.shared._events, e) && delete l.shared._events[e];\n }\n }\n\n return {\n _init: function E() {\n l.shared.$_events = l.shared.$_events || [], l.shared._events = {}, function e() {\n l.helpers.isMobile() ? (l._mousedown = \"touchstart\", l._mouseup = \"touchend\", l._move = \"touchmove\", l._mousemove = \"touchmove\") : (l._mousedown = \"mousedown\", l._mouseup = \"mouseup\", l._move = \"\", l._mousemove = \"mousemove\");\n }(), function t() {\n s(l.$el, \"click mouseup mousemove mousedown touchstart touchend dragenter dragover dragleave dragend drop dragstart\", function (e) {\n v(e.type, [e]);\n }), h(\"mousedown\", function () {\n for (var e = 0; e < xt.INSTANCES.length; e++) {\n xt.INSTANCES[e] !== l && xt.INSTANCES[e].popups && xt.INSTANCES[e].popups.areVisible() && xt.INSTANCES[e].$el.find(\".fr-marker\").remove();\n }\n });\n }(), function n() {\n s(l.$win, l._mousedown, function (e) {\n v(\"window.mousedown\", [e]), f();\n }), s(l.$win, l._mouseup, function (e) {\n v(\"window.mouseup\", [e]);\n }), s(l.$win, \"cut copy keydown keyup touchmove touchend\", function (e) {\n v(\"window.\".concat(e.type), [e]);\n });\n }(), function r() {\n s(l.$doc, \"dragend drop\", function (e) {\n v(\"document.\".concat(e.type), [e]);\n });\n }(), function a() {\n s(l.$el, \"keydown keypress keyup input\", function (e) {\n v(e.type, [e]);\n });\n }(), function o() {\n s(l.$el, \"focus\", function (e) {\n u() && (c(!1), !1 === d && (v(e.type, [e]), l.helpers.isMobile() && p()));\n }), s(l.$el, \"blur\", function (e) {\n u() && !0 === d && (v(e.type, [e]), l.helpers.isMobile() && l.opts.toolbarContainer && (l.shared.selected_editor = l.id), f());\n }), m(l.$el, \"mousedown\", '[contenteditable=\"true\"]', function () {\n p(), l.$el.blur();\n }), h(\"focus\", function () {\n d = !0;\n }), h(\"blur\", function () {\n d = !1;\n });\n }(), f(), function i() {\n s(l.$el, \"cut copy paste beforepaste\", function (e) {\n v(e.type, [e]);\n });\n }(), h(\"destroy\", b), h(\"shared.destroy\", C);\n },\n on: h,\n trigger: v,\n bindClick: function r(e, t, n) {\n m(e, l._mousedown, t, function (e) {\n l.edit.isDisabled() || function n(e) {\n var t = o(e.currentTarget);\n return l.edit.isDisabled() || l.node.hasClass(t.get(0), \"fr-disabled\") ? (e.preventDefault(), !1) : \"mousedown\" === e.type && 1 !== e.which || (l.helpers.isMobile() || e.preventDefault(), (l.helpers.isAndroid() || l.helpers.isWindowsPhone()) && 0 === t.parents(\".fr-dropdown-menu\").length && (e.preventDefault(), e.stopPropagation()), t.addClass(\"fr-selected\"), void l.events.trigger(\"commands.mousedown\", [t]));\n }(e);\n }, !0), m(e, \"\".concat(l._mouseup, \" \").concat(l._move), t, function (e) {\n l.edit.isDisabled() || function a(e, t) {\n var n = o(e.currentTarget);\n if (l.edit.isDisabled() || l.node.hasClass(n.get(0), \"fr-disabled\")) return e.preventDefault(), !1;\n if (\"mouseup\" === e.type && 1 !== e.which) return !0;\n if (l.button.getButtons(\".fr-selected\", !0).get(0) == n.get(0) && !l.node.hasClass(n.get(0), \"fr-selected\")) return !0;\n\n if (\"touchmove\" !== e.type) {\n if (e.stopPropagation(), e.stopImmediatePropagation(), e.preventDefault(), !l.node.hasClass(n.get(0), \"fr-selected\")) return l.button.getButtons(\".fr-selected\", !0).removeClass(\"fr-selected\"), !1;\n if (l.button.getButtons(\".fr-selected\", !0).removeClass(\"fr-selected\"), n.data(\"dragging\") || n.attr(\"disabled\")) return n.removeData(\"dragging\"), !1;\n var r = n.data(\"timeout\");\n r && (clearTimeout(r), n.removeData(\"timeout\")), t.apply(l, [e]);\n } else n.data(\"timeout\") || n.data(\"timeout\", setTimeout(function () {\n n.data(\"dragging\", !0);\n }, 100));\n }(e, n);\n }, !0), m(e, \"mousedown click mouseup\", t, function (e) {\n l.edit.isDisabled() || e.stopPropagation();\n }, !0), h(\"window.mouseup\", function () {\n l.edit.isDisabled() || (e.find(t).removeClass(\"fr-selected\"), f());\n }), m(e, \"mouseover\", t, function () {\n o(this).hasClass(\"fr-options\") && o(this).prev(\".fr-btn\").addClass(\"fr-btn-hover\"), o(this).next(\".fr-btn\").hasClass(\"fr-options\") && o(this).next(\".fr-btn\").addClass(\"fr-btn-hover\");\n }), m(e, \"mouseout\", t, function () {\n o(this).hasClass(\"fr-options\") && o(this).prev(\".fr-btn\").removeClass(\"fr-btn-hover\"), o(this).next(\".fr-btn\").hasClass(\"fr-options\") && o(this).next(\".fr-btn\").removeClass(\"fr-btn-hover\");\n });\n },\n disableBlur: p,\n enableBlur: f,\n blurActive: u,\n focus: c,\n chainTrigger: function y(e, t, n) {\n if (!l.edit.isDisabled() || n) {\n var r, a;\n if (0 !== e.indexOf(\"shared.\")) r = i[e];else {\n if (0 < l.shared.count) return !1;\n r = l.shared._events[e];\n }\n if (r) for (var o = 0; o < r.length; o++) {\n void 0 !== (a = r[o].apply(l, [t])) && (t = a);\n }\n return l.opts.events && l.opts.events[e] && void 0 !== (a = l.opts.events[e].apply(l, [t])) && (t = a), t;\n }\n },\n $on: m,\n $off: function n() {\n t(g), g = [], 0 === l.shared.count && (t(l.shared.$_events), l.shared.$_events = []);\n }\n };\n }, Object.assign(xt.DEFAULTS, {\n indentMargin: 20\n }), xt.COMMANDS = {\n bold: {\n title: \"Bold\",\n toggle: !0,\n refresh: function refresh(e) {\n var t = this.format.is(\"strong\");\n e.toggleClass(\"fr-active\", t).attr(\"aria-pressed\", t);\n }\n },\n italic: {\n title: \"Italic\",\n toggle: !0,\n refresh: function refresh(e) {\n var t = this.format.is(\"em\");\n e.toggleClass(\"fr-active\", t).attr(\"aria-pressed\", t);\n }\n },\n underline: {\n title: \"Underline\",\n toggle: !0,\n refresh: function refresh(e) {\n var t = this.format.is(\"u\");\n e.toggleClass(\"fr-active\", t).attr(\"aria-pressed\", t);\n }\n },\n strikeThrough: {\n title: \"Strikethrough\",\n toggle: !0,\n refresh: function refresh(e) {\n var t = this.format.is(\"s\");\n e.toggleClass(\"fr-active\", t).attr(\"aria-pressed\", t);\n }\n },\n subscript: {\n title: \"Subscript\",\n toggle: !0,\n refresh: function refresh(e) {\n var t = this.format.is(\"sub\");\n e.toggleClass(\"fr-active\", t).attr(\"aria-pressed\", t);\n }\n },\n superscript: {\n title: \"Superscript\",\n toggle: !0,\n refresh: function refresh(e) {\n var t = this.format.is(\"sup\");\n e.toggleClass(\"fr-active\", t).attr(\"aria-pressed\", t);\n }\n },\n outdent: {\n title: \"Decrease Indent\"\n },\n indent: {\n title: \"Increase Indent\"\n },\n undo: {\n title: \"Undo\",\n undo: !1,\n forcedRefresh: !0,\n disabled: !0\n },\n redo: {\n title: \"Redo\",\n undo: !1,\n forcedRefresh: !0,\n disabled: !0\n },\n insertHR: {\n title: \"Insert Horizontal Line\"\n },\n clearFormatting: {\n title: \"Clear Formatting\"\n },\n selectAll: {\n title: \"Select All\",\n undo: !1\n },\n moreText: {\n title: \"More Text\",\n undo: !1\n },\n moreParagraph: {\n title: \"More Paragraph\",\n undo: !1\n },\n moreRich: {\n title: \"More Rich\",\n undo: !1\n },\n moreMisc: {\n title: \"More Misc\",\n undo: !1\n }\n }, xt.RegisterCommand = function (e, t) {\n xt.COMMANDS[e] = t;\n }, xt.MODULES.commands = function (i) {\n var s = i.$;\n\n function a(e) {\n return i.html.defaultTag() && (e = \"<\".concat(i.html.defaultTag(), \">\").concat(e, \"\")), e;\n }\n\n var o = {\n bold: function bold() {\n e(\"bold\", \"strong\");\n },\n subscript: function subscript() {\n i.format.is(\"sup\") && i.format.remove(\"sup\"), e(\"subscript\", \"sub\");\n },\n superscript: function superscript() {\n i.format.is(\"sub\") && i.format.remove(\"sub\"), e(\"superscript\", \"sup\");\n },\n italic: function italic() {\n e(\"italic\", \"em\");\n },\n strikeThrough: function strikeThrough() {\n e(\"strikeThrough\", \"s\");\n },\n underline: function underline() {\n e(\"underline\", \"u\");\n },\n undo: function undo() {\n i.undo.run();\n },\n redo: function redo() {\n i.undo.redo();\n },\n indent: function indent() {\n r(1);\n },\n outdent: function outdent() {\n r(-1);\n },\n show: function show() {\n i.opts.toolbarInline && i.toolbar.showInline(null, !0);\n },\n insertHR: function insertHR() {\n i.selection.remove();\n var e = \"\";\n i.core.isEmpty() && (e = a(e = \"
    \")), i.html.insert('
    '.concat(e));\n var t,\n n = i.$el.find(\"hr#fr-just\").length ? i.$el.find(\"hr#fr-just\") : i.$el.find(\".fr-just\");\n\n if (n.removeAttr(\"id\"), n.removeAttr(\"class\"), 0 === n.next().length) {\n var r = i.html.defaultTag();\n r ? n.after(s(i.doc.createElement(r)).append(\"
    \").get(0)) : n.after(\"
    \");\n }\n\n n.prev().is(\"hr\") ? t = i.selection.setAfter(n.get(0), !1) : n.next().is(\"hr\") ? t = i.selection.setBefore(n.get(0), !1) : i.selection.setAfter(n.get(0), !1) || i.selection.setBefore(n.get(0), !1), t || void 0 === t || (e = a(e = \"\".concat(xt.MARKERS, \"
    \")), n.after(e)), i.selection.restore();\n },\n clearFormatting: function clearFormatting() {\n i.format.remove();\n },\n selectAll: function selectAll() {\n i.doc.execCommand(\"selectAll\", !1, !1);\n },\n moreText: function moreText(e) {\n t(e);\n },\n moreParagraph: function moreParagraph(e) {\n t(e);\n },\n moreRich: function moreRich(e) {\n t(e);\n },\n moreMisc: function moreMisc(e) {\n t(e);\n }\n };\n\n function t(e) {\n !function n(e) {\n i.helpers.isMobile() && i.opts.toolbarInline && i.events.disableBlur();\n var t = i.$tb.find('.fr-more-toolbar[data-name=\"'.concat(e.attr(\"data-group-name\"), '\"]'));\n i.$tb.find(\".fr-open\").not(e).removeClass(\"fr-open\"), e.toggleClass(\"fr-open\"), i.$tb.find(\".fr-more-toolbar\").removeClass(\"fr-overflow-visible\"), i.$tb.find(\".fr-expanded\").not(t).length ? (i.$tb.find(\".fr-expanded\").toggleClass(\"fr-expanded\"), t.toggleClass(\"fr-expanded\")) : (t.toggleClass(\"fr-expanded\"), i.$box.toggleClass(\"fr-toolbar-open\"), i.$tb.toggleClass(\"fr-toolbar-open\"));\n }(i.$tb.find(\"[data-cmd=\".concat(e, \"]\"))), i.toolbar.setMoreToolbarsHeight();\n }\n\n function n(e, t) {\n if (!1 !== i.events.trigger(\"commands.before\", s.merge([e], t || []))) {\n var n = xt.COMMANDS[e] && xt.COMMANDS[e].callback || o[e],\n r = !0,\n a = !1;\n xt.COMMANDS[e] && (\"undefined\" != typeof xt.COMMANDS[e].focus && (r = xt.COMMANDS[e].focus), \"undefined\" != typeof xt.COMMANDS[e].accessibilityFocus && (a = xt.COMMANDS[e].accessibilityFocus)), (!i.core.hasFocus() && r && !i.popups.areVisible() || !i.core.hasFocus() && a && i.accessibility.hasFocus()) && i.events.focus(!0), xt.COMMANDS[e] && !1 !== xt.COMMANDS[e].undo && (i.$el.find(\".fr-marker\").length && (i.events.disableBlur(), i.selection.restore()), i.undo.saveStep()), n && n.apply(i, s.merge([e], t || [])), i.events.trigger(\"commands.after\", s.merge([e], t || [])), xt.COMMANDS[e] && !1 !== xt.COMMANDS[e].undo && i.undo.saveStep();\n }\n }\n\n function e(e, t) {\n i.format.toggle(t);\n }\n\n function r(e) {\n i.selection.save(), i.html.wrap(!0, !0, !0, !0), i.selection.restore();\n\n for (var t = i.selection.blocks(), n = 0; n < t.length; n++) {\n if (\"LI\" !== t[n].tagName || \"LI\" !== t[n].parentNode.tagName) {\n var r = s(t[n]);\n \"LI\" != t[n].tagName && \"LI\" == t[n].parentNode.tagName && (r = s(t[n].parentNode));\n var a = \"rtl\" === i.opts.direction || \"rtl\" === r.css(\"direction\") ? \"margin-right\" : \"margin-left\",\n o = i.helpers.getPX(r.css(a));\n if (r.width() < 2 * i.opts.indentMargin && 0 < e) continue;\n \"UL\" != t[n].parentNode.tagName && \"OL\" != t[n].parentNode.tagName && \"LI\" != t[n].parentNode.tagName && r.css(a, Math.max(o + e * i.opts.indentMargin, 0) || \"\"), r.removeClass(\"fr-temp-div\");\n }\n }\n\n i.selection.save(), i.html.unwrap(), i.selection.restore();\n }\n\n function l(e) {\n return function () {\n n(e);\n };\n }\n\n var c = {};\n\n for (var d in o) {\n Object.prototype.hasOwnProperty.call(o, d) && (c[d] = l(d));\n }\n\n return Object.assign(c, {\n exec: n,\n _init: function f() {\n i.events.on(\"keydown\", function (e) {\n var t = i.selection.element();\n if (t && \"HR\" === t.tagName && !i.keys.isArrow(e.which)) return e.preventDefault(), !1;\n }), i.events.on(\"keyup\", function (e) {\n var t = i.selection.element();\n if (t && \"HR\" === t.tagName) if (e.which === xt.KEYCODE.ARROW_LEFT || e.which === xt.KEYCODE.ARROW_UP) {\n if (t.previousSibling) return i.node.isBlock(t.previousSibling) ? i.selection.setAtEnd(t.previousSibling) : s(t).before(xt.MARKERS), i.selection.restore(), !1;\n } else if ((e.which === xt.KEYCODE.ARROW_RIGHT || e.which === xt.KEYCODE.ARROW_DOWN) && t.nextSibling) return i.node.isBlock(t.nextSibling) ? i.selection.setAtStart(t.nextSibling) : s(t).after(xt.MARKERS), i.selection.restore(), !1;\n }), i.events.on(\"mousedown\", function (e) {\n if (e.target && \"HR\" === e.target.tagName) return e.preventDefault(), e.stopPropagation(), !1;\n }), i.events.on(\"mouseup\", function () {\n var e = i.selection.element();\n e === i.selection.endElement() && e && \"HR\" === e.tagName && (e.nextSibling && (i.node.isBlock(e.nextSibling) ? i.selection.setAtStart(e.nextSibling) : s(e).after(xt.MARKERS)), i.selection.restore());\n });\n }\n });\n }, xt.MODULES.cursorLists = function (g) {\n var m = g.$;\n\n function v(e) {\n for (var t = e; \"LI\" !== t.tagName;) {\n t = t.parentNode;\n }\n\n return t;\n }\n\n function b(e) {\n for (var t = e; !g.node.isList(t);) {\n t = t.parentNode;\n }\n\n return t;\n }\n\n return {\n _startEnter: function C(e) {\n var t,\n n = v(e),\n r = n.nextSibling,\n a = n.previousSibling,\n o = g.html.defaultTag();\n\n if (g.node.isEmpty(n, !0) && r) {\n for (var i = \"\", s = \"\", l = e.parentNode; !g.node.isList(l) && l.parentNode && (\"LI\" !== l.parentNode.tagName || l.parentNode === n);) {\n i = g.node.openTagString(l) + i, s += g.node.closeTagString(l), l = l.parentNode;\n }\n\n i = g.node.openTagString(l) + i, s += g.node.closeTagString(l);\n var c = \"\";\n\n for (c = l.parentNode && \"LI\" === l.parentNode.tagName ? \"\".concat(s, \"
  • \").concat(xt.MARKERS, \"
    \").concat(i) : o ? \"\".concat(s, \"<\").concat(o, \">\").concat(xt.MARKERS, \"
    \").concat(i) : \"\".concat(s + xt.MARKERS, \"
    \").concat(i); [\"UL\", \"OL\"].indexOf(l.tagName) < 0 || l.parentNode && \"LI\" === l.parentNode.tagName;) {\n l = l.parentNode;\n }\n\n m(n).replaceWith('');\n var d = g.node.openTagString(l) + m(l).html() + g.node.closeTagString(l);\n d = d.replace(/<\\/span>/g, c), m(l).replaceWith(d), g.$el.find(\"li:empty\").remove();\n } else if (a && r || !g.node.isEmpty(n, !0)) {\n for (var f = \"
    \", p = e.parentNode; p && \"LI\" !== p.tagName;) {\n f = g.node.openTagString(p) + f + g.node.closeTagString(p), p = p.parentNode;\n }\n\n m(n).before(\"
  • \".concat(f, \"
  • \")), m(e).remove();\n } else if (a) {\n t = b(n);\n\n for (var u = \"\".concat(xt.MARKERS, \"
    \"), h = e.parentNode; h && \"LI\" !== h.tagName;) {\n u = g.node.openTagString(h) + u + g.node.closeTagString(h), h = h.parentNode;\n }\n\n t.parentNode && \"LI\" === t.parentNode.tagName ? m(t.parentNode).after(\"
  • \".concat(u, \"
  • \")) : o ? m(t).after(\"<\".concat(o, \">\").concat(u, \"\")) : m(t).after(u), m(n).remove();\n } else (t = b(n)).parentNode && \"LI\" === t.parentNode.tagName ? r ? m(t.parentNode).before(\"\".concat(g.node.openTagString(n) + xt.MARKERS, \"
    \")) : m(t.parentNode).after(\"\".concat(g.node.openTagString(n) + xt.MARKERS, \"
    \")) : o ? m(t).before(\"<\".concat(o, \">\").concat(xt.MARKERS, \"
    \")) : m(t).before(\"\".concat(xt.MARKERS, \"
    \")), m(n).remove();\n },\n _middleEnter: function c(e) {\n for (var t = v(e), n = \"\", r = e, a = \"\", o = \"\", i = !1; r !== t;) {\n var s = \"A\" === (r = r.parentNode).tagName && g.cursor.isAtEnd(e, r) ? \"fr-to-remove\" : \"\";\n i || r == t || g.node.isBlock(r) || (i = !0, a += xt.INVISIBLE_SPACE), a = g.node.openTagString(m(r).clone().addClass(s).get(0)) + a, o = g.node.closeTagString(r) + o;\n }\n\n n = o + n + a + xt.MARKERS + (g.opts.keepFormatOnDelete ? xt.INVISIBLE_SPACE : \"\"), m(e).replaceWith('');\n var l = g.node.openTagString(t) + m(t).html() + g.node.closeTagString(t);\n l = l.replace(/<\\/span>/g, n), m(t).replaceWith(l);\n },\n _endEnter: function l(e) {\n for (var t = v(e), n = xt.MARKERS, r = \"\", a = e, o = !1; a !== t;) {\n if (!(a = a.parentNode).classList.contains(\"fr-img-space-wrap\") && !a.classList.contains(\"fr-img-space-wrap2\")) {\n var i = \"A\" === a.tagName && g.cursor.isAtEnd(e, a) ? \"fr-to-remove\" : \"\";\n o || a === t || g.node.isBlock(a) || (o = !0, r += xt.INVISIBLE_SPACE), r = g.node.openTagString(m(a).clone().addClass(i).get(0)) + r, n += g.node.closeTagString(a);\n }\n }\n\n var s = r + n;\n m(e).remove(), m(t).after(s);\n },\n _backspace: function d(e) {\n var t = v(e),\n n = t.previousSibling;\n\n if (n) {\n n = m(n).find(g.html.blockTagsQuery()).get(-1) || n, m(e).replaceWith(xt.MARKERS);\n var r = g.node.contents(n);\n r.length && \"BR\" === r[r.length - 1].tagName && m(r[r.length - 1]).remove(), m(t).find(g.html.blockTagsQuery()).not(\"ol, ul, table\").each(function () {\n this.parentNode === t && m(this).replaceWith(m(this).html() + (g.node.isEmpty(this) ? \"\" : \"
    \"));\n });\n\n for (var a, o = g.node.contents(t)[0]; o && !g.node.isList(o);) {\n a = o.nextSibling, m(n).append(o), o = a;\n }\n\n for (n = t.previousSibling; o;) {\n a = o.nextSibling, m(n).append(o), o = a;\n }\n\n 1 < (r = g.node.contents(n)).length && \"BR\" === r[r.length - 1].tagName && m(r[r.length - 1]).remove(), m(t).remove();\n } else {\n var i = b(t);\n\n if (m(e).replaceWith(xt.MARKERS), i.parentNode && \"LI\" === i.parentNode.tagName) {\n var s = i.previousSibling;\n g.node.isBlock(s) ? (m(t).find(g.html.blockTagsQuery()).not(\"ol, ul, table\").each(function () {\n this.parentNode === t && m(this).replaceWith(m(this).html() + (g.node.isEmpty(this) ? \"\" : \"
    \"));\n }), m(s).append(m(t).html())) : m(i).before(m(t).html());\n } else {\n var l = g.html.defaultTag();\n l && 0 === m(t).find(g.html.blockTagsQuery()).length ? m(i).before(\"<\".concat(l, \">\").concat(m(t).html(), \"\")) : m(i).before(m(t).html());\n }\n\n m(t).remove(), g.html.wrap(), 0 === m(i).find(\"li\").length && m(i).remove();\n }\n },\n _del: function f(e) {\n var t,\n n = v(e),\n r = n.nextSibling;\n\n if (r) {\n (t = g.node.contents(r)).length && \"BR\" === t[0].tagName && m(t[0]).remove(), m(r).find(g.html.blockTagsQuery()).not(\"ol, ul, table\").each(function () {\n this.parentNode === r && m(this).replaceWith(m(this).html() + (g.node.isEmpty(this) ? \"\" : \"
    \"));\n });\n\n for (var a, o = e, i = g.node.contents(r)[0]; i && !g.node.isList(i);) {\n a = i.nextSibling, m(o).after(i), o = i, i = a;\n }\n\n for (; i;) {\n a = i.nextSibling, m(n).append(i), i = a;\n }\n\n m(e).replaceWith(xt.MARKERS), m(r).remove();\n } else {\n for (var s = n; !s.nextSibling && s !== g.el;) {\n s = s.parentNode;\n }\n\n if (s === g.el) return !1;\n if (s = s.nextSibling, g.node.isBlock(s)) xt.NO_DELETE_TAGS.indexOf(s.tagName) < 0 && (m(e).replaceWith(xt.MARKERS), (t = g.node.contents(n)).length && \"BR\" === t[t.length - 1].tagName && m(t[t.length - 1]).remove(), m(n).append(m(s).html()), m(s).remove());else {\n for ((t = g.node.contents(n)).length && \"BR\" === t[t.length - 1].tagName && m(t[t.length - 1]).remove(), m(e).replaceWith(xt.MARKERS); s && !g.node.isBlock(s) && \"BR\" !== s.tagName;) {\n m(n).append(m(s)), s = s.nextSibling;\n }\n\n m(s).remove();\n }\n }\n }\n };\n }, xt.NO_DELETE_TAGS = [\"TH\", \"TD\", \"TR\", \"TABLE\", \"FORM\"], xt.SIMPLE_ENTER_TAGS = [\"TH\", \"TD\", \"LI\", \"DL\", \"DT\", \"FORM\"], xt.MODULES.cursor = function (h) {\n var g = h.$;\n\n function d(e) {\n return !!e && (!!h.node.isBlock(e) || (e.nextSibling && e.nextSibling.nodeType === Node.TEXT_NODE && 0 === e.nextSibling.textContent.replace(/\\u200b/g, \"\").length ? d(e.nextSibling) : !(e.nextSibling && (!e.previousSibling || \"BR\" !== e.nextSibling.tagName || e.nextSibling.nextSibling)) && d(e.parentNode)));\n }\n\n function f(e) {\n return !!e && (!!h.node.isBlock(e) || (e.previousSibling && e.previousSibling.nodeType === Node.TEXT_NODE && 0 === e.previousSibling.textContent.replace(/\\u200b/g, \"\").length ? f(e.previousSibling) : !e.previousSibling && (!(e.previousSibling || !h.node.hasClass(e.parentNode, \"fr-inner\")) || f(e.parentNode))));\n }\n\n function u(e, t) {\n return !!e && e !== h.$wp.get(0) && (e.previousSibling && e.previousSibling.nodeType === Node.TEXT_NODE && 0 === e.previousSibling.textContent.replace(/\\u200b/g, \"\").length ? u(e.previousSibling, t) : !e.previousSibling && (e.parentNode === t || u(e.parentNode, t)));\n }\n\n function m(e, t) {\n return !!e && e !== h.$wp.get(0) && (e.nextSibling && e.nextSibling.nodeType === Node.TEXT_NODE && 0 === e.nextSibling.textContent.replace(/\\u200b/g, \"\").length ? m(e.nextSibling, t) : !(e.nextSibling && (!e.previousSibling || \"BR\" !== e.nextSibling.tagName || e.nextSibling.nextSibling)) && (e.parentNode === t || m(e.parentNode, t)));\n }\n\n function p(e) {\n return 0 < g(e).parentsUntil(h.$el, \"LI\").length && 0 === g(e).parentsUntil(\"LI\", \"TABLE\").length;\n }\n\n function v(e, t) {\n var n = new RegExp(\"\".concat(t ? \"^\" : \"\", \"(([\\\\uD83C-\\\\uDBFF\\\\uDC00-\\\\uDFFF]+\\\\u200D)*[\\\\uD83C-\\\\uDBFF\\\\uDC00-\\\\uDFFF]{2})\").concat(t ? \"\" : \"$\"), \"i\"),\n r = e.match(n);\n return r ? r[0].length : 1;\n }\n\n function b(e) {\n for (var t, n = e; !n.previousSibling;) {\n if (n = n.parentNode, h.node.isElement(n)) return !1;\n }\n\n n = n.previousSibling;\n var r = h.opts.htmlAllowedEmptyTags,\n a = n.tagName && n.tagName.toLowerCase();\n\n if ((!h.node.isBlock(n) || n.lastChild && a && 0 <= r.indexOf(a)) && h.node.isEditable(n)) {\n for (t = h.node.contents(n); n.nodeType !== Node.TEXT_NODE && !h.node.isDeletable(n) && t.length && h.node.isEditable(n);) {\n n = t[t.length - 1], t = h.node.contents(n);\n }\n\n if (n.nodeType === Node.TEXT_NODE) {\n var o = n.textContent,\n i = o.length;\n if (o.length && \"\\n\" === o[o.length - 1]) return n.textContent = o.substring(0, i - 2), 0 === n.textContent.length && n.parentNode.removeChild(n), b(e);\n if (h.opts.tabSpaces && o.length >= h.opts.tabSpaces) 0 === o.substr(o.length - h.opts.tabSpaces, o.length - 1).replace(/ /g, \"\").replace(new RegExp(xt.UNICODE_NBSP, \"g\"), \"\").length && (i = o.length - h.opts.tabSpaces + 1);\n n.textContent = o.substring(0, i - v(o)), h.opts.htmlUntouched && !e.nextSibling && n.textContent.length && \" \" === n.textContent[n.textContent.length - 1] && (n.textContent = n.textContent.substring(0, n.textContent.length - 1) + xt.UNICODE_NBSP);\n var s = o.length !== n.textContent.length;\n if (0 === n.textContent.length && n.previousSibling && \"BR\" === n.previousSibling.tagName && n.previousSibling.remove(), 0 === n.textContent.length) {\n if (s && h.opts.keepFormatOnDelete) g(n).after(xt.INVISIBLE_SPACE + xt.MARKERS);else if (0 !== o.length && h.node.isBlock(n.parentNode)) g(n).after(xt.MARKERS);else if ((2 != n.parentNode.childNodes.length || n.parentNode != e.parentNode) && 1 != n.parentNode.childNodes.length || h.node.isBlock(n.parentNode) || h.node.isElement(n.parentNode) || !h.node.isDeletable(n.parentNode)) {\n for (var l, c = n; !h.node.isElement(n.parentNode) && h.node.isEmpty(n.parentNode) && xt.NO_DELETE_TAGS.indexOf(n.parentNode.tagName) < 0;) {\n if (\"A\" === (n = n.parentNode).tagName) {\n var d = n.childNodes[0];\n\n for (g(n).before(d), l = !0; 0 < d.childNodes.length;) {\n d = d.childNodes[0];\n }\n\n n.parentNode.removeChild(n), n = d;\n break;\n }\n }\n\n l || (n = c), g(n).after(xt.MARKERS), h.node.isElement(n.parentNode) && !e.nextSibling && n.previousSibling && \"BR\" === n.previousSibling.tagName && g(e).after(\"
    \");\n var f = n.parentNode;\n n.parentNode.removeChild(n), h.node.isEmpty(f) && g(f).html(xt.INVISIBLE_SPACE + xt.MARKERS);\n } else g(n.parentNode).after(xt.MARKERS), g(n.parentNode).remove();\n } else g(n).after(xt.MARKERS);\n } else h.node.isDeletable(n) ? (g(n).after(xt.MARKERS), g(n).remove()) : e.nextSibling && \"BR\" === e.nextSibling.tagName && h.node.isVoid(n) && \"BR\" !== n.tagName ? (g(e.nextSibling).remove(), g(e).replaceWith(xt.MARKERS)) : !1 !== h.events.trigger(\"node.remove\", [g(n)]) && (g(n).after(xt.MARKERS), g(n).remove());\n } else if (xt.NO_DELETE_TAGS.indexOf(n.tagName) < 0 && (h.node.isEditable(n) || h.node.isDeletable(n))) {\n if (h.node.isDeletable(n)) g(e).replaceWith(xt.MARKERS), g(n).remove();else if (h.node.isEmpty(n) && !h.node.isList(n)) g(n).remove(), g(e).replaceWith(xt.MARKERS);else {\n for (h.node.isList(n) && (n = g(n).find(\"li\").last().get(0)), (t = h.node.contents(n)) && \"BR\" === t[t.length - 1].tagName && g(t[t.length - 1]).remove(), t = h.node.contents(n); t && h.node.isBlock(t[t.length - 1]);) {\n n = t[t.length - 1], t = h.node.contents(n);\n }\n\n g(n).append(xt.MARKERS);\n\n for (var p = e; !p.previousSibling;) {\n p = p.parentNode;\n }\n\n for (; p && \"BR\" !== p.tagName && !h.node.isBlock(p);) {\n var u = p;\n p = p.nextSibling, g(n).append(u);\n }\n\n p && \"BR\" === p.tagName && g(p).remove(), g(e).remove();\n }\n } else e.nextSibling && \"BR\" === e.nextSibling.tagName && g(e.nextSibling).remove();\n\n return !0;\n }\n\n function o(e) {\n var t = 0 < g(e).parentsUntil(h.$el, \"BLOCKQUOTE\").length,\n n = h.node.deepestParent(e, [], !t);\n\n if (n && \"BLOCKQUOTE\" === n.tagName) {\n var r = h.node.deepestParent(e, [g(e).parentsUntil(h.$el, \"BLOCKQUOTE\").get(0)]);\n r && r.nextSibling && (n = r);\n }\n\n if (null !== n) {\n var a,\n o = n.nextSibling;\n if (h.node.isBlock(n) && (h.node.isEditable(n) || h.node.isDeletable(n)) && o && xt.NO_DELETE_TAGS.indexOf(o.tagName) < 0) if (h.node.isDeletable(o)) g(o).remove(), g(e).replaceWith(xt.MARKERS);else if (h.node.isBlock(o) && h.node.isEditable(o)) {\n if (h.node.isList(o)) {\n if (h.node.isEmpty(n, !0)) g(n).remove(), g(o).find(\"li\").first().prepend(xt.MARKERS);else {\n var i = g(o).find(\"li\").first();\n \"BLOCKQUOTE\" === n.tagName && (a = h.node.contents(n)).length && h.node.isBlock(a[a.length - 1]) && (n = a[a.length - 1]), 0 === i.find(\"ul, ol\").length && (g(e).replaceWith(xt.MARKERS), i.find(h.html.blockTagsQuery()).not(\"ol, ul, table\").each(function () {\n this.parentNode === i.get(0) && g(this).replaceWith(g(this).html() + (h.node.isEmpty(this) ? \"\" : \"
    \"));\n }), g(n).append(h.node.contents(i.get(0))), i.remove(), 0 === g(o).find(\"li\").length && g(o).remove());\n }\n } else {\n if ((a = h.node.contents(o)).length && \"BR\" === a[0].tagName && g(a[0]).remove(), \"BLOCKQUOTE\" !== o.tagName && \"BLOCKQUOTE\" === n.tagName) for (a = h.node.contents(n); a.length && h.node.isBlock(a[a.length - 1]);) {\n n = a[a.length - 1], a = h.node.contents(n);\n } else if (\"BLOCKQUOTE\" === o.tagName && \"BLOCKQUOTE\" !== n.tagName) for (a = h.node.contents(o); a.length && h.node.isBlock(a[0]);) {\n o = a[0], a = h.node.contents(o);\n }\n g(e).replaceWith(xt.MARKERS), g(n).append(o.innerHTML), g(o).remove();\n }\n } else {\n for (g(e).replaceWith(xt.MARKERS); o && \"BR\" !== o.tagName && !h.node.isBlock(o) && h.node.isEditable(o);) {\n var s = o;\n o = o.nextSibling, g(n).append(s);\n }\n\n o && \"BR\" === o.tagName && h.node.isEditable(o) && g(o).remove();\n }\n }\n }\n\n function n(e) {\n for (var t, n = e; !n.nextSibling;) {\n if (n = n.parentNode, h.node.isElement(n)) return !1;\n }\n\n if (\"BR\" === (n = n.nextSibling).tagName && h.node.isEditable(n)) if (n.nextSibling) {\n if (h.node.isBlock(n.nextSibling) && h.node.isEditable(n.nextSibling)) {\n if (!(xt.NO_DELETE_TAGS.indexOf(n.nextSibling.tagName) < 0)) return void g(n).remove();\n n = n.nextSibling, g(n.previousSibling).remove();\n }\n } else if (d(n)) {\n if (p(e)) h.cursorLists._del(e);else h.node.deepestParent(n) && ((!h.node.isEmpty(h.node.blockParent(n)) || (h.node.blockParent(n).nextSibling && xt.NO_DELETE_TAGS.indexOf(h.node.blockParent(n).nextSibling.tagName)) < 0) && g(n).remove(), o(e));\n return;\n }\n\n if (!h.node.isBlock(n) && h.node.isEditable(n)) {\n for (t = h.node.contents(n); n.nodeType !== Node.TEXT_NODE && t.length && !h.node.isDeletable(n) && h.node.isEditable(n);) {\n n = t[0], t = h.node.contents(n);\n }\n\n n.nodeType === Node.TEXT_NODE ? (g(n).before(xt.MARKERS), n.textContent.length && (n.textContent = n.textContent.substring(v(n.textContent, !0), n.textContent.length))) : h.node.isDeletable(n) ? (g(n).before(xt.MARKERS), g(n).remove()) : !1 !== h.events.trigger(\"node.remove\", [g(n)]) && (g(n).before(xt.MARKERS), g(n).remove()), g(e).remove();\n } else if (xt.NO_DELETE_TAGS.indexOf(n.tagName) < 0 && (h.node.isEditable(n) || h.node.isDeletable(n))) if (h.node.isDeletable(n)) g(e).replaceWith(xt.MARKERS), g(n).remove();else if (h.node.isList(n)) e.previousSibling ? (g(n).find(\"li\").first().prepend(e), h.cursorLists._backspace(e)) : (g(n).find(\"li\").first().prepend(xt.MARKERS), g(e).remove());else if ((t = h.node.contents(n)) && \"BR\" === t[0].tagName && g(t[0]).remove(), t && \"BLOCKQUOTE\" === n.tagName) {\n var r = t[0];\n\n for (g(e).before(xt.MARKERS); r && \"BR\" !== r.tagName;) {\n var a = r;\n r = r.nextSibling, g(e).before(a);\n }\n\n r && \"BR\" === r.tagName && g(r).remove();\n } else g(e).after(g(n).html()).after(xt.MARKERS), g(n).remove();\n }\n\n function i() {\n for (var e = h.el.querySelectorAll(\"blockquote:empty\"), t = 0; t < e.length; t++) {\n e[t].parentNode.removeChild(e[t]);\n }\n }\n\n function C(e, t, n) {\n var r,\n a = h.node.deepestParent(e, [], !n);\n if (a && \"BLOCKQUOTE\" === a.tagName) return m(e, a) ? (r = h.html.defaultTag(), t ? g(e).replaceWith(\"
    \" + xt.MARKERS) : r ? g(a).after(\"<\".concat(r, \">\").concat(xt.MARKERS, \"
    \")) : g(a).after(\"\".concat(xt.MARKERS, \"
    \")), g(e).remove()) : E(e, t, n), !1;\n if (null === a) (r = h.html.defaultTag()) && h.node.isElement(e.parentNode) ? g(e).replaceWith(\"<\".concat(r, \">\").concat(xt.MARKERS, \"
    \")) : !e.previousSibling || g(e.previousSibling).is(\"br\") || e.nextSibling ? g(e).replaceWith(\"
    \".concat(xt.MARKERS)) : g(e).replaceWith(\"
    \".concat(xt.MARKERS, \"
    \"));else {\n var o = e,\n i = \"\";\n \"PRE\" != a.tagName || e.nextSibling || (t = !0), h.node.isBlock(a) && !t || (i = \"
    \");\n var s,\n l = \"\",\n c = \"\",\n d = \"\",\n f = \"\";\n (r = h.html.defaultTag()) && h.node.isBlock(a) && (d = \"<\".concat(r, \">\"), f = \"\"), a.tagName === r.toUpperCase() && (d = h.node.openTagString(g(a).clone().removeAttr(\"id\").get(0))));\n\n do {\n if (o = o.parentNode, !t || o !== a || t && !h.node.isBlock(a)) if (l += h.node.closeTagString(o), o === a && h.node.isBlock(a)) c = d + c;else {\n var p = (\"A\" === o.tagName || h.node.hasClass(o, \"fa\")) && m(e, o) ? \"fr-to-remove\" : \"\";\n c = h.node.openTagString(g(o).clone().addClass(p).get(0)) + c;\n }\n } while (o !== a);\n\n i = l + i + c + (e.parentNode === a && h.node.isBlock(a) ? \"\" : xt.INVISIBLE_SPACE) + xt.MARKERS, h.node.isBlock(a) && !g(a).find(\"*\").last().is(\"br\") && g(a).append(\"
    \"), g(e).after(''), g(e).remove(), a.nextSibling && !h.node.isBlock(a.nextSibling) || h.node.isBlock(a) || g(a).after(\"
    \"), s = (s = !t && h.node.isBlock(a) ? h.node.openTagString(a) + g(a).html() + f : h.node.openTagString(a) + g(a).html() + h.node.closeTagString(a)).replace(/<\\/span>/g, i), g(a).replaceWith(s);\n }\n }\n\n function E(e, t, n) {\n var r = h.node.deepestParent(e, [], !n);\n if (null === r) h.html.defaultTag() && e.parentNode === h.el ? g(e).replaceWith(\"<\".concat(h.html.defaultTag(), \">\").concat(xt.MARKERS, \"
    \")) : (e.nextSibling && !h.node.isBlock(e.nextSibling) || g(e).after(\"
    \"), g(e).replaceWith(\"
    \".concat(xt.MARKERS)));else if (e.previousSibling && \"IMG\" == e.previousSibling.tagName || e.nextSibling && \"IMG\" == e.nextSibling.tagName) g(e).replaceWith(\"<\" + h.html.defaultTag() + \">\" + xt.MARKERS + \"
    \");else {\n var a = e,\n o = \"\";\n \"PRE\" === r.tagName && (t = !0), h.node.isBlock(r) && !t || (o = \"
    \");\n var i = \"\",\n s = \"\";\n\n do {\n var l = a;\n if (a = a.parentNode, \"BLOCKQUOTE\" === r.tagName && h.node.isEmpty(l) && !h.node.hasClass(l, \"fr-marker\") && g(l).contains(e) && g(l).after(e), \"BLOCKQUOTE\" !== r.tagName || !m(e, a) && !u(e, a)) if (!t || a !== r || t && !h.node.isBlock(r)) {\n i += h.node.closeTagString(a);\n var c = \"A\" == a.tagName && m(e, a) || h.node.hasClass(a, \"fa\") ? \"fr-to-remove\" : \"\";\n s = h.node.openTagString(g(a).clone().addClass(c).removeAttr(\"id\").get(0)) + s, a === r && \"DIV\" === r.tagName && (i = \"
    \", s = \"\");\n } else \"BLOCKQUOTE\" == r.tagName && t && (s = i = \"\");\n } while (a !== r);\n\n var d = r === e.parentNode && h.node.isBlock(r) || e.nextSibling;\n if (\"BLOCKQUOTE\" === r.tagName) {\n if (e.previousSibling && h.node.isBlock(e.previousSibling) && e.nextSibling && \"BR\" === e.nextSibling.tagName && (g(e.nextSibling).after(e), e.nextSibling && \"BR\" === e.nextSibling.tagName && g(e.nextSibling).remove()), t) o = i + o + xt.MARKERS + s;else {\n var f = h.html.defaultTag();\n o = \"\".concat(i + o + (f ? \"<\".concat(f, \">\") : \"\") + xt.MARKERS, \"
    \").concat(f ? \"\") : \"\").concat(s);\n }\n } else o = i + o + s + (d ? \"\" : xt.INVISIBLE_SPACE) + xt.MARKERS;\n g(e).replaceWith('');\n var p = h.node.openTagString(r) + g(r).html() + h.node.closeTagString(r);\n p = p.replace(/<\\/span>/g, o), g(r).replaceWith(p);\n }\n }\n\n return {\n enter: function y(e) {\n var t = h.markers.insert();\n if (!t) return !0;\n\n for (var n = t.parentNode; n && !h.node.isElement(n);) {\n if (\"false\" === n.getAttribute(\"contenteditable\")) return g(t).replaceWith(xt.MARKERS), h.selection.restore(), !1;\n if (\"true\" === n.getAttribute(\"contenteditable\")) break;\n n = n.parentNode;\n }\n\n h.el.normalize();\n var r = !1;\n 0 < g(t).parentsUntil(h.$el, \"BLOCKQUOTE\").length && (r = !0), g(t).parentsUntil(h.$el, \"TD, TH\").length && (r = !1), d(t) ? !p(t) || e || r ? C(t, e, r) : h.cursorLists._endEnter(t) : f(t) ? !p(t) || e || r ? function l(e, t, n) {\n var r,\n a = h.node.deepestParent(e, [], !n);\n if (a && \"TABLE\" === a.tagName) return g(a).find(\"td, th\").first().prepend(e), l(e, t, n);\n if (a && \"BLOCKQUOTE\" === a.tagName) if (u(e, a)) {\n if (!t) return (r = h.html.defaultTag()) ? g(a).before(\"<\".concat(r, \">\").concat(xt.MARKERS, \"
    \")) : g(a).before(\"\".concat(xt.MARKERS, \"
    \")), g(e).remove(), !1;\n } else m(e, a) ? C(e, t, !0) : E(e, t, !0);\n if (null === a) (r = h.html.defaultTag()) && h.node.isElement(e.parentNode) ? g(e).replaceWith(\"<\".concat(r, \">\").concat(xt.MARKERS, \"
    \")) : g(e).replaceWith(\"
    \".concat(xt.MARKERS));else {\n if (r = h.html.defaultTag(), h.node.isBlock(a)) {\n if (\"PRE\" === a.tagName && (t = !0), t) g(e).remove(), g(a).prepend(\"
    \".concat(xt.MARKERS));else if (e.nextSibling && \"IMG\" == e.nextSibling.tagName || e.nextSibling && e.nextSibling.nextElementSibling && \"IMG\" == e.nextSibling.nextElementSibling) g(e).replaceWith(\"<\" + h.html.defaultTag() + \">\" + xt.MARKERS + \"
    \");else {\n if (h.node.isEmpty(a, !0)) return C(e, t, n);\n if (h.opts.keepFormatOnDelete || \"DIV\" === a.tagName || \"div\" === h.html.defaultTag()) {\n if (!h.opts.keepFormatOnDelete && \"DIV\" === a.tagName || \"div\" === h.html.defaultTag()) g(a).before(\"<\" + h.html.defaultTag() + \">
    \");else {\n for (var o = e, i = xt.INVISIBLE_SPACE; o !== a && !h.node.isElement(o);) {\n o = o.parentNode, i = h.node.openTagString(o) + i + h.node.closeTagString(o);\n }\n\n g(a).before(i);\n }\n } else g(a).before(\"\".concat(h.node.openTagString(g(a).clone().removeAttr(\"id\").get(0)), \"
    \").concat(h.node.closeTagString(a)));\n }\n } else g(a).before(\"
    \");\n g(e).remove();\n }\n }(t, e, r) : h.cursorLists._startEnter(t) : !p(t) || e || r ? E(t, e, r) : h.cursorLists._middleEnter(t), function c() {\n h.$el.find(\".fr-to-remove\").each(function () {\n for (var e = h.node.contents(this), t = 0; t < e.length; t++) {\n e[t].nodeType === Node.TEXT_NODE && (e[t].textContent = e[t].textContent.replace(/\\u200B/g, \"\"));\n }\n\n g(this).replaceWith(this.innerHTML);\n });\n }(), h.html.fillEmptyBlocks(!0), h.opts.htmlUntouched || (h.html.cleanEmptyTags(), h.clean.lists(), h.spaces.normalizeAroundCursor()), h.selection.restore();\n var a = h.o_win.innerHeight;\n\n if (h.$oel[0].offsetHeight > a) {\n var o = h.helpers.scrollTop(),\n i = h.selection.blocks();\n\n if (i && 0 < i.length && i[0].offsetTop) {\n var s = i[0].offsetTop;\n a - 100 < s - o ? h.o_win.scroll(0, s - a + 120) : s - o < 0 && h.o_win.scroll(0, s - 20);\n }\n }\n },\n backspace: function s() {\n var e = !1,\n t = h.markers.insert();\n if (!t) return !0;\n\n for (var n = t.parentNode; n && !h.node.isElement(n);) {\n if (\"false\" === n.getAttribute(\"contenteditable\")) return g(t).replaceWith(xt.MARKERS), h.selection.restore(), !1;\n if (n.innerText.length && \"true\" === n.getAttribute(\"contenteditable\")) break;\n n = n.parentNode;\n }\n\n h.el.normalize();\n var r = t.previousSibling;\n\n if (r) {\n var a = r.textContent;\n a && a.length && 8203 === a.charCodeAt(a.length - 1) && (1 === a.length ? g(r).remove() : r.textContent = r.textContent.substr(0, a.length - v(a)));\n }\n\n return d(t) ? p(t) && u(t, g(t).parents(\"li\").first().get(0)) ? h.cursorLists._backspace(t) : e = b(t) : f(t) ? p(t) && u(t, g(t).parents(\"li\").first().get(0)) ? h.cursorLists._backspace(t) : function c(e) {\n for (var t = 0 < g(e).parentsUntil(h.$el, \"BLOCKQUOTE\").length, n = h.node.deepestParent(e, [], !t), r = n; n && !n.previousSibling && \"BLOCKQUOTE\" !== n.tagName && n.parentElement !== h.el && !h.node.hasClass(n.parentElement, \"fr-inner\") && xt.SIMPLE_ENTER_TAGS.indexOf(n.parentElement.tagName) < 0;) {\n n = n.parentElement;\n }\n\n if (n && \"BLOCKQUOTE\" === n.tagName) {\n var a = h.node.deepestParent(e, [g(e).parentsUntil(h.$el, \"BLOCKQUOTE\").get(0)]);\n a && a.previousSibling && (r = n = a);\n }\n\n if (null !== n) {\n var o,\n i = n.previousSibling;\n if (h.node.isBlock(n) && h.node.isEditable(n)) if (i && xt.NO_DELETE_TAGS.indexOf(i.tagName) < 0) {\n if (h.node.isDeletable(i)) g(i).remove(), g(e).replaceWith(xt.MARKERS);else if (h.node.isEditable(i)) if (h.node.isBlock(i)) {\n if (h.node.isEmpty(i) && !h.node.isList(i)) g(i).remove(), g(e).after(h.opts.keepFormatOnDelete ? xt.INVISIBLE_SPACE : \"\");else {\n if (h.node.isList(i) && (i = g(i).find(\"li\").last().get(0)), (o = h.node.contents(i)).length && \"BR\" === o[o.length - 1].tagName && g(o[o.length - 1]).remove(), \"BLOCKQUOTE\" === i.tagName && \"BLOCKQUOTE\" !== n.tagName) for (o = h.node.contents(i); o.length && h.node.isBlock(o[o.length - 1]);) {\n i = o[o.length - 1], o = h.node.contents(i);\n } else if (\"BLOCKQUOTE\" !== i.tagName && \"BLOCKQUOTE\" === r.tagName) for (o = h.node.contents(r); o.length && h.node.isBlock(o[0]);) {\n r = o[0], o = h.node.contents(r);\n }\n if (h.node.isEmpty(n)) g(e).remove(), h.selection.setAtEnd(i, !0);else {\n g(e).replaceWith(xt.MARKERS);\n var s = i.childNodes;\n h.node.isBlock(s[s.length - 1]) ? g(s[s.length - 1]).append(r.innerHTML) : g(i).append(r.innerHTML);\n }\n g(r).remove(), h.node.isEmpty(n) && g(n).remove();\n }\n } else g(e).replaceWith(xt.MARKERS), \"BLOCKQUOTE\" === n.tagName && i.nodeType === Node.ELEMENT_NODE ? g(i).remove() : (g(i).after(h.node.isEmpty(n) ? \"\" : g(n).html()), g(n).remove(), \"BR\" === i.tagName && g(i).remove());\n } else if (!i) if (n && \"BLOCKQUOTE\" === n.tagName && 0 === g(n).text().replace(/\\u200B/g, \"\").length) g(n).remove();else {\n var l = n.nextSibling;\n h.node.isEmpty(n) && n.parentNode && h.node.isEditable(n.parentNode) && !l && n.parentNode != h.el && g(n.parentNode).remove();\n }\n }\n }(t) : e = b(t), g(t).remove(), i(), h.html.fillEmptyBlocks(!0), h.opts.htmlUntouched || (h.html.cleanEmptyTags(), h.clean.lists(), h.spaces.normalizeAroundCursor()), h.selection.restore(), e;\n },\n del: function r() {\n var e = h.markers.insert();\n if (!e) return !1;\n if (h.el.normalize(), d(e)) {\n if (p(e)) {\n if (0 === g(e).parents(\"li\").first().find(\"ul, ol\").length) h.cursorLists._del(e);else {\n var t = g(e).parents(\"li\").first().find(\"ul, ol\").first().find(\"li\").first();\n (t = t.find(h.html.blockTagsQuery()).get(-1) || t).prepend(e), h.cursorLists._backspace(e);\n }\n } else o(e);\n } else f(e), n(e);\n g(e).remove(), i(), h.html.fillEmptyBlocks(!0), h.opts.htmlUntouched || (h.html.cleanEmptyTags(), h.clean.lists()), h.spaces.normalizeAroundCursor(), h.selection.restore();\n },\n isAtEnd: m,\n isAtStart: u\n };\n }, xt.MODULES.data = function (f) {\n function p(e) {\n return e;\n }\n\n function c(e) {\n for (var t = e.toString(), n = 0, r = 0; r < t.length; r++) {\n n += parseInt(t.charAt(r), 10);\n }\n\n return 10 < n ? n % 9 + 1 : n;\n }\n\n function d(e, t, n) {\n for (var r = Math.abs(n); 0 < r--;) {\n e -= t;\n }\n\n return n < 0 && (e += 123), e;\n }\n\n function u(e) {\n return e && \"block\" !== e.css(\"display\") ? (e.remove(), !0) : e && 0 === f.helpers.getPX(e.css(\"height\")) ? (e.remove(), !0) : !(!e || \"absolute\" !== e.css(\"position\") && \"fixed\" !== e.css(\"position\") || (e.remove(), 0));\n }\n\n function h(e) {\n return e && 0 === f.$box.find(e).length;\n }\n\n function g() {\n if (10 < e && (f[p(w(\"0ppecjvc==\"))](), setTimeout(function () {\n E.FE = null;\n }, 10)), !f.$box) return !1;\n f.$wp.prepend(w(p(w(L)))), b = f.$wp.find(\"> div\").first(), C = b.find(\"> a\"), \"rtl\" === f.opts.direction && b.css(\"left\", \"auto\").css(\"right\", 0).attr(\"direction\", \"rtl\"), e++;\n }\n\n function m(e) {\n for (var t = [w(\"9qqG-7amjlwq==\"), w(\"KA3B3C2A6D1D5H5H1A3==\"), w(\"3B9B3B5F3C4G3E3==\"), w(\"QzbzvxyB2yA-9m==\"), w(\"ji1kacwmgG5bc==\"), w(\"nmA-13aogi1A3c1jd==\"), w(\"BA9ggq==\"), w(\"emznbjbH3fij==\"), w(\"tkC-22d1qC-13sD1wzF-7==\"), w(\"tA3jjf==\"), w(\"1D1brkm==\")], n = 0; n < t.length; n++) {\n if (String.prototype.endsWith || (String.prototype.endsWith = function (e, t) {\n return (void 0 === t || t > this.length) && (t = this.length), this.substring(t - e.length, t) === e;\n }), e.endsWith(t[n])) return !0;\n }\n\n return !1;\n }\n\n function v() {\n var e = w(p(n)),\n t = w(p(\"tzgatD-13eD1dtdrvmF3c1nrC-7saQcdav==\")).split(\".\");\n\n try {\n return window.parent.document.querySelector(e) && window[t[1]][t[2]];\n } catch (e) {\n return !1;\n }\n }\n\n var b,\n C,\n E = f.$,\n y = \"sC-7OB2fwhVC4vsG-7ohPA4ZD4D-8f1J3stzB-11bFE2FC1A3NB2IF1HE1TH4WB8eB-11zVG2F3I3yYB5ZG4CB2DA15CC5AD3F1A1KG1oLA10B1A6wQF1H3vgale2C4F4XA2qc2A5D5B3pepmriKB3OE1HD1fUC10pjD-11E-11TB4YJ3bC-16zE-11yc1B2CE2BC3jhjKC1pdA-21OA6C1D5B-8vF4QA11pD6sqf1C3lldA-16BD4A2H3qoEA7bB-16rmNH5H1F1vSB7RE2A3TH4YC5A5b1A4d1B3whepyAC3AA2zknC3mbgf1SC4WH4PD8TC5ZB2C3H3jb2A5ZA2EF2aoFC5qqHC4B1H1zeGA7UA5RF4TA29TA6ZC4d1C3hyWA10A3rBB2E3decorationRD3QC10UD3E6E6ZD2F3F3fme2E5uxxrEC9C3E4fB-11azhHB1LD7D6VF4VVTPC6b1C4TYG3qzDD6B3B3AH4I2H2kxbHE1JD1yihfd1QD6WB1D4mhrc1B5rvFG3A14A7cDA2OC1AA1JB5zC-16KA6WB4C-8wvlTB5A5lkZB2C2C7zynBD2D2bI-7C-21d1HE2cubyvPC8A6VB3aroxxZE4C4F4e1I2BE1WjdifH1H4A14NA1GB1YG-10tWA3A14A9sVA2C5XH2A29b2A6gsleGG2jaED2D-13fhE1OA8NjwytyTD4e1sc1D-16ZC3B5C-9e1C2FB6EFF5B2C2JH4E1C2tdLE5A3UG4G-7b2D3B4fA-9oh1G3kqvB4AG3ibnjcAC6D2B1cDA9KC2QA6bRC4VA30RB8hYB2A4A-8h1A21A2B2==\",\n T = \"7D4YH4fkhHB3pqDC3H2E1fkMD1IB1NF1D3QD9wB5rxqlh1A8c2B4ZA3FD2AA6FB5EB3jJG4D2J-7aC-21GB6PC5RE4TC11QD6XC4XE3XH3mlvnqjbaOA2OC2BE6A1fmI-7ujwbc1G5f1F3e1C11mXF4owBG3E1yD1E4F1D2D-8B-8C-7yC-22HD1MF5UE4cWA3D8D6a1B2C3H3a3I3sZA4B3A2akfwEB3xHD5D1F1wIC11pA-16xdxtVI2C9A6YC4a1A2F3B2GA6B4C3lsjyJB1eMA1D-11MF5PE4ja1D3D7byrf1C3e1C7D-16lwqAF3H2A1B-21wNE1MA1OG1HB2A-16tSE5UD4RB3icRA4F-10wtwzBB3E1C3CC2DA8LA2LA1EB1kdH-8uVB7decorg1J2B7B6qjrqGI2J1C6ijehIB1hkemC-13hqkrH4H-7QD6XF5XF3HLNAC3CB2aD2CD2KB10B4ycg1A-8KA4H4B11jVB5TC4yqpB-21pd1E4pedzGB6MD5B3ncB-7MA4LD2JB6PD5uH-8TB9C7YD5XD2E3I3jmiDB3zeimhLD8E2F2JC1H-9ivkPC5lG-10SB1D3H3A-21rc1A3d1E3fsdqwfGA2KA1OrC-22LA6D1B4afUB16SC7AitC-8qYA11fsxcajGA15avjNE2A-9h1hDB16B9tPC1C5F5UC1G3B8d2A5d1D4RnHJ3C3JB5D3ucMG1yzD-17hafjC-8VD3yWC6e1YD2H3ZE2C8C5oBA3H3D2vFA4WzJC4C2i1A-65fNB8afWA1H4A26mvkC-13ZB3E3h1A21BC4eFB2GD2AA5ghqND2A2B2==\",\n n = \"MekC-11nB-8tIzpD7pewxvzC6mD-16xerg1==\",\n A = \"lC4B3A3B2B5A1C2E4G1A2==\",\n L = \"sC-7OB2fwhVC4vsG-7ohPA4ZD4D-8f1J3stzB-11bFE2EE1MA2ND1KD1IE4cA-21pSD2D5ve1G3h1A8b1E5ZC3CD2FA16mC5OC5E1hpnG1NA10B1D7hkUD4I-7b2C3C5nXD2E3F3whidEC2EH3GI2mJE2E2bxci1WA10VC7pllSG2F3A7xd1A4ZC3DB2aaeGA2DE4H2E1j1ywD-13FD1A3VE4WA3D8C6wuc1A2hf1B5B7vnrrjA1B9ic1mpbD1oMB1iSB7rWC4RI4G-7upB6jd1A2F3H2EA4FD3kDF4A2moc1anJD1TD4VI4b2C7oeQF4c1E3XC7ZA3C3G3uDB2wGB6D1JC4D1JD4C1hTE6QC5pH4pD3C-22D7c1A3textAA4gdlB2mpozkmhNC1mrxA3yWA5edhg1I2H3B7ozgmvAI3I2B5GD1LD2RSNH1KA1XA5SB4PA3sA9tlmC-9tnf1G3nd1coBH4I2I2JC3C-16LE6A1tnUA3vbwQB1G3f1A20a3A8a1C6pxAB2eniuE1F3kH2lnjB2hB-16XA5PF1G4zwtYA5B-11mzTG2B9pHB3BE2hGH3B3B2cMD5C1F1wzPA8E7VG5H5vD3H-7C8tyvsVF2I1G2A5fE3bg1mgajoyxMA4fhuzSD8aQB2B4g1A20ukb1A4B3F3GG2CujjanIC1ObiB11SD1C5pWC1D4YB8YE5FE-11jXE2F-7jB4CC2G-10uLH4E1C2tA-13yjUH5d1H1A7sWD5E4hmjF-7pykafoGA16hDD4joyD-8OA33B3C2tC7cRE4SA31a1B8d1e2A4F4g1A2A22CC5zwlAC2C1A12==\",\n S = function () {\n for (var e = 0, t = document.domain, n = t.split(\".\"), r = \"_gd\".concat(new Date().getTime()); e < n.length - 1 && -1 === document.cookie.indexOf(\"\".concat(r, \"=\").concat(r));) {\n t = n.slice(-1 - ++e).join(\".\"), document.cookie = \"\".concat(r, \"=\").concat(r, \";domain=\").concat(t, \";\");\n }\n\n return document.cookie = \"\".concat(r, \"=;expires=Thu, 01 Jan 1970 00:00:01 GMT;domain=\").concat(t, \";\"), (t || \"\").replace(/(^\\.*)|(\\.*$)/g, \"\");\n }(),\n w = p(function R(e) {\n if (!e) return e;\n\n for (var t = \"\", n = p(\"charCodeAt\"), r = p(\"fromCharCode\"), a = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\".indexOf(e[0]), o = 1; o < e.length - 2; o++) {\n for (var i = c(++a), s = e[n](o), l = \"\"; /[0-9-]/.test(e[o + 1]);) {\n l += e[++o];\n }\n\n s = d(s, i, l = parseInt(l, 10) || 0), s ^= a - 1 & 31, t += String[r](s);\n }\n\n return t;\n }),\n e = 0;\n\n return {\n _init: function _() {\n var e = f.opts.key || [\"\"],\n t = w(p(\"ziRA1E3B9pA5B-11D-11xg1A3ZB5D1D4B-11ED2EG2pdeoC1clIH4wB-22yQD5uF4YE3E3A9==\"));\n \"string\" == typeof e && (e = [e]);\n\n for (var n, r, a, o = !(f.ul = !0), i = 0, s = 0; s < e.length; s++) {\n var l = (r = e[s], 4 === (a = (w(r) || \"\").split(\"|\")).length && \"V3\" === a[0] ? [a[1], a[3], a[2]] : [null, null, \"\"]),\n c = l[2];\n\n if (c === w(p(w(\"LGnD1KNZf1CPBYCAZB-8F3UDSLLSG1VFf1A3C2==\"))) || 0 <= c.indexOf(S, c.length - S.length) || m(S) || v()) {\n if (null !== (n = l[1]) && !(0 == n.indexOf(\"TRIAL\") ? (n = new Date(n.replace(/TRIAL/, \"\")), new Date(n) < new Date() && (y = T, 1)) : new Date(n) < new Date(w(A))) || !(0 < (S || \"\").length) || m(S) || v()) {\n f.ul = !1;\n break;\n }\n\n o = !0, L = y, i = l[0] || -1;\n }\n }\n\n var d = new Image();\n !0 === f.ul && (g(), d.src = o ? \"\".concat(p(w(t)), \"e=\").concat(i) : \"\".concat(p(w(t)), \"u\")), !0 === f.ul && (f.events.on(\"contentChanged\", function () {\n (function e() {\n return u(b) || u(C) || h(b) || h(C);\n })() && g();\n }), f.events.on(\"html.get\", function (e) {\n return e + w(\"qD2H-9G3ioD-17qA1tE1B-8qI3A4hA-13C-11E2C1njfldD1E6pg1C-8sC3hfbkcD2G3stC-22gqgB3G2B-7vtoA4nweeD1A31A15B9uC-16A1F5dkykdc1B8dE-11bA3F2D3A9gd1E7F2tlI-8H-7vtxB2A5B2C3B2F2B5A6ldbyC4iqC-22D-17E-13mA3D2dywiB3oxlvfC1H4C2TjqbzlnI3ntB4E3qA2zaqsC6D3pmnkoE3C6D5wvuE3bwifdhB6hch1E4xibD-17dmrC1rG-7pntnF6nB-8F1D2A11C8plrkmF2F3MC-16bocqA2WwA-21ayeA1C4d1isC-22rD-13D6DfjpjtC2E6hB2G2G4A-7D2==\");\n })), f.events.on(\"html.set\", function () {\n var e = f.el.querySelector('[data-f-id=\"pbf\"]');\n e && E(e).remove();\n }), f.events.on(\"destroy\", function () {\n b && b.length && b.remove();\n }, !0);\n }\n };\n }, xt.MODULES.edit = function (t) {\n function e() {\n if (t.browser.mozilla) try {\n t.doc.execCommand(\"enableObjectResizing\", !1, \"false\"), t.doc.execCommand(\"enableInlineTableEditing\", !1, \"false\");\n } catch (e) {}\n if (t.browser.msie) try {\n t.doc.body.addEventListener(\"mscontrolselect\", function (e) {\n return e.srcElement.focus(), !1;\n });\n } catch (e) {}\n }\n\n var n = !1;\n\n function r() {\n return n;\n }\n\n return {\n _init: function a() {\n t.events.on(\"focus\", function () {\n r() ? t.edit.off() : t.edit.on();\n });\n },\n on: function o() {\n t.$wp ? (t.$el.attr(\"contenteditable\", !0), t.$el.removeClass(\"fr-disabled\").attr(\"aria-disabled\", !1), e()) : t.$el.is(\"a\") && t.$el.attr(\"contenteditable\", !0), t.events.trigger(\"edit.on\", [], !0), n = !1;\n },\n off: function i() {\n t.events.disableBlur(), t.$wp ? (t.$el.attr(\"contenteditable\", !1), t.$el.addClass(\"fr-disabled\").attr(\"aria-disabled\", !0)) : t.$el.is(\"a\") && t.$el.attr(\"contenteditable\", !1), t.events.trigger(\"edit.off\"), t.events.enableBlur(), n = !0;\n },\n disableDesign: e,\n isDisabled: r\n };\n }, xt.MODULES.format = function (w) {\n var R = w.$;\n\n function m(e, t) {\n var n = \"<\".concat(e);\n\n for (var r in t) {\n Object.prototype.hasOwnProperty.call(t, r) && (n += \" \".concat(r, '=\"').concat(t[r], '\"'));\n }\n\n return n += \">\";\n }\n\n function _(e, t) {\n var n = e;\n\n for (var r in t) {\n Object.prototype.hasOwnProperty.call(t, r) && (n += \"id\" === r ? \"#\".concat(t[r]) : \"class\" === r ? \".\".concat(t[r]) : \"[\".concat(r, '=\"').concat(t[r], '\"]'));\n }\n\n return n;\n }\n\n function x(e, t) {\n return !(!e || e.nodeType !== Node.ELEMENT_NODE) && (e.matches || e.matchesSelector || e.msMatchesSelector || e.mozMatchesSelector || e.webkitMatchesSelector || e.oMatchesSelector).call(e, t);\n }\n\n function v(e, t, n) {\n var r,\n a,\n o,\n i = {\n strong: {\n prop: \"font-weight\",\n val: \"bold\"\n },\n em: {\n prop: \"font-style\",\n val: \"italic\"\n }\n };\n\n if (e) {\n if (w.node.isBlock(e) && e.hasAttribute(\"contenteditable\") && \"false\" === e.getAttribute(\"contenteditable\") || e.parentNode && e.parentNode.hasAttribute(\"contenteditable\") && \"false\" === e.parentNode.getAttribute(\"contenteditable\")) {\n if (e.nextSibling && R(e.nextSibling).hasClass(\"fr-marker\")) return;\n if (e.nextSibling) return void v(e.nextSibling, t, n);\n if (e.parentNode) return void v(e.parentNode, t, n);\n }\n\n for (; e.nodeType === Node.COMMENT_NODE;) {\n e = e.nextSibling;\n }\n\n if (e) {\n if (w.node.isBlock(e) && \"HR\" !== e.tagName) return w.node.hasClass(e.firstChild, \"fr-marker\") ? v(e.firstChild.nextSibling, t, n) : v(e.firstChild, t, n), !1;\n var s = R(w.doc.createElement(t));\n s.attr(n), s.insertBefore(e), (r = b(e)) && (0 <= [\"strong\", \"em\"].indexOf(t) || \"span\" === t && n.hasOwnProperty(\"style\")) && (o = \"span\" === t ? (a = (i = n.style.replace(/;$/, \"\").split(\":\"))[0].trim(), i[1].trim()) : (a = i[t].prop, i[t].val), \"background-color\" !== a && (R(r).css(a, o), function g(e, t) {\n var n,\n r = e.childNodes;\n\n for (n = 0; n < r.length; n++) {\n 0 <= [\"UL\", \"OL\", \"LI\"].indexOf(r[n].tagName) && \"\" === r[n].style[t] && R(r[n]).css(t, \"initial\");\n }\n }(r, a)));\n\n for (var l = e; l && !R(l).hasClass(\"fr-marker\") && 0 === R(l).find(\".fr-marker\").length && \"UL\" !== l.tagName && \"OL\" !== l.tagName;) {\n var c = l;\n if (w.node.isBlock(l) && \"HR\" !== e.tagName) return v(l.firstChild, t, n), !1;\n if (l.tagName && l.hasAttribute(\"contenteditable\") && \"false\" === l.getAttribute(\"contenteditable\")) return void v(l.nextSibling, t, n);\n l = l.nextSibling, s.append(c);\n }\n\n if (l) {\n if (R(l).find(\".fr-marker\").length || \"UL\" === l.tagName || \"OL\" === l.tagName) v(l.firstChild, t, n);else if (w.browser.mozilla && w.node.hasClass(l, \"fr-marker\")) {\n var d,\n f = w.selection.blocks(),\n p = f.length;\n\n for (d = 0; d < p; d++) {\n f[d] != l.parentNode && f[d].childNodes.length && f[d].childNodes[0] != l.parentNode && (l = f[d].childNodes[1] || f[d].childNodes[0], (s = R(m(t, n)).insertBefore(l)).append(l));\n }\n }\n } else {\n for (var u = s.get(0).parentNode; u && !u.nextSibling && !w.node.isElement(u);) {\n u = u.parentNode;\n }\n\n if (u) {\n var h = u.nextSibling;\n h && (w.node.isBlock(h) ? \"HR\" === h.tagName ? v(h.nextSibling, t, n) : v(h.firstChild, t, n) : v(h, t, n));\n }\n }\n\n s.is(\":empty\") && s.remove();\n }\n }\n }\n\n function n(e, t) {\n var n;\n\n if (void 0 === t && (t = {}), t.style && delete t.style, w.selection.isCollapsed()) {\n w.markers.insert(), w.$el.find(\".fr-marker\").replaceWith(m(e, t) + xt.INVISIBLE_SPACE + xt.MARKERS + function i(e) {\n return \"\");\n }(e)), w.selection.restore();\n } else {\n var r;\n w.selection.save(), v(w.$el.find('.fr-marker[data-type=\"true\"]').length && w.$el.find('.fr-marker[data-type=\"true\"]').get(0).nextSibling, e, t);\n\n do {\n for (r = w.$el.find(\"\".concat(_(e, t), \" > \").concat(_(e, t))), n = 0; n < r.length; n++) {\n r[n].outerHTML = r[n].innerHTML;\n }\n } while (r.length);\n\n w.el.normalize();\n var a = w.el.querySelectorAll(\".fr-marker\");\n\n for (n = 0; n < a.length; n++) {\n var o = R(a[n]);\n !0 === o.data(\"type\") ? x(o.get(0).nextSibling, _(e, t)) && o.next().prepend(o) : x(o.get(0).previousSibling, _(e, t)) && o.prev().append(o);\n }\n\n w.selection.restore();\n }\n }\n\n function M(e, t, n, r) {\n if (!r) {\n var a = !1;\n if (!0 === e.data(\"type\")) for (; w.node.isFirstSibling(e.get(0)) && !e.parent().is(w.$el) && !e.parent().is(\"ol\") && !e.parent().is(\"ul\");) {\n e.parent().before(e), a = !0;\n } else if (!1 === e.data(\"type\")) for (; w.node.isLastSibling(e.get(0)) && !e.parent().is(w.$el) && !e.parent().is(\"ol\") && !e.parent().is(\"ul\");) {\n e.parent().after(e), a = !0;\n }\n if (a) return !0;\n }\n\n if (e.parents(t).length || void 0 === t) {\n var o,\n i = \"\",\n s = \"\",\n l = e.parent();\n if (l.is(w.$el) || w.node.isBlock(l.get(0))) return !1;\n\n for (; !(w.node.isBlock(l.parent().get(0)) || void 0 !== t && x(l.get(0), _(t, n)));) {\n i += w.node.closeTagString(l.get(0)), s = w.node.openTagString(l.get(0)) + s, l = l.parent();\n }\n\n var c = e.get(0).outerHTML;\n return e.replaceWith(''), o = l.html().replace(/<\\/span>/, i + w.node.closeTagString(l.get(0)) + s + c + i + w.node.openTagString(l.get(0)) + s), l.replaceWith(w.node.openTagString(l.get(0)) + o + w.node.closeTagString(l.get(0))), !0;\n }\n\n return !1;\n }\n\n function r(e, t) {\n void 0 === t && (t = {}), t.style && delete t.style;\n var n = w.selection.isCollapsed();\n w.selection.save();\n\n for (var r = !0; r;) {\n r = !1;\n\n for (var a = w.$el.find(\".fr-marker\"), o = 0; o < a.length; o++) {\n var i = R(a[o]),\n s = null;\n\n if (i.attr(\"data-cloned\") || n || (s = i.clone().removeClass(\"fr-marker\").addClass(\"fr-clone\"), i.data(\"type\") && \"true\" === i.data(\"type\").toString() ? i.attr(\"data-cloned\", !0).after(s) : i.attr(\"data-cloned\", !0).before(s)), M(i, e, t, n)) {\n r = !0;\n break;\n }\n }\n }\n\n !function L(e, t, n, r) {\n for (var a, o = {\n strong: {\n prop: \"font-weight\",\n val: \"bold\"\n },\n em: {\n prop: \"font-style\",\n val: \"italic\"\n }\n }, i = w.node.contents(e.get(0)), s = 0; s < i.length; s++) {\n var l = i[s];\n if (l.innerHTML && 8203 == l.innerHTML.charCodeAt() && l.tagName.toLocaleLowerCase() == n && l.childNodes.length < 2 && (l.outerHTML = l.innerHTML), w.node.hasClass(l, \"fr-marker\")) t = (t + 1) % 2;else if (t) {\n if (0 < R(l).find(\".fr-marker\").length) t = L(R(l), t, n, r);else {\n (a = \"LI\" === l.tagName ? l : R(l).parentsUntil(w.$el, \"li\").get(0)) && (void 0 === n || 0 <= [\"strong\", \"em\"].indexOf(n)) && (n ? R(a).css(o[n].prop, \"\") : a.style = \"\");\n\n for (var c = R(l).find(n || \"*:not(br)\"), d = c.length - 1; 0 <= d; d--) {\n var f = c[d];\n (a = \"LI\" === f.tagName ? f : R(f).parentsUntil(w.$el, \"li\").get(0)) && (!n || 0 <= [\"strong\", \"em\"].indexOf(n)) && (n ? R(a).css(o[n].prop, \"\") : a.style = \"\"), w.node.isBlock(f) || w.node.isVoid(f) || void 0 !== n && !x(f, _(n, r)) ? w.node.isBlock(f) && void 0 === n && \"TABLE\" !== l.tagName && w.node.clearAttributes(f) : w.node.hasClass(f, \"fr-clone\") || (f.outerHTML = f.innerHTML);\n }\n\n void 0 === n && l.nodeType === Node.ELEMENT_NODE && !w.node.isVoid(l) || x(l, _(n, r)) ? w.node.isBlock(l) || w.node.hasClass(l, \"fr-clone\") || (l.outerHTML = l.innerHTML) : void 0 === n && l.nodeType === Node.ELEMENT_NODE && w.node.isBlock(l) && \"TABLE\" !== l.tagName && w.node.clearAttributes(l);\n }\n } else 0 < R(l).find(\".fr-marker\").length && (t = L(R(l), t, n, r));\n }\n\n return t;\n }(w.$el, 0, e, t), n || (w.$el.find(\".fr-marker\").remove(), w.$el.find(\".fr-clone\").removeClass(\"fr-clone\").addClass(\"fr-marker\")), n && w.$el.find(\".fr-marker\").before(xt.INVISIBLE_SPACE).after(xt.INVISIBLE_SPACE), w.html.cleanEmptyTags(), w.el.normalize();\n var l = w.$el.find(\".fr-marker\")[0],\n c = w.$el.find(\".fr-marker\")[1];\n !l.parentNode || \"P\" !== l.parentNode.tagName && \"DIV\" !== l.parentNode.tagName || l.parentNode.firstChild !== l || l.parentNode.lastChild !== c || l.parentNode.removeAttribute(\"style\"), w.selection.restore();\n var d = w.win.getSelection() && w.win.getSelection().anchorNode;\n\n if (d) {\n var f = w.node.blockParent(d),\n p = !!d.textContent.replace(/\\u200B/g, \"\").length,\n u = w.win.getSelection().getRangeAt(0),\n h = u.startOffset,\n g = u.endOffset;\n w.selection.text().replace(/\\u200B/g, \"\").length || function S(e, t) {\n if (e && t) {\n if (e.isSameNode(t) ? e.textContent = e.textContent.replace(/\\u200B(?=.*\\u200B)/g, \"\") : e.nodeType === Node.TEXT_NODE && (e.textContent = e.textContent.replace(/\\u200B/g, \"\")), !e.childNodes.length) return !1;\n Array.isArray(e.childNodes) && e.childNodes.forEach(function (e) {\n S(e, t);\n });\n }\n }(f, d);\n var m = w.win.getSelection().getRangeAt(0);\n\n if (d.nodeType === Node.TEXT_NODE) {\n if (!p || !w.selection.text().length && h === g) {\n var v = d.textContent.search(/\\u200B/g) + 1;\n\n if (w.browser.msie) {\n var b = w.doc.createRange();\n w.selection.get().removeAllRanges(), b.setStart(d, v), b.setEnd(d, v), w.selection.get().addRange(b);\n } else m.setStart(d, v), m.setEnd(d, v);\n }\n } else {\n var C,\n E,\n y = 0,\n T = R(d).contents();\n\n if (w.browser.msie) {\n for (; E = T[y];) {\n E.nodeType === Node.TEXT_NODE && 0 <= E.textContent.search(/\\u200B/g) && (C = E), y++;\n }\n\n C = R(C);\n } else C = T.filter(function (e) {\n return e.nodeType === Node.TEXT_NODE && 0 <= e.textContent.search(/\\u200B/g);\n });\n\n if (C.length) {\n var A = C.text().search(/\\u200B/g) + 1;\n m.setStart(C.get(0), A), m.setEnd(C.get(0), A);\n }\n }\n }\n }\n\n function t(e, t) {\n var n,\n r,\n a,\n o,\n i,\n s,\n l,\n c = null;\n\n if (w.selection.isCollapsed()) {\n w.markers.insert();\n var d = (r = w.$el.find(\".fr-marker\")).parent();\n\n if (w.node.openTagString(d.get(0)) === '')) {\n if (w.node.isEmpty(d.get(0))) c = R(w.doc.createElement(\"span\")).attr(\"style\", \"\".concat(e, \": \").concat(t, \";\")).html(\"\".concat(xt.INVISIBLE_SPACE).concat(xt.MARKERS)), d.replaceWith(c);else {\n var f = {};\n f[\"style*\"] = \"\".concat(e, \":\"), M(r, \"span\", f, !0), r = w.$el.find(\".fr-marker\"), t ? (c = R(w.doc.createElement(\"span\")).attr(\"style\", \"\".concat(e, \": \").concat(t, \";\")).html(\"\".concat(xt.INVISIBLE_SPACE).concat(xt.MARKERS)), r.replaceWith(c)) : r.replaceWith(xt.INVISIBLE_SPACE + xt.MARKERS);\n }\n w.html.cleanEmptyTags();\n } else w.node.isEmpty(d.get(0)) && d.is(\"span\") ? (r.replaceWith(xt.MARKERS), d.css(e, t)) : (c = R('').concat(xt.INVISIBLE_SPACE).concat(xt.MARKERS, \"\")), r.replaceWith(c));\n\n c && C(c, e, t);\n } else {\n if (w.selection.save(), null === t || \"color\" === e && 0 < w.$el.find(\".fr-marker\").parents(\"u, a\").length) {\n var p = w.$el.find(\".fr-marker\");\n\n for (n = 0; n < p.length; n++) {\n if (!0 === (r = R(p[n])).data(\"type\") || \"true\" === r.data(\"type\")) for (; w.node.isFirstSibling(r.get(0)) && !r.parent().is(w.$el) && !w.node.isElement(r.parent().get(0)) && !w.node.isBlock(r.parent().get(0));) {\n r.parent().before(r);\n } else for (; w.node.isLastSibling(r.get(0)) && !r.parent().is(w.$el) && !w.node.isElement(r.parent().get(0)) && !w.node.isBlock(r.parent().get(0));) {\n r.parent().after(r);\n }\n }\n }\n\n for (var u = w.$el.find('.fr-marker[data-type=\"true\"]').get(0).nextSibling; u.firstChild;) {\n u = u.firstChild;\n }\n\n var h = {\n \"class\": \"fr-unprocessed\"\n };\n\n for (t && (h.style = \"\".concat(e, \": \").concat(t, \";\")), v(u, \"span\", h), w.$el.find(\".fr-marker + .fr-unprocessed\").each(function () {\n R(this).prepend(R(this).prev());\n }), w.$el.find(\".fr-unprocessed + .fr-marker\").each(function () {\n R(this).prev().append(R(this));\n }), (t || \"\").match(/\\dem$/) && w.$el.find(\"span.fr-unprocessed\").removeClass(\"fr-unprocessed\"); 0 < w.$el.find(\"span.fr-unprocessed\").length;) {\n if (a = b(c = w.$el.find(\"span.fr-unprocessed\").first().removeClass(\"fr-unprocessed\")), c.parent().get(0).normalize(), c.parent().is(\"span\") && 1 === c.parent().get(0).childNodes.length) {\n c.parent().css(e, t);\n var g = c;\n c = c.parent(), g.replaceWith(g.html());\n }\n\n for (o = c.find(\"span\"), a && \"background-color\" !== e && (a.normalize(), o = R(a).find(\"span:not(.fr-unprocessed)\")), n = o.length - 1; 0 <= n; n--) {\n i = o[n], s = e, l = void 0, (l = R(i)).css(s, \"\"), \"\" === l.attr(\"style\") && l.replaceWith(l.html());\n }\n\n C(c, e, t);\n }\n }\n\n !function m() {\n var e;\n\n for (; 0 < w.$el.find(\".fr-split:empty\").length;) {\n w.$el.find(\".fr-split:empty\").remove();\n }\n\n w.$el.find(\".fr-split\").removeClass(\"fr-split\"), w.$el.find('[style=\"\"]').removeAttr(\"style\"), w.$el.find('[class=\"\"]').removeAttr(\"class\"), w.html.cleanEmptyTags();\n\n for (var t = w.$el.find(\"span\"), n = t.length - 1; 0 <= n; n--) {\n var r = t[n];\n r.attributes && 0 !== r.attributes.length || R(r).replaceWith(r.innerHTML);\n }\n\n w.el.normalize();\n var a = w.$el.find(\"span[style] + span[style]\");\n\n for (e = 0; e < a.length; e++) {\n var o = R(a[e]),\n i = R(a[e]).prev();\n o.get(0).previousSibling === i.get(0) && w.node.openTagString(o.get(0)) === w.node.openTagString(i.get(0)) && (o.prepend(i.html()), i.remove());\n }\n\n w.$el.find(\"span[style] span[style]\").each(function () {\n if (0 <= R(this).attr(\"style\").indexOf(\"font-size\")) {\n var e = R(this).parents(\"span[style]\");\n e.attr(\"style\") && 0 <= e.attr(\"style\").indexOf(\"background-color\") && (R(this).attr(\"style\", \"\".concat(R(this).attr(\"style\"), \";\").concat(e.attr(\"style\"))), M(R(this), \"span[style]\", {}, !1));\n }\n }), w.el.normalize(), w.selection.restore();\n }();\n }\n\n function b(e) {\n var t, n, r, a, o, i;\n\n if (t = \"LI\" === e.tagName ? e : R(e).parentsUntil(w.$el, \"li\").get(0)) {\n if ((i = w.selection.info(t)).atStart && i.atEnd) return t;\n if (i.atStart && !i.atEnd && (n = R(t).find(\".fr-marker[data-type=false]\").get(0), r = R(n).parentsUntil(w.$el, \"li\").get(0), a = R(n).parent().get(0), (o = n.nextSibling) && 0 <= [\"UL\", \"OL\"].indexOf(o.tagName) || !r.isSameNode(t) || !o && (\"LI\" === a.tagName || !a.nextSibling || 0 <= [\"UL\", \"OL\"].indexOf(a.nextSibling.tagName) || w.node.isVoid(a.nextSibling)))) return t;\n }\n }\n\n function C(e, t, n) {\n var r,\n a,\n o,\n i = e.parentsUntil(w.$el, \"span[style]\"),\n s = [];\n\n for (r = i.length - 1; 0 <= r; r--) {\n a = i[r], o = t, 0 === R(a).attr(\"style\").indexOf(\"\".concat(o, \":\")) || 0 <= R(a).attr(\"style\").indexOf(\";\".concat(o, \":\")) || 0 <= R(a).attr(\"style\").indexOf(\"; \".concat(o, \":\")) || s.push(i[r]);\n }\n\n if ((i = i.not(s)).length) {\n for (var l = \"\", c = \"\", d = \"\", f = \"\", p = e.get(0); p = p.parentNode, R(p).addClass(\"fr-split\"), l += w.node.closeTagString(p), c = w.node.openTagString(R(p).clone().addClass(\"fr-split\").get(0)) + c, i.get(0) !== p && (d += w.node.closeTagString(p), f = w.node.openTagString(R(p).clone().addClass(\"fr-split\").get(0)) + f), i.get(0) !== p;) {\n ;\n }\n\n var u = \"\".concat(l + w.node.openTagString(R(i.get(0)).clone().css(t, n || \"\").get(0)) + f + e.css(t, \"\").get(0).outerHTML + d, \"\").concat(c);\n e.replaceWith('');\n var h = i.get(0).outerHTML;\n R(i.get(0)).replaceWith(h.replace(/<\\/span>/g, function () {\n return u;\n }));\n }\n }\n\n function a(e, t) {\n void 0 === t && (t = {}), t.style && delete t.style;\n var n = w.selection.ranges(0),\n r = n.startContainer;\n\n if (r.nodeType === Node.ELEMENT_NODE && 0 < r.childNodes.length && r.childNodes[n.startOffset] && (r = r.childNodes[n.startOffset]), !n.collapsed && r.nodeType === Node.TEXT_NODE && n.startOffset === (r.textContent || \"\").length) {\n for (; !w.node.isBlock(r.parentNode) && !r.nextSibling;) {\n r = r.parentNode;\n }\n\n r.nextSibling && (r = r.nextSibling);\n }\n\n for (var a = r; a && a.nodeType === Node.ELEMENT_NODE && !x(a, _(e, t));) {\n a = a.firstChild;\n }\n\n if (a && a.nodeType === Node.ELEMENT_NODE && x(a, _(e, t))) return !0;\n var o = r;\n\n for (o && o.nodeType !== Node.ELEMENT_NODE && (o = o.parentNode); o && o.nodeType === Node.ELEMENT_NODE && o !== w.el && !x(o, _(e, t));) {\n o = o.parentNode;\n }\n\n return !(!o || o.nodeType !== Node.ELEMENT_NODE || o === w.el || !x(o, _(e, t)));\n }\n\n return {\n is: a,\n toggle: function o(e, t) {\n a(e, t) ? r(e, t) : n(e, t);\n },\n apply: n,\n remove: r,\n applyStyle: t,\n removeStyle: function i(e) {\n t(e, null);\n }\n };\n }, xt.MODULES.spaces = function (c) {\n function r(e, t) {\n var n = e.previousSibling,\n r = e.nextSibling,\n a = e.textContent,\n o = e.parentNode,\n i = [xt.ENTER_P, xt.ENTER_DIV, xt.ENTER_BR];\n\n if (!c.html.isPreformatted(o)) {\n t && (a = a.replace(/[\\f\\n\\r\\t\\v ]{2,}/g, \" \"), r && \"BR\" !== r.tagName && !c.node.isBlock(r) || !(c.node.isBlock(o) || c.node.isLink(o) && !o.nextSibling || c.node.isElement(o)) || (a = a.replace(/[\\f\\n\\r\\t\\v ]{1,}$/g, \"\")), n && \"BR\" !== n.tagName && !c.node.isBlock(n) || !(c.node.isBlock(o) || c.node.isLink(o) && !o.previousSibling || c.node.isElement(o)) || (a = a.replace(/^[\\f\\n\\r\\t\\v ]{1,}/g, \"\")), (c.node.isBlock(r) || c.node.isBlock(n)) && (!n || n && \"A\" !== n.tagName) && (a = a.replace(/^[\\f\\n\\r\\t\\v ]{1,}/g, \"\")), \" \" === a && (n && c.node.isVoid(n) || r && c.node.isVoid(r)) && !(n && r && c.node.isVoid(n) || r && n && c.node.isVoid(r)) && (a = \"\")), (!n && c.node.isBlock(r) || !r && c.node.isBlock(n)) && c.node.isBlock(o) && o !== c.el && (a = a.replace(/^[\\f\\n\\r\\t\\v ]{1,}/g, \"\")), t || (a = a.replace(new RegExp(xt.UNICODE_NBSP, \"g\"), \" \"));\n\n for (var s = \"\", l = 0; l < a.length; l++) {\n 32 != a.charCodeAt(l) || 0 !== l && 32 != s.charCodeAt(l - 1) || !((c.opts.enter === xt.ENTER_BR || c.opts.enter === xt.ENTER_DIV) && (n && \"BR\" === n.tagName || r && \"BR\" === r.tagName) || n && r && n.tagName === r.tagName) && (n && r && c.node.isVoid(n) || n && r && c.node.isVoid(r)) ? s += a[l] : s += xt.UNICODE_NBSP;\n }\n\n (!r || r && c.node.isBlock(r) || r && r.nodeType === Node.ELEMENT_NODE && c.win.getComputedStyle(r) && \"block\" === c.win.getComputedStyle(r).display) && (!c.node.isVoid(n) || n && -1 !== [\"P\", \"DIV\", \"BR\"].indexOf(n.tagName) && -1 !== i.indexOf(c.opts.enter)) && (s = s.replace(/ $/, xt.UNICODE_NBSP)), !n || c.node.isVoid(n) || c.node.isBlock(n) || 1 !== (s = s.replace(/^\\u00A0([^ $])/, \" $1\")).length || 160 !== s.charCodeAt(0) || !r || c.node.isVoid(r) || c.node.isBlock(r) || c.node.hasClass(n, \"fr-marker\") && c.node.hasClass(r, \"fr-marker\") || (s = \" \"), t || (s = s.replace(/([^ \\u00A0])\\u00A0([^ \\u00A0])/g, \"$1 $2\")), e.textContent !== s && (e.textContent = s);\n }\n }\n\n function l(e, t) {\n if (void 0 !== e && e || (e = c.el), void 0 === t && (t = !1), !e.getAttribute || \"false\" !== e.getAttribute(\"contenteditable\")) if (e.nodeType === Node.TEXT_NODE) r(e, t);else if (e.nodeType === Node.ELEMENT_NODE) for (var n = c.doc.createTreeWalker(e, NodeFilter.SHOW_TEXT, c.node.filter(function (e) {\n for (var t = e.parentNode; t && t !== c.el;) {\n if (\"STYLE\" === t.tagName || \"IFRAME\" === t.tagName) return !1;\n if (\"PRE\" === t.tagName) return !1;\n t = t.parentNode;\n }\n\n return null !== e.textContent.match(/([ \\u00A0\\f\\n\\r\\t\\v]{2,})|(^[ \\u00A0\\f\\n\\r\\t\\v]{1,})|([ \\u00A0\\f\\n\\r\\t\\v]{1,}$)/g) && !c.node.hasClass(e.parentNode, \"fr-marker\");\n }), !1); n.nextNode();) {\n r(n.currentNode, t);\n }\n }\n\n return {\n normalize: l,\n normalizeAroundCursor: function d() {\n for (var e = [], t = c.el.querySelectorAll(\".fr-marker\"), n = 0; n < t.length; n++) {\n for (var r = null, a = c.node.blockParent(t[n]), o = (r = a || t[n]).nextSibling, i = r.previousSibling; o && \"BR\" === o.tagName;) {\n o = o.nextSibling;\n }\n\n for (; i && \"BR\" === i.tagName;) {\n i = i.previousSibling;\n }\n\n r && e.indexOf(r) < 0 && e.push(r), i && e.indexOf(i) < 0 && e.push(i), o && e.indexOf(o) < 0 && e.push(o);\n }\n\n for (var s = 0; s < e.length; s++) {\n l(e[s]);\n }\n }\n };\n }, xt.START_MARKER = ''.concat(xt.INVISIBLE_SPACE = \"​\", \"\"), xt.END_MARKER = ''.concat(xt.INVISIBLE_SPACE, \"\"), xt.MARKERS = xt.START_MARKER + xt.END_MARKER, xt.MODULES.markers = function (d) {\n var f = d.$;\n\n function l() {\n if (!d.$wp) return null;\n\n try {\n var e = d.selection.ranges(0),\n t = e.commonAncestorContainer;\n if (t !== d.el && !d.$el.contains(t)) return null;\n var n = e.cloneRange(),\n r = e.cloneRange();\n n.collapse(!0);\n var a = f(d.doc.createElement(\"SPAN\")).addClass(\"fr-marker\").attr(\"style\", \"display: none; line-height: 0;\").html(xt.INVISIBLE_SPACE).get(0);\n\n if (n.insertNode(a), a = d.$el.find(\"span.fr-marker\").get(0)) {\n for (var o = a.nextSibling; o && o.nodeType === Node.TEXT_NODE && 0 === o.textContent.length;) {\n f(o).remove(), o = d.$el.find(\"span.fr-marker\").get(0).nextSibling;\n }\n\n return d.selection.clear(), d.selection.get().addRange(r), a;\n }\n\n return null;\n } catch (i) {}\n }\n\n function c() {\n d.$el.find(\".fr-marker\").remove();\n }\n\n return {\n place: function p(e, t, n) {\n var r, a, o;\n\n try {\n var i = e.cloneRange();\n if (i.collapse(t), i.insertNode(function l(e, t) {\n var n = f(d.doc.createElement(\"SPAN\"));\n return n.addClass(\"fr-marker\").attr(\"data-id\", t).attr(\"data-type\", e).attr(\"style\", \"display: \".concat(d.browser.safari ? \"none\" : \"inline-block\", \"; line-height: 0;\")).html(xt.INVISIBLE_SPACE), n.get(0);\n }(t, n)), !0 === t) for (o = (r = d.$el.find('span.fr-marker[data-type=\"true\"][data-id=\"'.concat(n, '\"]')).get(0)).nextSibling; o && o.nodeType === Node.TEXT_NODE && 0 === o.textContent.length;) {\n f(o).remove(), o = r.nextSibling;\n }\n\n if (!0 === t && !e.collapsed) {\n for (; !d.node.isElement(r.parentNode) && !o;) {\n -1 < /\\bfa\\b/g.test(r.parentNode.className) && \"I\" === r.parentNode.tagName ? f(r.parentNode).before(r) : f(r.parentNode).after(r), o = r.nextSibling;\n }\n\n if (o && o.nodeType === Node.ELEMENT_NODE && d.node.isBlock(o) && \"HR\" !== o.tagName) {\n for (a = [o]; o = a[0], (a = d.node.contents(o))[0] && d.node.isBlock(a[0]);) {\n ;\n }\n\n f(o).prepend(f(r));\n }\n }\n\n if (!1 === t && !e.collapsed) {\n if ((o = (r = d.$el.find('span.fr-marker[data-type=\"false\"][data-id=\"'.concat(n, '\"]')).get(0)).previousSibling) && o.nodeType === Node.ELEMENT_NODE && d.node.isBlock(o) && \"HR\" !== o.tagName) {\n for (a = [o]; o = a[a.length - 1], (a = d.node.contents(o))[a.length - 1] && d.node.isBlock(a[a.length - 1]);) {\n ;\n }\n\n f(o).append(f(r));\n }\n\n (r.parentNode && 0 <= [\"TD\", \"TH\"].indexOf(r.parentNode.tagName) || !r.previousSibling && d.node.isBlock(r.parentElement)) && (r.parentNode.previousSibling && !r.previousSibling ? f(r.parentNode.previousSibling).append(r) : 0 <= [\"TD\", \"TH\"].indexOf(r.parentNode.tagName) && r.parentNode.firstChild === r && (r.parentNode.previousSibling ? f(r.parentNode.previousSibling).append(r) : r.parentNode.parentNode && r.parentNode.parentNode.previousSibling && f(r.parentNode.parentNode.previousSibling).append(r)));\n }\n\n var s = d.$el.find('span.fr-marker[data-type=\"'.concat(t, '\"][data-id=\"').concat(n, '\"]')).get(0);\n return s && (s.style.display = \"none\"), s;\n } catch (c) {\n return null;\n }\n },\n insert: l,\n split: function i() {\n d.selection.isCollapsed() || d.selection.remove();\n var e = d.$el.find(\".fr-marker\").get(0);\n if (e || (e = l()), !e) return null;\n var t = d.node.deepestParent(e);\n if (t || (t = d.node.blockParent(e)) && \"LI\" !== t.tagName && (t = null), t) if (d.node.isBlock(t) && d.node.isEmpty(t)) \"LI\" !== t.tagName || t.parentNode.firstElementChild !== t || d.node.isEmpty(t.parentNode) ? f(t).replaceWith('') : f(t).append('');else if (d.cursor.isAtStart(e, t)) f(t).before(''), f(e).remove();else if (d.cursor.isAtEnd(e, t)) f(t).after(''), f(e).remove();else {\n for (var n = e, r = \"\", a = \"\"; n = n.parentNode, r += d.node.closeTagString(n), a = d.node.openTagString(n) + a, n !== t;) {\n ;\n }\n\n f(e).replaceWith('');\n var o = d.node.openTagString(t) + f(t).html() + d.node.closeTagString(t);\n o = o.replace(/<\\/span>/g, \"\".concat(r, '').concat(a)), f(t).replaceWith(o);\n }\n return d.$el.find(\".fr-marker\").get(0);\n },\n insertAtPoint: function u(e) {\n var t,\n n = e.clientX,\n r = e.clientY;\n c();\n var a = null;\n\n if (\"undefined\" != typeof d.doc.caretPositionFromPoint ? (t = d.doc.caretPositionFromPoint(n, r), (a = d.doc.createRange()).setStart(t.offsetNode, t.offset), a.setEnd(t.offsetNode, t.offset)) : \"undefined\" != typeof d.doc.caretRangeFromPoint && (t = d.doc.caretRangeFromPoint(n, r), (a = d.doc.createRange()).setStart(t.startContainer, t.startOffset), a.setEnd(t.startContainer, t.startOffset)), null !== a && \"undefined\" != typeof d.win.getSelection) {\n var o = d.win.getSelection();\n o.removeAllRanges(), o.addRange(a);\n } else if (\"undefined\" != typeof d.doc.body.createTextRange) try {\n (a = d.doc.body.createTextRange()).moveToPoint(n, r);\n var i = a.duplicate();\n i.moveToPoint(n, r), a.setEndPoint(\"EndToEnd\", i), a.select();\n } catch (s) {\n return !1;\n }\n\n l();\n },\n remove: c\n };\n }, xt.MODULES.selection = function (y) {\n var T = y.$;\n\n function s() {\n var e = \"\";\n return y.win.getSelection ? e = y.win.getSelection() : y.doc.getSelection ? e = y.doc.getSelection() : y.doc.selection && (e = y.doc.selection.createRange().text), e.toString();\n }\n\n function E() {\n return y.win.getSelection ? y.win.getSelection() : y.doc.getSelection ? y.doc.getSelection() : y.doc.selection.createRange();\n }\n\n function f(e) {\n var t = E(),\n n = [];\n\n if (t && t.getRangeAt && t.rangeCount) {\n n = [];\n\n for (var r = 0; r < t.rangeCount; r++) {\n n.push(t.getRangeAt(r));\n }\n } else n = y.doc.createRange ? [y.doc.createRange()] : [];\n\n return void 0 !== e ? n[e] : n;\n }\n\n function A() {\n var e = E();\n\n try {\n e.removeAllRanges ? e.removeAllRanges() : e.empty ? e.empty() : e.clear && e.clear();\n } catch (t) {}\n }\n\n function p(e, t) {\n var n = e;\n return n.nodeType === Node.ELEMENT_NODE && 0 < n.childNodes.length && n.childNodes[t] && (n = n.childNodes[t]), n.nodeType === Node.TEXT_NODE && (n = n.parentNode), n;\n }\n\n function L() {\n if (y.$wp) {\n y.markers.remove();\n var e,\n t,\n n = f(),\n r = [];\n\n for (t = 0; t < n.length; t++) {\n if (n[t].startContainer !== y.doc || y.browser.msie) {\n var a = (e = n[t]).collapsed,\n o = y.markers.place(e, !0, t),\n i = y.markers.place(e, !1, t);\n if (void 0 !== o && o || !a || (T(\".fr-marker\").remove(), y.selection.setAtEnd(y.el)), y.el.normalize(), y.browser.safari && !a) try {\n (e = y.doc.createRange()).setStartAfter(o), e.setEndBefore(i), r.push(e);\n } catch (s) {}\n }\n }\n\n if (y.browser.safari && r.length) for (y.selection.clear(), t = 0; t < r.length; t++) {\n y.selection.get().addRange(r[t]);\n }\n }\n }\n\n function S() {\n var e,\n t = y.el.querySelectorAll('.fr-marker[data-type=\"true\"]');\n if (!y.$wp) return y.markers.remove(), !1;\n if (0 === t.length) return !1;\n if (y.browser.msie || y.browser.edge) for (e = 0; e < t.length; e++) {\n t[e].style.display = \"inline-block\";\n }\n y.core.hasFocus() || y.browser.msie || y.browser.webkit || y.$el.focus(), A();\n var n = E();\n\n for (e = 0; e < t.length; e++) {\n var r = T(t[e]).data(\"id\"),\n a = t[e],\n o = y.doc.createRange(),\n i = y.$el.find('.fr-marker[data-type=\"false\"][data-id=\"'.concat(r, '\"]'));\n (y.browser.msie || y.browser.edge) && i.css(\"display\", \"inline-block\");\n var s = null;\n\n if (0 < i.length) {\n i = i[0];\n\n try {\n for (var l = !1, c = a.nextSibling, d = null; c && c.nodeType === Node.TEXT_NODE && 0 === c.textContent.length;) {\n c = (d = c).nextSibling, T(d).remove();\n }\n\n for (var f = i.nextSibling; f && f.nodeType === Node.TEXT_NODE && 0 === f.textContent.length;) {\n f = (d = f).nextSibling, T(d).remove();\n }\n\n if (a.nextSibling === i || i.nextSibling === a) {\n for (var p = a.nextSibling === i ? a : i, u = p === a ? i : a, h = p.previousSibling; h && h.nodeType === Node.TEXT_NODE && 0 === h.length;) {\n h = (d = h).previousSibling, T(d).remove();\n }\n\n if (h && h.nodeType === Node.TEXT_NODE) for (; h && h.previousSibling && h.previousSibling.nodeType === Node.TEXT_NODE;) {\n h.previousSibling.textContent += h.textContent, h = h.previousSibling, T(h.nextSibling).remove();\n }\n\n for (var g = u.nextSibling; g && g.nodeType === Node.TEXT_NODE && 0 === g.length;) {\n g = (d = g).nextSibling, T(d).remove();\n }\n\n if (g && g.nodeType === Node.TEXT_NODE) for (; g && g.nextSibling && g.nextSibling.nodeType === Node.TEXT_NODE;) {\n g.nextSibling.textContent = g.textContent + g.nextSibling.textContent, g = g.nextSibling, T(g.previousSibling).remove();\n }\n\n if (h && (y.node.isVoid(h) || y.node.isBlock(h)) && (h = null), g && (y.node.isVoid(g) || y.node.isBlock(g)) && (g = null), h && g && h.nodeType === Node.TEXT_NODE && g.nodeType === Node.TEXT_NODE) {\n T(a).remove(), T(i).remove();\n var m = h.textContent.length;\n h.textContent += g.textContent, T(g).remove(), y.spaces.normalize(h), o.setStart(h, m), o.setEnd(h, m), l = !0;\n } else !h && g && g.nodeType === Node.TEXT_NODE ? (T(a).remove(), T(i).remove(), y.opts.htmlUntouched || y.spaces.normalize(g), s = T(y.doc.createTextNode(\"\\u200B\")).get(0), T(g).before(s), o.setStart(g, 0), o.setEnd(g, 0), l = !0) : !g && h && h.nodeType === Node.TEXT_NODE && (T(a).remove(), T(i).remove(), y.opts.htmlUntouched || y.spaces.normalize(h), s = T(y.doc.createTextNode(\"\\u200B\")).get(0), T(h).after(s), o.setStart(h, h.textContent.length), o.setEnd(h, h.textContent.length), l = !0);\n }\n\n if (!l) {\n var v = void 0,\n b = void 0;\n b = (y.browser.chrome || y.browser.edge) && a.nextSibling === i ? (v = w(i, o, !0) || o.setStartAfter(i), w(a, o, !1) || o.setEndBefore(a)) : (a.previousSibling === i && (i = (a = i).nextSibling), i.nextSibling && \"BR\" === i.nextSibling.tagName || !i.nextSibling && y.node.isBlock(a.previousSibling) || a.previousSibling && \"BR\" === a.previousSibling.tagName || (a.style.display = \"inline\", i.style.display = \"inline\", s = T(y.doc.createTextNode(\"\\u200B\")).get(0)), v = w(a, o, !0) || T(a).before(s) && o.setStartBefore(a), w(i, o, !1) || T(i).after(s) && o.setEndAfter(i)), \"function\" == typeof v && v(), \"function\" == typeof b && b();\n }\n } catch (C) {}\n }\n\n s && T(s).remove();\n\n try {\n n.addRange(o);\n } catch (C) {}\n }\n\n y.markers.remove();\n }\n\n function w(e, t, n) {\n var r,\n a = e.previousSibling,\n o = e.nextSibling;\n return a && o && a.nodeType === Node.TEXT_NODE && o.nodeType === Node.TEXT_NODE ? (r = a.textContent.length, n ? (o.textContent = a.textContent + o.textContent, T(a).remove(), T(e).remove(), y.opts.htmlUntouched || y.spaces.normalize(o), function () {\n t.setStart(o, r);\n }) : (a.textContent += o.textContent, T(o).remove(), T(e).remove(), y.opts.htmlUntouched || y.spaces.normalize(a), function () {\n t.setEnd(a, r);\n })) : a && !o && a.nodeType === Node.TEXT_NODE ? (r = a.textContent.length, n ? (y.opts.htmlUntouched || y.spaces.normalize(a), function () {\n t.setStart(a, r);\n }) : (y.opts.htmlUntouched || y.spaces.normalize(a), function () {\n t.setEnd(a, r);\n })) : !(!o || a || o.nodeType !== Node.TEXT_NODE) && (n ? (y.opts.htmlUntouched || y.spaces.normalize(o), function () {\n t.setStart(o, 0);\n }) : (y.opts.htmlUntouched || y.spaces.normalize(o), function () {\n t.setEnd(o, 0);\n }));\n }\n\n function R() {\n for (var e = f(), t = 0; t < e.length; t++) {\n if (!e[t].collapsed) return !1;\n }\n\n return !0;\n }\n\n function a(e) {\n var t,\n n,\n r = !1,\n a = !1;\n\n if (y.win.getSelection) {\n var o = y.win.getSelection();\n o.rangeCount && ((n = (t = o.getRangeAt(0)).cloneRange()).selectNodeContents(e), n.setEnd(t.startContainer, t.startOffset), r = i(n), n.selectNodeContents(e), n.setStart(t.endContainer, t.endOffset), a = i(n));\n } else y.doc.selection && \"Control\" !== y.doc.selection.type && ((n = (t = y.doc.selection.createRange()).duplicate()).moveToElementText(e), n.setEndPoint(\"EndToStart\", t), r = i(n), n.moveToElementText(e), n.setEndPoint(\"StartToEnd\", t), a = i(n));\n\n return {\n atStart: r,\n atEnd: a\n };\n }\n\n function i(e) {\n return \"\" === e.toString().replace(/[\\u200B-\\u200D\\uFEFF]/g, \"\");\n }\n\n function _(e, t) {\n void 0 === t && (t = !0);\n var n = T(e).html();\n n && n.replace(/\\u200b/g, \"\").length !== n.length && T(e).html(n.replace(/\\u200b/g, \"\"));\n\n for (var r = y.node.contents(e), a = 0; a < r.length; a++) {\n r[a].nodeType !== Node.ELEMENT_NODE ? T(r[a]).remove() : (_(r[a], 0 === a), 0 === a && (t = !1));\n }\n\n if (e.nodeType === Node.TEXT_NODE) {\n var o = T(document.createElement(\"span\")).attr(\"data-first\", \"true\").attr(\"data-text\", \"true\");\n T(e)[0].replaceWith(o[0]);\n } else t && T(e).attr(\"data-first\", !0);\n }\n\n function x() {\n return 0 === T(this).find(\"fr-inner\").length;\n }\n\n function u() {\n try {\n if (!y.$wp) return !1;\n\n for (var e = f(0).commonAncestorContainer; e && !y.node.isElement(e);) {\n e = e.parentNode;\n }\n\n return !!y.node.isElement(e);\n } catch (t) {\n return !1;\n }\n }\n\n function r(e, t) {\n if (!e || 0 < e.getElementsByClassName(\"fr-marker\").length) return !1;\n\n for (var n = e.firstChild; n && (y.node.isBlock(n) || t && !y.node.isVoid(n) && n.nodeType === Node.ELEMENT_NODE);) {\n n = (e = n).firstChild;\n }\n\n e.innerHTML = xt.MARKERS + e.innerHTML;\n }\n\n function o(e, t) {\n if (!e || 0 < e.getElementsByClassName(\"fr-marker\").length) return !1;\n\n for (var n = e.lastChild; n && (y.node.isBlock(n) || t && !y.node.isVoid(n) && n.nodeType === Node.ELEMENT_NODE);) {\n n = (e = n).lastChild;\n }\n\n var r = y.doc.createElement(\"SPAN\");\n\n for (r.setAttribute(\"id\", \"fr-sel-markers\"), r.innerHTML = xt.MARKERS; e.parentNode && y.opts.htmlAllowedEmptyTags && 0 <= y.opts.htmlAllowedEmptyTags.indexOf(e.tagName.toLowerCase());) {\n e = e.parentNode;\n }\n\n e.appendChild(r);\n var a = e.querySelector(\"#fr-sel-markers\");\n a.outerHTML = a.innerHTML;\n }\n\n return {\n text: s,\n get: E,\n ranges: f,\n clear: A,\n element: function l() {\n var e = E();\n\n try {\n if (e.rangeCount) {\n var t,\n n = f(0),\n r = n.startContainer;\n if (y.node.isElement(r) && 0 === n.startOffset && r.childNodes.length) for (; r.childNodes.length && r.childNodes[0].nodeType === Node.ELEMENT_NODE;) {\n r = r.childNodes[0];\n }\n\n if (r.nodeType === Node.TEXT_NODE && n.startOffset === (r.textContent || \"\").length && r.nextSibling && (r = r.nextSibling), r.nodeType === Node.ELEMENT_NODE) {\n var a = !1;\n\n if (0 < r.childNodes.length && r.childNodes[n.startOffset]) {\n for (t = r.childNodes[n.startOffset]; t && t.nodeType === Node.TEXT_NODE && 0 === t.textContent.length;) {\n t = t.nextSibling;\n }\n\n if (t && t.textContent.replace(/\\u200B/g, \"\") === s().replace(/\\u200B/g, \"\") && (r = t, a = !0), !a && 1 < r.childNodes.length && 0 < n.startOffset && r.childNodes[n.startOffset - 1]) {\n for (t = r.childNodes[n.startOffset - 1]; t && t.nodeType === Node.TEXT_NODE && 0 === t.textContent.length;) {\n t = t.nextSibling;\n }\n\n t && t.textContent.replace(/\\u200B/g, \"\") === s().replace(/\\u200B/g, \"\") && (r = t, a = !0);\n }\n } else !n.collapsed && r.nextSibling && r.nextSibling.nodeType === Node.ELEMENT_NODE && (t = r.nextSibling) && t.textContent.replace(/\\u200B/g, \"\") === s().replace(/\\u200B/g, \"\") && (r = t, a = !0);\n\n !a && 0 < r.childNodes.length && T(r.childNodes[0]).text().replace(/\\u200B/g, \"\") === s().replace(/\\u200B/g, \"\") && [\"BR\", \"IMG\", \"HR\"].indexOf(r.childNodes[0].tagName) < 0 && (r = r.childNodes[0]);\n }\n\n for (; r.nodeType !== Node.ELEMENT_NODE && r.parentNode;) {\n r = r.parentNode;\n }\n\n for (var o = r; o && \"HTML\" !== o.tagName;) {\n if (o === y.el) return r;\n o = T(o).parent()[0];\n }\n }\n } catch (i) {}\n\n return y.el;\n },\n endElement: function c() {\n var e = E();\n\n try {\n if (e.rangeCount) {\n var t,\n n = f(0),\n r = n.endContainer;\n\n if (r.nodeType === Node.ELEMENT_NODE) {\n var a = !1;\n 0 < r.childNodes.length && r.childNodes[n.endOffset] && T(r.childNodes[n.endOffset]).text() === s() ? (r = r.childNodes[n.endOffset], a = !0) : !n.collapsed && r.previousSibling && r.previousSibling.nodeType === Node.ELEMENT_NODE ? (t = r.previousSibling) && t.textContent.replace(/\\u200B/g, \"\") === s().replace(/\\u200B/g, \"\") && (r = t, a = !0) : !n.collapsed && 0 < r.childNodes.length && r.childNodes[n.endOffset] && (t = r.childNodes[n.endOffset].previousSibling).nodeType === Node.ELEMENT_NODE && t && t.textContent.replace(/\\u200B/g, \"\") === s().replace(/\\u200B/g, \"\") && (r = t, a = !0), !a && 0 < r.childNodes.length && T(r.childNodes[r.childNodes.length - 1]).text() === s() && [\"BR\", \"IMG\", \"HR\"].indexOf(r.childNodes[r.childNodes.length - 1].tagName) < 0 && (r = r.childNodes[r.childNodes.length - 1]);\n }\n\n for (r.nodeType === Node.TEXT_NODE && 0 === n.endOffset && r.previousSibling && r.previousSibling.nodeType === Node.ELEMENT_NODE && (r = r.previousSibling); r.nodeType !== Node.ELEMENT_NODE && r.parentNode;) {\n r = r.parentNode;\n }\n\n for (var o = r; o && \"HTML\" !== o.tagName;) {\n if (o === y.el) return r;\n o = T(o).parent()[0];\n }\n }\n } catch (i) {}\n\n return y.el;\n },\n save: L,\n restore: S,\n isCollapsed: R,\n isFull: function d() {\n if (R()) return !1;\n y.selection.save();\n var e,\n t = y.el.querySelectorAll(\"td, th, img, br\");\n\n for (e = 0; e < t.length; e++) {\n (t[e].nextSibling || \"IMG\" === t[e].tagName) && (t[e].innerHTML = ' '.concat(t[e].innerHTML));\n }\n\n var n = !1,\n r = a(y.el);\n\n for (r.atStart && r.atEnd && (n = !0), t = y.el.querySelectorAll(\".fr-mk\"), e = 0; e < t.length; e++) {\n t[e].parentNode.removeChild(t[e]);\n }\n\n return y.selection.restore(), n;\n },\n inEditor: u,\n remove: function M() {\n if (R()) return !0;\n var e;\n\n function t(e) {\n for (var t = e.previousSibling; t && t.nodeType === Node.TEXT_NODE && 0 === t.textContent.length;) {\n var n = t;\n t = t.previousSibling, T(n).remove();\n }\n\n return t;\n }\n\n function n(e) {\n for (var t = e.nextSibling; t && t.nodeType === Node.TEXT_NODE && 0 === t.textContent.length;) {\n var n = t;\n t = t.nextSibling, T(n).remove();\n }\n\n return t;\n }\n\n L();\n var r = y.$el.find('.fr-marker[data-type=\"true\"]');\n\n for (e = 0; e < r.length; e++) {\n for (var a = r[e]; !(t(a) || y.node.isBlock(a.parentNode) || y.$el.is(a.parentNode) || y.node.hasClass(a.parentNode, \"fr-inner\"));) {\n T(a.parentNode).before(a);\n }\n }\n\n var o = y.$el.find('.fr-marker[data-type=\"false\"]');\n\n for (e = 0; e < o.length; e++) {\n for (var i = o[e]; !(n(i) || y.node.isBlock(i.parentNode) || y.$el.is(i.parentNode) || y.node.hasClass(i.parentNode, \"fr-inner\"));) {\n T(i.parentNode).after(i);\n }\n\n i.parentNode && y.node.isBlock(i.parentNode) && y.node.isEmpty(i.parentNode) && !y.$el.is(i.parentNode) && !y.node.hasClass(i.parentNode, \"fr-inner\") && y.opts.keepFormatOnDelete && T(i.parentNode).after(i);\n }\n\n if (function C() {\n for (var e = y.$el.find(\".fr-marker\"), t = 0; t < e.length; t++) {\n if (T(e[t]).parentsUntil('.fr-element, [contenteditable=\"true\"]', '[contenteditable=\"false\"]').length) return !1;\n }\n\n return !0;\n }()) {\n !function E(e, t) {\n var n = y.node.contents(e.get(0));\n 0 <= [\"TD\", \"TH\"].indexOf(e.get(0).tagName) && 1 === e.find(\".fr-marker\").length && (y.node.hasClass(n[0], \"fr-marker\") || \"BR\" == n[0].tagName && y.node.hasClass(n[0].nextElementSibling, \"fr-marker\")) && e.attr(\"data-del-cell\", !0);\n\n for (var r = 0; r < n.length; r++) {\n var a = n[r];\n y.node.hasClass(a, \"fr-marker\") ? t = (t + 1) % 2 : t ? 0 < T(a).find(\".fr-marker\").length ? t = E(T(a), t) : [\"TD\", \"TH\"].indexOf(a.tagName) < 0 && !y.node.hasClass(a, \"fr-inner\") ? !y.opts.keepFormatOnDelete || 0 < y.$el.find(\"[data-first]\").length || y.node.isVoid(a) ? T(a).remove() : _(a) : y.node.hasClass(a, \"fr-inner\") ? 0 === T(a).find(\".fr-inner\").length ? T(a).html(\"
    \") : T(a).find(\".fr-inner\").filter(x).html(\"
    \") : (T(a).empty(), T(a).attr(\"data-del-cell\", !0)) : 0 < T(a).find(\".fr-marker\").length && (t = E(T(a), t));\n }\n\n return t;\n }(y.$el, 0);\n var s = y.$el.find('[data-first=\"true\"]');\n if (s.length) y.$el.find(\".fr-marker\").remove(), s.append(xt.INVISIBLE_SPACE + xt.MARKERS).removeAttr(\"data-first\"), s.attr(\"data-text\") && s.replaceWith(s.html());else for (y.$el.find(\"table\").filter(function () {\n return 0 < T(this).find(\"[data-del-cell]\").length && T(this).find(\"[data-del-cell]\").length === T(this).find(\"td, th\").length;\n }).remove(), y.$el.find(\"[data-del-cell]\").removeAttr(\"data-del-cell\"), r = y.$el.find('.fr-marker[data-type=\"true\"]'), e = 0; e < r.length; e++) {\n var l = r[e],\n c = l.nextSibling,\n d = y.$el.find('.fr-marker[data-type=\"false\"][data-id=\"'.concat(T(l).data(\"id\"), '\"]')).get(0);\n\n if (d) {\n if (l && (!c || c !== d)) {\n var f = y.node.blockParent(l),\n p = y.node.blockParent(d),\n u = !1,\n h = !1;\n if (f && 0 <= [\"UL\", \"OL\"].indexOf(f.tagName) && (u = !(f = null)), p && 0 <= [\"UL\", \"OL\"].indexOf(p.tagName) && (h = !(p = null)), T(l).after(d), f !== p) if (null !== f || u) {\n if (null !== p || h || 0 !== T(f).parentsUntil(y.$el, \"table\").length) f && p && 0 === T(f).parentsUntil(y.$el, \"table\").length && 0 === T(p).parentsUntil(y.$el, \"table\").length && !T(f).contains(p) && !T(p).contains(f) && (T(f).append(T(p).html()), T(p).remove());else {\n for (c = f; !c.nextSibling && c.parentNode !== y.el;) {\n c = c.parentNode;\n }\n\n for (c = c.nextSibling; c && \"BR\" !== c.tagName;) {\n var g = c.nextSibling;\n T(f).append(c), c = g;\n }\n\n c && \"BR\" === c.tagName && T(c).remove();\n }\n } else {\n var m = y.node.deepestParent(l);\n m ? (T(m).after(T(p).html()), T(p).remove()) : 0 === T(p).parentsUntil(y.$el, \"table\").length && (T(l).next().after(T(p).html()), T(p).remove());\n }\n }\n } else d = T(l).clone().attr(\"data-type\", !1), T(l).after(d);\n }\n }\n\n y.$el.find(\"li:empty\").remove(), y.opts.keepFormatOnDelete || y.html.fillEmptyBlocks(), y.html.cleanEmptyTags(!0), y.opts.htmlUntouched || (y.clean.lists(), y.$el.find(\"li:empty\").append(\"
    \"), y.spaces.normalize());\n var v = y.$el.find(\".fr-marker\").last().get(0),\n b = y.$el.find(\".fr-marker\").first().get(0);\n void 0 !== v && void 0 !== b && !v.nextSibling && b.previousSibling && \"BR\" === b.previousSibling.tagName && y.node.isElement(v.parentNode) && y.node.isElement(b.parentNode) && y.$el.append(\"
    \"), S();\n },\n blocks: function h(e) {\n var t,\n n,\n r = [],\n a = E();\n\n if (u() && a.rangeCount) {\n var o = f();\n\n for (t = 0; t < o.length; t++) {\n var i = o[t],\n s = p(i.startContainer, i.startOffset),\n l = p(i.endContainer, i.endOffset);\n (y.node.isBlock(s) || y.node.hasClass(s, \"fr-inner\")) && r.indexOf(s) < 0 && r.push(s), (n = y.node.blockParent(s)) && r.indexOf(n) < 0 && r.push(n);\n\n for (var c = [], d = s; d !== l && d !== y.el;) {\n c.indexOf(d) < 0 && d.children && d.children.length ? (c.push(d), d = d.children[0]) : d.nextSibling ? d = d.nextSibling : d.parentNode && (d = d.parentNode, c.push(d)), y.node.isBlock(d) && c.indexOf(d) < 0 && r.indexOf(d) < 0 && (d !== l || 0 < i.endOffset) && r.push(d);\n }\n\n y.node.isBlock(l) && r.indexOf(l) < 0 && 0 < i.endOffset && r.push(l), (n = y.node.blockParent(l)) && r.indexOf(n) < 0 && r.push(n);\n }\n }\n\n for (t = r.length - 1; 0 < t; t--) {\n if (T(r[t]).find(r).length) {\n if (e && T(r[t]).find(\"ul, ol\").length) continue;\n r.splice(t, 1);\n }\n }\n\n return r;\n },\n info: a,\n setAtEnd: o,\n setAtStart: r,\n setBefore: function g(e, t) {\n void 0 === t && (t = !0);\n\n for (var n = e.previousSibling; n && n.nodeType === Node.TEXT_NODE && 0 === n.textContent.length;) {\n n = n.previousSibling;\n }\n\n return n ? (y.node.isBlock(n) ? o(n) : \"BR\" === n.tagName ? T(n).before(xt.MARKERS) : T(n).after(xt.MARKERS), !0) : !!t && (y.node.isBlock(e) ? r(e) : T(e).before(xt.MARKERS), !0);\n },\n setAfter: function m(e, t) {\n void 0 === t && (t = !0);\n\n for (var n = e.nextSibling; n && n.nodeType === Node.TEXT_NODE && 0 === n.textContent.length;) {\n n = n.nextSibling;\n }\n\n return n ? (y.node.isBlock(n) ? r(n) : T(n).before(xt.MARKERS), !0) : !!t && (y.node.isBlock(e) ? o(e) : T(e).after(xt.MARKERS), !0);\n },\n rangeElement: p\n };\n }, Object.assign(xt.DEFAULTS, {\n language: null\n }), xt.LANGUAGE = {}, xt.MODULES.language = function (e) {\n var t;\n return {\n _init: function n() {\n xt.LANGUAGE && (t = xt.LANGUAGE[e.opts.language]), t && t.direction && (e.opts.direction = t.direction);\n },\n translate: function r(e) {\n return t && t.translation[e] && t.translation[e].length ? t.translation[e] : e;\n }\n };\n }, Object.assign(xt.DEFAULTS, {\n placeholderText: \"Type something\"\n }), xt.MODULES.placeholder = function (f) {\n var p = f.$;\n\n function e() {\n f.$placeholder || function d() {\n f.$placeholder = p(f.doc.createElement(\"SPAN\")).addClass(\"fr-placeholder\"), f.$wp.append(f.$placeholder);\n }();\n var e = f.opts.iframe ? f.$iframe.prev().outerHeight(!0) : f.$el.prev().outerHeight(!0),\n t = 0,\n n = 0,\n r = 0,\n a = 0,\n o = 0,\n i = 0,\n s = f.node.contents(f.el),\n l = p(f.selection.element()).css(\"text-align\");\n\n if (s.length && s[0].nodeType === Node.ELEMENT_NODE) {\n var c = p(s[0]);\n (0 < f.$wp.prev().length || 0 < f.$el.prev().length) && f.ready && (t = f.helpers.getPX(c.css(\"margin-top\")), a = f.helpers.getPX(c.css(\"padding-top\")), n = f.helpers.getPX(c.css(\"margin-left\")), r = f.helpers.getPX(c.css(\"margin-right\")), o = f.helpers.getPX(c.css(\"padding-left\")), i = f.helpers.getPX(c.css(\"padding-right\"))), f.$placeholder.css(\"font-size\", c.css(\"font-size\")), f.$placeholder.css(\"line-height\", c.css(\"line-height\"));\n } else f.$placeholder.css(\"font-size\", f.$el.css(\"font-size\")), f.$placeholder.css(\"line-height\", f.$el.css(\"line-height\"));\n\n f.$wp.addClass(\"show-placeholder\"), f.$placeholder.css({\n marginTop: Math.max(f.helpers.getPX(f.$el.css(\"margin-top\")), t) + (e || 0),\n paddingTop: Math.max(f.helpers.getPX(f.$el.css(\"padding-top\")), a),\n paddingLeft: Math.max(f.helpers.getPX(f.$el.css(\"padding-left\")), o),\n marginLeft: Math.max(f.helpers.getPX(f.$el.css(\"margin-left\")), n),\n paddingRight: Math.max(f.helpers.getPX(f.$el.css(\"padding-right\")), i),\n marginRight: Math.max(f.helpers.getPX(f.$el.css(\"margin-right\")), r),\n textAlign: l\n }).text(f.language.translate(f.opts.placeholderText || f.$oel.attr(\"placeholder\") || \"\")), f.$placeholder.html(f.$placeholder.text().replace(/\\n/g, \"
    \"));\n }\n\n function t() {\n f.$wp.removeClass(\"show-placeholder\");\n }\n\n function n() {\n if (!f.$wp) return !1;\n f.core.isEmpty() ? e() : t();\n }\n\n return {\n _init: function r() {\n if (!f.$wp) return !1;\n f.events.on(\"init input keydown keyup contentChanged initialized\", n);\n },\n show: e,\n hide: t,\n refresh: n,\n isVisible: function a() {\n return !f.$wp || f.node.hasClass(f.$wp.get(0), \"show-placeholder\");\n }\n };\n }, xt.UNICODE_NBSP = String.fromCharCode(160), xt.VOID_ELEMENTS = [\"area\", \"base\", \"br\", \"col\", \"embed\", \"hr\", \"img\", \"input\", \"keygen\", \"link\", \"menuitem\", \"meta\", \"param\", \"source\", \"track\", \"wbr\"], xt.BLOCK_TAGS = [\"address\", \"article\", \"aside\", \"audio\", \"blockquote\", \"canvas\", \"details\", \"dd\", \"div\", \"dl\", \"dt\", \"fieldset\", \"figcaption\", \"figure\", \"footer\", \"form\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"header\", \"hgroup\", \"hr\", \"li\", \"main\", \"nav\", \"noscript\", \"ol\", \"output\", \"p\", \"pre\", \"section\", \"table\", \"tbody\", \"td\", \"tfoot\", \"th\", \"thead\", \"tr\", \"ul\", \"video\"], Object.assign(xt.DEFAULTS, {\n htmlAllowedEmptyTags: [\"textarea\", \"a\", \"iframe\", \"object\", \"video\", \"style\", \"script\", \".fa\", \".fr-emoticon\", \".fr-inner\", \"path\", \"line\", \"hr\"],\n htmlDoNotWrapTags: [\"script\", \"style\"],\n htmlSimpleAmpersand: !1,\n htmlIgnoreCSSProperties: [],\n htmlExecuteScripts: !0\n }), xt.MODULES.html = function (x) {\n var h = x.$;\n\n function d() {\n return x.opts.enter === xt.ENTER_P ? \"p\" : x.opts.enter === xt.ENTER_DIV ? \"div\" : x.opts.enter === xt.ENTER_BR ? \"p\" : void 0;\n }\n\n function s(e, t) {\n return !(!e || e === x.el) && (t ? -1 != [\"PRE\", \"SCRIPT\", \"STYLE\"].indexOf(e.tagName) || s(e.parentNode, t) : -1 !== [\"PRE\", \"SCRIPT\", \"STYLE\"].indexOf(e.tagName));\n }\n\n function o(e) {\n var t,\n n = [],\n r = [];\n\n if (e) {\n var a = x.el.querySelectorAll(\".fr-marker\");\n\n for (t = 0; t < a.length; t++) {\n var o = x.node.blockParent(a[t]) || a[t];\n\n if (o) {\n var i = o.nextSibling,\n s = o.previousSibling;\n o && r.indexOf(o) < 0 && x.node.isBlock(o) && r.push(o), s && x.node.isBlock(s) && r.indexOf(s) < 0 && r.push(s), i && x.node.isBlock(i) && r.indexOf(i) < 0 && r.push(i);\n }\n }\n } else r = x.el.querySelectorAll(p());\n\n var l = p();\n\n for (l += \",\".concat(xt.VOID_ELEMENTS.join(\",\")), l += \", .fr-inner\", l += \",\".concat(x.opts.htmlAllowedEmptyTags.join(\":not(.fr-marker),\"), \":not(.fr-marker)\"), t = r.length - 1; 0 <= t; t--) {\n if (!(r[t].textContent && 0 < r[t].textContent.replace(/\\u200B|\\n/g, \"\").length || 0 < r[t].querySelectorAll(l).length)) {\n for (var c = x.node.contents(r[t]), d = !1, f = 0; f < c.length; f++) {\n if (c[f].nodeType !== Node.COMMENT_NODE && c[f].textContent && 0 < c[f].textContent.replace(/\\u200B|\\n/g, \"\").length) {\n d = !0;\n break;\n }\n }\n\n d || n.push(r[t]);\n }\n }\n\n return n;\n }\n\n function p() {\n return xt.BLOCK_TAGS.join(\", \");\n }\n\n function e(e) {\n var t,\n n,\n r = h.merge([], xt.VOID_ELEMENTS);\n r = h.merge(r, x.opts.htmlAllowedEmptyTags), r = void 0 === e ? h.merge(r, xt.BLOCK_TAGS) : h.merge(r, xt.NO_DELETE_TAGS), t = x.el.querySelectorAll(\"*:empty:not(\".concat(r.join(\"):not(\"), \"):not(.fr-marker):not(template)\"));\n\n do {\n n = !1;\n\n for (var a = 0; a < t.length; a++) {\n 0 !== t[a].attributes.length && void 0 === t[a].getAttribute(\"href\") || (t[a].parentNode.removeChild(t[a]), n = !0);\n }\n\n t = x.el.querySelectorAll(\"*:empty:not(\".concat(r.join(\"):not(\"), \"):not(.fr-marker):not(template)\"));\n } while (t.length && n);\n }\n\n function i(e, t) {\n var n = d();\n\n if (t && (n = \"div\"), n) {\n for (var r = x.doc.createDocumentFragment(), a = null, o = !1, i = e.firstChild, s = !1; i;) {\n var l = i.nextSibling;\n if (i.nodeType === Node.ELEMENT_NODE && (x.node.isBlock(i) || 0 <= x.opts.htmlDoNotWrapTags.indexOf(i.tagName.toLowerCase()) && !x.node.hasClass(i, \"fr-marker\"))) a = null, r.appendChild(i.cloneNode(!0));else if (i.nodeType !== Node.ELEMENT_NODE && i.nodeType !== Node.TEXT_NODE) a = null, r.appendChild(i.cloneNode(!0));else if (\"BR\" === i.tagName) null === a ? (a = x.doc.createElement(n), s = !0, t && (a.setAttribute(\"class\", \"fr-temp-div\"), a.setAttribute(\"data-empty\", !0)), a.appendChild(i.cloneNode(!0)), r.appendChild(a)) : !1 === o && (a.appendChild(x.doc.createElement(\"br\")), t && (a.setAttribute(\"class\", \"fr-temp-div\"), a.setAttribute(\"data-empty\", !0))), a = null;else {\n var c = i.textContent;\n i.nodeType !== Node.TEXT_NODE || 0 < c.replace(/\\n/g, \"\").replace(/(^ *)|( *$)/g, \"\").length || c.replace(/(^ *)|( *$)/g, \"\").length && c.indexOf(\"\\n\") < 0 ? (null === a && (a = x.doc.createElement(n), s = !0, t && a.setAttribute(\"class\", \"fr-temp-div\"), r.appendChild(a), o = !1), a.appendChild(i.cloneNode(!0)), o || x.node.hasClass(i, \"fr-marker\") || i.nodeType === Node.TEXT_NODE && 0 === c.replace(/ /g, \"\").length || (o = !0)) : s = !0;\n }\n i = l;\n }\n\n s && (e.innerHTML = \"\", e.appendChild(r));\n }\n }\n\n function l(e, t) {\n for (var n = e.length - 1; 0 <= n; n--) {\n i(e[n], t);\n }\n }\n\n function t(e, t, n, r, a) {\n if (!x.$wp) return !1;\n void 0 === e && (e = !1), void 0 === t && (t = !1), void 0 === n && (n = !1), void 0 === r && (r = !1), void 0 === a && (a = !1);\n var o = x.$wp.scrollTop();\n i(x.el, e), r && l(x.el.querySelectorAll(\".fr-inner\"), e), t && l(x.el.querySelectorAll(\"td, th\"), e), n && l(x.el.querySelectorAll(\"blockquote\"), e), a && l(x.el.querySelectorAll(\"li\"), e), o !== x.$wp.scrollTop() && x.$wp.scrollTop(o);\n }\n\n function n(e) {\n if (void 0 === e && (e = x.el), e && 0 <= [\"SCRIPT\", \"STYLE\", \"PRE\"].indexOf(e.tagName)) return !1;\n\n for (var t = x.doc.createTreeWalker(e, NodeFilter.SHOW_TEXT, x.node.filter(function (e) {\n return null !== e.textContent.match(/([ \\n]{2,})|(^[ \\n]{1,})|([ \\n]{1,}$)/g);\n }), !1); t.nextNode();) {\n var n = t.currentNode;\n\n if (!s(n.parentNode, !0)) {\n var r = x.node.isBlock(n.parentNode) || x.node.isElement(n.parentNode),\n a = n.textContent.replace(/(?!^)( ){2,}(?!$)/g, \" \").replace(/\\n/g, \" \").replace(/^[ ]{2,}/g, \" \").replace(/[ ]{2,}$/g, \" \");\n\n if (r) {\n var o = n.previousSibling,\n i = n.nextSibling;\n o && i && \" \" === a ? a = x.node.isBlock(o) && x.node.isBlock(i) ? \"\" : \" \" : (o || (a = a.replace(/^ */, \"\")), i || (a = a.replace(/ *$/, \"\")));\n }\n\n n.textContent = a;\n }\n }\n }\n\n function r(e, t, n) {\n var r = new RegExp(t, \"gi\").exec(e);\n return r ? r[n] : null;\n }\n\n function M(e) {\n var t = e.doctype,\n n = \"\";\n return t && (n = \"\")), n;\n }\n\n function c(e) {\n var t = e.parentNode;\n\n if (t && (x.node.isBlock(t) || x.node.isElement(t)) && [\"TD\", \"TH\"].indexOf(t.tagName) < 0) {\n for (var n = e.previousSibling, r = e.nextSibling; n && (n.nodeType === Node.TEXT_NODE && 0 === n.textContent.replace(/\\n|\\r/g, \"\").length || x.node.hasClass(n, \"fr-tmp\"));) {\n n = n.previousSibling;\n }\n\n if (r) return !1;\n n && t && \"BR\" !== n.tagName && !x.node.isBlock(n) && !r && 0 < t.textContent.replace(/\\u200B/g, \"\").length && 0 < n.textContent.length && !x.node.hasClass(n, \"fr-marker\") && (x.el === t && !r && x.opts.enter === xt.ENTER_BR && x.browser.msie || e.parentNode.removeChild(e));\n } else !t || x.node.isBlock(t) || x.node.isElement(t) || e.previousSibling || e.nextSibling || !x.node.isDeletable(e.parentNode) || c(e.parentNode);\n }\n\n function g() {\n x.opts.htmlUntouched || (e(), t(), n(), x.spaces.normalize(null, !0), x.html.fillEmptyBlocks(), x.clean.lists(), x.clean.tables(), x.clean.toHTML5(), x.html.cleanBRs()), x.selection.restore(), a(), x.placeholder.refresh();\n }\n\n function a() {\n x.node.isEmpty(x.el) && (null !== d() ? x.el.querySelector(p()) || x.el.querySelector(\"\".concat(x.opts.htmlDoNotWrapTags.join(\":not(.fr-marker),\"), \":not(.fr-marker)\")) || (x.core.hasFocus() ? (x.$el.html(\"<\".concat(d(), \">\").concat(xt.MARKERS, \"
    \")), x.selection.restore()) : x.$el.html(\"<\".concat(d(), \">
    \"))) : x.el.querySelector(\"*:not(.fr-marker):not(br)\") || (x.core.hasFocus() ? (x.$el.html(\"\".concat(xt.MARKERS, \"
    \")), x.selection.restore()) : x.$el.html(\"
    \")));\n }\n\n function m(e, t) {\n return r(e, \"<\".concat(t, \"[^>]*?>([\\\\w\\\\W]*)\"), 1);\n }\n\n function v(e, t) {\n var n = h(\"
    ]*?)>\"), 1) || \"\", \">\"));\n return x.node.rawAttributes(n.get(0));\n }\n\n function b(e) {\n return (r(e, \"]*?)>\", 0) || \"\").replace(/\\n/g, \" \").replace(/ {2,}/g, \" \");\n }\n\n function C(e, t) {\n x.opts.htmlExecuteScripts ? e.html(t) : e.get(0).innerHTML = t;\n }\n\n function O(e) {\n var t;\n (t = /:not\\(([^)]*)\\)/g).test(e) && (e = e.replace(t, \" $1 \"));\n var n = 100 * (e.match(/(#[^\\s+>~.[:]+)/g) || []).length + 10 * (e.match(/(\\[[^]]+\\])/g) || []).length + 10 * (e.match(/(\\.[^\\s+>~.[:]+)/g) || []).length + 10 * (e.match(/(:[\\w-]+\\([^)]*\\))/gi) || []).length + 10 * (e.match(/(:[^\\s+>~.[:]+)/g) || []).length + (e.match(/(::[^\\s+>~.[:]+|:first-line|:first-letter|:before|:after)/gi) || []).length;\n return n += ((e = (e = e.replace(/[*\\s+>~]/g, \" \")).replace(/[#.]/g, \" \")).match(/([^\\s+>~.[:]+)/g) || []).length;\n }\n\n function N(e) {\n if (x.events.trigger(\"html.processGet\", [e]), e && e.getAttribute && \"\" === e.getAttribute(\"class\") && e.removeAttribute(\"class\"), e && e.getAttribute && \"\" === e.getAttribute(\"style\") && e.removeAttribute(\"style\"), e && e.nodeType === Node.ELEMENT_NODE) {\n var t,\n n = e.querySelectorAll('[class=\"\"],[style=\"\"]');\n\n for (t = 0; t < n.length; t++) {\n var r = n[t];\n \"\" === r.getAttribute(\"class\") && r.removeAttribute(\"class\"), \"\" === r.getAttribute(\"style\") && r.removeAttribute(\"style\");\n }\n\n if (\"BR\" === e.tagName) c(e);else {\n var a = e.querySelectorAll(\"br\");\n\n for (t = 0; t < a.length; t++) {\n c(a[t]);\n }\n }\n }\n }\n\n function k(e, t) {\n return e[3] - t[3];\n }\n\n function I() {\n for (var e = x.el.querySelectorAll(\"input, textarea\"), t = 0; t < e.length; t++) {\n \"checkbox\" !== e[t].type && \"radio\" !== e[t].type || (e[t].checked ? e[t].setAttribute(\"checked\", e[t].checked) : x.$(e[t]).removeAttr(\"checked\")), e[t].getAttribute(\"value\") && e[t].setAttribute(\"value\", e[t].value);\n }\n }\n\n function f(e) {\n var t = x.doc.createElement(\"div\");\n return t.innerHTML = e, null !== t.querySelector(p());\n }\n\n function u(e) {\n var t = null;\n if (void 0 === e && (t = x.selection.element()), x.opts.keepFormatOnDelete) return !1;\n var n,\n r,\n a = t ? (t.textContent.match(/\\u200B/g) || []).length - t.querySelectorAll(\".fr-marker\").length : 0;\n if ((x.el.textContent.match(/\\u200B/g) || []).length - x.el.querySelectorAll(\".fr-marker\").length === a) return !1;\n\n do {\n r = !1, n = x.el.querySelectorAll(\"*:not(.fr-marker)\");\n\n for (var o = 0; o < n.length; o++) {\n var i = n[o];\n\n if (t !== i) {\n var s = i.textContent;\n 0 === i.children.length && 1 === s.length && 8203 === s.charCodeAt(0) && \"TD\" !== i.tagName && (h(i).remove(), r = !0);\n }\n }\n } while (r);\n }\n\n function E() {\n u(), x.placeholder && setTimeout(x.placeholder.refresh, 0);\n }\n\n return {\n defaultTag: d,\n isPreformatted: s,\n emptyBlocks: o,\n emptyBlockTagsQuery: function y() {\n return \"\".concat(xt.BLOCK_TAGS.join(\":empty, \"), \":empty\");\n },\n blockTagsQuery: p,\n fillEmptyBlocks: function T(e) {\n var t = o(e);\n x.node.isEmpty(x.el) && x.opts.enter === xt.ENTER_BR && t.push(x.el);\n\n for (var n = 0; n < t.length; n++) {\n var r = t[n];\n \"false\" === r.getAttribute(\"contenteditable\") || r.querySelector(\"\".concat(x.opts.htmlAllowedEmptyTags.join(\":not(.fr-marker),\"), \":not(.fr-marker)\")) || x.node.isVoid(r) || \"TABLE\" !== r.tagName && \"TBODY\" !== r.tagName && \"TR\" !== r.tagName && \"UL\" !== r.tagName && \"OL\" !== r.tagName && r.appendChild(x.doc.createElement(\"br\"));\n }\n\n if (x.browser.msie && x.opts.enter === xt.ENTER_BR) {\n var a = x.node.contents(x.el);\n a.length && a[a.length - 1].nodeType === Node.TEXT_NODE && x.$el.append(\"
    \");\n }\n },\n cleanEmptyTags: e,\n cleanWhiteTags: u,\n cleanBlankSpaces: n,\n blocks: function A() {\n return x.$el.get(0).querySelectorAll(p());\n },\n getDoctype: M,\n set: function L(e) {\n var t = x.clean.html((e || \"\").trim(), [], [], x.opts.fullPage),\n n = new RegExp(\"%3A//\", \"g\"),\n r = t.replace(n, \"://\");\n\n if (x.opts.fullPage) {\n var a = m(r, \"body\") || (0 <= r.indexOf(\"\",\n s = v(r, \"head\"),\n l = h(\"
    \");\n l.append(i).contents().each(function () {\n (this.nodeType === Node.COMMENT_NODE || 0 <= [\"BASE\", \"LINK\", \"META\", \"NOSCRIPT\", \"SCRIPT\", \"STYLE\", \"TEMPLATE\", \"TITLE\"].indexOf(this.tagName)) && this.parentNode.removeChild(this);\n });\n var c = l.html().trim();\n i = h(\"
    \").append(i).contents().map(function () {\n return this.nodeType === Node.COMMENT_NODE ? \"\\x3c!--\".concat(this.nodeValue, \"--\\x3e\") : 0 <= [\"BASE\", \"LINK\", \"META\", \"NOSCRIPT\", \"SCRIPT\", \"STYLE\", \"TEMPLATE\", \"TITLE\"].indexOf(this.tagName) ? this.outerHTML : \"\";\n }).toArray().join(\"\");\n var d = b(r),\n f = v(r, \"html\");\n C(x.$el, \"\".concat(c, \"\\n\").concat(a)), x.node.clearAttributes(x.el), x.$el.attr(o), x.$el.addClass(\"fr-view\"), x.$el.attr(\"spellcheck\", x.opts.spellcheck), x.$el.attr(\"dir\", x.opts.direction), C(x.$head, i), x.node.clearAttributes(x.$head.get(0)), x.$head.attr(s), x.node.clearAttributes(x.$html.get(0)), x.$html.attr(f), x.iframe_document.doctype.parentNode.replaceChild(function u(e, t) {\n var n = e.match(//i);\n return n ? t.implementation.createDocumentType(n[1], n[3], n[4]) : t.implementation.createDocumentType(\"html\");\n }(d, x.iframe_document), x.iframe_document.doctype);\n } else C(x.$el, r);\n\n var p = x.edit.isDisabled();\n x.edit.on(), x.core.injectStyle(x.opts.iframeDefaultStyle + x.opts.iframeStyle), g(), x.opts.useClasses || (x.$el.find(\"[fr-original-class]\").each(function () {\n this.setAttribute(\"class\", this.getAttribute(\"fr-original-class\")), this.removeAttribute(\"fr-original-class\");\n }), x.$el.find(\"[fr-original-style]\").each(function () {\n this.setAttribute(\"style\", this.getAttribute(\"fr-original-style\")), this.removeAttribute(\"fr-original-style\");\n })), p && x.edit.off(), x.events.trigger(\"html.set\"), x.events.trigger(\"charCounter.update\");\n },\n syncInputs: I,\n get: function D(e, t) {\n if (!x.$wp) return x.$oel.clone().removeClass(\"fr-view\").removeAttr(\"contenteditable\").get(0).outerHTML;\n var n = \"\";\n x.events.trigger(\"html.beforeGet\");\n var r,\n a,\n o = [],\n i = {},\n s = [];\n\n if (I(), !x.opts.useClasses && !t) {\n var l = new RegExp(\"^\".concat(x.opts.htmlIgnoreCSSProperties.join(\"$|^\"), \"$\"), \"gi\");\n\n for (r = 0; r < x.doc.styleSheets.length; r++) {\n var c = void 0,\n d = 0;\n\n try {\n c = x.doc.styleSheets[r].cssRules, x.doc.styleSheets[r].ownerNode && \"STYLE\" === x.doc.styleSheets[r].ownerNode.nodeType && (d = 1);\n } catch (_) {}\n\n if (c) for (var f = 0, p = c.length; f < p; f++) {\n if (c[f].selectorText && 0 < c[f].style.cssText.length) {\n var u = c[f].selectorText.replace(/body |\\.fr-view /g, \"\").replace(/::/g, \":\"),\n h = void 0;\n\n try {\n h = x.el.querySelectorAll(u);\n } catch (_) {\n h = [];\n }\n\n for (a = 0; a < h.length; a++) {\n !h[a].getAttribute(\"fr-original-style\") && h[a].getAttribute(\"style\") ? (h[a].setAttribute(\"fr-original-style\", h[a].getAttribute(\"style\")), o.push(h[a])) : h[a].getAttribute(\"fr-original-style\") || (h[a].setAttribute(\"fr-original-style\", \"\"), o.push(h[a])), i[h[a]] || (i[h[a]] = {});\n\n for (var g = 1e3 * d + O(c[f].selectorText), m = c[f].style.cssText.split(\";\"), v = 0; v < m.length; v++) {\n var b = m[v].trim().split(\":\")[0];\n\n if (b && !b.match(l) && (i[h[a]][b] || (i[h[a]][b] = 0) <= (h[a].getAttribute(\"fr-original-style\") || \"\").indexOf(\"\".concat(b, \":\")) && (i[h[a]][b] = 1e4), g >= i[h[a]][b] && (i[h[a]][b] = g, m[v].trim().length))) {\n var C = m[v].trim().split(\":\");\n C.splice(0, 1), s.push([h[a], b.trim(), C.join(\":\").trim(), g]);\n }\n }\n }\n }\n }\n }\n\n for (s.sort(k), r = 0; r < s.length; r++) {\n var E = s[r];\n E[0].style[E[1]] = E[2];\n }\n\n for (r = 0; r < o.length; r++) {\n if (o[r].getAttribute(\"class\") && (o[r].setAttribute(\"fr-original-class\", o[r].getAttribute(\"class\")), o[r].removeAttribute(\"class\")), 0 < (o[r].getAttribute(\"fr-original-style\") || \"\").trim().length) {\n var y = o[r].getAttribute(\"fr-original-style\").split(\";\");\n\n for (a = 0; a < y.length; a++) {\n if (0 < y[a].indexOf(\":\")) {\n var T = y[a].split(\":\"),\n A = T[0];\n T.splice(0, 1), o[r].style[A.trim()] = T.join(\":\").trim();\n }\n }\n }\n }\n }\n\n if (x.node.isEmpty(x.el)) x.opts.fullPage && (n = M(x.iframe_document), n += \"\").concat(x.$html.find(\"head\").get(0).outerHTML, \"\"));else if (void 0 === e && (e = !1), x.opts.fullPage) {\n n = M(x.iframe_document), x.$el.removeClass(\"fr-view\");\n var L = x.opts.heightMin,\n S = x.opts.height,\n w = x.opts.heightMax;\n x.opts.heightMin = null, x.opts.height = null, x.opts.heightMax = null, x.size.refresh(), n += \"\").concat(x.$html.html(), \"\"), x.opts.heightMin = L, x.opts.height = S, x.opts.heightMax = w, x.size.refresh(), x.$el.addClass(\"fr-view\");\n } else n = x.$el.html();\n if (!x.opts.useClasses && !t) for (r = 0; r < o.length; r++) {\n o[r].getAttribute(\"fr-original-class\") && (o[r].setAttribute(\"class\", o[r].getAttribute(\"fr-original-class\")), o[r].removeAttribute(\"fr-original-class\")), null !== o[r].getAttribute(\"fr-original-style\") && void 0 !== o[r].getAttribute(\"fr-original-style\") ? (0 !== o[r].getAttribute(\"fr-original-style\").length ? o[r].setAttribute(\"style\", o[r].getAttribute(\"fr-original-style\")) : o[r].removeAttribute(\"style\"), o[r].removeAttribute(\"fr-original-style\")) : o[r].removeAttribute(\"style\");\n }\n x.opts.fullPage && (n = (n = (n = (n = (n = (n = (n = (n = n.replace(/\"));\n\n for (var t = 0; t < i.opts.iframeStyleFiles.length; t++) {\n var n = r(''));\n n.get(0).addEventListener(\"load\", i.size.syncIframe), i.$head.append(n);\n }\n }\n },\n hasFocus: function l() {\n return i.browser.mozilla && i.helpers.isMobile() ? i.selection.inEditor() : i.node.hasFocus(i.el) || 0 < i.$el.find(\"*:focus\").length;\n },\n sameInstance: function c(e) {\n if (!e) return !1;\n var t = e.data(\"instance\");\n return !!t && t.id === i.id;\n }\n };\n }, xt.POPUP_TEMPLATES = {\n \"text.edit\": \"[_EDIT_]\"\n }, xt.RegisterTemplate = function (e, t) {\n xt.POPUP_TEMPLATES[e] = t;\n }, xt.MODULES.popups = function (u) {\n var r,\n d = u.$;\n u.shared.popups || (u.shared.popups = {});\n var h,\n g = u.shared.popups;\n\n function m(e, t) {\n t.isVisible() || (t = u.$sc), t.is(g[e].data(\"container\")) || (g[e].data(\"container\", t), t.append(g[e]));\n }\n\n function a(e) {\n var t;\n e.find(\".fr-upload-progress\").addClass(\"fr-height-set\"), e.find(\".fr-upload-progress\").removeClass(\"fr-height-auto\"), u.popups.get(\"filesManager.insert\").removeClass(\"fr-height-auto\"), e.find(\".fr-files-upload-layer\").hasClass(\"fr-active\") && (t = 1), e.find(\".fr-files-by-url-layer\").hasClass(\"fr-active\") && (t = 2), e.find(\".fr-files-embed-layer\").hasClass(\"fr-active\") && (t = 3), e.find(\".fr-upload-progress-layer\").get(0).clientHeight + 10 < e.find(\".fr-upload-progress\").get(0).clientHeight && e.find(\".fr-upload-progress\").addClass(\"fr-height-auto\"), 400 < e[0].clientHeight && (e[0].childNodes[4].style.height = \"\".concat(e[0].clientHeight - (e[0].childNodes[0].clientHeight + e[0].childNodes[t].clientHeight) - 80, \"px\"));\n }\n\n var o = 2e3;\n\n function i() {\n d(this).toggleClass(\"fr-not-empty\", !0);\n }\n\n function s() {\n var e = d(this);\n e.toggleClass(\"fr-not-empty\", \"\" !== e.val());\n }\n\n function v(e) {\n return g[e] && u.node.hasClass(g[e], \"fr-active\") && u.core.sameInstance(g[e]) || !1;\n }\n\n function b(e) {\n for (var t in g) {\n if (Object.prototype.hasOwnProperty.call(g, t) && v(t) && (void 0 === e || g[t].data(\"instance\") === e)) return g[t];\n }\n\n return !1;\n }\n\n function n(e) {\n var t = null;\n if (t = \"string\" != typeof e ? e : g[e], \"filesManager.insert\" === e && u.filesManager !== undefined && u.filesManager.isChildWindowOpen()) return !1;\n if (t && u.node.hasClass(t, \"fr-active\") && (t.removeClass(\"fr-active fr-above\"), u.events.trigger(\"popups.hide.\".concat(e)), u.$tb && (1 < u.opts.zIndex ? u.$tb.css(\"zIndex\", u.opts.zIndex + 1) : u.$tb.css(\"zIndex\", \"\")), u.events.disableBlur(), t.find(\"input, textarea, button\").each(function () {\n this === this.ownerDocument.activeElement && this.blur();\n }), t.find(\"input, textarea\").attr(\"disabled\", \"disabled\"), h)) for (var n = 0; n < h.length; n++) {\n d(h[n]).removeClass(\"fr-btn-active-popup\");\n }\n }\n\n function C(e) {\n for (var t in void 0 === e && (e = []), g) {\n Object.prototype.hasOwnProperty.call(g, t) && e.indexOf(t) < 0 && n(t);\n }\n }\n\n function t() {\n u.shared.exit_flag = !0;\n }\n\n function E() {\n u.shared.exit_flag = !1;\n }\n\n function l() {\n return u.shared.exit_flag;\n }\n\n function c(e, t) {\n var n,\n r = function c(e, t) {\n var n = xt.POPUP_TEMPLATES[e];\n if (!n) return null;\n\n for (var r in \"function\" == typeof n && (n = n.apply(u)), t) {\n Object.prototype.hasOwnProperty.call(t, r) && (n = n.replace(\"[_\".concat(r.toUpperCase(), \"_]\"), t[r]));\n }\n\n return n;\n }(e, t),\n a = d(u.doc.createElement(\"DIV\"));\n\n if (!r) return \"filesManager.insert\" === e ? a.addClass(\"fr-popup fr-files-manager fr-empty\") : a.addClass(\"fr-popup fr-empty\"), (n = d(\"body\").first()).append(a), a.data(\"container\", n), g[e] = a;\n \"filesManager.insert\" === e ? a.addClass(\"fr-popup fr-files-manager\".concat(u.helpers.isMobile() ? \" fr-mobile\" : \" fr-desktop\").concat(u.opts.toolbarInline ? \" fr-inline\" : \"\")) : a.addClass(\"fr-popup\".concat(u.helpers.isMobile() ? \" fr-mobile\" : \" fr-desktop\").concat(u.opts.toolbarInline ? \" fr-inline\" : \"\")), a.html(r), u.opts.theme && a.addClass(\"\".concat(u.opts.theme, \"-theme\")), 1 < u.opts.zIndex && (!u.opts.editInPopup && u.$tb ? u.$tb.css(\"z-index\", u.opts.zIndex + 2) : a.css(\"z-index\", u.opts.zIndex + 2)), \"auto\" !== u.opts.direction && a.removeClass(\"fr-ltr fr-rtl\").addClass(\"fr-\".concat(u.opts.direction)), a.find(\"input, textarea\").attr(\"dir\", u.opts.direction).attr(\"disabled\", \"disabled\"), (n = d(\"body\").first()).append(a), a.data(\"container\", n);\n var o = (g[e] = a).find(\".fr-color-hex-layer\");\n\n if (0 < o.length) {\n var i = u.helpers.getPX(a.find(\".fr-color-set > span\").css(\"width\")),\n s = u.helpers.getPX(o.css(\"paddingLeft\")),\n l = u.helpers.getPX(o.css(\"paddingRight\"));\n o.css(\"width\", i * u.opts.colorsStep + s + l);\n }\n\n return u.button.bindCommands(a, !1), a;\n }\n\n function y(r) {\n var a = g[r];\n return {\n _windowResize: function _windowResize() {\n var e = a.data(\"instance\") || u;\n !e.helpers.isMobile() && a.isVisible() && (e.events.disableBlur(), e.popups.hide(r), e.events.enableBlur());\n },\n _inputFocus: function _inputFocus(e) {\n var t = a.data(\"instance\") || u,\n n = d(e.currentTarget);\n\n if (n.is(\"input:file\") && n.closest(\".fr-layer\").addClass(\"fr-input-focus\"), e.preventDefault(), e.stopPropagation(), setTimeout(function () {\n t.events.enableBlur();\n }, 100), t.helpers.isMobile()) {\n var r = d(t.o_win).scrollTop();\n setTimeout(function () {\n d(t.o_win).scrollTop(r);\n }, 0);\n }\n },\n _inputBlur: function _inputBlur(e) {\n var t = a.data(\"instance\") || u,\n n = d(e.currentTarget);\n n.is(\"input:file\") && n.closest(\".fr-layer\").removeClass(\"fr-input-focus\"), document.activeElement !== this && d(this).isVisible() && (t.events.blurActive() && t.events.trigger(\"blur\"), t.events.enableBlur());\n },\n _editorKeydown: function _editorKeydown(e) {\n var t = a.data(\"instance\") || u;\n t.keys.ctrlKey(e) || e.which === xt.KEYCODE.ALT || e.which === xt.KEYCODE.ESC || (v(r) && a.findVisible(\".fr-back\").length ? t.button.exec(a.findVisible(\".fr-back\").first()) : e.which !== xt.KEYCODE.ALT && t.popups.hide(r));\n },\n _preventFocus: function _preventFocus(e) {\n var t = a.data(\"instance\") || u,\n n = e.originalEvent ? e.originalEvent.target || e.originalEvent.originalTarget : null;\n \"mouseup\" === e.type || d(n).is(\":focus\") || t.events.disableBlur(), \"mouseup\" !== e.type || d(n).hasClass(\"fr-command\") || 0 < d(n).parents(\".fr-command\").length || d(n).hasClass(\"fr-dropdown-content\") || u.button.hideActiveDropdowns(a), (u.browser.safari || u.browser.mozilla) && \"mousedown\" === e.type && d(n).is(\"input[type=file]\") && t.events.disableBlur();\n var r = \"input, textarea, button, select, label, .fr-command\";\n if (n && !d(n).is(r) && 0 === d(n).parents(r).length) return e.stopPropagation(), !1;\n n && d(n).is(r) && e.stopPropagation(), E();\n },\n _editorMouseup: function _editorMouseup() {\n a.isVisible() && l() && 0 < a.findVisible(\"input:focus, textarea:focus, button:focus, select:focus\").length && u.events.disableBlur();\n },\n _windowMouseup: function _windowMouseup(e) {\n if (!u.core.sameInstance(a)) return !0;\n var t = a.data(\"instance\") || u;\n a.isVisible() && l() && (e.stopPropagation(), t.markers.remove(), t.popups.hide(r), E());\n },\n _windowKeydown: function _windowKeydown(e) {\n if (!u.core.sameInstance(a)) return !0;\n var t = a.data(\"instance\") || u,\n n = e.which;\n\n if (xt.KEYCODE.ESC === n) {\n if (t.popups.isVisible(r) && t.opts.toolbarInline) return e.stopPropagation(), t.popups.isVisible(r) && (a.findVisible(\".fr-back\").length ? (t.button.exec(a.findVisible(\".fr-back\").first()), t.accessibility.focusPopupButton(a)) : a.findVisible(\".fr-dismiss\").length ? t.button.exec(a.findVisible(\".fr-dismiss\").first()) : (t.popups.hide(r), t.toolbar.showInline(null, !0), t.accessibility.focusPopupButton(a))), !1;\n if (t.popups.isVisible(r)) return a.findVisible(\".fr-back\").length ? (t.button.exec(a.findVisible(\".fr-back\").first), t.accessibility.focusPopupButton(a)) : a.findVisible(\".fr-dismiss\").length ? t.button.exec(a.findVisible(\".fr-dismiss\").first()) : (t.popups.hide(r), t.accessibility.focusPopupButton(a)), !1;\n }\n },\n _repositionPopup: function _repositionPopup() {\n if (!u.opts.height && !u.opts.heightMax || u.opts.toolbarInline) return !0;\n\n if (u.$wp && v(r) && a.parent().get(0) === u.$sc.get(0)) {\n var e = a.offset().top - u.$wp.offset().top,\n t = u.$wp.outerHeight();\n u.node.hasClass(a.get(0), \"fr-above\") && (e += a.outerHeight());\n var n = u.image.getEl();\n n && n.offset().top > t || t < e || e < 0 ? a.addClass(\"fr-hidden\") : a.removeClass(\"fr-hidden\");\n }\n }\n };\n }\n\n function f(e, t) {\n u.events.on(\"mouseup\", e._editorMouseup, !0), u.$wp && u.events.on(\"keydown\", e._editorKeydown), u.events.on(\"focus\", function () {\n g[t].removeClass(\"focused\");\n }), u.events.on(\"blur\", function () {\n b() && u.markers.remove(), u.helpers.isMobile() ? g[t].hasClass(\"focused\") ? (C(), g[t].removeClass(\"focused\")) : g[t].addClass(\"focused\") : g[t].find(\"iframe\").length || C();\n }), u.$wp && !u.helpers.isMobile() && u.events.$on(u.$wp, \"scroll.popup\".concat(t), e._repositionPopup), u.events.on(\"window.mouseup\", e._windowMouseup, !0), u.events.on(\"window.keydown\", e._windowKeydown, !0), g[t].data(\"inst\".concat(u.id), !0), u.events.on(\"destroy\", function () {\n u.core.sameInstance(g[t]) && (d(\"body\").first().append(g[t]), g[t].removeClass(\"fr-active\"));\n }, !0);\n }\n\n function p() {\n var e = d(this).prev().children().first();\n e.attr(\"checked\", !e.attr(\"checked\"));\n }\n\n function e() {\n for (var e in g) {\n if (Object.prototype.hasOwnProperty.call(g, e)) {\n var t = g[e];\n t && (t.html(\"\").removeData().remove(), g[e] = null);\n }\n }\n\n g = [];\n }\n\n return u.shared.exit_flag = !1, {\n _init: function T() {\n r = window.innerHeight, u.events.on(\"shared.destroy\", e, !0), u.events.on(\"window.mousedown\", t), u.events.on(\"window.touchmove\", E), u.events.$on(d(u.o_win), \"scroll\", E), u.events.on(\"mousedown\", function (e) {\n b() && (e.stopPropagation(), u.$el.find(\".fr-marker\").remove(), t(), u.events.disableBlur());\n });\n },\n create: function A(e, t) {\n var n = c(e, t),\n r = y(e);\n f(r, e), u.events.$on(n, \"mousedown mouseup touchstart touchend touch\", \"*\", r._preventFocus, !0), u.events.$on(n, \"focus\", \"input, textarea, button, select\", r._inputFocus, !0), u.events.$on(n, \"blur\", \"input, textarea, button, select\", r._inputBlur, !0);\n var a = n.find(\"input, textarea\");\n return function o(e) {\n for (var t = 0; t < e.length; t++) {\n var n = e[t],\n r = d(n);\n 0 === r.next().length && r.attr(\"placeholder\") && (r.after('\")), r.attr(\"placeholder\", \"\"));\n }\n }(a), u.events.$on(a, \"focus\", i), u.events.$on(a, \"blur change\", s), u.events.$on(n, \"click\", \".fr-checkbox + label\", p), u.accessibility.registerPopup(e), u.helpers.isIOS() && u.events.$on(n, \"touchend\", \"label\", function () {\n d(\"#\".concat(d(this).attr(\"for\"))).prop(\"checked\", function (e, t) {\n return !t;\n });\n }, !0), u.events.$on(d(u.o_win), \"resize\", r._windowResize, !0), \"filesManager.insert\" === e && g[\"filesManager.insert\"].css(\"zIndex\", 2147483641), n;\n },\n get: function L(e) {\n var t = g[e];\n return t && !t.data(\"inst\".concat(u.id)) && f(y(e), e), t;\n },\n show: function S(e, t, n, r, a) {\n if (v(e) || (b() && 0 < u.$el.find(\".fr-marker\").length ? (u.events.disableBlur(), u.selection.restore()) : b() || (u.events.disableBlur(), u.events.focus(), u.events.enableBlur())), C([e]), !g[e]) return !1;\n var o = u.button.getButtons(\".fr-dropdown.fr-active\");\n o.removeClass(\"fr-active\").attr(\"aria-expanded\", !1).parents(\".fr-toolbar\").css(\"zIndex\", \"\").find(\"> .fr-dropdown-wrapper\").css(\"height\", \"\"), o.next().attr(\"aria-hidden\", !0).css(\"overflow\", \"\").find(\"> .fr-dropdown-wrapper\").css(\"height\", \"\"), g[e].data(\"instance\", u), u.$tb && u.$tb.data(\"instance\", u);\n var i = v(e);\n g[e].addClass(\"fr-active\").removeClass(\"fr-hidden\").find(\"input, textarea\").removeAttr(\"disabled\");\n var s = g[e].data(\"container\");\n\n if (function p(e, t) {\n t.isVisible() || (t = u.$sc), t.contains([g[e].get(0)]) || t.append(g[e]);\n }(e, s), u.opts.toolbarInline && s && u.$tb && s.get(0) === u.$tb.get(0) && (m(e, u.$sc), n = u.$tb.offset().top - u.helpers.getPX(u.$tb.css(\"margin-top\")), t = u.$tb.offset().left + u.$tb.outerWidth() / 2, u.node.hasClass(u.$tb.get(0), \"fr-above\") && n && (n += u.$tb.outerHeight()), r = 0), s = g[e].data(\"container\"), u.opts.iframe && !r && !i) {\n var l = u.helpers.getPX(u.$wp.find(\".fr-iframe\").css(\"padding-top\")),\n c = u.helpers.getPX(u.$wp.find(\".fr-iframe\").css(\"padding-left\"));\n t && (t -= u.$iframe.offset().left + c), n && (n -= u.$iframe.offset().top + l);\n }\n\n s.is(u.$tb) ? u.$tb.css(\"zIndex\", (u.opts.zIndex || 1) + 4) : g[e].css(\"zIndex\", (u.opts.zIndex || 1) + 3), u.opts.toolbarBottom && s && u.$tb && s.get(0) === u.$tb.get(0) && (g[e].addClass(\"fr-above\"), n && (n -= g[e].outerHeight())), a && (t -= g[e].width() / 2), t + g[e].outerWidth() > u.$sc.offset().left + u.$sc.width() && (t -= t + g[e].outerWidth() - u.$sc.offset().left - u.$sc.width()), t < u.$sc.offset().left && \"rtl\" === u.opts.direction && (t = u.$sc.offset().left), g[e].removeClass(\"fr-active\"), u.position.at(t, n, g[e], r || 0);\n var d = u.node.blockParent(u.selection.blocks()[0]);\n if (d && \"false\" === d.getAttribute(\"contenteditable\")) g[e].removeClass(\"fr-active\");else {\n var f = u.selection.element().parentElement.getAttribute(\"contenteditable\");\n f && \"false\" === f ? g[e].removeClass(\"fr-active\") : g[e].addClass(\"fr-active\");\n }\n i || u.accessibility.focusPopup(g[e]), u.opts.toolbarInline && u.toolbar.hide(), u.$tb && (h = u.$tb.find(\".fr-btn-active-popup\")), u.events.trigger(\"popups.show.\".concat(e)), y(e)._repositionPopup(), E();\n },\n hide: n,\n onHide: function w(e, t) {\n u.events.on(\"popups.hide.\".concat(e), t);\n },\n hideAll: C,\n setContainer: m,\n refresh: function R(e) {\n g[e].data(\"instance\", u), u.events.trigger(\"popups.refresh.\".concat(e));\n\n for (var t = g[e].find(\".fr-command\"), n = 0; n < t.length; n++) {\n var r = d(t[n]);\n 0 === r.parents(\".fr-dropdown-menu\").length && u.button.refresh(r);\n }\n },\n onRefresh: function _(e, t) {\n u.events.on(\"popups.refresh.\".concat(e), t);\n },\n onShow: function x(e, t) {\n u.events.on(\"popups.show.\".concat(e), t);\n },\n isVisible: v,\n setFileListHeight: a,\n areVisible: b,\n setPopupDimensions: function M(e, t) {\n t && e.find(\".fr-upload-progress-layer\").get(0).clientHeight < o && (e.find(\".fr-upload-progress\").addClass(\"fr-height-auto\"), u.popups.get(\"filesManager.insert\").addClass(\"fr-height-auto\"), e.find(\".fr-upload-progress\").removeClass(\"fr-height-set\"), o = 2e3), e.get(0).clientHeight > window.innerHeight / 2 && (window.innerWidth < 500 ? e.get(0).clientHeight > .6 * r && a(e) : 400 < e.get(0).clientHeight && a(e), o = e.find(\".fr-upload-progress-layer\").get(0).clientHeight);\n var n = window.innerWidth;\n\n switch (!0) {\n case n <= 320:\n e.width(200);\n break;\n\n case n <= 420:\n e.width(250);\n break;\n\n case n <= 520:\n e.width(300);\n break;\n\n case n <= 720:\n e.width(400);\n break;\n\n case 720 < n:\n e.width(530);\n }\n }\n };\n }, xt.MODULES.accessibility = function (f) {\n var p = f.$,\n o = !0;\n\n function l(t) {\n for (var e = f.$el.find('[contenteditable=\"true\"]'), n = !1, r = 0; e.get(r);) {\n p(e.get(r)).is(\":focus\") && (n = !0), r++;\n }\n\n t && t.length && !n && (t.data(\"blur-event-set\") || t.parents(\".fr-popup\").length || (f.events.$on(t, \"blur\", function () {\n var e = t.parents(\".fr-toolbar, .fr-popup\").data(\"instance\") || f;\n e.events.blurActive() && !f.core.hasFocus() && e.events.trigger(\"blur\"), setTimeout(function () {\n e.events.enableBlur();\n }, 100);\n }, !0), t.data(\"blur-event-set\", !0)), (t.parents(\".fr-toolbar, .fr-popup\").data(\"instance\") || f).events.disableBlur(), t.get(0).focus(), f.shared.$f_el = t);\n }\n\n function u(e, t) {\n var n = t ? \"last\" : \"first\",\n r = s(g(e))[n]();\n if (r.length) return l(r), !0;\n }\n\n function i(e) {\n return e.is(\"input, textarea, select\") && t(), f.events.disableBlur(), e.get(0).focus(), !0;\n }\n\n function h(e, t) {\n var n = e.find(\"input, textarea, button, select\").filter(function () {\n return p(this).isVisible();\n }).not(\":disabled\");\n if ((n = t ? n.last() : n.first()).length) return i(n);\n\n if (f.shared.with_kb) {\n var r = e.findVisible(\".fr-active-item\").first();\n if (r.length) return i(r);\n var a = e.findVisible(\"[tabIndex]\").first();\n if (a.length) return i(a);\n }\n }\n\n function t() {\n 0 === f.$el.find(\".fr-marker\").length && f.core.hasFocus() && f.selection.save();\n }\n\n function c() {\n var e = f.popups.areVisible();\n\n if (e) {\n var t = e.find(\".fr-buttons\");\n return t.find(\"button:focus, .fr-group span:focus\").length ? !u(e.data(\"instance\").$tb) : !u(t);\n }\n\n return !u(f.$tb);\n }\n\n function d() {\n var e = null;\n return f.shared.$f_el.is(\".fr-dropdown.fr-active\") ? e = f.shared.$f_el : f.shared.$f_el.closest(\".fr-dropdown-menu\").prev().is(\".fr-dropdown.fr-active\") && (e = f.shared.$f_el.closest(\".fr-dropdown-menu\").prev()), e;\n }\n\n function s(e) {\n for (var t = -1, n = 0; n < e.length; n++) {\n p(e[n]).hasClass(\"fr-open\") && (t = n);\n }\n\n var r = e.index(f.$tb.find(\".fr-more-toolbar.fr-expanded > button.fr-command\").first());\n\n if (0 < r && -1 !== t) {\n var a = e.slice(r, e.length),\n o = (e = e.slice(0, r)).slice(0, t + 1),\n i = e.slice(t + 1, e.length);\n e = o;\n\n for (var s = 0; s < a.length; s++) {\n e.push(a[s]);\n }\n\n for (var l = 0; l < i.length; l++) {\n e.push(i[l]);\n }\n }\n\n return e;\n }\n\n function g(e) {\n return e.findVisible(\"button:not(.fr-disabled), .fr-group span.fr-command\").filter(function (e) {\n var t = p(e).parents(\".fr-more-toolbar\");\n return 0 === t.length || 0 < t.length && t.hasClass(\"fr-expanded\");\n });\n }\n\n function n(e, t, n) {\n if (f.shared.$f_el) {\n var r = d();\n r && (f.button.click(r), f.shared.$f_el = r);\n var a = s(g(e)),\n o = a.index(f.shared.$f_el);\n\n if (0 === o && !n || o === a.length - 1 && n) {\n var i;\n\n if (t) {\n if (e.parent().is(\".fr-popup\")) i = !h(e.parent().children().not(\".fr-buttons\"), !n);\n !1 === i && (f.shared.$f_el = null);\n }\n\n t && !1 === i || u(e, !n);\n } else l(p(a.get(o + (n ? 1 : -1))));\n\n return !1;\n }\n }\n\n function m(e, t) {\n return n(e, t, !0);\n }\n\n function v(e, t) {\n return n(e, t);\n }\n\n function b(e) {\n if (f.shared.$f_el) {\n var t;\n if (f.shared.$f_el.is(\".fr-dropdown.fr-active\")) return l(t = e ? f.shared.$f_el.next().find(\".fr-command:not(.fr-disabled)\").first() : f.shared.$f_el.next().find(\".fr-command:not(.fr-disabled)\").last()), !1;\n if (f.shared.$f_el.is(\"a.fr-command\")) return (t = e ? f.shared.$f_el.closest(\"li\").nextAllVisible().first().find(\".fr-command:not(.fr-disabled)\").first() : f.shared.$f_el.closest(\"li\").prevAllVisible().first().find(\".fr-command:not(.fr-disabled)\").first()).length || (t = e ? f.shared.$f_el.closest(\".fr-dropdown-menu\").find(\".fr-command:not(.fr-disabled)\").first() : f.shared.$f_el.closest(\".fr-dropdown-menu\").find(\".fr-command:not(.fr-disabled)\").last()), l(t), !1;\n }\n }\n\n function C() {\n if (f.shared.$f_el) {\n if (f.shared.$f_el.hasClass(\"fr-dropdown\")) f.button.click(f.shared.$f_el);else if (f.shared.$f_el.is(\"button.fr-back\")) {\n f.opts.toolbarInline && (f.events.disableBlur(), f.events.focus());\n var e = f.popups.areVisible(f);\n e && (f.shared.with_kb = !1), f.button.click(f.shared.$f_el), y(e);\n } else {\n if (f.events.disableBlur(), f.button.click(f.shared.$f_el), f.shared.$f_el.attr(\"data-group-name\")) {\n var t = f.$tb.find('.fr-more-toolbar[data-name=\"'.concat(f.shared.$f_el.attr(\"data-group-name\"), '\"]')),\n n = f.shared.$f_el;\n t.hasClass(\"fr-expanded\") && (n = t.findVisible(\"button:not(.fr-disabled)\").first()), n && l(n);\n } else if (f.shared.$f_el.attr(\"data-popup\")) {\n var r = f.popups.areVisible(f);\n r && r.data(\"popup-button\", f.shared.$f_el);\n } else if (f.shared.$f_el.attr(\"data-modal\")) {\n var a = f.modals.areVisible(f);\n a && a.data(\"modal-button\", f.shared.$f_el);\n }\n\n f.shared.$f_el = null;\n }\n return !1;\n }\n }\n\n function E() {\n f.shared.$f_el && (f.events.disableBlur(), f.shared.$f_el.blur(), f.shared.$f_el = null), !1 !== f.events.trigger(\"toolbar.focusEditor\") && (f.events.disableBlur(), f.$el.get(0).focus(), f.events.focus());\n }\n\n function a(r) {\n r && r.length && (f.events.$on(r, \"keydown\", function (e) {\n if (!p(e.target).is(\"a.fr-command, button.fr-command, .fr-group span.fr-command\")) return !0;\n var t = r.parents(\".fr-popup\").data(\"instance\") || r.data(\"instance\") || f;\n f.shared.with_kb = !0;\n var n = t.accessibility.exec(e, r);\n return f.shared.with_kb = !1, n;\n }, !0), f.events.$on(r, \"mouseenter\", \"[tabIndex]\", function (e) {\n var t = r.parents(\".fr-popup\").data(\"instance\") || r.data(\"instance\") || f;\n if (!o) return e.stopPropagation(), void e.preventDefault();\n var n = p(e.currentTarget);\n t.shared.$f_el && t.shared.$f_el.not(n) && t.accessibility.focusEditor();\n }, !0), f.$tb && f.events.$on(f.$tb, \"transitionend\", \".fr-more-toolbar\", function () {\n f.shared.$f_el = p(document.activeElement);\n }));\n }\n\n function y(e) {\n var t = e.data(\"popup-button\");\n t && setTimeout(function () {\n l(t), e.data(\"popup-button\", null);\n }, 0);\n }\n\n function T(e) {\n var t = f.popups.areVisible(e);\n t && t.data(\"popup-button\", null);\n }\n\n function e(e) {\n var t = -1 !== navigator.userAgent.indexOf(\"Mac OS X\") ? e.metaKey : e.ctrlKey;\n if (e.which !== xt.KEYCODE.F10 || t || e.shiftKey || !e.altKey) return !0;\n f.shared.with_kb = !0;\n var n = f.popups.areVisible(f),\n r = !1;\n return n && (r = h(n.children().not(\".fr-buttons\"))), r || c(), f.shared.with_kb = !1, e.preventDefault(), e.stopPropagation(), !1;\n }\n\n return {\n _init: function r() {\n f.$wp ? f.events.on(\"keydown\", e, !0) : f.events.$on(f.$win, \"keydown\", e, !0), f.events.on(\"mousedown\", function (e) {\n T(f), f.shared.$f_el && f.el.isSameNode(f.shared.$f_el[0]) && (f.accessibility.restoreSelection(), e.stopPropagation(), f.events.disableBlur(), f.shared.$f_el = null);\n }, !0), f.events.on(\"blur\", function () {\n f.shared.$f_el = null, T(f);\n }, !0);\n },\n registerPopup: function A(e) {\n var t = f.popups.get(e),\n n = function r(c) {\n var d = f.popups.get(c);\n return {\n _tiKeydown: function _tiKeydown(e) {\n var t = d.data(\"instance\") || f;\n if (!1 === t.events.trigger(\"popup.tab\", [e])) return !1;\n var n = e.which,\n r = d.find(\":focus\").first();\n\n if (xt.KEYCODE.TAB === n) {\n e.preventDefault();\n var a = d.children().not(\".fr-buttons\"),\n o = a.findVisible(\"input, textarea, button, select\").not(\".fr-no-touch input, .fr-no-touch textarea, .fr-no-touch button, .fr-no-touch select, :disabled\").toArray(),\n i = o.indexOf(this) + (e.shiftKey ? -1 : 1);\n if (0 <= i && i < o.length) return t.events.disableBlur(), p(o[i]).focus(), e.stopPropagation(), !1;\n var s = d.find(\".fr-buttons\");\n if (s.length && u(s, Boolean(e.shiftKey))) return e.stopPropagation(), !1;\n if (h(a)) return e.stopPropagation(), !1;\n } else {\n if (xt.KEYCODE.ENTER !== n || !e.target || \"TEXTAREA\" === e.target.tagName) return xt.KEYCODE.ESC === n ? (e.preventDefault(), e.stopPropagation(), t.accessibility.restoreSelection(), t.popups.isVisible(c) && d.findVisible(\".fr-back\").length ? (t.opts.toolbarInline && (t.events.disableBlur(), t.events.focus()), t.button.exec(d.findVisible(\".fr-back\").first()), y(d)) : t.popups.isVisible(c) && d.findVisible(\".fr-dismiss\").length ? t.button.exec(d.findVisible(\".fr-dismiss\").first()) : (t.popups.hide(c), t.opts.toolbarInline && t.toolbar.showInline(null, !0), y(d)), !1) : xt.KEYCODE.SPACE === n && (r.is(\".fr-submit\") || r.is(\".fr-dismiss\")) ? (e.preventDefault(), e.stopPropagation(), t.events.disableBlur(), t.button.exec(r), !0) : t.keys.isBrowserAction(e) ? void e.stopPropagation() : r.is(\"input[type=text], textarea\") ? void e.stopPropagation() : xt.KEYCODE.SPACE === n && (r.is(\".fr-link-attr\") || r.is(\"input[type=file]\")) ? void e.stopPropagation() : (e.stopPropagation(), e.preventDefault(), !1);\n var l = null;\n 0 < d.findVisible(\".fr-submit\").length ? l = d.findVisible(\".fr-submit\").first() : d.findVisible(\".fr-dismiss\").length && (l = d.findVisible(\".fr-dismiss\").first()), l && (e.preventDefault(), e.stopPropagation(), t.events.disableBlur(), t.button.exec(l));\n }\n },\n _tiMouseenter: function _tiMouseenter() {\n var e = d.data(\"instance\") || f;\n T(e);\n }\n };\n }(e);\n\n a(t.find(\".fr-buttons\")), f.events.$on(t, \"mouseenter\", \"tabIndex\", n._tiMouseenter, !0), f.events.$on(t.children().not(\".fr-buttons\"), \"keydown\", \"[tabIndex]\", n._tiKeydown, !0), f.popups.onHide(e, function () {\n (t.data(\"instance\") || f).accessibility.restoreSelection();\n }), f.popups.onShow(e, function () {\n o = !1, setTimeout(function () {\n o = !0;\n }, 0);\n });\n },\n registerToolbar: a,\n focusToolbarElement: l,\n focusToolbar: u,\n focusContent: h,\n focusPopup: function L(r) {\n var a = r.children().not(\".fr-buttons\");\n a.data(\"mouseenter-event-set\") || (f.events.$on(a, \"mouseenter\", \"[tabIndex]\", function (e) {\n var t = r.data(\"instance\") || f;\n if (!o) return e.stopPropagation(), void e.preventDefault();\n var n = a.find(\":focus\").first();\n n.length && !n.is(\"input, button, textarea, select\") && (t.events.disableBlur(), n.blur(), t.events.disableBlur(), t.events.focus());\n }), a.data(\"mouseenter-event-set\", !0)), !h(a) && f.shared.with_kb && u(r.find(\".fr-buttons\"));\n },\n focusModal: function S(e) {\n f.core.hasFocus() || (f.events.disableBlur(), f.events.focus()), f.accessibility.saveSelection(), f.events.disableBlur(), f.el.blur(), f.selection.clear(), f.events.disableBlur(), f.shared.with_kb ? e.find(\".fr-command[tabIndex], [tabIndex]\").first().focus() : e.find(\"[tabIndex]\").first().focus();\n },\n focusEditor: E,\n focusPopupButton: y,\n focusModalButton: function w(e) {\n var t = e.data(\"modal-button\");\n t && setTimeout(function () {\n l(t), e.data(\"modal-button\", null);\n }, 0);\n },\n hasFocus: function R() {\n return null !== f.shared.$f_el;\n },\n exec: function _(e, t) {\n var n = -1 !== navigator.userAgent.indexOf(\"Mac OS X\") ? e.metaKey : e.ctrlKey,\n r = e.which,\n a = !1;\n return r !== xt.KEYCODE.TAB || n || e.shiftKey || e.altKey ? r !== xt.KEYCODE.ARROW_RIGHT || n || e.shiftKey || e.altKey ? r !== xt.KEYCODE.TAB || n || !e.shiftKey || e.altKey ? r !== xt.KEYCODE.ARROW_LEFT || n || e.shiftKey || e.altKey ? r !== xt.KEYCODE.ARROW_UP || n || e.shiftKey || e.altKey ? r !== xt.KEYCODE.ARROW_DOWN || n || e.shiftKey || e.altKey ? r !== xt.KEYCODE.ENTER && r !== xt.KEYCODE.SPACE || n || e.shiftKey || e.altKey ? r !== xt.KEYCODE.ESC || n || e.shiftKey || e.altKey ? r !== xt.KEYCODE.F10 || n || e.shiftKey || !e.altKey || (a = c()) : a = function o(e) {\n if (f.shared.$f_el) {\n var t = d();\n return t ? (f.button.click(t), l(t)) : e.parent().findVisible(\".fr-back\").length ? (f.shared.with_kb = !1, f.opts.toolbarInline && (f.events.disableBlur(), f.events.focus()), f.button.exec(e.parent().findVisible(\".fr-back\")).first(), y(e.parent())) : f.shared.$f_el.is(\"button, .fr-group span\") && (e.parent().is(\".fr-popup\") ? (f.accessibility.restoreSelection(), f.shared.$f_el = null, !1 !== f.events.trigger(\"toolbar.esc\") && (f.popups.hide(e.parent()), f.opts.toolbarInline && f.toolbar.showInline(null, !0), y(e.parent()))) : E()), !1;\n }\n }(t) : a = C() : a = function i() {\n return f.shared.$f_el && f.shared.$f_el.is(\".fr-dropdown:not(.fr-active)\") ? C() : b(!0);\n }() : a = function s() {\n return b();\n }() : a = v(t) : a = v(t, !0) : a = m(t) : a = m(t, !0), f.shared.$f_el || void 0 !== a || (a = !0), !a && f.keys.isBrowserAction(e) && (a = !0), !!a || (e.preventDefault(), e.stopPropagation(), !1);\n },\n saveSelection: t,\n restoreSelection: function x() {\n f.$el.find(\".fr-marker\").length && (f.events.disableBlur(), f.selection.restore(), f.events.enableBlur());\n }\n };\n }, Object.assign(xt.DEFAULTS, {\n tooltips: !0\n }), xt.MODULES.tooltip = function (o) {\n var i = o.$;\n\n function r() {\n o.helpers.isMobile() || o.$tooltip && o.$tooltip.removeClass(\"fr-visible\").css(\"left\", \"-3000px\").css(\"position\", \"fixed\");\n }\n\n function a(e, t) {\n if (!o.helpers.isMobile() && (e.data(\"title\") || e.data(\"title\", e.attr(\"title\")), e.data(\"title\"))) {\n o.$tooltip || function a() {\n o.opts.tooltips && !o.helpers.isMobile() && (o.shared.$tooltip ? o.$tooltip = o.shared.$tooltip : (o.shared.$tooltip = i(o.doc.createElement(\"DIV\")).addClass(\"fr-tooltip\"), o.$tooltip = o.shared.$tooltip, o.opts.theme && o.$tooltip.addClass(\"\".concat(o.opts.theme, \"-theme\")), i(o.o_doc).find(\"body\").first().append(o.$tooltip)), o.events.on(\"shared.destroy\", function () {\n o.$tooltip.html(\"\").removeData().remove(), o.$tooltip = null;\n }, !0));\n }(), e.removeAttr(\"title\"), o.$tooltip.text(o.language.translate(e.data(\"title\"))), o.$tooltip.addClass(\"fr-visible\");\n var n = e.offset().left + (e.outerWidth() - o.$tooltip.outerWidth()) / 2;\n n < 0 && (n = 0), n + o.$tooltip.outerWidth() > i(o.o_win).width() && (n = i(o.o_win).width() - o.$tooltip.outerWidth()), void 0 === t && (t = o.opts.toolbarBottom), e.offset().top - i(window).scrollTop() + e.outerHeight() + 10 >= i(window).height() && (t = !0);\n var r = t ? e.offset().top - o.$tooltip.height() : e.offset().top + e.outerHeight();\n o.$tooltip.css(\"position\", \"\"), o.$tooltip.css(\"left\", n), o.$tooltip.css(\"top\", Math.ceil(r)), \"static\" !== i(o.o_doc).find(\"body\").first().css(\"position\") ? (o.$tooltip.css(\"margin-left\", -i(o.o_doc).find(\"body\").first().offset().left), o.$tooltip.css(\"margin-top\", -i(o.o_doc).find(\"body\").first().offset().top)) : (o.$tooltip.css(\"margin-left\", \"\"), o.$tooltip.css(\"margin-top\", \"\"));\n }\n }\n\n return {\n hide: r,\n to: a,\n bind: function s(e, t, n) {\n o.opts.tooltips && !o.helpers.isMobile() && (o.events.$on(e, \"mouseover\", t, function (e) {\n o.node.hasClass(e.currentTarget, \"fr-disabled\") || o.edit.isDisabled() || a(i(e.currentTarget), n);\n }, !0), o.events.$on(e, \"mouseout \".concat(o._mousedown, \" \").concat(o._mouseup), t, function () {\n r();\n }, !0));\n }\n };\n }, xt.TOOLBAR_VISIBLE_BUTTONS = 3, xt.MODULES.button = function (g) {\n var h = g.$,\n i = [];\n (g.opts.toolbarInline || g.opts.toolbarContainer) && (g.shared.buttons || (g.shared.buttons = []), i = g.shared.buttons);\n var s = [];\n\n function l(e, t, n) {\n for (var r = h(), a = 0; a < e.length; a++) {\n var o = h(e[a]);\n\n if (o.is(t) && (r = r.add(o)), n && o.is(\".fr-dropdown\")) {\n var i = o.next().find(t);\n r = r.add(i);\n }\n }\n\n return r;\n }\n\n function m(e, t) {\n var n,\n r = h();\n if (!e) return r;\n\n for (n in r = (r = r.add(l(i, e, t))).add(l(s, e, t)), g.shared.popups) {\n if (Object.prototype.hasOwnProperty.call(g.shared.popups, n)) {\n var a = g.shared.popups[n].children().find(e);\n r = r.add(a);\n }\n }\n\n for (n in g.shared.modals) {\n if (Object.prototype.hasOwnProperty.call(g.shared.modals, n)) {\n var o = g.shared.modals[n].$modal.find(e);\n r = r.add(o);\n }\n }\n\n return r;\n }\n\n function a(e) {\n var t = e.next(),\n n = g.node.hasClass(e.get(0), \"fr-active\"),\n r = m(\".fr-dropdown.fr-active\").not(e),\n a = e.parents(\".fr-toolbar, .fr-popup\").data(\"instance\") || g;\n a.helpers.isIOS() && !a.el.querySelector(\".fr-marker\") && (a.selection.save(), a.selection.clear(), a.selection.restore()), t.parents(\".fr-more-toolbar\").addClass(\"fr-overflow-visible\");\n var o = 0,\n i = 0,\n s = t.find(\"> .fr-dropdown-wrapper\");\n\n if (!n) {\n var l = e.data(\"cmd\");\n t.find(\".fr-command\").removeClass(\"fr-active\").attr(\"aria-selected\", !1), xt.COMMANDS[l] && xt.COMMANDS[l].refreshOnShow && xt.COMMANDS[l].refreshOnShow.apply(a, [e, t]), t.css(\"left\", e.offset().left - e.parents(\".fr-btn-wrap, .fr-toolbar, .fr-buttons\").offset().left - (\"rtl\" === g.opts.direction ? t.width() - e.outerWidth() : 0)), t.addClass(\"test-height\"), o = t.outerHeight(), i = g.helpers.getPX(s.css(\"max-height\")), t.removeClass(\"test-height\"), t.css(\"top\", \"\").css(\"bottom\", \"\");\n var c = e.outerHeight() / 10;\n if (!g.opts.toolbarBottom && t.offset().top + e.outerHeight() + o < h(g.o_doc).height()) t.css(\"top\", e.position().top + e.outerHeight() - c);else {\n var d = 0,\n f = e.parents(\".fr-more-toolbar\");\n 0 < f.length && (d = f.first().height()), t.css(\"bottom\", e.parents(\".fr-popup, .fr-toolbar\").first().height() - d - e.position().top);\n }\n }\n\n (e.addClass(\"fr-blink\").toggleClass(\"fr-active\"), e.hasClass(\"fr-options\")) && e.prev().toggleClass(\"fr-expanded\");\n e.hasClass(\"fr-active\") ? (t.attr(\"aria-hidden\", !1), e.attr(\"aria-expanded\", !0), function u(e, t, n) {\n n <= t && (e.parent().css(\"overflow\", \"auto\"), e.parent().css(\"overflow-x\", \"hidden\")), e.css(\"height\", Math.min(t, n));\n }(s, o, i)) : (t.attr(\"aria-hidden\", !0).css(\"overflow\", \"\"), e.attr(\"aria-expanded\", !1), s.css(\"height\", \"\")), setTimeout(function () {\n e.removeClass(\"fr-blink\");\n }, 300), t.css(\"margin-left\", \"\"), t.offset().left + t.outerWidth() > g.$sc.offset().left + g.$sc.width() && t.css(\"margin-left\", -(t.offset().left + t.outerWidth() - g.$sc.offset().left - g.$sc.width())), t.offset().left < g.$sc.offset().left && \"rtl\" === g.opts.direction && t.css(\"margin-left\", g.$sc.offset().left), r.removeClass(\"fr-active\").attr(\"aria-expanded\", !1).next().attr(\"aria-hidden\", !0).css(\"overflow\", \"\").find(\"> .fr-dropdown-wrapper\").css(\"height\", \"\"), r.prev(\".fr-expanded\").removeClass(\"fr-expanded\"), r.parents(\".fr-toolbar:not(.fr-inline)\").css(\"zIndex\", \"\"), 0 !== e.parents(\".fr-popup\").length || g.opts.toolbarInline || (g.node.hasClass(e.get(0), \"fr-active\") ? g.$tb.css(\"zIndex\", (g.opts.zIndex || 1) + 4) : g.$tb.css(\"zIndex\", \"\"));\n var p = t.find(\"a.fr-command.fr-active\").first();\n g.helpers.isMobile() || (p.length ? (g.accessibility.focusToolbarElement(p), s.scrollTop(Math.abs(p.parents(\".fr-dropdown-content\").offset().top - p.offset().top) - p.offset().top)) : (g.accessibility.focusToolbarElement(e), s.scrollTop(0)));\n }\n\n function o(e) {\n e.addClass(\"fr-blink\"), setTimeout(function () {\n e.removeClass(\"fr-blink\");\n }, 500);\n\n for (var t = e.data(\"cmd\"), n = []; void 0 !== e.data(\"param\".concat(n.length + 1));) {\n n.push(e.data(\"param\".concat(n.length + 1)));\n }\n\n var r = m(\".fr-dropdown.fr-active\");\n r.length && (r.removeClass(\"fr-active\").attr(\"aria-expanded\", !1).next().attr(\"aria-hidden\", !0).css(\"overflow\", \"\").find(\"> .fr-dropdown-wrapper\").css(\"height\", \"\"), r.prev(\".fr-expanded\").removeClass(\"fr-expanded\"), r.parents(\".fr-toolbar:not(.fr-inline)\").css(\"zIndex\", \"\")), e.parents(\".fr-popup, .fr-toolbar\").data(\"instance\").commands.exec(t, n);\n }\n\n function t(e) {\n var t = e.parents(\".fr-popup, .fr-toolbar\").data(\"instance\");\n\n if (0 === e.parents(\".fr-popup\").length && e.data(\"popup\") && !e.hasClass(\"fr-btn-active-popup\") && e.addClass(\"fr-btn-active-popup\"), 0 !== e.parents(\".fr-popup\").length || e.data(\"popup\") || t.popups.hideAll(), t.popups.areVisible() && !t.popups.areVisible(t)) {\n for (var n = 0; n < xt.INSTANCES.length; n++) {\n xt.INSTANCES[n] !== t && xt.INSTANCES[n].popups && xt.INSTANCES[n].popups.areVisible() && xt.INSTANCES[n].$el.find(\".fr-marker\").remove();\n }\n\n t.popups.hideAll();\n }\n\n g.node.hasClass(e.get(0), \"fr-dropdown\") ? a(e) : (!function r(e) {\n o(e);\n }(e), xt.COMMANDS[e.data(\"cmd\")] && !1 !== xt.COMMANDS[e.data(\"cmd\")].refreshAfterCallback && t.button.bulkRefresh());\n }\n\n function c(e) {\n t(h(e.currentTarget));\n }\n\n function d(e) {\n var t = e.find(\".fr-dropdown.fr-active\");\n t.length && (t.removeClass(\"fr-active\").attr(\"aria-expanded\", !1).next().attr(\"aria-hidden\", !0).css(\"overflow\", \"\").find(\"> .fr-dropdown-wrapper\").css(\"height\", \"\"), t.parents(\".fr-toolbar:not(.fr-inline)\").css(\"zIndex\", \"\"), t.prev().removeClass(\"fr-expanded\"));\n }\n\n function f(e) {\n e.preventDefault(), e.stopPropagation();\n }\n\n function p(e) {\n if (e.stopPropagation(), !g.helpers.isMobile()) return !1;\n }\n\n function v(e) {\n var t = 1 < arguments.length && arguments[1] !== undefined ? arguments[1] : {},\n n = 2 < arguments.length ? arguments[2] : undefined;\n if (g.helpers.isMobile() && !1 === t.showOnMobile) return \"\";\n var r = t.displaySelection;\n \"function\" == typeof r && (r = r(g));\n var a = \"\";\n if (\"options\" !== t.type) if (r) {\n var o = \"function\" == typeof t.defaultSelection ? t.defaultSelection(g) : t.defaultSelection;\n a = '').concat(g.language.translate(o || t.title), \"\");\n } else a = g.icon.create(t.icon || e), a += ''.concat(g.language.translate(t.title) || \"\", \"\");\n var i = t.popup ? ' data-popup=\"true\"' : \"\",\n s = t.modal ? ' data-modal=\"true\"' : \"\",\n l = g.shortcuts.get(\"\".concat(e, \".\"));\n l = l ? \" (\".concat(l, \")\") : \"\";\n var c = \"\".concat(e, \"-\").concat(g.id),\n d = \"dropdown-menu-\".concat(c),\n f = '\");\n\n if (\"dropdown\" === t.type || \"options\" === t.type) {\n var p = '
    ');\n p += function u(e, t) {\n var n = \"\";\n if (t.html) \"function\" == typeof t.html ? n += t.html.call(g) : n += t.html;else {\n var r = t.options;\n\n for (var a in \"function\" == typeof r && (r = r()), n += '
      ', r) {\n if (Object.prototype.hasOwnProperty.call(r, a)) {\n var o = g.shortcuts.get(\"\".concat(e, \".\").concat(a));\n o = o ? ''.concat(o, \"\") : \"\", n += '
    • ').concat(g.language.translate(r[a]), \"
    • \");\n }\n }\n\n n += \"
    \";\n }\n return n;\n }(e, t), f += p += \"
    \";\n }\n\n return t.hasOptions && t.hasOptions.apply(g) && (f = '
    '.concat(f, \" \").concat(v(e + \"Options\", Object.assign({}, t, {\n type: \"options\",\n hasOptions: !1\n }), n), \"
    \")), f;\n }\n\n function e(a) {\n var o = g.$tb && g.$tb.data(\"instance\") || g;\n if (!1 === g.events.trigger(\"buttons.refresh\")) return !0;\n setTimeout(function () {\n for (var e = o.selection.inEditor() && o.core.hasFocus(), t = 0; t < a.length; t++) {\n var n = h(a[t]),\n r = n.data(\"cmd\");\n 0 === n.parents(\".fr-popup\").length ? e || xt.COMMANDS[r] && xt.COMMANDS[r].forcedRefresh ? o.button.refresh(n) : g.node.hasClass(n.get(0), \"fr-dropdown\") || (n.removeClass(\"fr-active\"), n.attr(\"aria-pressed\") && n.attr(\"aria-pressed\", !1)) : n.parents(\".fr-popup\").isVisible() && o.button.refresh(n);\n }\n }, 0);\n }\n\n function n() {\n e(i), e(s);\n }\n\n function r() {\n i = [], s = [];\n }\n\n g.shared.popup_buttons || (g.shared.popup_buttons = []), s = g.shared.popup_buttons;\n var u = null;\n\n function b() {\n clearTimeout(u), u = setTimeout(n, 50);\n }\n\n return {\n _init: function C() {\n g.opts.toolbarInline ? g.events.on(\"toolbar.show\", n) : (g.events.on(\"mouseup\", b), g.events.on(\"keyup\", b), g.events.on(\"blur\", b), g.events.on(\"focus\", b), g.events.on(\"contentChanged\", b), g.helpers.isMobile() && g.events.$on(g.$doc, \"selectionchange\", n)), g.events.on(\"shared.destroy\", r);\n },\n build: v,\n buildList: function E(e, t) {\n for (var n = \"\", r = 0; r < e.length; r++) {\n var a = e[r],\n o = xt.COMMANDS[a];\n o && \"undefined\" != typeof o.plugin && g.opts.pluginsEnabled.indexOf(o.plugin) < 0 || (o ? n += v(a, o, void 0 === t || 0 <= t.indexOf(a)) : \"|\" === a ? n += '
    ' : \"-\" === a && (n += '
    '));\n }\n\n return n;\n },\n buildGroup: function y(e) {\n var t = \"\",\n n = \"\";\n\n for (var r in e) {\n var a = e[r];\n\n if (a.buttons) {\n for (var o = \"\", i = \"\", s = 0, l = \"left\", c = xt.TOOLBAR_VISIBLE_BUTTONS, d = 0; d < a.buttons.length; d++) {\n var f = a.buttons[d],\n p = xt.COMMANDS[f];\n p || (\"|\" == f ? o += '
    ' : \"-\" == f && (o += '
    ')), !p || p && \"undefined\" != typeof p.plugin && g.opts.pluginsEnabled.indexOf(p.plugin) < 0 || (e[r].align !== undefined && (l = e[r].align), e[r].buttonsVisible !== undefined && (c = e[r].buttonsVisible), e.showMoreButtons && c <= s ? i += v(f, p, !0) : o += v(f, p, !0), s++);\n }\n\n if (e.showMoreButtons && c < s) {\n var u = r,\n h = xt.COMMANDS[u];\n h.more_btn = !0, o += v(u, h, !0);\n }\n\n t += '
    ').concat(o, \"
    \"), e.showMoreButtons && 0 < i.length && (n += '
    ').concat(i, \"
    \"));\n }\n }\n\n return g.opts.toolbarBottom ? g.helpers.isMobile() ? '
    '.concat(n, \"
    \").concat(t, \"
    \") : \"\".concat(n, '
    ').concat(t) : \"\".concat(t, '
    ').concat(n);\n },\n bindCommands: function T(t, e) {\n g.events.bindClick(t, \".fr-command:not(.fr-disabled)\", c), g.events.$on(t, \"\".concat(g._mousedown, \" \").concat(g._mouseup, \" \").concat(g._move), \".fr-dropdown-menu\", f, !0), g.events.$on(t, \"\".concat(g._mousedown, \" \").concat(g._mouseup, \" \").concat(g._move), \".fr-dropdown-menu .fr-dropdown-wrapper\", p, !0);\n var n = t.get(0).ownerDocument,\n r = \"defaultView\" in n ? n.defaultView : n.parentWindow;\n\n function a(e) {\n (!e || e.type === g._mouseup && e.target !== h(\"html\").get(0) || \"keydown\" === e.type && (g.keys.isCharacter(e.which) && !g.keys.ctrlKey(e) || e.which === xt.KEYCODE.ESC)) && d(t);\n }\n\n g.events.$on(h(r), \"\".concat(g._mouseup, \" resize keydown\"), a, !0), g.opts.iframe && g.events.$on(g.$win, g._mouseup, a, !0), g.node.hasClass(t.get(0), \"fr-popup\") ? h.merge(s, t.find(\".fr-btn\").toArray()) : h.merge(i, t.find(\".fr-btn\").toArray()), g.tooltip.bind(t, \".fr-btn, .fr-title\", e);\n },\n refresh: function A(e) {\n var t,\n n = e.parents(\".fr-popup, .fr-toolbar\").data(\"instance\") || g,\n r = e.data(\"cmd\");\n g.node.hasClass(e.get(0), \"fr-dropdown\") ? t = e.next() : (e.removeClass(\"fr-active\"), e.attr(\"aria-pressed\") && e.attr(\"aria-pressed\", !1)), xt.COMMANDS[r] && xt.COMMANDS[r].refresh ? xt.COMMANDS[r].refresh.apply(n, [e, t]) : g.refresh[r] && n.refresh[r](e, t);\n },\n bulkRefresh: n,\n exec: o,\n click: t,\n hideActiveDropdowns: d,\n addButtons: function L(e) {\n for (var t = 0; t < e.length; t++) {\n i.push(e);\n }\n },\n getButtons: m,\n getPosition: function S(e) {\n var t = e.offset().left,\n n = g.opts.toolbarBottom ? 10 : e.outerHeight() - 10;\n return {\n left: t,\n top: e.offset().top + n\n };\n }\n };\n }, xt.ICON_TEMPLATES = {\n font_awesome: '',\n font_awesome_5: '',\n font_awesome_5r: '',\n font_awesome_5l: '',\n font_awesome_5b: '',\n text: '[NAME]',\n image: \"[ALT]\",\n svg: '',\n empty: \" \"\n }, xt.ICONS = {\n bold: {\n NAME: \"bold\",\n SVG_KEY: \"bold\"\n },\n italic: {\n NAME: \"italic\",\n SVG_KEY: \"italic\"\n },\n underline: {\n NAME: \"underline\",\n SVG_KEY: \"underline\"\n },\n strikeThrough: {\n NAME: \"strikethrough\",\n SVG_KEY: \"strikeThrough\"\n },\n subscript: {\n NAME: \"subscript\",\n SVG_KEY: \"subscript\"\n },\n superscript: {\n NAME: \"superscript\",\n SVG_KEY: \"superscript\"\n },\n cancel: {\n NAME: \"cancel\",\n SVG_KEY: \"cancel\"\n },\n color: {\n NAME: \"tint\",\n SVG_KEY: \"textColor\"\n },\n outdent: {\n NAME: \"outdent\",\n SVG_KEY: \"outdent\"\n },\n indent: {\n NAME: \"indent\",\n SVG_KEY: \"indent\"\n },\n undo: {\n NAME: \"rotate-left\",\n FA5NAME: \"undo\",\n SVG_KEY: \"undo\"\n },\n redo: {\n NAME: \"rotate-right\",\n FA5NAME: \"redo\",\n SVG_KEY: \"redo\"\n },\n insert: {\n NAME: \"insert\",\n SVG_KEY: \"insert\"\n },\n insertAll: {\n NAME: \"insertAll\",\n SVG_KEY: \"insertAll\"\n },\n insertHR: {\n NAME: \"minus\",\n SVG_KEY: \"horizontalLine\"\n },\n clearFormatting: {\n NAME: \"eraser\",\n SVG_KEY: \"clearFormatting\"\n },\n selectAll: {\n NAME: \"mouse-pointer\",\n SVG_KEY: \"selectAll\"\n },\n minimize: {\n NAME: \"minimize\",\n SVG_KEY: \"minimize\"\n },\n moreText: {\n NAME: \"ellipsis-v\",\n SVG_KEY: \"textMore\"\n },\n moreParagraph: {\n NAME: \"ellipsis-v\",\n SVG_KEY: \"paragraphMore\"\n },\n moreRich: {\n NAME: \"ellipsis-v\",\n SVG_KEY: \"insertMore\"\n },\n moreMisc: {\n NAME: \"ellipsis-v\",\n SVG_KEY: \"more\"\n }\n }, xt.DefineIconTemplate = function (e, t) {\n xt.ICON_TEMPLATES[e] = t;\n }, xt.DefineIcon = function (e, t) {\n xt.ICONS[e] = t;\n }, Object.assign(xt.DEFAULTS, {\n iconsTemplate: \"svg\"\n }), xt.MODULES.icon = function (a) {\n return {\n create: function o(n) {\n var e = null,\n r = xt.ICONS[n];\n\n if (void 0 !== r) {\n var t = r.template || xt.ICON_DEFAULT_TEMPLATE || a.opts.iconsTemplate;\n t && t.apply && (t = t.apply(a)), r.FA5NAME || (r.FA5NAME = r.NAME), \"svg\" !== t || r.PATH || (r.PATH = xt.SVG[r.SVG_KEY] || \"\"), t && (t = xt.ICON_TEMPLATES[t]) && (e = t.replace(/\\[([a-zA-Z0-9]*)\\]/g, function (e, t) {\n return \"NAME\" === t ? r[t] || n : r[t];\n }));\n }\n\n return e || n;\n },\n getTemplate: function r(e) {\n var t = xt.ICONS[e],\n n = a.opts.iconsTemplate;\n return void 0 !== t ? n = t.template || xt.ICON_DEFAULT_TEMPLATE || a.opts.iconsTemplate : n;\n },\n getFileIcon: function n(e) {\n var t = xt.FILEICONS[e];\n return void 0 !== t ? t : e;\n }\n };\n }, xt.SVG = {\n add: \"M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6V13z\",\n advancedImageEditor: \"M3,17v2h6v-2H3z M3,5v2h10V5H3z M13,21v-2h8v-2h-8v-2h-2v6H13z M7,9v2H3v2h4v2h2V9H7z M21,13v-2H11v2H21z M15,9h2V7h4V5h-4 V3h-2V9z\",\n alignCenter: \"M9,18h6v-2H9V18z M6,11v2h12v-2H6z M3,6v2h18V6H3z\",\n alignJustify: \"M3,18h18v-2H3V18z M3,11v2h18v-2H3z M3,6v2h18V6H3z\",\n alignLeft: \"M3,18h6v-2H3V18z M3,11v2h12v-2H3z M3,6v2h18V6H3z\",\n alignRight: \"M15,18h6v-2h-6V18z M9,11v2h12v-2H9z M3,6v2h18V6H3z\",\n anchors: \"M16,4h-4H8C6.9,4,6,4.9,6,6v4v10l6-2.6l6,2.6V10V6C18,4.9,17.1,4,16,4z M16,17l-4-1.8L8,17v-7V6h4h4v4V17z\",\n autoplay: \"M 7.570312 0.292969 C 7.542969 0.292969 7.515625 0.292969 7.488281 0.296875 C 7.203125 0.324219 6.984375 0.539062 6.980469 0.792969 L 6.925781 3.535156 C 2.796875 3.808594 -0.0078125 6.425781 -0.0859375 10.09375 C -0.121094 11.96875 0.710938 13.6875 2.265625 14.921875 C 3.769531 16.117188 5.839844 16.796875 8.097656 16.828125 C 8.140625 16.828125 12.835938 16.898438 13.035156 16.886719 C 15.171875 16.796875 17.136719 16.128906 18.558594 15.003906 C 20.066406 13.816406 20.882812 12.226562 20.917969 10.40625 C 20.960938 8.410156 20.023438 6.605469 18.289062 5.335938 C 18.214844 5.277344 18.128906 5.230469 18.035156 5.203125 C 17.636719 5.074219 17.222656 5.199219 17 5.476562 L 15.546875 7.308594 C 15.304688 7.609375 15.363281 8.007812 15.664062 8.265625 C 16.351562 8.851562 16.707031 9.625 16.6875 10.5 C 16.652344 12.25 15.070312 13.390625 12.757812 13.535156 C 12.59375 13.539062 8.527344 13.472656 8.164062 13.464844 C 5.703125 13.429688 4.101562 12.191406 4.140625 10.3125 C 4.175781 8.570312 5.132812 7.46875 6.847656 7.199219 L 6.796875 9.738281 C 6.792969 9.992188 7 10.214844 7.285156 10.253906 C 7.3125 10.257812 7.339844 10.257812 7.367188 10.257812 C 7.503906 10.261719 7.632812 10.222656 7.738281 10.148438 L 14.039062 5.785156 C 14.171875 5.691406 14.253906 5.558594 14.253906 5.410156 C 14.257812 5.261719 14.1875 5.125 14.058594 5.027344 L 7.941406 0.414062 C 7.835938 0.335938 7.707031 0.292969 7.570312 0.292969 \",\n back: \"M20 11L7.83 11 11.425 7.405 10.01 5.991 5.416 10.586 5.414 10.584 4 11.998 4.002 12 4 12.002 5.414 13.416 5.416 13.414 10.01 18.009 11.425 16.595 7.83 13 20 13 20 13 20 11 20 11Z\",\n backgroundColor: \"M9.91752,12.24082l7.74791-5.39017,1.17942,1.29591-6.094,7.20747L9.91752,12.24082M7.58741,12.652l4.53533,4.98327a.93412.93412,0,0,0,1.39531-.0909L20.96943,8.7314A.90827.90827,0,0,0,20.99075,7.533l-2.513-2.76116a.90827.90827,0,0,0-1.19509-.09132L7.809,11.27135A.93412.93412,0,0,0,7.58741,12.652ZM2.7939,18.52772,8.41126,19.5l1.47913-1.34617-3.02889-3.328Z\",\n blockquote: \"M10.31788,5l.93817,1.3226A12.88271,12.88271,0,0,0,8.1653,9.40125a5.54242,5.54242,0,0,0-.998,3.07866v.33733q.36089-.04773.66067-.084a4.75723,4.75723,0,0,1,.56519-.03691,2.87044,2.87044,0,0,1,2.11693.8427,2.8416,2.8416,0,0,1,.8427,2.09274,3.37183,3.37183,0,0,1-.8898,2.453A3.143,3.143,0,0,1,8.10547,19,3.40532,3.40532,0,0,1,5.375,17.7245,4.91156,4.91156,0,0,1,4.30442,14.453,9.3672,9.3672,0,0,1,5.82051,9.32933,14.75716,14.75716,0,0,1,10.31788,5Zm8.39243,0,.9369,1.3226a12.88289,12.88289,0,0,0-3.09075,3.07865,5.54241,5.54241,0,0,0-.998,3.07866v.33733q.33606-.04773.63775-.084a4.91773,4.91773,0,0,1,.58938-.03691,2.8043,2.8043,0,0,1,2.1042.83,2.89952,2.89952,0,0,1,.80578,2.10547,3.42336,3.42336,0,0,1-.86561,2.453A3.06291,3.06291,0,0,1,16.49664,19,3.47924,3.47924,0,0,1,13.742,17.7245,4.846,4.846,0,0,1,12.64721,14.453,9.25867,9.25867,0,0,1,14.17476,9.3898,15.26076,15.26076,0,0,1,18.71031,5Z\",\n bold: \"M15.25,11.8h0A3.68,3.68,0,0,0,17,9a3.93,3.93,0,0,0-3.86-4H6.65V19h7a3.74,3.74,0,0,0,3.7-3.78V15.1A3.64,3.64,0,0,0,15.25,11.8ZM8.65,7h4.2a2.09,2.09,0,0,1,2,1.3,2.09,2.09,0,0,1-1.37,2.61,2.23,2.23,0,0,1-.63.09H8.65Zm4.6,10H8.65V13h4.6a2.09,2.09,0,0,1,2,1.3,2.09,2.09,0,0,1-1.37,2.61A2.23,2.23,0,0,1,13.25,17Z\",\n cancel: \"M13.4,12l5.6,5.6L17.6,19L12,13.4L6.4,19L5,17.6l5.6-5.6L5,6.4L6.4,5l5.6,5.6L17.6,5L19,6.4L13.4,12z\",\n cellBackground: \"M16.6,12.4L7.6,3.5L6.2,4.9l2.4,2.4l-5.2,5.2c-0.6,0.6-0.6,1.5,0,2.1l5.5,5.5c0.3,0.3,0.7,0.4,1.1,0.4s0.8-0.1,1.1-0.4 l5.5-5.5C17.2,14,17.2,13,16.6,12.4z M5.2,13.5L10,8.7l4.8,4.8H5.2z M19,15c0,0-2,2.2-2,3.5c0,1.1,0.9,2,2,2s2-0.9,2-2 C21,17.2,19,15,19,15z\",\n cellBorderColor: \"M22,22H2v2h20V22z\",\n cellOptions: \"M20,5H4C2.9,5,2,5.9,2,7v10c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2V7C22,5.9,21.1,5,20,5z M9.5,6.5h5V9h-5V6.5z M8,17.5H4 c-0.3,0-0.5-0.2-0.5-0.4c0,0,0,0,0,0V17v-2H8V17.5z M8,13.5H3.5v-3H8V13.5z M8,9H3.5V7c0-0.3,0.2-0.5,0.4-0.5c0,0,0,0,0,0H8V9z M14.5,17.5h-5V15h5V17.5z M20.5,17c0,0.3-0.2,0.5-0.4,0.5c0,0,0,0,0,0H16V15h4.5V17z M20.5,13.5H16v-3h4.5V13.5z M20.5,9H16V6.5h4 c0.3,0,0.5,0.2,0.5,0.4c0,0,0,0,0,0V9z\",\n cellStyle: \"M20,19.9l0.9,3.6l-3.2-1.9l-3.3,1.9l0.8-3.6L12.3,17h3.8l1.7-3.5l1.4,3.5H23L20,19.9z M20,5H4C2.9,5,2,5.9,2,7v10 c0,1.1,0.9,2,2,2h7.5l-0.6-0.6L10,17.5H9.5V15h5.4l1.1-2.3v-2.2h4.5v3H20l0.6,1.5H22V7C22,5.9,21.1,5,20,5z M3.5,7 c0-0.3,0.2-0.5,0.4-0.5c0,0,0,0,0.1,0h4V9H3.5V7z M3.5,10.5H8v3H3.5V10.5z M4,17.5c-0.3,0-0.5-0.2-0.5-0.4c0,0,0,0,0-0.1v-2H8v2.5H4 z M14.5,9h-5V6.5h5V9z M20.5,9H16V6.5h4c0.3,0,0.5,0.2,0.5,0.4c0,0,0,0,0,0.1V9z\",\n clearFormatting: \"M11.48,10.09l-1.2-1.21L8.8,7.41,6.43,5,5.37,6.1,8.25,9,4.66,19h2l1.43-4h5.14l1.43,4h2l-.89-2.51L18.27,19l1.07-1.06L14.59,13.2ZM8.8,13l.92-2.56L12.27,13Zm.56-7.15L9.66,5h2l1.75,4.9Z\",\n close: \"M13.4,12l5.6,5.6L17.6,19L12,13.4L6.4,19L5,17.6l5.6-5.6L5,6.4L6.4,5l5.6,5.6L17.6,5L19,6.4L13.4,12z\",\n codeView: \"M9.4,16.6,4.8,12,9.4,7.4,8,6,2,12l6,6Zm5.2,0L19.2,12,14.6,7.4,16,6l6,6-6,6Z\",\n cogs: \"M18.877 12.907a6.459 6.459 0 0 0 0 -1.814l1.952 -1.526a0.468 0.468 0 0 0 0.111 -0.593l-1.851 -3.2a0.461 0.461 0 0 0 -0.407 -0.231 0.421 0.421 0 0 0 -0.157 0.028l-2.3 0.925a6.755 6.755 0 0 0 -1.563 -0.907l-0.352 -2.452a0.451 0.451 0 0 0 -0.453 -0.388h-3.7a0.451 0.451 0 0 0 -0.454 0.388L9.347 5.588A7.077 7.077 0 0 0 7.783 6.5l-2.3 -0.925a0.508 0.508 0 0 0 -0.166 -0.028 0.457 0.457 0 0 0 -0.4 0.231l-1.851 3.2a0.457 0.457 0 0 0 0.111 0.593l1.952 1.526A7.348 7.348 0 0 0 5.063 12a7.348 7.348 0 0 0 0.064 0.907L3.175 14.433a0.468 0.468 0 0 0 -0.111 0.593l1.851 3.2a0.461 0.461 0 0 0 0.407 0.231 0.421 0.421 0 0 0 0.157 -0.028l2.3 -0.925a6.74 6.74 0 0 0 1.564 0.907L9.7 20.864a0.451 0.451 0 0 0 0.454 0.388h3.7a0.451 0.451 0 0 0 0.453 -0.388l0.352 -2.452a7.093 7.093 0 0 0 1.563 -0.907l2.3 0.925a0.513 0.513 0 0 0 0.167 0.028 0.457 0.457 0 0 0 0.4 -0.231l1.851 -3.2a0.468 0.468 0 0 0 -0.111 -0.593Zm-0.09 2.029l-0.854 1.476 -2.117 -0.852 -0.673 0.508a5.426 5.426 0 0 1 -1.164 0.679l-0.795 0.323 -0.33 2.269h-1.7l-0.32 -2.269 -0.793 -0.322a5.3 5.3 0 0 1 -1.147 -0.662L8.2 15.56l-2.133 0.86 -0.854 -1.475 1.806 -1.411 -0.1 -0.847c-0.028 -0.292 -0.046 -0.5 -0.046 -0.687s0.018 -0.4 0.045 -0.672l0.106 -0.854L5.217 9.064l0.854 -1.475 2.117 0.851 0.673 -0.508a5.426 5.426 0 0 1 1.164 -0.679l0.8 -0.323 0.331 -2.269h1.7l0.321 2.269 0.792 0.322a5.3 5.3 0 0 1 1.148 0.661l0.684 0.526 2.133 -0.859 0.853 1.473 -1.8 1.421 0.1 0.847a5 5 0 0 1 0.046 0.679c0 0.193 -0.018 0.4 -0.045 0.672l-0.106 0.853ZM12 14.544A2.544 2.544 0 1 1 14.546 12 2.552 2.552 0 0 1 12 14.544Z\",\n columns: \"M20,5H4C2.9,5,2,5.9,2,7v10c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2V7C22,5.9,21.1,5,20,5z M8,17.5H4c-0.3,0-0.5-0.2-0.5-0.4 c0,0,0,0,0,0V17v-2H8V17.5z M8,13.5H3.5v-3H8V13.5z M8,9H3.5V7c0-0.3,0.2-0.5,0.4-0.5c0,0,0,0,0,0H8V9z M20.5,17 c0,0.3-0.2,0.5-0.4,0.5c0,0,0,0,0,0H16V15h4.5V17z M20.5,13.5H16v-3h4.5V13.5z M20.5,9H16V6.5h4c0.3,0,0.5,0.2,0.5,0.4c0,0,0,0,0,0 V9z\",\n edit: \"M17,11.2L12.8,7L5,14.8V19h4.2L17,11.2z M7,16.8v-1.5l5.6-5.6l1.4,1.5l-5.6,5.6H7z M13.5,6.3l0.7-0.7c0.8-0.8,2.1-0.8,2.8,0 c0,0,0,0,0,0L18.4,7c0.8,0.8,0.8,2,0,2.8l-0.7,0.7L13.5,6.3z\",\n exitFullscreen: \"M5,16H8v3h2V14H5ZM8,8H5v2h5V5H8Zm6,11h2V16h3V14H14ZM16,8V5H14v5h5V8Z\",\n fileInsert: \"M 8.09375 12.75 L 5.90625 12.75 C 5.542969 12.75 5.25 12.394531 5.25 11.953125 L 5.25 6.375 L 2.851562 6.375 C 2.367188 6.375 2.121094 5.660156 2.464844 5.242188 L 6.625 0.1875 C 6.832031 -0.0585938 7.167969 -0.0585938 7.371094 0.1875 L 11.535156 5.242188 C 11.878906 5.660156 11.632812 6.375 11.148438 6.375 L 8.75 6.375 L 8.75 11.953125 C 8.75 12.394531 8.457031 12.75 8.09375 12.75 Z M 14 12.484375 L 14 16.203125 C 14 16.644531 13.707031 17 13.34375 17 L 0.65625 17 C 0.292969 17 0 16.644531 0 16.203125 L 0 12.484375 C 0 12.042969 0.292969 11.6875 0.65625 11.6875 L 4.375 11.6875 L 4.375 11.953125 C 4.375 12.980469 5.0625 13.8125 5.90625 13.8125 L 8.09375 13.8125 C 8.9375 13.8125 9.625 12.980469 9.625 11.953125 L 9.625 11.6875 L 13.34375 11.6875 C 13.707031 11.6875 14 12.042969 14 12.484375 Z M 10.609375 15.40625 C 10.609375 15.039062 10.363281 14.742188 10.0625 14.742188 C 9.761719 14.742188 9.515625 15.039062 9.515625 15.40625 C 9.515625 15.773438 9.761719 16.070312 10.0625 16.070312 C 10.363281 16.070312 10.609375 15.773438 10.609375 15.40625 Z M 12.359375 15.40625 C 12.359375 15.039062 12.113281 14.742188 11.8125 14.742188 C 11.511719 14.742188 11.265625 15.039062 11.265625 15.40625 C 11.265625 15.773438 11.511719 16.070312 11.8125 16.070312 C 12.113281 16.070312 12.359375 15.773438 12.359375 15.40625 Z M 12.359375 15.40625 \",\n fileManager: \"M 0 5.625 L 20.996094 5.625 L 21 15.75 C 21 16.371094 20.410156 16.875 19.6875 16.875 L 1.3125 16.875 C 0.585938 16.875 0 16.371094 0 15.75 Z M 0 5.625 M 21 4.5 L 0 4.5 L 0 2.25 C 0 1.628906 0.585938 1.125 1.3125 1.125 L 6.921875 1.125 C 7.480469 1.125 8.015625 1.316406 8.40625 1.652344 L 9.800781 2.847656 C 10.195312 3.183594 10.730469 3.375 11.289062 3.375 L 19.6875 3.375 C 20.414062 3.375 21 3.878906 21 4.5 Z M 21 4.5\",\n fontAwesome: \"M18.99018,13.98212V7.52679c-.08038-1.21875-1.33929-.683-1.33929-.683-2.933,1.39282-4.36274.61938-5.85938.15625a6.23272,6.23272,0,0,0-2.79376-.20062l-.00946.004A1.98777,1.98777,0,0,0,7.62189,5.106a.984.984,0,0,0-.17517-.05432c-.02447-.0055-.04882-.01032-.0736-.0149A.9565.9565,0,0,0,7.1908,5H6.82539a.9565.9565,0,0,0-.18232.0368c-.02472.00458-.04907.0094-.07348.01484a.985.985,0,0,0-.17523.05438,1.98585,1.98585,0,0,0-.573,3.49585v9.394A1.004,1.004,0,0,0,6.82539,19H7.1908a1.00406,1.00406,0,0,0,1.00409-1.00409V15.52234c3.64221-1.09827,5.19709.64282,7.09888.57587a5.57291,5.57291,0,0,0,3.25446-1.05805A1.2458,1.2458,0,0,0,18.99018,13.98212Z\",\n fontFamily: \"M16,19h2L13,5H11L6,19H8l1.43-4h5.14Zm-5.86-6L12,7.8,13.86,13Z\",\n fontSize: \"M20.75,19h1.5l-3-10h-1.5l-3,10h1.5L17,16.5h3Zm-3.3-4,1.05-3.5L19.55,15Zm-5.7,4h2l-5-14h-2l-5,14h2l1.43-4h5.14ZM5.89,13,7.75,7.8,9.61,13Z\",\n fullscreen: \"M7,14H5v5h5V17H7ZM5,10H7V7h3V5H5Zm12,7H14v2h5V14H17ZM14,5V7h3v3h2V5Z\",\n help: \"M11,17h2v2h-2V17z M12,5C9.8,5,8,6.8,8,9h2c0-1.1,0.9-2,2-2s2,0.9,2,2c0,2-3,1.7-3,5v1h2v-1c0-2.2,3-2.5,3-5 C16,6.8,14.2,5,12,5z\",\n horizontalLine: \"M5,12h14 M19,11H5v2h14V11z\",\n imageAltText: \"M19,7h-6v12h-2V7H5V5h6h2h6V7z\",\n imageCaption: \"M14.2,11l3.8,5H6l3-3.9l2.1,2.7L14,11H14.2z M8.5,11c0.8,0,1.5-0.7,1.5-1.5S9.3,8,8.5,8S7,8.7,7,9.5C7,10.3,7.7,11,8.5,11z M22,6v12c0,1.1-0.9,2-2,2H4c-1.1,0-2-0.9-2-2V6c0-1.1,0.9-2,2-2h16C21.1,4,22,4.9,22,6z M20,8.8V6H4v12h16V8.8z M22,22H2v2h20V22z\",\n imageClass: \"M9.5,13.4l-2.9-2.9h3.8L12.2,7l1.4,3.5h3.8l-3,2.9l0.9,3.6L12,15.1L8.8,17L9.5,13.4z M22,6v12c0,1.1-0.9,2-2,2H4 c-1.1,0-2-0.9-2-2V6c0-1.1,0.9-2,2-2h16C21.1,4,22,4.9,22,6z M20,6H4v12h16V8.8V6z\",\n imageDisplay: \"M3,5h18v2H3V5z M13,9h8v2h-8V9z M13,13h8v2h-8V13z M3,17h18v2H3V17z M3,9h8v6H3V9z\",\n imageManager: \"M20,6h-7l-2-2H4C2.9,4,2,4.9,2,6v12c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2V8C22,6.9,21.1,6,20,6z M20,18H4V6h6.2l2,2H20V18z M18,16l-3.8-5H14l-2.9,3.8L9,12.1L6,16H18z M10,9.5C10,8.7,9.3,8,8.5,8S7,8.7,7,9.5S7.7,11,8.5,11S10,10.3,10,9.5z\",\n imageSize: \"M16.9,4c-0.3,0-0.5,0.2-0.8,0.3L3.3,13c-0.9,0.6-1.1,1.9-0.5,2.8l2.2,3.3c0.4,0.7,1.2,1,2,0.8c0.3,0,0.5-0.2,0.8-0.3 L20.7,11c0.9-0.6,1.1-1.9,0.5-2.8l-2.2-3.3C18.5,4.2,17.7,3.9,16.9,4L16.9,4z M16.9,9.9L18.1,9l-2-2.9L17,5.6c0.1,0,0.1-0.1,0.2-0.1 c0.2,0,0.4,0,0.5,0.2L19.9,9c0.2,0.2,0.1,0.5-0.1,0.7L7,18.4c-0.1,0-0.1,0.1-0.2,0.1c-0.2,0-0.4,0-0.5-0.2L4.1,15 c-0.2-0.2-0.1-0.5,0.1-0.7L5,13.7l2,2.9l1.2-0.8l-2-2.9L7.5,12l1.1,1.7l1.2-0.8l-1.1-1.7l1.2-0.8l2,2.9l1.2-0.8l-2-2.9l1.2-0.8 l1.1,1.7l1.2-0.8l-1.1-1.7L14.9,7L16.9,9.9z\",\n indent: \"M3,9v6l3-3L3,9z M3,19h18v-2H3V19z M3,7h18V5H3V7z M9,11h12V9H9V11z M9,15h12v-2H9V15z\",\n inlineClass: \"M9.9,13.313A1.2,1.2,0,0,1,9.968,13H6.277l1.86-5.2,1.841,5.148A1.291,1.291,0,0,1,11.212,12h.426l-2.5-7h-2l-5,14h2l1.43-4H9.9Zm2.651,6.727a2.884,2.884,0,0,1-.655-2.018v-2.71A1.309,1.309,0,0,1,13.208,14h3.113a3.039,3.039,0,0,1,2,1.092s1.728,1.818,2.964,2.928a1.383,1.383,0,0,1,.318,1.931,1.44,1.44,0,0,1-.19.215l-3.347,3.31a1.309,1.309,0,0,1-1.832.258h0a1.282,1.282,0,0,1-.258-.257l-1.71-1.728Zm2.48-3.96a.773.773,0,1,0,.008,0Z\",\n inlineStyle: \"M11.88,15h.7l.7-1.7-3-8.3h-2l-5,14h2l1.4-4Zm-4.4-2,1.9-5.2,1.9,5.2ZM15.4,21.545l3.246,1.949-.909-3.637L20.72,17H16.954l-1.429-3.506L13.837,17H10.071l2.857,2.857-.779,3.637Z\",\n insert: \"M13.889,11.611c-0.17,0.17-0.443,0.17-0.612,0l-3.189-3.187l-3.363,3.36c-0.171,0.171-0.441,0.171-0.612,0c-0.172-0.169-0.172-0.443,0-0.611l3.667-3.669c0.17-0.17,0.445-0.172,0.614,0l3.496,3.493C14.058,11.167,14.061,11.443,13.889,11.611 M18.25,10c0,4.558-3.693,8.25-8.25,8.25c-4.557,0-8.25-3.692-8.25-8.25c0-4.557,3.693-8.25,8.25-8.25C14.557,1.75,18.25,5.443,18.25,10 M17.383,10c0-4.07-3.312-7.382-7.383-7.382S2.618,5.93,2.618,10S5.93,17.381,10,17.381S17.383,14.07,17.383,10\",\n insertEmbed: \"M20.73889,15.45929a3.4768,3.4768,0,0,0-5.45965-.28662L9.5661,12.50861a3.49811,3.49811,0,0,0-.00873-1.01331l5.72174-2.66809a3.55783,3.55783,0,1,0-.84527-1.81262L8.70966,9.6839a3.50851,3.50851,0,1,0,.0111,4.63727l5.7132,2.66412a3.49763,3.49763,0,1,0,6.30493-1.526ZM18.00745,5.01056A1.49993,1.49993,0,1,1,16.39551,6.3894,1.49994,1.49994,0,0,1,18.00745,5.01056ZM5.99237,13.49536a1.49989,1.49989,0,1,1,1.61194-1.37878A1.49982,1.49982,0,0,1,5.99237,13.49536Zm11.78211,5.494a1.49993,1.49993,0,1,1,1.61193-1.37885A1.49987,1.49987,0,0,1,17.77448,18.98932Z\",\n insertFile: \"M7,3C5.9,3,5,3.9,5,5v14c0,1.1,0.9,2,2,2h10c1.1,0,2-0.9,2-2V7.6L14.4,3H7z M17,19H7V5h6v4h4V19z\",\n insertImage: \"M14.2,11l3.8,5H6l3-3.9l2.1,2.7L14,11H14.2z M8.5,11c0.8,0,1.5-0.7,1.5-1.5S9.3,8,8.5,8S7,8.7,7,9.5C7,10.3,7.7,11,8.5,11z M22,6v12c0,1.1-0.9,2-2,2H4c-1.1,0-2-0.9-2-2V6c0-1.1,0.9-2,2-2h16C21.1,4,22,4.9,22,6z M20,8.8V6H4v12h16V8.8z\",\n insertLink: \"M11,17H7A5,5,0,0,1,7,7h4V9H7a3,3,0,0,0,0,6h4ZM17,7H13V9h4a3,3,0,0,1,0,6H13v2h4A5,5,0,0,0,17,7Zm-1,4H8v2h8Z\",\n insertMore: \"M16.5,13h-6v6h-2V13h-6V11h6V5h2v6h6Zm5,4.5A1.5,1.5,0,1,1,20,16,1.5,1.5,0,0,1,21.5,17.5Zm0-4A1.5,1.5,0,1,1,20,12,1.5,1.5,0,0,1,21.5,13.5Zm0-4A1.5,1.5,0,1,1,20,8,1.5,1.5,0,0,1,21.5,9.5Z\",\n insertTable: \"M20,5H4C2.9,5,2,5.9,2,7v2v1.5v3V15v2c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2v-2v-1.5v-3V9V7C22,5.9,21.1,5,20,5z M9.5,13.5v-3 h5v3H9.5z M14.5,15v2.5h-5V15H14.5z M9.5,9V6.5h5V9H9.5z M3.5,7c0-0.3,0.2-0.5,0.5-0.5h4V9H3.5V7z M3.5,10.5H8v3H3.5V10.5z M3.5,17 v-2H8v2.5H4C3.7,17.5,3.5,17.3,3.5,17z M20.5,17c0,0.3-0.2,0.5-0.5,0.5h-4V15h4.5V17z M20.5,13.5H16v-3h4.5V13.5z M16,9V6.5h4 c0.3,0,0.5,0.2,0.5,0.5v2H16z\",\n insertVideo: \"M15,8v8H5V8H15m2,2.5V7a1,1,0,0,0-1-1H4A1,1,0,0,0,3,7V17a1,1,0,0,0,1,1H16a1,1,0,0,0,1-1V13.5l2.29,2.29A1,1,0,0,0,21,15.08V8.91a1,1,0,0,0-1.71-.71Z\",\n upload: \"M12 6.66667a4.87654 4.87654 0 0 1 4.77525 3.92342l0.29618 1.50268 1.52794 0.10578a2.57021 2.57021 0 0 1 -0.1827 5.13478H6.5a3.49774 3.49774 0 0 1 -0.3844 -6.97454l1.06682 -0.11341L7.678 9.29387A4.86024 4.86024 0 0 1 12 6.66667m0 -2A6.871 6.871 0 0 0 5.90417 8.37 5.49773 5.49773 0 0 0 6.5 19.33333H18.41667a4.57019 4.57019 0 0 0 0.32083 -9.13A6.86567 6.86567 0 0 0 12 4.66667Zm0.99976 7.2469h1.91406L11.99976 9 9.08618 11.91357h1.91358v3H11V16h2V14h-0.00024Z\",\n uploadFiles: \"M12 6.66667a4.87654 4.87654 0 0 1 4.77525 3.92342l0.29618 1.50268 1.52794 0.10578a2.57021 2.57021 0 0 1 -0.1827 5.13478H6.5a3.49774 3.49774 0 0 1 -0.3844 -6.97454l1.06682 -0.11341L7.678 9.29387A4.86024 4.86024 0 0 1 12 6.66667m0 -2A6.871 6.871 0 0 0 5.90417 8.37 5.49773 5.49773 0 0 0 6.5 19.33333H18.41667a4.57019 4.57019 0 0 0 0.32083 -9.13A6.86567 6.86567 0 0 0 12 4.66667Zm0.99976 7.2469h1.91406L11.99976 9 9.08618 11.91357h1.91358v3H11V16h2V14h-0.00024Z\",\n italic: \"M11.76,9h2l-2.2,10h-2Zm1.68-4a1,1,0,1,0,1,1,1,1,0,0,0-1-1Z\",\n search: \"M15.5 14h-0.79l-0.28 -0.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09 -0.59 4.23 -1.57l0.27 0.28v0.79l5 4.99L20.49 19l-4.99 -5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\",\n lineHeight: \"M6.25,7h2.5L5.25,3.5,1.75,7h2.5V17H1.75l3.5,3.5L8.75,17H6.25Zm4-2V7h12V5Zm0,14h12V17h-12Zm0-6h12V11h-12Z\",\n linkStyles: \"M19,17.9l0.9,3.6l-3.2-1.9l-3.3,1.9l0.8-3.6L11.3,15h3.8l1.7-3.5l1.4,3.5H22L19,17.9z M20,12c0,0.3-0.1,0.7-0.2,1h2.1 c0.1-0.3,0.1-0.6,0.1-1c0-2.8-2.2-5-5-5h-4v2h4C18.7,9,20,10.3,20,12z M14.8,11H8v2h3.3h2.5L14.8,11z M9.9,16.4L8.5,15H7 c-1.7,0-3-1.3-3-3s1.3-3,3-3h4V7H7c-2.8,0-5,2.2-5,5s2.2,5,5,5h3.5L9.9,16.4z\",\n mention: \"M12.4,5c-4.1,0-7.5,3.4-7.5,7.5S8.3,20,12.4,20h3.8v-1.5h-3.8c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6v1.1 c0,0.6-0.5,1.2-1.1,1.2s-1.1-0.6-1.1-1.2v-1.1c0-2.1-1.7-3.8-3.8-3.8s-3.7,1.7-3.7,3.8s1.7,3.8,3.8,3.8c1,0,2-0.4,2.7-1.1 c0.5,0.7,1.3,1.1,2.2,1.1c1.5,0,2.6-1.2,2.6-2.7v-1.1C19.9,8.4,16.6,5,12.4,5z M12.4,14.7c-1.2,0-2.3-1-2.3-2.2s1-2.3,2.3-2.3 s2.3,1,2.3,2.3S13.6,14.7,12.4,14.7z\",\n minimize: \"M5,12h14 M19,11H5v2h14V11z\",\n more: \"M13.5,17c0,0.8-0.7,1.5-1.5,1.5s-1.5-0.7-1.5-1.5s0.7-1.5,1.5-1.5S13.5,16.2,13.5,17z M13.5,12c0,0.8-0.7,1.5-1.5,1.5 s-1.5-0.7-1.5-1.5s0.7-1.5,1.5-1.5S13.5,11.2,13.5,12z M13.5,7c0,0.8-0.7,1.5-1.5,1.5S10.5,7.8,10.5,7s0.7-1.5,1.5-1.5 S13.5,6.2,13.5,7z\",\n openLink: \"M17,17H7V7h3V5H7C6,5,5,6,5,7v10c0,1,1,2,2,2h10c1,0,2-1,2-2v-3h-2V17z M14,5v2h1.6l-5.8,5.8l1.4,1.4L17,8.4V10h2V5H14z\",\n orderedList: \"M2.5,16h2v.5h-1v1h1V18h-2v1h3V15h-3Zm1-7h1V5h-2V6h1Zm-1,2H4.3L2.5,13.1V14h3V13H3.7l1.8-2.1V10h-3Zm5-5V8h14V6Zm0,12h14V16H7.5Zm0-5h14V11H7.5Z\",\n outdent: \"M3,12l3,3V9L3,12z M3,19h18v-2H3V19z M3,7h18V5H3V7z M9,11h12V9H9V11z M9,15h12v-2H9V15z\",\n pageBreaker: \"M3,9v6l3-3L3,9z M21,9H8V4h2v3h9V4h2V9z M21,20h-2v-3h-9v3H8v-5h13V20z M11,13H8v-2h3V13z M16,13h-3v-2h3V13z M21,13h-3v-2 h3V13z\",\n paragraphFormat: \"M10.15,5A4.11,4.11,0,0,0,6.08,8.18,4,4,0,0,0,10,13v6h2V7h2V19h2V7h2V5ZM8,9a2,2,0,0,1,2-2v4A2,2,0,0,1,8,9Z\",\n paragraphMore: \"M7.682,5a4.11,4.11,0,0,0-4.07,3.18,4,4,0,0,0,3.11,4.725h0l.027.005a3.766,3.766,0,0,0,.82.09v6h2V7h2V19h2V7h2V5ZM5.532,9a2,2,0,0,1,2-2v4A2,2,0,0,1,5.532,9Zm14.94,8.491a1.5,1.5,0,1,1-1.5-1.5A1.5,1.5,0,0,1,20.472,17.491Zm0-4a1.5,1.5,0,1,1-1.5-1.5A1.5,1.5,0,0,1,20.472,13.491Zm0-4a1.5,1.5,0,1,1-1.5-1.5A1.5,1.5,0,0,1,20.472,9.491Z\",\n paragraphStyle: \"M4,9c0-1.1,0.9-2,2-2v4C4.9,11,4,10.1,4,9z M16.7,20.5l3.2,1.9L19,18.8l3-2.9h-3.7l-1.4-3.5L15.3,16h-3.8l2.9,2.9l-0.9,3.6 L16.7,20.5z M10,17.4V19h1.6L10,17.4z M6.1,5c-1.9,0-3.6,1.3-4,3.2c-0.5,2.1,0.8,4.2,2.9,4.7c0,0,0,0,0,0h0.2C5.5,13,5.8,13,6,13v6 h2V7h2v7h2V7h2V5H6.1z\",\n pdfExport: \"M7,3C5.9,3,5,3.9,5,5v14c0,1.1,0.9,2,2,2h10c1.1,0,2-0.9,2-2V7.6L14.4,3H7z M17,19H7V5h6v4h4V19z M16.3,13.5 c-0.2-0.6-1.1-0.8-2.6-0.8c-0.1,0-0.1,0-0.2,0c-0.3-0.3-0.8-0.9-1-1.2c-0.2-0.2-0.3-0.3-0.4-0.6c0.2-0.7,0.2-1,0.3-1.5 c0.1-0.9,0-1.6-0.2-1.8c-0.4-0.2-0.7-0.2-0.9-0.2c-0.1,0-0.3,0.2-0.7,0.7c-0.2,0.7-0.1,1.8,0.6,2.8c-0.2,0.8-0.7,1.6-1,2.4 c-0.8,0.2-1.5,0.7-1.9,1.1c-0.7,0.7-0.9,1.1-0.7,1.6c0,0.3,0.2,0.6,0.7,0.6c0.3-0.1,0.3-0.2,0.7-0.3c0.6-0.3,1.2-1.7,1.7-2.4 c0.8-0.2,1.7-0.3,2-0.3c0.1,0,0.3,0,0.6,0c0.8,0.8,1.2,1.1,1.8,1.2c0.1,0,0.2,0,0.3,0c0.3,0,0.8-0.1,1-0.6 C16.4,14.1,16.4,13.9,16.3,13.5z M8.3,15.7c-0.1,0.1-0.2,0.1-0.2,0.1c0-0.1,0-0.3,0.6-0.8c0.2-0.2,0.6-0.3,0.9-0.7 C9,15,8.6,15.5,8.3,15.7z M11.3,9c0-0.1,0.1-0.2,0.1-0.2S11.6,9,11.5,10c0,0.1,0,0.3-0.1,0.7C11.3,10.1,11,9.5,11.3,9z M10.9,13.1 c0.2-0.6,0.6-1,0.7-1.5c0.1,0.1,0.1,0.1,0.2,0.2c0.1,0.2,0.3,0.7,0.7,0.9C12.2,12.8,11.6,13,10.9,13.1z M15.2,14.1 c-0.1,0-0.1,0-0.2,0c-0.2,0-0.7-0.2-1-0.7c1.1,0,1.6,0.2,1.6,0.6C15.5,14.1,15.4,14.1,15.2,14.1z\",\n print: \"M16.1,17c0-0.6,0.4-1,1-1c0.6,0,1,0.4,1,1s-0.4,1-1,1C16.5,18,16.1,17.6,16.1,17z M22,15v4c0,1.1-0.9,2-2,2H4 c-1.1,0-2-0.9-2-2v-4c0-1.1,0.9-2,2-2h1V5c0-1.1,0.9-2,2-2h7.4L19,7.6V13h1C21.1,13,22,13.9,22,15z M7,13h10V9h-4V5H7V13z M20,15H4 v4h16V15z\",\n redo: \"M13.6,9.4c1.7,0.3,3.2,0.9,4.6,2L21,8.5v7h-7l2.7-2.7C13,10.1,7.9,11,5.3,14.7c-0.2,0.3-0.4,0.5-0.5,0.8L3,14.6 C5.1,10.8,9.3,8.7,13.6,9.4z\",\n removeTable: \"M15,10v8H9v-8H15 M14,4H9.9l-1,1H6v2h12V5h-3L14,4z M17,8H7v10c0,1.1,0.9,2,2,2h6c1.1,0,2-0.9,2-2V8z\",\n insertAll: \"M 9.25 12 L 6.75 12 C 6.335938 12 6 11.664062 6 11.25 L 6 6 L 3.257812 6 C 2.703125 6 2.425781 5.328125 2.820312 4.933594 L 7.570312 0.179688 C 7.804688 -0.0546875 8.191406 -0.0546875 8.425781 0.179688 L 13.179688 4.933594 C 13.574219 5.328125 13.296875 6 12.742188 6 L 10 6 L 10 11.25 C 10 11.664062 9.664062 12 9.25 12 Z M 16 11.75 L 16 15.25 C 16 15.664062 15.664062 16 15.25 16 L 0.75 16 C 0.335938 16 0 15.664062 0 15.25 L 0 11.75 C 0 11.335938 0.335938 11 0.75 11 L 5 11 L 5 11.25 C 5 12.214844 5.785156 13 6.75 13 L 9.25 13 C 10.214844 13 11 12.214844 11 11.25 L 11 11 L 15.25 11 C 15.664062 11 16 11.335938 16 11.75 Z M 12.125 14.5 C 12.125 14.15625 11.84375 13.875 11.5 13.875 C 11.15625 13.875 10.875 14.15625 10.875 14.5 C 10.875 14.84375 11.15625 15.125 11.5 15.125 C 11.84375 15.125 12.125 14.84375 12.125 14.5 Z M 14.125 14.5 C 14.125 14.15625 13.84375 13.875 13.5 13.875 C 13.15625 13.875 12.875 14.15625 12.875 14.5 C 12.875 14.84375 13.15625 15.125 13.5 15.125 C 13.84375 15.125 14.125 14.84375 14.125 14.5 Z M 14.125 14.5 \",\n remove: \"M15,10v8H9v-8H15 M14,4H9.9l-1,1H6v2h12V5h-3L14,4z M17,8H7v10c0,1.1,0.9,2,2,2h6c1.1,0,2-0.9,2-2V8z\",\n replaceImage: \"M16,5v3H4v2h12v3l4-4L16,5z M8,19v-3h12v-2H8v-3l-4,4L8,19z\",\n row: \"M20,5H4C2.9,5,2,5.9,2,7v2v1.5v3V15v2c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2v-2v-1.5v-3V9V7C22,5.9,21.1,5,20,5z M16,6.5h4 c0.3,0,0.5,0.2,0.5,0.5v2H16V6.5z M9.5,6.5h5V9h-5V6.5z M3.5,7c0-0.3,0.2-0.5,0.5-0.5h4V9H3.5V7z M8,17.5H4c-0.3,0-0.5-0.2-0.5-0.5 v-2H8V17.5z M14.5,17.5h-5V15h5V17.5z M20.5,17c0,0.3-0.2,0.5-0.5,0.5h-4V15h4.5V17z\",\n selectAll: \"M5,7h2V5C5.9,5,5,5.9,5,7z M5,11h2V9H5V11z M9,19h2v-2H9V19z M5,11h2V9H5V11z M15,5h-2v2h2V5z M17,5v2h2C19,5.9,18.1,5,17,5 z M7,19v-2H5C5,18.1,5.9,19,7,19z M5,15h2v-2H5V15z M11,5H9v2h2V5z M13,19h2v-2h-2V19z M17,11h2V9h-2V11z M17,19c1.1,0,2-0.9,2-2h-2 V19z M17,11h2V9h-2V11z M17,15h2v-2h-2V15z M13,19h2v-2h-2V19z M13,7h2V5h-2V7z M9,15h6V9H9V15z M11,11h2v2h-2V11z\",\n smile: \"M11.991,3A9,9,0,1,0,21,12,8.99557,8.99557,0,0,0,11.991,3ZM12,19a7,7,0,1,1,7-7A6.99808,6.99808,0,0,1,12,19Zm3.105-5.2h1.503a4.94542,4.94542,0,0,1-9.216,0H8.895a3.57808,3.57808,0,0,0,6.21,0ZM7.5,9.75A1.35,1.35,0,1,1,8.85,11.1,1.35,1.35,0,0,1,7.5,9.75Zm6.3,0a1.35,1.35,0,1,1,1.35,1.35A1.35,1.35,0,0,1,13.8,9.75Z\",\n spellcheck: \"M19.1,13.6l-5.6,5.6l-2.7-2.7l-1.4,1.4l4.1,4.1l7-7L19.1,13.6z M10.8,13.7l2.7,2.7l0.8-0.8L10.5,5h-2l-5,14h2l1.4-4h2.6 L10.8,13.7z M9.5,7.8l1.9,5.2H7.6L9.5,7.8z\",\n star: \"M12.1,7.7l1,2.5l0.4,0.9h1h2.4l-2.1,2l-0.6,0.6l0.2,0.9l0.6,2.3l-2.2-1.3L12,15.2l-0.8,0.5L9,17l0.5-2.5l0.1-0.8L9,13.1 l-2-2h2.5h0.9l0.4-0.8L12.1,7.7 M12.2,4L9.5,9.6H3.4L8,14.2L6.9,20l5.1-3.1l5.3,3.1l-1.5-5.8l4.8-4.6h-6.1L12.2,4L12.2,4z\",\n strikeThrough: \"M3,12.20294H21v1.5H16.63422a3.59782,3.59782,0,0,1,.34942,1.5929,3.252,3.252,0,0,1-1.31427,2.6997A5.55082,5.55082,0,0,1,12.20251,19a6.4421,6.4421,0,0,1-2.62335-.539,4.46335,4.46335,0,0,1-1.89264-1.48816,3.668,3.668,0,0,1-.67016-2.15546V14.704h.28723v-.0011h.34149v.0011H9.02v.11334a2.18275,2.18275,0,0,0,.85413,1.83069,3.69,3.69,0,0,0,2.32836.67926,3.38778,3.38778,0,0,0,2.07666-.5462,1.73346,1.73346,0,0,0,.7013-1.46655,1.69749,1.69749,0,0,0-.647-1.43439,3.00525,3.00525,0,0,0-.27491-.17725H3ZM16.34473,7.05981A4.18163,4.18163,0,0,0,14.6236,5.5462,5.627,5.627,0,0,0,12.11072,5,5.16083,5.16083,0,0,0,8.74719,6.06213,3.36315,3.36315,0,0,0,7.44006,8.76855a3.22923,3.22923,0,0,0,.3216,1.42786h2.59668c-.08338-.05365-.18537-.10577-.25269-.16064a1.60652,1.60652,0,0,1-.65283-1.30036,1.79843,1.79843,0,0,1,.68842-1.5108,3.12971,3.12971,0,0,1,1.96948-.55243,3.04779,3.04779,0,0,1,2.106.6687,2.35066,2.35066,0,0,1,.736,1.83258v.11341h2.00317V9.17346A3.90013,3.90013,0,0,0,16.34473,7.05981Z\",\n subscript: \"M10.4,12l3.6,3.6L12.6,17L9,13.4L5.4,17L4,15.6L7.6,12L4,8.4L5.4,7L9,10.6L12.6,7L14,8.4L10.4,12z M18.31234,19.674 l1.06812-1.1465c0.196-0.20141,0.37093-0.40739,0.5368-0.6088c0.15975-0.19418,0.30419-0.40046,0.432-0.617 c0.11969-0.20017,0.21776-0.41249,0.29255-0.6334c0.07103-0.21492,0.10703-0.43986,0.10662-0.66621 c0.00297-0.28137-0.04904-0.56062-0.1531-0.82206c-0.09855-0.24575-0.25264-0.46534-0.45022-0.6416 c-0.20984-0.18355-0.45523-0.32191-0.72089-0.40646c-0.63808-0.19005-1.3198-0.17443-1.94851,0.04465 c-0.28703,0.10845-0.54746,0.2772-0.76372,0.49487c-0.20881,0.20858-0.37069,0.45932-0.47483,0.73548 c-0.10002,0.26648-0.15276,0.54838-0.15585,0.833l-0.00364,0.237H17.617l0.00638-0.22692 c0.00158-0.12667,0.01966-0.25258,0.05377-0.37458c0.03337-0.10708,0.08655-0.20693,0.15679-0.29437 c0.07105-0.08037,0.15959-0.14335,0.25882-0.1841c0.22459-0.08899,0.47371-0.09417,0.7018-0.01458 c0.0822,0.03608,0.15559,0.08957,0.21509,0.15679c0.06076,0.07174,0.10745,0.15429,0.13761,0.24333 c0.03567,0.10824,0.05412,0.22141,0.05469,0.33538c-0.00111,0.08959-0.0118,0.17881-0.0319,0.26612 c-0.02913,0.10428-0.07076,0.20465-0.124,0.29893c-0.07733,0.13621-0.1654,0.26603-0.26338,0.38823 c-0.13438,0.17465-0.27767,0.34226-0.42929,0.50217l-2.15634,2.35315V21H21v-1.326H18.31234z\",\n superscript: \"M10.4,12,14,15.6,12.6,17,9,13.4,5.4,17,4,15.6,7.6,12,4,8.4,5.4,7,9,10.6,12.6,7,14,8.4Zm8.91234-3.326,1.06812-1.1465c.196-.20141.37093-.40739.5368-.6088a4.85745,4.85745,0,0,0,.432-.617,3.29,3.29,0,0,0,.29255-.6334,2.11079,2.11079,0,0,0,.10662-.66621,2.16127,2.16127,0,0,0-.1531-.82206,1.7154,1.7154,0,0,0-.45022-.6416,2.03,2.03,0,0,0-.72089-.40646,3.17085,3.17085,0,0,0-1.94851.04465,2.14555,2.14555,0,0,0-.76372.49487,2.07379,2.07379,0,0,0-.47483.73548,2.446,2.446,0,0,0-.15585.833l-.00364.237H18.617L18.62338,5.25a1.45865,1.45865,0,0,1,.05377-.37458.89552.89552,0,0,1,.15679-.29437.70083.70083,0,0,1,.25882-.1841,1.00569,1.00569,0,0,1,.7018-.01458.62014.62014,0,0,1,.21509.15679.74752.74752,0,0,1,.13761.24333,1.08893,1.08893,0,0,1,.05469.33538,1.25556,1.25556,0,0,1-.0319.26612,1.34227,1.34227,0,0,1-.124.29893,2.94367,2.94367,0,0,1-.26338.38823,6.41629,6.41629,0,0,1-.42929.50217L17.19709,8.92642V10H22V8.674Z\",\n symbols: \"M15.77493,16.98885a8.21343,8.21343,0,0,0,1.96753-2.57651,7.34824,7.34824,0,0,0,.6034-3.07618A6.09092,6.09092,0,0,0,11.99515,5a6.13347,6.13347,0,0,0-4.585,1.79187,6.417,6.417,0,0,0-1.756,4.69207,6.93955,6.93955,0,0,0,.622,2.97415,8.06587,8.06587,0,0,0,1.949,2.53076H5.41452V19h5.54114v-.04331h-.00147V16.84107a5.82825,5.82825,0,0,1-2.2052-2.2352A6.40513,6.40513,0,0,1,7.97672,11.447,4.68548,4.68548,0,0,1,9.07785,8.19191a3.73232,3.73232,0,0,1,2.9173-1.22462,3.76839,3.76839,0,0,1,2.91241,1.21489,4.482,4.482,0,0,1,1.11572,3.154,6.71141,6.71141,0,0,1-.75384,3.24732,5.83562,5.83562,0,0,1-2.22357,2.25759v2.11562H13.0444V19h5.54108V16.98885Z\",\n tags: \"M8.9749 7.47489a1.5 1.5 0 1 1 -1.5 1.5A1.5 1.5 0 0 1 8.9749 7.47489Zm3.78866 -3.12713L16.5362 8.12041l0.33565 0.33564 2.77038 2.77038a2.01988 2.01988 0 0 1 0.59 1.42 1.95518 1.95518 0 0 1 -0.5854 1.40455l0.00044 0.00043 -5.59583 5.59583 -0.00043 -0.00044a1.95518 1.95518 0 0 1 -1.40455 0.5854 1.98762 1.98762 0 0 1 -1.41 -0.58L8.45605 16.87185l-0.33564 -0.33565L4.35777 12.77357a1.99576 1.99576 0 0 1 -0.59 -1.42V9.36358l0 -3.59582a2.00579 2.00579 0 0 1 2 -2l3.59582 0h1.98995A1.98762 1.98762 0 0 1 12.76356 4.34776ZM15.46186 9.866l-0.33564 -0.33564L11.36359 5.76776H5.76776v5.59583L9.866 15.46186l2.7794 2.7794 5.5878 -5.60385 -0.001 -0.001Z\",\n tableHeader: \"M20,5H4C2.9,5,2,5.9,2,7v10c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2V7C22,5.9,21.1,5,20,5z M8,17.5H4c-0.3,0-0.5-0.2-0.5-0.4 l0,0V17v-2H8V17.5z M8,13.5H3.5v-3H8V13.5z M14.5,17.5h-5V15h5V17.5z M14.5,13.5h-5v-3h5V13.5z M20.5,17c0,0.3-0.2,0.5-0.4,0.5l0,0 H16V15h4.5V17z M20.5,13.5H16v-3h4.5V13.5z M20.5,9h-4.4H16h-1.5h-5H8H7.9H3.5V7c0-0.3,0.2-0.5,0.4-0.5l0,0h4l0,0h8.2l0,0H20 c0.3,0,0.5,0.2,0.5,0.4l0,0V9z\",\n tableStyle: \"M20.0171,19.89752l.9,3.6-3.2-1.9-3.3,1.9.8-3.6-2.9-2.9h3.8l1.7-3.5,1.4,3.5h3.8ZM20,5H4A2.00591,2.00591,0,0,0,2,7V17a2.00591,2.00591,0,0,0,2,2h7.49115l-.58826-.58826L9.99115,17.5H9.5V14.9975h5.36511L16,12.66089V10.5h4.5v3h-.52783l.599,1.4975H22V7A2.00591,2.00591,0,0,0,20,5ZM3.5,7A.4724.4724,0,0,1,4,6.5H8V9H3.5Zm0,3.5H8v3H3.5Zm.5,7a.4724.4724,0,0,1-.5-.5V15H8v2.5Zm10.5-4h-5v-3h5Zm0-4.5h-5V6.5h5Zm6,0H16V6.5h4a.4724.4724,0,0,1,.5.5Z\",\n textColor: \"M15.2,13.494s-3.6,3.9-3.6,6.3a3.65,3.65,0,0,0,7.3.1v-.1C18.9,17.394,15.2,13.494,15.2,13.494Zm-1.47-1.357.669-.724L12.1,5h-2l-5,14h2l1.43-4h2.943A24.426,24.426,0,0,1,13.726,12.137ZM11.1,7.8l1.86,5.2H9.244Z\",\n textMore: \"M13.55,19h2l-5-14h-2l-5,14h2l1.4-4h5.1Zm-5.9-6,1.9-5.2,1.9,5.2Zm12.8,4.5a1.5,1.5,0,1,1-1.5-1.5A1.5,1.5,0,0,1,20.45,17.5Zm0-4a1.5,1.5,0,1,1-1.5-1.5A1.5,1.5,0,0,1,20.45,13.5Zm0-4A1.5,1.5,0,1,1,18.95,8,1.5,1.5,0,0,1,20.45,9.5Z\",\n underline: \"M19,20v2H5V20Zm-3-6.785a4,4,0,0,1-5.74,3.4A3.75,3.75,0,0,1,8,13.085V5.005H6v8.21a6,6,0,0,0,8,5.44,5.851,5.851,0,0,0,4-5.65v-8H16ZM16,5v0h2V5ZM8,5H6v0H8Z\",\n undo: \"M10.4,9.4c-1.7,0.3-3.2,0.9-4.6,2L3,8.5v7h7l-2.7-2.7c3.7-2.6,8.8-1.8,11.5,1.9c0.2,0.3,0.4,0.5,0.5,0.8l1.8-0.9 C18.9,10.8,14.7,8.7,10.4,9.4z\",\n unlink: \"M14.4,11l1.6,1.6V11H14.4z M17,7h-4v1.9h4c1.7,0,3.1,1.4,3.1,3.1c0,1.3-0.8,2.4-1.9,2.8l1.4,1.4C21,15.4,22,13.8,22,12 C22,9.2,19.8,7,17,7z M2,4.3l3.1,3.1C3.3,8.1,2,9.9,2,12c0,2.8,2.2,5,5,5h4v-1.9H7c-1.7,0-3.1-1.4-3.1-3.1c0-1.6,1.2-2.9,2.8-3.1 L8.7,11H8v2h2.7l2.3,2.3V17h1.7l4,4l1.4-1.4L3.4,2.9L2,4.3z\",\n unorderedList: \"M4,10.5c-0.8,0-1.5,0.7-1.5,1.5s0.7,1.5,1.5,1.5s1.5-0.7,1.5-1.5S4.8,10.5,4,10.5z M4,5.5C3.2,5.5,2.5,6.2,2.5,7 S3.2,8.5,4,8.5S5.5,7.8,5.5,7S4.8,5.5,4,5.5z M4,15.5c-0.8,0-1.5,0.7-1.5,1.5s0.7,1.5,1.5,1.5s1.5-0.7,1.5-1.5S4.8,15.5,4,15.5z M7.5,6v2h14V6H7.5z M7.5,18h14v-2h-14V18z M7.5,13h14v-2h-14V13z\",\n verticalAlignBottom: \"M16,13h-3V3h-2v10H8l4,4L16,13z M3,19v2h18v-2H3z\",\n verticalAlignMiddle: \"M3,11v2h18v-2H3z M8,18h3v3h2v-3h3l-4-4L8,18z M16,6h-3V3h-2v3H8l4,4L16,6z\",\n verticalAlignTop: \"M8,11h3v10h2V11h3l-4-4L8,11z M21,5V3H3v2H21z\"\n }, xt.FILEICONS = {\n docIcon: {\n extension: \".doc\",\n path: '\\n \\n \\n \\n \\n '\n },\n gifIcon: {\n extension: \".gif\",\n path: '\\n \\n \\n \\n \\n '\n },\n jpegIcon: {\n extension: \".jpeg\",\n path: '\\n \\n \\n \\n \\n '\n },\n logIcon: {\n extension: \".log\",\n path: '\\n \\n \\n \\n \\n '\n },\n movIcon: {\n extension: \".mov\",\n path: '\\n \\n \\n \\n \\n '\n },\n ogvIcon: {\n extension: \".ogv\",\n path: '\\n \\n \\n \\n \\n '\n },\n pngIcon: {\n extension: \".png\",\n path: '\\n \\n \\n \\n \\n '\n },\n txtIcon: {\n extension: \".txt\",\n path: '\\n \\n \\n \\n \\n '\n },\n webmIcon: {\n extension: \".webm\",\n path: '\\n \\n \\n \\n \\n '\n },\n webpIcon: {\n extension: \".webp\",\n path: '\\n \\n \\n \\n \\n '\n },\n wmvIcon: {\n extension: \".wmv\",\n path: '\\n \\n \\n \\n \\n '\n },\n xlsIcon: {\n extension: \".xls\",\n path: '\\n \\n \\n \\n \\n '\n },\n xlsxIcon: {\n extension: \".xlsx\",\n path: '\\n \\n \\n \\n \\n '\n },\n zipIcon: {\n extension: \".zip\",\n path: '\\n \\n \\n \\n \\n '\n },\n docxIcon: {\n extension: \".docx\",\n path: '\\n \\n \\n \\n \\n \\n \\n \\n \\n '\n },\n jpgIcon: {\n extension: \".jpg\",\n path: '\\n \\n \\n \\n \\n '\n },\n mp3Icon: {\n extension: \".mp3\",\n path: '\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n '\n },\n mp4Icon: {\n extension: \".mp4\",\n path: '\\n \\n \\n \\n \\n \\n \\n \\n \\n '\n },\n oggIcon: {\n extension: \".ogg\",\n path: '\\n \\n \\n \\n \\n \\n \\n \\n \\n '\n },\n pdfIcon: {\n extension: \".pdf\",\n path: '\\n \\n \\n \\n \\n \\n \\n '\n },\n defaultIcon: {\n extension: \".default\",\n path: '\\n \\n '\n }\n }, xt.MODULES.modals = function (l) {\n var i = l.$;\n l.shared.modals || (l.shared.modals = {});\n var a,\n c = l.shared.modals;\n\n function e() {\n for (var e in c) {\n if (Object.prototype.hasOwnProperty.call(c, e)) {\n var t = c[e];\n t && t.$modal && t.$modal.removeData().remove();\n }\n }\n\n a && a.removeData().remove(), c = {};\n }\n\n function s(e, t) {\n if (c[e]) {\n var n = c[e].$modal,\n r = n.data(\"instance\") || l;\n r.events.enableBlur(), n.hide(), a.hide(), i(r.o_doc).find(\"body\").first().removeClass(\"fr-prevent-scroll fr-mobile\"), n.removeClass(\"fr-active\"), t || (r.accessibility.restoreSelection(), r.events.trigger(\"modals.hide\"));\n }\n }\n\n function n(e) {\n var t;\n\n if (\"string\" == typeof e) {\n if (!c[e]) return;\n t = c[e].$modal;\n } else t = e;\n\n return t && l.node.hasClass(t, \"fr-active\") && l.core.sameInstance(t) || !1;\n }\n\n return {\n _init: function t() {\n l.events.on(\"shared.destroy\", e, !0);\n },\n get: function r(e) {\n return c[e];\n },\n create: function d(n, e, t) {\n if (e = '
    '.concat(e, \"
    \"), l.shared.$overlay || (l.shared.$overlay = i(l.doc.createElement(\"DIV\")).addClass(\"fr-overlay\"), i(\"body\").first().append(l.shared.$overlay)), a = l.shared.$overlay, l.opts.theme && a.addClass(\"\".concat(l.opts.theme, \"-theme\")), !c[n]) {\n var r = function o(e, t) {\n var n = '
    '),\n r = '');\n n += '
    '.concat(e).concat(r, \"
    \"), n += '
    '.concat(t, \"
    \"), n += \"
    \";\n var a = i(l.doc.createElement(\"DIV\"));\n return a.html(n), a.find(\"> .fr-modal\");\n }(e, t);\n\n c[n] = {\n $modal: r,\n $head: r.find(\".fr-modal-head\"),\n $body: r.find(\".fr-modal-body\")\n }, l.helpers.isMobile() || r.addClass(\"fr-desktop\"), i(\"body\").first().append(r), l.events.$on(r, \"click\", \".fr-modal-close\", function () {\n s(n);\n }, !0), c[n].$body.css(\"margin-top\", c[n].$head.outerHeight()), l.events.$on(r, \"keydown\", function (e) {\n var t = e.which;\n return t === xt.KEYCODE.ESC ? (s(n), l.accessibility.focusModalButton(r), !1) : !(!i(e.currentTarget).is(\"input[type=text], textarea\") && t !== xt.KEYCODE.ARROW_UP && t !== xt.KEYCODE.ARROW_DOWN && !l.keys.isBrowserAction(e) && (e.preventDefault(), e.stopPropagation(), 1));\n }, !0), s(n, !0);\n }\n\n return c[n];\n },\n show: function o(e) {\n if (c[e]) {\n var t = c[e].$modal;\n t.data(\"instance\", l), t.show(), a.show(), i(l.o_doc).find(\"body\").first().addClass(\"fr-prevent-scroll\"), l.helpers.isMobile() && i(l.o_doc).find(\"body\").first().addClass(\"fr-mobile\"), t.addClass(\"fr-active\"), l.accessibility.focusModal(t);\n }\n },\n hide: s,\n resize: function f(e) {\n if (c[e]) {\n var t = c[e],\n n = t.$modal,\n r = t.$body,\n a = l.o_win.innerHeight,\n o = n.find(\".fr-modal-wrapper\"),\n i = a - o.outerHeight(!0) + (o.height() - (r.outerHeight(!0) - r.height())),\n s = \"auto\";\n i < r.get(0).scrollHeight && (s = i), r.height(s);\n }\n },\n isVisible: n,\n areVisible: function p(e) {\n for (var t in c) {\n if (Object.prototype.hasOwnProperty.call(c, t) && n(t) && (void 0 === e || c[t].$modal.data(\"instance\") === e)) return c[t].$modal;\n }\n\n return !1;\n }\n };\n }, xt.MODULES.position = function (E) {\n var y = E.$;\n\n function a() {\n var e = E.selection.ranges(0).getBoundingClientRect();\n\n if (0 === e.top && 0 === e.left && 0 === e.width || 0 === e.height) {\n var t = !1;\n 0 === E.$el.find(\".fr-marker\").length && (E.selection.save(), t = !0);\n var n = E.$el.find(\".fr-marker\").first();\n n.css(\"display\", \"inline\"), n.css(\"line-height\", \"\");\n var r = n.offset(),\n a = n.outerHeight();\n n.css(\"display\", \"none\"), n.css(\"line-height\", 0), (e = {}).left = r && r.left, e.width = 0, e.height = a, e.top = r && r.top - (E.helpers.isMobile() && !E.helpers.isIOS() || E.opts.iframe ? 0 : E.helpers.scrollTop()), e.right = 1, e.bottom = 1, e.ok = !0, t && E.selection.restore();\n }\n\n return e;\n }\n\n function o(e, t, n, r) {\n var a = n.data(\"container\");\n\n if (!a || \"BODY\" === a.get(0).tagName && \"static\" === a.css(\"position\") || (e && (e -= a.offset().left), t && (t -= a.offset().top), \"BODY\" !== a.get(0).tagName ? (e && (e += a.get(0).scrollLeft), t && (t += a.get(0).scrollTop)) : \"absolute\" === a.css(\"position\") && (e && (e += a.position().left), t && (t += a.position().top))), E.opts.iframe && a && E.$tb && a.get(0) !== E.$tb.get(0)) {\n var o = E.helpers.getPX(E.$wp.find(\".fr-iframe\").css(\"padding-top\")),\n i = E.helpers.getPX(E.$wp.find(\".fr-iframe\").css(\"padding-left\"));\n e && (e += E.$iframe.offset().left + i), t && (t += E.$iframe.offset().top + o);\n }\n\n var s = function l(e, t) {\n var n = e.outerWidth(!0);\n return t + n > E.$sc.get(0).clientWidth - 10 && (t = E.$sc.get(0).clientWidth - n - 10), t < 0 && (t = 10), t;\n }(n, e);\n\n e && n.css(\"left\", s), t && n.css(\"top\", function c(e, t, n) {\n var r = e.outerHeight(!0);\n\n if (!E.helpers.isMobile() && E.$tb && e.parent().get(0) !== E.$tb.get(0)) {\n var a = e.parent().offset().top,\n o = t - r - (n || 0);\n e.parent().get(0) === E.$sc.get(0) && (a -= e.parent().position().top);\n var i = E.$sc.get(0).clientHeight;\n a + t + r > E.$sc.offset().top + i && 0 < e.parent().offset().top + o && 0 < o ? o > E.$wp.scrollTop() && (t = o, e.addClass(\"fr-above\")) : e.removeClass(\"fr-above\");\n }\n\n return t;\n }(n, t, r));\n }\n\n function i(e) {\n var n = y(e),\n t = n.is(\".fr-sticky-on\"),\n r = n.data(\"sticky-top\"),\n a = n.data(\"sticky-scheduled\");\n\n if (void 0 === r) {\n n.data(\"sticky-top\", 0);\n var o = y('
    '));\n E.$box.prepend(o);\n } else E.$box.find(\".fr-sticky-dummy\").css(\"height\", n.outerHeight());\n\n if (E.core.hasFocus() || 0 < E.$tb.findVisible(\"input:focus\").length) {\n var i = E.helpers.scrollTop(),\n s = Math.min(Math.max(i - E.$tb.parent().offset().top, 0), E.$tb.parent().outerHeight() - n.outerHeight());\n\n if (s !== r && s !== a && (clearTimeout(n.data(\"sticky-timeout\")), n.data(\"sticky-scheduled\", s), n.outerHeight() < i - E.$tb.parent().offset().top && n.addClass(\"fr-opacity-0\"), n.data(\"sticky-timeout\", setTimeout(function () {\n var e = E.helpers.scrollTop(),\n t = Math.min(Math.max(e - E.$tb.parent().offset().top, 0), E.$tb.parent().outerHeight() - n.outerHeight());\n 0 < t && \"BODY\" === E.$tb.parent().get(0).tagName && (t += E.$tb.parent().position().top), t !== r && (n.css(\"top\", Math.max(t, 0)), n.data(\"sticky-top\", t), n.data(\"sticky-scheduled\", t)), n.removeClass(\"fr-opacity-0\");\n }, 100))), !t) {\n var l = E.$tb.parent(),\n c = l.get(0).offsetWidth - l.get(0).clientWidth;\n n.css(\"top\", \"0\"), n.width(l.width() - c), n.addClass(\"fr-sticky-on\"), E.$box.addClass(\"fr-sticky-box\");\n }\n } else clearTimeout(y(e).css(\"sticky-timeout\")), n.css(\"top\", \"0\"), n.css(\"position\", \"\"), n.css(\"width\", \"\"), n.data(\"sticky-top\", 0), n.removeClass(\"fr-sticky-on\"), E.$box.removeClass(\"fr-sticky-box\");\n }\n\n function t(e) {\n if (e.offsetWidth) {\n var t = y(e),\n n = t.outerHeight(),\n r = t.data(\"sticky-position\"),\n a = y(\"body\" === E.opts.scrollableContainer ? E.o_win : E.opts.scrollableContainer).outerHeight(),\n o = 0,\n i = 0;\n \"body\" !== E.opts.scrollableContainer && (o = E.$sc.offset().top, i = y(E.o_win).outerHeight() - o - a);\n var s = \"body\" === E.opts.scrollableContainer ? E.helpers.scrollTop() : o,\n l = t.is(\".fr-sticky-on\");\n t.data(\"sticky-parent\") || t.data(\"sticky-parent\", t.parent());\n var c = t.data(\"sticky-parent\"),\n d = c.offset().top,\n f = c.outerHeight();\n\n if (t.data(\"sticky-offset\") ? E.$box.find(\".fr-sticky-dummy\").css(\"height\", \"\".concat(n, \"px\")) : (t.data(\"sticky-offset\", !0), t.after('
    '))), !r) {\n var p = \"auto\" !== t.css(\"top\") || \"auto\" !== t.css(\"bottom\");\n p || t.css(\"position\", \"fixed\"), r = {\n top: E.node.hasClass(t.get(0), \"fr-top\"),\n bottom: E.node.hasClass(t.get(0), \"fr-bottom\")\n }, p || t.css(\"position\", \"\"), t.data(\"sticky-position\", r), t.data(\"top\", E.node.hasClass(t.get(0), \"fr-top\") ? t.css(\"top\") : \"auto\"), t.data(\"bottom\", E.node.hasClass(t.get(0), \"fr-bottom\") ? t.css(\"bottom\") : \"auto\");\n }\n\n var u = E.helpers.getPX(t.data(\"top\")),\n h = E.helpers.getPX(t.data(\"bottom\")),\n g = r.top && function b() {\n return d < s + u && s + u <= d + f - n;\n }() && (E.helpers.isInViewPort(E.$sc.get(0)) || \"body\" === E.opts.scrollableContainer),\n m = r.bottom && function C() {\n return d + n < s + a - h && s + a - h < d + f;\n }();\n\n if (g || m) {\n var v = c.get(0).offsetWidth - c.get(0).clientWidth;\n t.css(\"width\", \"\".concat(c.get(0).getBoundingClientRect().width - v, \"px\")), l || (t.addClass(\"fr-sticky-on\"), t.removeClass(\"fr-sticky-off\"), t.css(\"top\") && (\"auto\" !== t.data(\"top\") ? t.css(\"top\", E.helpers.getPX(t.data(\"top\")) + o) : t.data(\"top\", \"auto\")), t.css(\"bottom\") && (\"auto\" !== t.data(\"bottom\") ? t.css(\"bottom\", E.helpers.getPX(t.data(\"bottom\")) + i) : t.css(\"bottom\", \"auto\")));\n } else E.node.hasClass(t.get(0), \"fr-sticky-off\") || (t.css(\"width\", \"\"), t.removeClass(\"fr-sticky-on\"), t.addClass(\"fr-sticky-off\"), t.css(\"top\") && \"auto\" !== t.data(\"top\") && r.top && t.css(\"top\", 0), t.css(\"bottom\") && \"auto\" !== t.data(\"bottom\") && r.bottom && t.css(\"bottom\", 0));\n }\n }\n\n function s() {\n if (E.helpers.requestAnimationFrame()(s), !1 !== E.events.trigger(\"position.refresh\")) for (var e = 0; e < E._stickyElements.length; e++) {\n if (E.opts.toolbarBottom) {\n var t = E.$tb.parent(),\n n = t.get(0).offsetWidth - t.get(0).clientWidth,\n r = y(E._stickyElements[e]);\n r.width(t.width() - n), r.addClass(\"fr-sticky-on\"), E.$box.addClass(\"fr-sticky-box\");\n } else i(E._stickyElements[e]);\n }\n }\n\n function n() {\n if (E._stickyElements) for (var e = 0; e < E._stickyElements.length; e++) {\n t(E._stickyElements[e]);\n }\n }\n\n return {\n _init: function r() {\n !function e() {\n E._stickyElements = [], E.helpers.isIOS() ? (s(), E.events.$on(y(E.o_win), \"scroll\", function () {\n if (E.core.hasFocus()) for (var e = 0; e < E._stickyElements.length; e++) {\n var t = y(E._stickyElements[e]),\n n = t.parent(),\n r = E.helpers.scrollTop();\n t.outerHeight() < r - n.offset().top && (E.opts.toolbarBottom && E.helpers.isIOS() || (t.addClass(\"fr-opacity-0\"), t.data(\"sticky-top\", -1), t.data(\"sticky-scheduled\", -1)));\n }\n }, !0)) : (\"body\" !== E.opts.scrollableContainer && E.events.$on(y(E.opts.scrollableContainer), \"scroll\", n, !0), E.events.$on(y(E.o_win), \"scroll\", n, !0), E.events.$on(y(E.o_win), \"resize\", n, !0), E.events.on(\"initialized\", n), E.events.on(\"focus\", n), E.events.$on(y(E.o_win), \"resize\", \"textarea\", n, !0)), E.events.on(\"destroy\", function () {\n E._stickyElements = [];\n });\n }();\n },\n forSelection: function l(e) {\n var t = a();\n e.css({\n top: 0,\n left: 0\n });\n var n = t.top + t.height,\n r = t.left + t.width / 2 - e.get(0).offsetWidth / 2 + E.helpers.scrollLeft();\n E.opts.iframe || (n += E.helpers.scrollTop()), o(r, n, e, t.height);\n },\n addSticky: function c(e) {\n e.addClass(\"fr-sticky\"), E.helpers.isIOS() && !E.opts.toolbarBottom && e.addClass(\"fr-sticky-ios\"), e.removeClass(\"fr-sticky\"), E._stickyElements.push(e.get(0));\n },\n refresh: n,\n at: o,\n getBoundingRect: a\n };\n }, xt.MODULES.refresh = function (l) {\n var c = l.$;\n\n function o(e, t) {\n e.toggleClass(\"fr-disabled\", t).attr(\"aria-disabled\", t);\n }\n\n function e(e) {\n var t = l.$tb.find('.fr-more-toolbar[data-name=\"'.concat(e.attr(\"data-group-name\"), '\"]')),\n n = function s(e, t) {\n var n = 0,\n r = t.find(\"> .fr-command, > .fr-btn-wrap\");\n r.each(function (e, t) {\n n += c(t).outerWidth();\n });\n var a,\n o = l.helpers.getPX(c(r[0]).css(\"margin-left\")),\n i = l.helpers.getPX(c(r[0]).css(\"margin-right\"));\n a = \"rtl\" === l.opts.direction ? l.$tb.outerWidth() - e.offset().left + l.$tb.offset().left - (n + e.outerWidth() + r.length * (o + i)) / 2 : e.offset().left - l.$tb.offset().left - (n - e.outerWidth() + r.length * (o + i)) / 2;\n a + n + r.length * (o + i) > l.$tb.outerWidth() && (a -= (n + r.length * (o + i) - e.outerWidth()) / 2);\n a < 0 && (a = 0);\n return a;\n }(e, t);\n\n \"rtl\" === l.opts.direction ? t.css(\"padding-right\", n) : t.css(\"padding-left\", n);\n }\n\n return {\n undo: function t(e) {\n o(e, !l.undo.canDo());\n },\n redo: function n(e) {\n o(e, !l.undo.canRedo());\n },\n outdent: function i(e) {\n if (l.node.hasClass(e.get(0), \"fr-no-refresh\")) return !1;\n\n for (var t = l.selection.blocks(), n = 0; n < t.length; n++) {\n var r = \"rtl\" === l.opts.direction || \"rtl\" === c(t[n]).css(\"direction\") ? \"margin-right\" : \"margin-left\",\n a = t[0].parentElement;\n if (\"P\" != a.parentNode.tagName && \"DIV\" != a.parentNode.tagName && \"UL\" != a.parentNode.tagName && \"OL\" != a.parentNode.tagName && \"LI\" != a.parentNode.tagName) return o(e, !0), !0;\n if (t[0].previousSibling && \"none\" == a.parentNode.style.listStyleType) return o(e, !0), !0;\n if (\"LI\" === t[n].tagName || \"LI\" === t[n].parentNode.tagName) return o(e, !1), !0;\n if (0 < l.helpers.getPX(c(t[n]).css(r))) return o(e, !1), !0;\n }\n\n o(e, !0);\n },\n indent: function a(e) {\n if (l.node.hasClass(e.get(0), \"fr-no-refresh\")) return !1;\n\n for (var t = l.selection.blocks(), n = 0; n < t.length; n++) {\n for (var r = t[n].previousSibling; r && r.nodeType === Node.TEXT_NODE && 0 === r.textContent.length;) {\n r = r.previousSibling;\n }\n\n if (\"LI\" !== t[n].tagName || r) return o(e, !1), !0;\n o(e, !0);\n }\n },\n moreText: e,\n moreParagraph: e,\n moreMisc: e,\n moreRich: e\n };\n }, Object.assign(xt.DEFAULTS, {\n attribution: !0,\n toolbarBottom: !1,\n toolbarButtons: null,\n toolbarButtonsXS: null,\n toolbarButtonsSM: null,\n toolbarButtonsMD: null,\n toolbarContainer: null,\n toolbarInline: !1,\n toolbarSticky: !0,\n toolbarStickyOffset: 0,\n toolbarVisibleWithoutSelection: !1\n }), xt.TOOLBAR_BUTTONS = {\n moreText: {\n buttons: [\"bold\", \"italic\", \"underline\", \"strikeThrough\", \"subscript\", \"superscript\", \"fontFamily\", \"fontSize\", \"textColor\", \"backgroundColor\", \"inlineClass\", \"inlineStyle\", \"clearFormatting\"]\n },\n moreParagraph: {\n buttons: [\"alignLeft\", \"alignCenter\", \"formatOLSimple\", \"alignRight\", \"alignJustify\", \"formatOL\", \"formatUL\", \"paragraphFormat\", \"paragraphStyle\", \"lineHeight\", \"outdent\", \"indent\", \"quote\"]\n },\n moreRich: {\n buttons: [\"insertLink\", \"insertFiles\", \"insertImage\", \"insertVideo\", \"insertTable\", \"emoticons\", \"fontAwesome\", \"specialCharacters\", \"embedly\", \"insertFile\", \"insertHR\"]\n },\n moreMisc: {\n buttons: [\"undo\", \"redo\", \"fullscreen\", \"print\", \"getPDF\", \"spellChecker\", \"selectAll\", \"html\", \"help\"],\n align: \"right\",\n buttonsVisible: 2\n }\n }, xt.TOOLBAR_BUTTONS_MD = null, (xt.TOOLBAR_BUTTONS_SM = {}).moreText = Object.assign({}, xt.TOOLBAR_BUTTONS.moreText, {\n buttonsVisible: 2\n }), xt.TOOLBAR_BUTTONS_SM.moreParagraph = Object.assign({}, xt.TOOLBAR_BUTTONS.moreParagraph, {\n buttonsVisible: 2\n }), xt.TOOLBAR_BUTTONS_SM.moreRich = Object.assign({}, xt.TOOLBAR_BUTTONS.moreRich, {\n buttonsVisible: 2\n }), xt.TOOLBAR_BUTTONS_SM.moreMisc = Object.assign({}, xt.TOOLBAR_BUTTONS.moreMisc, {\n buttonsVisible: 2\n }), (xt.TOOLBAR_BUTTONS_XS = {}).moreText = Object.assign({}, xt.TOOLBAR_BUTTONS.moreText, {\n buttonsVisible: 0\n }), xt.TOOLBAR_BUTTONS_XS.moreParagraph = Object.assign({}, xt.TOOLBAR_BUTTONS.moreParagraph, {\n buttonsVisible: 0\n }), xt.TOOLBAR_BUTTONS_XS.moreRich = Object.assign({}, xt.TOOLBAR_BUTTONS.moreRich, {\n buttonsVisible: 0\n }), xt.TOOLBAR_BUTTONS_XS.moreMisc = Object.assign({}, xt.TOOLBAR_BUTTONS.moreMisc, {\n buttonsVisible: 2\n }), xt.POWERED_BY = 'Powered byFroala', xt.MODULES.toolbar = function (m) {\n var v,\n b = m.$,\n t = [];\n\n function e(e) {\n var n = {};\n\n if (Array.isArray(e)) {\n if (!Array.isArray(e[0])) {\n for (var t = [], r = [], a = 0; a < e.length; a++) {\n \"|\" === e[a] || \"-\" === e[a] ? (0 < r.length && t.push(r), r = []) : r.push(e[a]);\n }\n\n 0 < r.length && t.push(r), e = t;\n }\n\n e.forEach(function (e, t) {\n n[\"group\".concat(t + 1)] = {\n buttons: e\n };\n }), n.showMoreButtons = !1;\n } else \"object\" !== _t(e) || Array.isArray(e) || ((n = e).showMoreButtons = !0);\n\n return n;\n }\n\n function C() {\n var e = m.helpers.screenSize();\n return t[v = e];\n }\n\n function E() {\n for (var e = m.$tb.find(\".fr-more-toolbar\"), c = \"\", t = 0; t < e.length; t++) {\n var d = b(e[t]);\n d.hasClass(\"fr-expanded\") ? function () {\n var n = m.helpers.getPX(d.css(\"padding-left\")),\n e = d.find(\"> .fr-command, > .fr-btn-wrap\"),\n t = b(e[0]),\n r = m.helpers.getPX(t.css(\"margin-left\")),\n a = m.helpers.getPX(t.css(\"margin-right\")),\n o = m.helpers.getPX(t.css(\"margin-top\")),\n i = m.helpers.getPX(t.css(\"margin-bottom\"));\n\n if (e.each(function (e, t) {\n n += b(t).outerWidth() + r + a;\n }), m.$tb.outerWidth() < n) {\n var s = Math.floor(n / m.$tb.outerWidth());\n n += s * (n / d[0].childElementCount), s = Math.ceil(n / m.$tb.outerWidth());\n var l = (m.helpers.getPX(t.css(\"height\")) + o + i) * s;\n d.css(\"height\", l), c = l;\n }\n }() : d.css(\"height\", \"\");\n }\n\n !m.helpers.isMobile() && m.opts.toolbarBottom ? (m.$tb.css(\"padding-bottom\", c), m.$tb.find(\".fr-toolbar .fr-more-toolbar\").removeClass(\"position-relative\")) : m.$tb.find(\".fr-toolbar .fr-more-toolbar\").addClass(\"position-relative\");\n }\n\n function r() {\n if (v !== m.helpers.screenSize()) {\n var e = C(),\n t = b(),\n n = b();\n\n for (var r in m.$tb.find(\".fr-btn-grp > .fr-command, .fr-more-toolbar > .fr-command, .fr-btn-grp > .fr-btn-wrap > .fr-command, .fr-more-toolbar > .fr-btn-wrap > .fr-command\").addClass(\"fr-hidden\"), function g() {\n for (var t = m.$tb.find(\".fr-btn-grp, .fr-more-toolbar\"), r = function r(e) {\n var n = b(t[e]);\n n.children().each(function (e, t) {\n n.before(t);\n }), n.remove();\n }, e = 0; e < t.length; e++) {\n r(e);\n }\n }(), e) {\n var a = e[r];\n\n if (a.buttons) {\n var o = void 0,\n i = 0,\n s = 3,\n l = b('
    '));\n e.showMoreButtons && (o = b('
    ').data(\"name\", \"\".concat(r, \"-\").concat(m.id)));\n\n for (var c = 0; c < a.buttons.length; c++) {\n a.buttonsVisible !== undefined && (s = a.buttonsVisible);\n var d = m.$tb.find('> .fr-command[data-cmd=\"' + a.buttons[c] + '\"], > div.fr-btn-wrap > .fr-command[data-cmd=\"' + a.buttons[c] + '\"]'),\n f = null;\n m.node.hasClass(d.next().get(0), \"fr-dropdown-menu\") && (f = d.next()), m.node.hasClass(d.next().get(0), \"fr-options\") && (d.removeClass(\"fr-hidden\"), d.next().removeClass(\"fr-hidden\"), d = d.parent()), d.removeClass(\"fr-hidden\"), e.showMoreButtons && s <= i ? (o.append(d), f && o.append(f)) : (l.append(d), f && l.append(f)), i++;\n }\n\n if (e.showMoreButtons && s < i) {\n var p = m.$tb.find('.fr-command[data-cmd=\"'.concat(r, '\"]'));\n if (0 < p.length) p.removeClass(\"fr-hidden fr-open\");else {\n var u = r,\n h = xt.COMMANDS[u];\n h.more_btn = !0, p = b(m.button.build(u, h, !0)), m.button.addButtons(p);\n }\n l.append(p);\n }\n\n t.push(l), e.showMoreButtons && n.push(o);\n }\n }\n\n m.opts.toolbarBottom ? (m.$tb.append(n), m.$tb.find(\".fr-newline\").remove(), m.$tb.append('
    '), m.$tb.append(t)) : (m.$tb.append(t), m.$tb.find(\".fr-newline\").remove(), m.$tb.append('
    '), m.$tb.append(n)), m.$tb.removeClass(\"fr-toolbar-open\"), m.$box.removeClass(\"fr-toolbar-open\"), m.events.trigger(\"codeView.toggle\");\n }\n\n E();\n }\n\n function n(e, t) {\n setTimeout(function () {\n if ((!e || e.which != xt.KEYCODE.ESC) && m.selection.inEditor() && m.core.hasFocus() && !m.popups.areVisible() && \"false\" != b(m.selection.blocks()[0]).closest(\"table\").attr(\"contenteditable\") && (m.opts.toolbarVisibleWithoutSelection || !m.selection.isCollapsed() && !m.keys.isIME() || t)) {\n if (m.$tb.data(\"instance\", m), !1 === m.events.trigger(\"toolbar.show\", [e])) return;\n m.$tb.show(), m.opts.toolbarContainer || m.position.forSelection(m.$tb), 1 < m.opts.zIndex ? m.$tb.css(\"z-index\", m.opts.zIndex + 1) : m.$tb.css(\"z-index\", null);\n }\n }, 0);\n }\n\n function a(e) {\n return (!e || \"blur\" !== e.type || document.activeElement !== m.el) && (!(!e || \"keydown\" !== e.type || !m.keys.ctrlKey(e)) || !!m.button.getButtons(\".fr-dropdown.fr-active\").next().find(m.o_doc.activeElement).length || (m.helpers.isMobile() && m.opts.toolbarInline && (m.$tb.find(\".fr-expanded\").toggleClass(\"fr-expanded\"), m.$tb.find(\".fr-open\").removeClass(\"fr-open\"), m.$tb.removeClass(\"fr-toolbar-open\"), E()), void (!1 !== m.events.trigger(\"toolbar.hide\") && m.$tb.hide())));\n }\n\n t[xt.XS] = e(m.opts.toolbarButtonsXS || m.opts.toolbarButtons || xt.TOOLBAR_BUTTONS_XS || xt.TOOLBAR_BUTTONS || []), t[xt.SM] = e(m.opts.toolbarButtonsSM || m.opts.toolbarButtons || xt.TOOLBAR_BUTTONS_SM || xt.TOOLBAR_BUTTONS || []), t[xt.MD] = e(m.opts.toolbarButtonsMD || m.opts.toolbarButtons || xt.TOOLBAR_BUTTONS_MD || xt.TOOLBAR_BUTTONS || []), t[xt.LG] = e(m.opts.toolbarButtons || xt.TOOLBAR_BUTTONS || []);\n var o = null;\n\n function i(e) {\n clearTimeout(o), e && e.which === xt.KEYCODE.ESC || (o = setTimeout(n, m.opts.typingTimer));\n }\n\n function s() {\n m.events.on(\"window.mousedown\", a), m.events.on(\"keydown\", a), m.events.on(\"blur\", a), m.events.$on(m.$tb, \"transitionend\", \".fr-more-toolbar\", function () {\n m.position.forSelection(m.$tb);\n }), m.helpers.isMobile() || m.events.on(\"window.mouseup\", n), m.helpers.isMobile() ? m.helpers.isIOS() || (m.events.on(\"window.touchend\", n), m.browser.mozilla && setInterval(n, 200)) : m.events.on(\"window.keyup\", i), m.events.on(\"keydown\", function (e) {\n e && e.which === xt.KEYCODE.ESC && m.events.trigger(\"toolbar.esc\");\n }), m.events.on(\"keydown\", function (e) {\n if (e.which === xt.KEYCODE.ALT) return e.stopPropagation(), !1;\n }, !0), m.events.$on(m.$wp, \"scroll.toolbar\", n), m.events.on(\"commands.after\", n), m.helpers.isMobile() && (m.events.$on(m.$doc, \"selectionchange\", i), m.events.$on(m.$doc, \"orientationchange\", n));\n }\n\n function l() {\n m.$tb.html(\"\").removeData().remove(), m.$tb = null, m.$second_tb && (m.$second_tb.html(\"\").removeData().remove(), m.$second_tb = null);\n }\n\n function c() {\n m.$box.removeClass(\"fr-top fr-bottom fr-inline fr-basic\"), m.$box.find(\".fr-sticky-dummy\").remove();\n }\n\n function d() {\n m.opts.theme && m.$tb.addClass(\"\".concat(m.opts.theme, \"-theme\")), 1 < m.opts.zIndex && m.$tb.css(\"z-index\", m.opts.zIndex + 1), \"auto\" !== m.opts.direction && m.$tb.removeClass(\"fr-ltr fr-rtl\").addClass(\"fr-\".concat(m.opts.direction)), m.helpers.isMobile() ? m.$tb.addClass(\"fr-mobile\") : m.$tb.addClass(\"fr-desktop\"), m.opts.toolbarContainer ? (m.opts.toolbarInline && (s(), a()), m.opts.toolbarBottom ? m.$tb.addClass(\"fr-bottom\") : m.$tb.addClass(\"fr-top\")) : function e() {\n m.opts.toolbarInline ? (m.$sc.append(m.$tb), m.$tb.data(\"container\", m.$sc), m.$tb.addClass(\"fr-inline\"), s(), m.opts.toolbarBottom = !1) : (m.opts.toolbarBottom ? (m.$box.append(m.$tb), m.$tb.addClass(\"fr-bottom\"), m.$box.addClass(\"fr-bottom\")) : (m.opts.toolbarBottom = !1, m.$box.prepend(m.$tb), m.$tb.addClass(\"fr-top\"), m.$box.addClass(\"fr-top\")), m.$tb.addClass(\"fr-basic\"), m.opts.toolbarSticky && (m.opts.toolbarStickyOffset && (m.opts.toolbarBottom ? m.$tb.css(\"bottom\", m.opts.toolbarStickyOffset) : m.$tb.css(\"top\", m.opts.toolbarStickyOffset)), m.position.addSticky(m.$tb)));\n }(), function t() {\n var e = m.button.buildGroup(C());\n m.$tb.append(e), E(), m.button.bindCommands(m.$tb);\n }(), function n() {\n m.events.$on(b(m.o_win), \"resize\", r), m.events.$on(b(m.o_win), \"orientationchange\", r);\n }(), m.accessibility.registerToolbar(m.$tb), m.events.$on(m.$tb, \"\".concat(m._mousedown, \" \").concat(m._mouseup), function (e) {\n var t = e.originalEvent ? e.originalEvent.target || e.originalEvent.originalTarget : null;\n if (t && \"INPUT\" !== t.tagName && !m.edit.isDisabled()) return e.stopPropagation(), e.preventDefault(), !1;\n }, !0), m.events.$on(m.$tb, \"transitionend\", \".fr-more-toolbar\", function () {\n m.$box.hasClass(\"fr-fullscreen\") && (m.opts.height = m.o_win.innerHeight - (m.opts.toolbarInline ? 0 : m.$tb.outerHeight() + (m.$second_tb ? m.$second_tb.outerHeight() : 0)), m.size.refresh());\n });\n }\n\n var f = !1;\n return {\n _init: function p() {\n if (m.$sc = b(m.opts.scrollableContainer).first(), !m.$wp) return !1;\n m.opts.toolbarInline || m.opts.toolbarBottom || (m.$second_tb = b(m.doc.createElement(\"div\")).attr(\"class\", \"fr-second-toolbar\"), m.$box.append(m.$second_tb), (!1 !== m.ul || m.opts.attribution) && m.$second_tb.prepend(xt.POWERED_BY)), m.opts.toolbarContainer ? (m.shared.$tb ? (m.$tb = m.shared.$tb, m.opts.toolbarInline && s()) : (m.shared.$tb = b(m.doc.createElement(\"DIV\")), m.shared.$tb.addClass(\"fr-toolbar\"), m.$tb = m.shared.$tb, b(m.opts.toolbarContainer).append(m.$tb), d(), m.$tb.data(\"instance\", m)), m.helpers.isMobile() && m.events.$on(m.$tb, \"click\", function () {\n m.popups.areVisible().length || m.id !== m.shared.selected_editor || m.$el.focus();\n }), m.opts.toolbarInline ? m.$box.addClass(\"fr-inline\") : m.$box.addClass(\"fr-basic\"), m.events.on(\"focus\", function () {\n m.$tb.data(\"instance\", m);\n }, !0), m.opts.toolbarInline = !1) : m.opts.toolbarInline ? (m.$box.addClass(\"fr-inline\"), m.shared.$tb ? (m.$tb = m.shared.$tb, s()) : (m.shared.$tb = b(m.doc.createElement(\"DIV\")), m.shared.$tb.addClass(\"fr-toolbar\"), m.$tb = m.shared.$tb, d())) : (m.$box.addClass(\"fr-basic\"), m.$tb = b(m.doc.createElement(\"DIV\")), m.$tb.addClass(\"fr-toolbar\"), d(), m.$tb.data(\"instance\", m)), m.events.on(\"destroy\", c, !0), m.events.on(m.opts.toolbarInline || m.opts.toolbarContainer ? \"shared.destroy\" : \"destroy\", l, !0), m.events.on(\"edit.on\", function () {\n m.$tb.removeClass(\"fr-disabled\").removeAttr(\"aria-disabled\");\n }), m.events.on(\"edit.off\", function () {\n m.$tb.addClass(\"fr-disabled\").attr(\"aria-disabled\", !0);\n }), function e() {\n m.events.on(\"shortcut\", function (e, t, n) {\n var r;\n if (t && !n ? r = m.$tb.find('.fr-command[data-cmd=\"'.concat(t, '\"]')) : t && n && (r = m.$tb.find('.fr-command[data-cmd=\"'.concat(t, '\"][data-param1=\"').concat(n, '\"]'))), r.length && (e.preventDefault(), e.stopPropagation(), r.parents(\".fr-toolbar\").data(\"instance\", m), \"keydown\" === e.type)) return m.button.exec(r), !1;\n });\n }();\n },\n hide: a,\n show: function u() {\n if (!1 === m.events.trigger(\"toolbar.show\")) return !1;\n m.$tb.show();\n },\n showInline: n,\n disable: function h() {\n !f && m.$tb && (m.$tb.find(\".fr-btn-grp > .fr-command, .fr-more-toolbar > .fr-command\").addClass(\"fr-disabled fr-no-refresh\").attr(\"aria-disabled\", !0), f = !0);\n },\n enable: function g() {\n f && m.$tb && (m.$tb.find(\".fr-btn-grp > .fr-command, .fr-more-toolbar > .fr-command\").removeClass(\"fr-disabled fr-no-refresh\").attr(\"aria-disabled\", !1), f = !1), m.button.bulkRefresh();\n },\n setMoreToolbarsHeight: E\n };\n };\n\n var c = [\"scroll\", \"wheel\", \"touchmove\", \"touchstart\", \"touchend\"],\n d = [\"webkit\", \"moz\", \"ms\", \"o\"],\n f = [\"transitionend\"],\n a = document.createElement(\"div\").style,\n o = [\"Webkit\", \"Moz\", \"ms\", \"O\", \"css\", \"style\"],\n s = {\n visibility: \"hidden\",\n display: \"block\"\n },\n r = [\"focus\", \"blur\", \"click\"],\n i = {},\n l = function l(e, t) {\n return {\n altKey: e.altKey,\n bubbles: e.bubbles,\n cancelable: e.cancelable,\n changedTouches: e.changedTouches,\n ctrlKey: e.ctrlKey,\n detail: e.detail,\n eventPhase: e.eventPhase,\n metaKey: e.metaKey,\n pageX: e.pageX,\n pageY: e.pageY,\n shiftKey: e.shiftKey,\n view: e.view,\n \"char\": e[\"char\"],\n key: e.key,\n keyCode: e.keyCode,\n button: e.button,\n buttons: e.buttons,\n clientX: e.clientX,\n clientY: e.clientY,\n offsetX: e.offsetX,\n offsetY: e.offsetY,\n pointerId: e.pointerId,\n pointerType: e.pointerType,\n screenX: e.screenX,\n screenY: e.screenY,\n targetTouches: e.targetTouches,\n toElement: e.toElement,\n touches: e.touches,\n type: e.type,\n which: e.which,\n target: e.target,\n currentTarget: t,\n originalEvent: e,\n stopPropagation: function stopPropagation() {\n e.stopPropagation();\n },\n stopImmediatePropagation: function stopImmediatePropagation() {\n e.stopImmediatePropagation();\n },\n preventDefault: function preventDefault() {\n -1 === c.indexOf(e.type) && e.preventDefault();\n }\n };\n },\n p = function p(e) {\n return e.ownerDocument && e.ownerDocument.body.contains(e) || \"#document\" === e.nodeName || \"HTML\" === e.nodeName || e === window;\n },\n u = function u(n, r) {\n return function (e) {\n var t = e.target;\n if (r) for (r = g(r); t && t !== this;) {\n Element.prototype.matches.call(t, g(r)) && n.call(t, l(e, t)), t = t.parentNode;\n } else p(t) && n.call(t, l(e, t));\n };\n },\n h = function h(e, t) {\n return new b(e, t);\n },\n g = function g(e) {\n return e && \"string\" == typeof e ? e.replace(/^\\s*>/g, \":scope >\").replace(/,\\s*>/g, \", :scope >\") : e;\n },\n m = function m(e) {\n return \"function\" == typeof e && \"number\" != typeof e.nodeType;\n },\n v = h;\n\n h.fn = h.prototype = {\n constructor: h,\n length: 0,\n contains: function contains(e) {\n if (!e) return !1;\n\n if (Array.isArray(e)) {\n for (var t = 0; t < e.length; t++) {\n if (this.contains(e[t]) && this != e[t]) return !0;\n }\n\n return !1;\n }\n\n for (var n = 0; n < this.length; n++) {\n for (var r = e; r;) {\n if (r == this[n] || r[0] && r[0].isEqualNode(this[n])) return !0;\n r = r.parentNode;\n }\n }\n\n return !1;\n },\n findVisible: function findVisible(e) {\n for (var t = this.find(e), n = t.length - 1; 0 <= n; n--) {\n v(t[n]).isVisible() || t.splice(n, 1);\n }\n\n return t;\n },\n formatParams: function formatParams(t) {\n var e = \"\".concat(Object.keys(t).map(function (e) {\n return \"\".concat(e, \"=\").concat(encodeURIComponent(t[e]));\n }).join(\"&\"));\n return e || \"\";\n },\n ajax: function ajax(t) {\n var n = new XMLHttpRequest(),\n e = this.formatParams(t.data);\n\n for (var r in \"GET\" === t.method.toUpperCase() && (t.url = e ? t.url + \"?\" + e : t.url), n.open(t.method, t.url, !0), t.withCredentials && (n.withCredentials = !0), t.crossDomain && n.setRequestHeader(\"Access-Control-Allow-Origin\", \"*\"), t.headers) {\n Object.prototype.hasOwnProperty.call(t.headers, r) && n.setRequestHeader(r, t.headers[r]);\n }\n\n Object.prototype.hasOwnProperty.call(t.headers, \"Content-Type\") || (\"json\" === t.dataType ? n.setRequestHeader(\"Content-Type\", \"application/json\") : n.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded; charset=UTF-8\")), n.onload = function () {\n if (200 == n.status) {\n var e = n.responseText;\n \"json\" === t.dataType && (e = JSON.parse(e)), t.done(e, n.status, n);\n } else t.fail(n);\n }, n.send(e);\n },\n prevAll: function prevAll() {\n var e = v();\n if (!this[0]) return e;\n\n for (var t = this[0]; t && t.previousSibling;) {\n t = t.previousSibling, e.push(t);\n }\n\n return e;\n },\n index: function index(e) {\n return e ? \"string\" == typeof e ? [].indexOf.call(v(e), this[0]) : [].indexOf.call(this, e.length ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n },\n isVisible: function isVisible() {\n return !!this[0] && !!(this[0].offsetWidth || this[0].offsetHeight || this[0].getClientRects().length);\n },\n toArray: function toArray() {\n return [].slice.call(this);\n },\n get: function get(e) {\n return null == e ? [].slice.call(this) : e < 0 ? this[e + this.length] : this[e];\n },\n pushStack: function pushStack(e) {\n var t = h.merge(this.constructor(), e);\n return t.prevObject = this, t;\n },\n wrapAll: function wrapAll(e) {\n var t;\n return this[0] && (m(e) && (e = e.call(this[0])), t = h(e, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && t.insertBefore(this[0]), t.map(function () {\n for (var e = this; e.firstElementChild;) {\n e = e.firstElementChild;\n }\n\n return e;\n }).append(this)), this;\n },\n wrapInner: function wrapInner(e) {\n if (\"string\" == typeof e) {\n for (var t = e.split(\" \"), n = 0; n < t.length && 0 === t[n].trim().length;) {\n n++;\n }\n\n if (n < t.length && (v(e).length && t[n].trim() === v(e)[0].tagName && (e = document.createElement(t[n].trim())), n++), \"string\" != typeof e) for (var r = v(e); n < t.length; n++) {\n t[n] = t[n].trim();\n var a = t[n].split(\"=\");\n r.attr(a[0], a[1].replace('\"', \"\"));\n }\n }\n\n for (; this[0].firstChild && this[0].firstChild !== e && \"string\" != typeof e;) {\n e.appendChild(this[0].firstChild);\n }\n },\n wrap: function wrap(t) {\n var n = m(t);\n return this.each(function (e) {\n v(this).wrapAll(n ? t.call(this, e) : t);\n });\n },\n unwrap: function unwrap() {\n return this.parent().each(function () {\n this.nodeName && this.nodeName.toLowerCase() === name.toLowerCase() || h(this).replaceWith(this.childNodes);\n });\n },\n grep: function grep(e, t, n) {\n for (var r = [], a = 0, o = e.length, i = !n; a < o; a++) {\n !t(e[a], a) !== i && r.push(e[a]);\n }\n\n return r;\n },\n map: function map(n) {\n return this.pushStack(h.map(this, function (e, t) {\n return n.call(e, t, e);\n }));\n },\n slice: function slice() {\n return this.pushStack([].slice.apply(this, arguments));\n },\n each: function each(e) {\n if (this.length) for (var t = 0; t < this.length && !1 !== e.call(this[t], t, this[t]); t++) {\n ;\n }\n return this;\n },\n first: function first() {\n return this.eq(0);\n },\n last: function last() {\n return this.eq(-1);\n },\n eq: function eq(e) {\n var t = this.length,\n n = +e + (e < 0 ? t : 0);\n return this.pushStack(0 <= n && n < t ? [this[n]] : []);\n },\n empty: function empty() {\n for (var e = 0; e < this.length; e++) {\n this[e].innerHTML = \"\";\n }\n },\n contents: function contents() {\n for (var e = v(), t = 0; t < this.length; t++) {\n for (var n = this[t].childNodes, r = 0; r < n.length; r++) {\n e.push(n[r]);\n }\n }\n\n return e;\n },\n attr: function attr(e, t) {\n if (\"object\" === _t(e)) {\n for (var n in e) {\n Object.prototype.hasOwnProperty.call(e, n) && null !== e[n] && this.attr(n, e[n]);\n }\n\n return this;\n }\n\n if (void 0 === t) return 0 === this.length || !this[0].getAttribute && \"checked\" !== e ? undefined : \"checked\" === e ? this[0].checked : \"tagName\" === e ? this[0].tagName : this[0].getAttribute(e);\n if (\"checked\" === e) for (var r = 0; r < this.length; r++) {\n this[r].checked = t;\n } else if (\"tagName\" === e) for (var a = 0; a < this.length; a++) {\n this[a].tagName = t;\n } else for (var o = 0; o < this.length; o++) {\n this[o].setAttribute(e, t);\n }\n return this;\n },\n removeAttr: function removeAttr(e) {\n for (var t = 0; t < this.length; t++) {\n this[t].removeAttribute && this[t].removeAttribute(e);\n }\n\n return this;\n },\n hide: function hide() {\n return this.css(\"display\", \"none\"), this;\n },\n show: function show() {\n return this.css(\"display\", \"block\"), this;\n },\n focus: function focus() {\n return this.length && this[0].focus(), this;\n },\n blur: function blur() {\n return this.length && this[0].blur(), this;\n },\n data: function data(e, t) {\n if (void 0 !== t) {\n for (var n = 0; n < this.length; n++) {\n \"object\" !== _t(this[n][\"data-\" + e] = t) && \"function\" != typeof t && this[n].setAttribute && this[n].setAttribute(\"data-\" + e, t);\n }\n\n return this;\n }\n\n if (void 0 !== t) return this.attr(\"data-\" + e, t);\n if (0 === this.length) return undefined;\n\n for (var r = 0; r < this.length; r++) {\n var a = this[r][\"data-\" + e];\n if (null == a && this[r].getAttribute && (a = this[r].getAttribute(\"data-\" + e)), void 0 !== a && null != a) return a;\n }\n\n return undefined;\n },\n removeData: function removeData(e) {\n for (var t = 0; t < this.length; t++) {\n this[t].removeAttribute && this[t].removeAttribute(\"data-\" + e), this[t][\"data-\" + e] = null;\n }\n\n return this;\n },\n getCorrectStyleName: function getCorrectStyleName(e) {\n if (!i[e]) {\n var t;\n e in a && (t = e);\n\n for (var n = e[0].toUpperCase() + e.slice(1), r = o.length; r--;) {\n (e = o[r] + n) in a && (t = e);\n }\n\n i[e] = t;\n }\n\n return i[e];\n },\n css: function css(e, t) {\n if (void 0 !== t) {\n if (0 === this.length) return this;\n (\"string\" != typeof t || \"\" === t.trim() || isNaN(t)) && \"number\" != typeof t || !/(margin)|(padding)|(height)|(width)|(top)|(left)|(right)|(bottom)/gi.test(e) || /(line-height)/gi.test(e) || (t += \"px\");\n\n for (var n = 0; n < this.length; n++) {\n e = v(this).getCorrectStyleName(e), this[n].style[e] = t;\n }\n\n return this;\n }\n\n if (\"string\" == typeof e) {\n if (0 === this.length) return undefined;\n var r = this[0].ownerDocument || document,\n a = r.defaultView || r.parentWindow;\n return e = v(this).getCorrectStyleName(e), a.getComputedStyle(this[0])[e];\n }\n\n for (var o in e) {\n Object.prototype.hasOwnProperty.call(e, o) && this.css(o, e[o]);\n }\n\n return this;\n },\n toggleClass: function toggleClass(e, t) {\n if (1 < e.split(\" \").length) {\n for (var n = e.split(\" \"), r = 0; r < n.length; r++) {\n this.toggleClass(n[r], t);\n }\n\n return this;\n }\n\n for (var a = 0; a < this.length; a++) {\n void 0 === t ? this[a].classList.contains(e) ? this[a].classList.remove(e) : this[a].classList.add(e) : t ? this[a].classList.contains(e) || this[a].classList.add(e) : this[a].classList.contains(e) && this[a].classList.remove(e);\n }\n\n return this;\n },\n addClass: function addClass(e) {\n if (0 === e.length) return this;\n\n if (1 < e.split(\" \").length) {\n for (var t = e.split(\" \"), n = 0; n < t.length; n++) {\n this.addClass(t[n]);\n }\n\n return this;\n }\n\n for (var r = 0; r < this.length; r++) {\n this[r].classList.add(e);\n }\n\n return this;\n },\n removeClass: function removeClass(e) {\n if (1 < e.split(\" \").length) {\n for (var t = e.split(\" \"), n = 0; n < t.length; n++) {\n t[n] = t[n].trim(), t[n].length && this.removeClass(t[n]);\n }\n\n return this;\n }\n\n for (var r = 0; r < this.length; r++) {\n e.length && this[r].classList.remove(e);\n }\n\n return this;\n },\n getClass: function getClass(e) {\n return e.getAttribute && e.getAttribute(\"class\") || \"\";\n },\n stripAndCollapse: function stripAndCollapse(e) {\n return (e.match(/[^\\x20\\t\\r\\n\\f]+/g) || []).join(\" \");\n },\n hasClass: function hasClass(e) {\n var t,\n n,\n r = 0;\n\n for (t = \" \" + e + \" \"; n = this[r++];) {\n if (1 === n.nodeType && -1 < (\" \" + v(this).stripAndCollapse(v(this).getClass(n)) + \" \").indexOf(t)) return !0;\n }\n\n return !1;\n },\n scrollTop: function scrollTop(e) {\n if (void 0 === e) return 0 === this.length ? undefined : this[0] === document ? document.documentElement.scrollTop : this[0].scrollTop;\n\n for (var t = 0; t < this.length; t++) {\n this[t] === document ? window.scrollTo(document.documentElement.scrollLeft, e) : this[t].scrollTop = e;\n }\n },\n scrollLeft: function scrollLeft(e) {\n if (void 0 === e) return 0 === this.length ? undefined : this[0] === document ? document.documentElement.scrollLeft : this[0].scrollLeft;\n\n for (var t = 0; t < this.length; t++) {\n this[t] === document ? window.scrollTo(e, document.documentElement.scrollTop) : this[t].scrollLeft = e;\n }\n },\n on: function on(e, t, n) {\n if (1 < e.split(\" \").length) {\n for (var r = e.split(\" \"), a = 0; a < r.length; a++) {\n if (-1 !== f.indexOf(e)) for (var o = 0; o < d.length; o++) {\n this.on(d[o] + e[0].toUpperCase() + e.slice(1), t, n);\n } else this.on(r[a], t, n);\n }\n\n return this;\n }\n\n n = \"function\" == typeof t ? u(t, null) : u(n, t);\n\n for (var i = 0; i < this.length; i++) {\n var s = v(this[i]);\n s.data(\"events\") || s.data(\"events\", []), s.data(\"events\").push([e, n]);\n var l = e.split(\".\");\n l = l[0], 0 <= c.indexOf(l) ? s.get(0).addEventListener(l, n, {\n passive: !0\n }) : s.get(0).addEventListener(l, n);\n }\n },\n off: function off(e) {\n if (1 < e.split(\" \").length) {\n for (var t = e.split(\" \"), n = 0; n < t.length; n++) {\n this.off(t[n]);\n }\n\n return this;\n }\n\n for (var r = 0; r < this.length; r++) {\n var a = v(this[r]);\n\n if (a.data(\"events\")) {\n var o = e.split(\".\");\n o = o[0];\n\n for (var i = a.data(\"events\") || [], s = i.length - 1; 0 <= s; s--) {\n var l = i[s];\n l[0] == e && (a.get(0).removeEventListener(o, l[1]), i.splice(s, 1));\n }\n }\n }\n },\n trigger: function trigger(e) {\n for (var t = 0; t < this.length; t++) {\n var n = void 0;\n \"function\" == typeof Event ? n = 0 <= e.search(/^mouse/g) ? new MouseEvent(e, {\n view: window,\n cancelable: !0,\n bubbles: !0\n }) : new Event(e) : 0 <= e.search(/^mouse/g) ? (n = document.createEvent(\"MouseEvents\")).initMouseEvent(e, !0, !0, window, 0, 0, 0, 0, 0, !1, !1, !1, !1, 0, null) : (n = document.createEvent(\"Event\")).initEvent(e, !0, !0), 0 <= r.indexOf(e) && \"function\" == typeof this[t][e] ? this[t][e]() : this[t].dispatchEvent(n);\n }\n },\n triggerHandler: function triggerHandler() {},\n val: function val(e) {\n if (void 0 === e) return this[0].value;\n\n for (var t = 0; t < this.length; t++) {\n this[t].value = e;\n }\n\n return this;\n },\n siblings: function siblings() {\n return v(this[0]).parent().children().not(this);\n },\n find: function find(e) {\n var t = v();\n\n if (\"string\" != typeof e) {\n for (var n = 0; n < e.length; n++) {\n for (var r = 0; r < this.length; r++) {\n if (this[r] !== e[n] && v(this[r]).contains(e[n])) {\n t.push(e[n]);\n break;\n }\n }\n }\n\n return t;\n }\n\n var a = function a(e) {\n return \"object\" === (\"undefined\" == typeof HTMLElement ? \"undefined\" : _t(HTMLElement)) ? e instanceof HTMLElement : e && \"object\" === _t(e) && null !== e && 1 === e.nodeType && \"string\" == typeof e.nodeName;\n };\n\n e = g(e);\n\n for (var o = 0; o < this.length; o++) {\n if (this[o].querySelectorAll) {\n var i = [];\n if (e && \"string\" == typeof e) try {\n i = this[o].querySelectorAll(e);\n } catch (l) {\n i = this[o].children;\n } else a(e) && (i = [e]);\n\n for (var s = 0; s < i.length; s++) {\n t.push(i[s]);\n }\n }\n }\n\n return t;\n },\n children: function children() {\n for (var e = v(), t = 0; t < this.length; t++) {\n for (var n = this[t].children, r = 0; r < n.length; r++) {\n e.push(n[r]);\n }\n }\n\n return e;\n },\n not: function not(e) {\n if (\"string\" == typeof e) for (var t = this.length - 1; 0 <= t; t--) {\n Element.prototype.matches.call(this[t], e) && this.splice(t, 1);\n } else if (e instanceof h) {\n for (var n = this.length - 1; 0 <= n; n--) {\n for (var r = 0; r < e.length; r++) {\n if (this[n] === e[r]) {\n this.splice(n, 1);\n break;\n }\n }\n }\n } else for (var a = this.length - 1; 0 <= a; a--) {\n this[a] === e[0] && this.splice(a, 1);\n }\n return this;\n },\n add: function add(e) {\n for (var t = 0; t < e.length; t++) {\n this.push(e[t]);\n }\n\n return this;\n },\n closest: function closest(e) {\n for (var t = 0; t < this.length; t++) {\n var n = Element.prototype.closest.call(this[t], e);\n if (n) return v(n);\n }\n\n return v();\n },\n html: function html(e) {\n if (void 0 === e) return 0 === this.length ? undefined : this[0].innerHTML;\n if (\"string\" == typeof e) for (var t = 0; t < this.length; t++) {\n this[t].innerHTML = e;\n\n for (var n = this[t].children, r = this[t].ownerDocument || document, a = 0; a < n.length; a++) {\n if (\"SCRIPT\" === n[a].tagName) {\n var o = r.createElement(\"script\");\n o.innerHTML = n[a].innerHTML, n[a].hasAttribute(\"async\") && o.setAttribute(\"async\", \"\"), o.src = n[a].src, n[a].hasAttribute(\"defer\") && o.setAttribute(\"defer\", \"\"), r.head.appendChild(o).parentNode.removeChild(o);\n }\n }\n } else {\n this[0].innerHTML = \"\", this.append(e[0]);\n var i = this[0].ownerDocument || document;\n\n if (\"SCRIPT\" === e[0].tagName) {\n var s = i.createElement(\"script\");\n s.innerHTML = e[0].innerHTML, i.head.appendChild(s).parentNode.removeChild(s);\n }\n }\n return this;\n },\n text: function text(e) {\n if (!e) return this.length ? this[0].textContent : \"\";\n\n for (var t = 0; t < this.length; t++) {\n this[t].textContent = e;\n }\n },\n after: function e(t) {\n if (t) if (\"string\" == typeof t) for (var n = 0; n < this.length; n++) {\n var e = this[n];\n\n if (e.nodeType != Node.ELEMENT_NODE) {\n var r = e.ownerDocument.createElement(\"SPAN\");\n v(e).after(r), v(r).after(t).remove();\n } else e.insertAdjacentHTML(\"afterend\", t);\n } else {\n var a = this[0];\n if (a.nextSibling) {\n if (t instanceof h) for (var o = 0; o < t.length; o++) {\n a.nextSibling.parentNode.insertBefore(t[o], a.nextSibling);\n } else a.nextSibling.parentNode.insertBefore(t, a.nextSibling);\n } else v(a.parentNode).append(t);\n }\n return this;\n },\n clone: function clone(e) {\n for (var t = v(), n = 0; n < this.length; n++) {\n t.push(this[n].cloneNode(e));\n }\n\n return t;\n },\n replaceWith: function replaceWith(e) {\n if (\"string\" == typeof e) for (var t = 0; t < this.length; t++) {\n this[t].parentNode && (this[t].outerHTML = e);\n } else if (e.length) for (var n = 0; n < this.length; n++) {\n this.replaceWith(e[n]);\n } else this.after(e).remove();\n },\n insertBefore: function insertBefore(e) {\n return v(e).before(this[0]), this;\n },\n before: function e(t) {\n if (t instanceof h) {\n for (var n = 0; n < t.length; n++) {\n this.before(t[n]);\n }\n\n return this;\n }\n\n if (t) if (\"string\" == typeof t) for (var r = 0; r < this.length; r++) {\n var e = this[r];\n\n if (e.nodeType != Node.ELEMENT_NODE) {\n var a = e.ownerDocument.createElement(\"SPAN\");\n v(e).before(a), v(a).before(t).remove();\n } else e.parentNode && e.insertAdjacentHTML(\"beforebegin\", t);\n } else {\n var o = this[0];\n if (o.parentNode) if (t instanceof h) for (var i = 0; i < t.length; i++) {\n o.parentNode.insertBefore(t[i], o);\n } else o.parentNode.insertBefore(t, o);\n }\n return this;\n },\n append: function append(e) {\n if (0 == this.length) return this;\n if (\"string\" == typeof e) for (var t = 0; t < this.length; t++) {\n var n = this[t],\n r = n.ownerDocument.createElement(\"SPAN\");\n v(n).append(r), v(r).after(e).remove();\n } else if (e instanceof h || Array.isArray(e)) for (var a = 0; a < e.length; a++) {\n this.append(e[a]);\n } else \"function\" != typeof e && this[0].appendChild(e);\n return this;\n },\n prepend: function prepend(e) {\n if (0 == this.length) return this;\n if (\"string\" == typeof e) for (var t = 0; t < this.length; t++) {\n var n = this[t],\n r = n.ownerDocument.createElement(\"SPAN\");\n v(n).prepend(r), v(r).before(e).remove();\n } else if (e instanceof h) for (var a = 0; a < e.length; a++) {\n this.prepend(e[a]);\n } else {\n var o = this[0];\n o.firstChild ? o.firstChild ? o.insertBefore(e, o.firstChild) : o.appendChild(e) : v(o).append(e);\n }\n return this;\n },\n remove: function remove() {\n for (var e = 0; e < this.length; e++) {\n this[e].parentNode && this[e].parentNode.removeChild(this[e]);\n }\n\n return this;\n },\n prev: function prev() {\n return this.length && this[0].previousElementSibling ? v(this[0].previousElementSibling) : v();\n },\n next: function next() {\n return this.length && this[0].nextElementSibling ? v(this[0].nextElementSibling) : v();\n },\n nextAllVisible: function nextAllVisible() {\n return this.next();\n },\n prevAllVisible: function prevAllVisible() {\n return this.prev();\n },\n outerHeight: function outerHeight(e) {\n if (0 === this.length) return undefined;\n var t = this[0];\n if (t === t.window) return t.innerHeight;\n var n = {},\n r = this.isVisible();\n if (!r) for (var a in s) {\n n[a] = t.style[a], t.style[a] = s[a];\n }\n var o = t.offsetHeight;\n if (e && (o += parseInt(v(t).css(\"marginTop\")) + parseInt(v(t).css(\"marginBottom\"))), !r) for (var i in s) {\n t.style[i] = n[i];\n }\n return o;\n },\n outerWidth: function outerWidth(e) {\n if (0 === this.length) return undefined;\n var t = this[0];\n if (t === t.window) return t.outerWidth;\n var n = {},\n r = this.isVisible();\n if (!r) for (var a in s) {\n n[a] = t.style[a], t.style[a] = s[a];\n }\n var o = t.offsetWidth;\n if (e && (o += parseInt(v(t).css(\"marginLeft\")) + parseInt(v(t).css(\"marginRight\"))), !r) for (var i in s) {\n t.style[i] = n[i];\n }\n return o;\n },\n width: function width(e) {\n if (e === undefined) {\n if (this[0] instanceof HTMLDocument) return this[0].body.offsetWidth;\n if (this[0]) return this[0].offsetWidth;\n } else this[0].style.width = e + \"px\";\n },\n height: function height(e) {\n var t = this[0];\n\n if (e === undefined) {\n if (t instanceof HTMLDocument) {\n var n = t.documentElement;\n return Math.max(t.body.scrollHeight, n.scrollHeight, t.body.offsetHeight, n.offsetHeight, n.clientHeight);\n }\n\n return t.offsetHeight;\n }\n\n t.style.height = e + \"px\";\n },\n is: function is(e) {\n return 0 !== this.length && (\"string\" == typeof e && this[0].matches ? this[0].matches(e) : e instanceof h ? this[0] == e[0] : this[0] == e);\n },\n parent: function parent() {\n return 0 === this.length ? v() : v(this[0].parentNode);\n },\n _matches: function _matches(e, t) {\n var n = e.matches || e.matchesSelector || e.msMatchesSelector || e.mozMatchesSelector || e.webkitMatchesSelector || e.oMatchesSelector;\n return e && !t ? n : n.call(e, t);\n },\n parents: function parents(e) {\n for (var t = v(), n = 0; n < this.length; n++) {\n for (var r = this[n].parentNode; r && r != document && this._matches(r);) {\n e ? this._matches(r, e) && t.push(r) : t.push(r), r = r.parentNode;\n }\n }\n\n return t;\n },\n parentsUntil: function parentsUntil(e, t) {\n var n = v();\n e instanceof h && 0 < e.length && (e = e[0]);\n\n for (var r = 0; r < this.length; r++) {\n for (var a = this[r].parentNode; a && a != document && a != e && this[r] != e && (\"string\" != typeof e || !Element.prototype.matches.call(a, e));) {\n t ? Element.prototype.matches.call(a, t) && n.push(a) : n.push(a), a = a.parentNode;\n }\n }\n\n return n;\n },\n insertAfter: function insertAfter(e) {\n var t = e.parent()[0];\n t && t.insertBefore(this[0], e[0].nextElementSibling);\n },\n filter: function filter(e) {\n var t = v();\n if (\"function\" == typeof e) for (var n = 0; n < this.length; n++) {\n e.call(this[n], this[n]) && t.push(this[n]);\n } else if (\"string\" == typeof e) for (var r = 0; r < this.length; r++) {\n this[r].matches(e) && t.push(this[r]);\n }\n return t;\n },\n offset: function offset() {\n if (0 === this.length) return undefined;\n var e = this[0].getBoundingClientRect(),\n t = this[0].ownerDocument.defaultView;\n return {\n top: e.top + t.pageYOffset,\n left: e.left + t.pageXOffset\n };\n },\n position: function position() {\n return {\n left: this[0].offsetLeft,\n top: this[0].offsetTop\n };\n },\n push: [].push,\n splice: [].splice\n }, h.extend = function (e) {\n e = e || {};\n\n for (var t = 1; t < arguments.length; t++) {\n if (arguments[t]) for (var n in arguments[t]) {\n Object.prototype.hasOwnProperty.call(arguments[t], n) && (e[n] = arguments[t][n]);\n }\n }\n\n return e;\n }, h.merge = function (e, t) {\n for (var n = +t.length, r = 0, a = e.length; r < n; r++) {\n e[a++] = t[r];\n }\n\n return e.length = a, e;\n }, h.map = function (e, t, n) {\n var r,\n a,\n o = 0,\n i = [];\n if (Array.isArray(e)) for (r = e.length; o < r; o++) {\n null != (a = t(e[o], o, n)) && i.push(a);\n } else for (o in e) {\n null != (a = t(e[o], o, n)) && i.push(a);\n }\n return [].concat.apply([], i);\n };\n\n var b = function b(e, t) {\n if (!e) return this;\n\n if (\"string\" == typeof e && \"<\" === e[0]) {\n var n = document.createElement(\"DIV\");\n return n.innerHTML = e, v(n.firstElementChild);\n }\n\n if (t = t instanceof h ? t[0] : t, \"string\" != typeof e) return e instanceof h ? e : (this[0] = e, this.length = 1, this);\n e = g(e);\n\n for (var r = (t || document).querySelectorAll(e), a = 0; a < r.length; a++) {\n this[a] = r[a];\n }\n\n return this.length = r.length, this;\n };\n\n b.prototype = h.prototype;\n var C = xt;\n\n function E() {\n this.doc = this.$el.get(0).ownerDocument, this.win = \"defaultView\" in this.doc ? this.doc.defaultView : this.doc.parentWindow, this.$doc = h(this.doc), this.$win = h(this.win), this.opts.pluginsEnabled || (this.opts.pluginsEnabled = Object.keys(C.PLUGINS)), this.opts.initOnClick ? (this.load(C.MODULES), this.$el.on(\"touchstart.init\", function () {\n h(this).data(\"touched\", !0);\n }), this.$el.on(\"touchmove.init\", function () {\n h(this).removeData(\"touched\");\n }), this.$el.on(\"mousedown.init touchend.init dragenter.init focus.init\", function r(e) {\n if (\"touchend\" === e.type && !this.$el.data(\"touched\")) return !0;\n\n if (1 === e.which || !e.which) {\n this.$el.off(\"mousedown.init touchstart.init touchmove.init touchend.init dragenter.init focus.init\"), this.load(C.MODULES), this.load(C.PLUGINS);\n var t = e.originalEvent && e.originalEvent.originalTarget;\n\n if (t && \"IMG\" === t.tagName && h(t).trigger(\"mousedown\"), \"undefined\" == typeof this.ul && this.destroy(), \"touchend\" === e.type && this.image && e.originalEvent && e.originalEvent.target && h(e.originalEvent.target).is(\"img\")) {\n var n = this;\n setTimeout(function () {\n n.image.edit(h(e.originalEvent.target));\n }, 100);\n }\n\n this.ready = !0, this.events.trigger(\"initialized\");\n }\n }.bind(this)), this.events.trigger(\"initializationDelayed\")) : (this.load(C.MODULES), this.load(C.PLUGINS), h(this.o_win).scrollTop(this.c_scroll), \"undefined\" == typeof this.ul && this.destroy(), this.ready = !0, this.events.trigger(\"initialized\"));\n }\n\n if (C.Bootstrap = function (e, t, n) {\n this.id = ++C.ID, this.$ = h;\n var r = {};\n \"function\" == typeof t && (n = t, t = {}), n && (t.events || (t.events = {}), t.events.initialized = n), t && t.documentReady && (r.toolbarButtons = [[\"fullscreen\", \"undo\", \"redo\", \"getPDF\", \"print\"], [\"bold\", \"italic\", \"underline\", \"textColor\", \"backgroundColor\", \"clearFormatting\"], [\"alignLeft\", \"alignCenter\", \"alignRight\", \"alignJustify\"], [\"formatOL\", \"formatUL\", \"indent\", \"outdent\"], [\"paragraphFormat\"], [\"fontFamily\"], [\"fontSize\"], [\"insertLink\", \"insertImage\", \"quote\"]], r.paragraphFormatSelection = !0, r.fontFamilySelection = !0, r.fontSizeSelection = !0, r.placeholderText = \"\", r.quickInsertEnabled = !1, r.charCounterCount = !1), this.opts = Object.assign({}, Object.assign({}, C.DEFAULTS, r, \"object\" === _t(t) && t));\n var a = JSON.stringify(this.opts);\n C.OPTS_MAPPING[a] = C.OPTS_MAPPING[a] || this.id, this.sid = C.OPTS_MAPPING[a], C.SHARED[this.sid] = C.SHARED[this.sid] || {}, this.shared = C.SHARED[this.sid], this.shared.count = (this.shared.count || 0) + 1, this.$oel = h(e), this.$oel.data(\"froala.editor\", this), this.o_doc = e.ownerDocument, this.o_win = \"defaultView\" in this.o_doc ? this.o_doc.defaultView : this.o_doc.parentWindow, this.c_scroll = h(this.o_win).scrollTop(), this._init();\n }, C.Bootstrap.prototype._init = function () {\n var e = this.$oel.get(0).tagName;\n this.$oel.closest(\"label\").length;\n\n var t = function () {\n \"TEXTAREA\" !== e && (this._original_html = this._original_html || this.$oel.html()), this.$box = this.$box || this.$oel, this.opts.fullPage && (this.opts.iframe = !0), this.opts.iframe ? (this.$iframe = h('',\n provider: \"youtube\"\n }, {\n test_regex: /^.*(?:vimeo.com)\\/(?:channels(\\/\\w+\\/)?|groups\\/*\\/videos\\/\\u200b\\d+\\/|video\\/|)(\\d+)(?:$|\\/|\\?)/,\n url_regex: /(?:https?:\\/\\/)?(?:www\\.|player\\.)?vimeo.com\\/(?:channels\\/(?:\\w+\\/)?|groups\\/(?:[^\\/]*)\\/videos\\/|album\\/(?:\\d+)\\/video\\/|video\\/|)(\\d+)(?:[a-zA-Z0-9_\\-]+)?(\\/[a-zA-Z0-9_\\-]+)?/i,\n url_text: \"https://player.vimeo.com/video/$1\",\n html: '',\n provider: \"vimeo\"\n }, {\n test_regex: /^.+(dailymotion.com|dai.ly)\\/(video|hub)?\\/?([^_]+)[^#]*(#video=([^_&]+))?/,\n url_regex: /(?:https?:\\/\\/)?(?:www\\.)?(?:dailymotion\\.com|dai\\.ly)\\/(?:video|hub)?\\/?(.+)/g,\n url_text: \"https://www.dailymotion.com/embed/video/$1\",\n html: '',\n provider: \"dailymotion\"\n }, {\n test_regex: /^.+(screen.yahoo.com)\\/[^_&]+/,\n url_regex: \"\",\n url_text: \"\",\n html: '',\n provider: \"yahoo\"\n }, {\n test_regex: /^.+(rutube.ru)\\/[^_&]+/,\n url_regex: /(?:https?:\\/\\/)?(?:www\\.)?(?:rutube\\.ru)\\/(?:video)?\\/?(.+)/g,\n url_text: \"https://rutube.ru/play/embed/$1\",\n html: '',\n provider: \"rutube\"\n }, {\n test_regex: /^(?:.+)vidyard.com\\/(?:watch)?\\/?([^.&/]+)\\/?(?:[^_.&]+)?/,\n url_regex: /^(?:.+)vidyard.com\\/(?:watch)?\\/?([^.&/]+)\\/?(?:[^_.&]+)?/g,\n url_text: \"https://play.vidyard.com/$1\",\n html: '',\n provider: \"vidyard\"\n }], xt.VIDEO_EMBED_REGEX = /^\\W*(((\\s|\\n)*<\\/iframe>)|())\\W*$/i, xt.IMAGE_EMBED_REGEX = /^\\W*(((\\s|\\n)*))\\W*$/i, xt.PLUGINS.filesManager = function (S) {\n var y,\n i,\n w,\n l,\n c,\n d,\n s,\n f,\n R = S.$,\n T = \"https://i.froala.com/upload\",\n p = !1,\n t = !1,\n _ = new Map(),\n x = new Map(),\n A = new Map(),\n L = new Map(),\n M = new Map(),\n O = new Map(),\n o = 0,\n a = [],\n u = -1,\n N = [],\n h = 0,\n g = [\"file\", \"image\", \"imageTUI\", \"video\"],\n k = 1,\n m = 2,\n I = 3,\n D = 4,\n B = 5,\n F = 6,\n $ = 10,\n P = [\"video/avi\", \"video/mpeg\", \"video/x-ms-wmv\"],\n v = {};\n\n function b() {\n var e = S.popups.get(\"filesManager.insert\"),\n t = e.find(\".fr-files-by-url-layer input\");\n t.val(\"\"), e.find(\".fr-files-embed-layer textarea\").val(\"\").trigger(\"change\"), t.trigger(\"change\");\n }\n\n function C(e) {\n var t;\n S.hasOwnProperty(\"imageTUI\") || (s = \"fr-disabled\"), O.forEach(function (e, t) {\n X(t);\n }), E() ? (t = S.popups.get(\"filesManager.insert\")) || (t = Ue()) : (t = S.popups.get(\"filesManager.insert\")) || (t = function i() {\n var e = '
    '.concat(S.button.buildList(S.opts.fileInsertButtons), \"
    \"),\n t = \"
    \\n

    \".concat(S.language.translate(function a() {\n var e = \"\",\n t = function n() {\n var t = [];\n return g.forEach(function (e) {\n S.opts.pluginsEnabled.indexOf(e) < 0 && t.push(e.charAt(0).toUpperCase() + e.slice(1));\n }), t;\n }();\n\n e = t.join(\", \"), 1 < t.length ? e += \" plugin are\" : e += \" plugin is\";\n return e;\n }() + \" not enabled. Do you want to enable?\"), \"

    \\n
    \\n \\n \\n
    \"),\n n = {\n buttons: e,\n upload_layer: t,\n by_url_layer: \"\",\n embed_layer: \"\",\n upload_progress_layer: \"\",\n progress_bar: \"\"\n },\n r = S.popups.create(\"filesManager.insert\", n);\n return Ie(r), r;\n }());\n var n = S.$tb.find('.fr-command[data-cmd=\"insertFiles\"]');\n if (J(), e || !t.hasClass(\"fr-active\")) if (e || Z(), S.popups.refresh(\"filesManager.insert\"), S.popups.setContainer(\"filesManager.insert\", S.$tb), n.isVisible()) {\n var r = S.button.getPosition(n, _.size),\n a = r.left,\n o = r.top;\n S.popups.show(\"filesManager.insert\", a, o, n.outerHeight());\n } else S.position.forSelection(t), S.popups.show(\"filesManager.insert\");\n S.popups.setPopupDimensions(t), E() && S.popups.setFileListHeight(t), t.find(\".fr-upload-progress\") && 0 == _.size && t.find(\".fr-upload-progress\").addClass(\"fr-none\");\n }\n\n function E() {\n var t = !0;\n return g.forEach(function (e) {\n S.opts.pluginsEnabled.indexOf(e) < 0 && (t = !1);\n }), t;\n }\n\n function H() {\n J();\n }\n\n function U() {\n if (l || function i() {\n var e;\n S.shared.$image_resizer ? (l = S.shared.$image_resizer, d = S.shared.$img_overlay, S.events.on(\"destroy\", function () {\n R(\"body\").first().append(l.removeClass(\"fr-active\"));\n }, !0)) : (S.shared.$image_resizer = R(document.createElement(\"div\")).attr(\"class\", \"fr-image-resizer\"), l = S.shared.$image_resizer, S.events.$on(l, \"mousedown\", function (e) {\n e.stopPropagation();\n }, !0), S.opts.imageResize && (l.append(K(\"nw\") + K(\"ne\") + K(\"sw\") + K(\"se\")), S.shared.$img_overlay = R(document.createElement(\"div\")).attr(\"class\", \"fr-image-overlay\"), d = S.shared.$img_overlay, e = l.get(0).ownerDocument, R(e).find(\"body\").first().append(d)));\n S.events.on(\"shared.destroy\", function () {\n l.html(\"\").removeData().remove(), l = null, S.opts.imageResize && (d.remove(), d = null);\n }, !0), S.helpers.isMobile() || S.events.$on(R(S.o_win), \"resize\", function () {\n y && !y.hasClass(\"fr-uploading\") ? rt(!0) : y && (U(), replace(), Q(!1));\n });\n\n if (S.opts.imageResize) {\n e = l.get(0).ownerDocument, S.events.$on(l, S._mousedown, \".fr-handler\", W), S.events.$on(R(e), S._mousemove, V), S.events.$on(R(e.defaultView || e.parentWindow), S._mouseup, G), S.events.$on(d, \"mouseleave\", G);\n var r = 1,\n a = null,\n o = 0;\n S.events.on(\"keydown\", function (e) {\n if (y) {\n var t = -1 != navigator.userAgent.indexOf(\"Mac OS X\") ? e.metaKey : e.ctrlKey,\n n = e.which;\n (n !== a || 200 < e.timeStamp - o) && (r = 1), (n == xt.KEYCODE.EQUALS || S.browser.mozilla && n == xt.KEYCODE.FF_EQUALS) && t && !e.altKey ? r = qe.call(this, e, 1, 1, r) : (n == xt.KEYCODE.HYPHEN || S.browser.mozilla && n == xt.KEYCODE.FF_HYPHEN) && t && !e.altKey ? r = qe.call(this, e, 2, -1, r) : S.keys.ctrlKey(e) || n != xt.KEYCODE.ENTER || (y.before(\"
    \"), Ae(y)), a = n, o = e.timeStamp;\n }\n }, !0), S.events.on(\"keyup\", function () {\n r = 1;\n });\n }\n }(), !y) return !1;\n var e = S.$wp || S.$sc;\n e.append(l), l.data(\"instance\", S);\n var t = e.scrollTop() - (\"static\" != e.css(\"position\") ? e.offset().top : 0),\n n = e.scrollLeft() - (\"static\" != e.css(\"position\") ? e.offset().left : 0);\n n -= S.helpers.getPX(e.css(\"border-left-width\")), t -= S.helpers.getPX(e.css(\"border-top-width\")), S.$el.is(\"img\") && S.$sc.is(\"body\") && (n = t = 0);\n var r = ct();\n dt() && (r = r.find(\".fr-img-wrap\"));\n var a = 0,\n o = 0;\n S.opts.iframe && (a = S.helpers.getPX(S.$wp.find(\".fr-iframe\").css(\"padding-top\")), o = S.helpers.getPX(S.$wp.find(\".fr-iframe\").css(\"padding-left\"))), l.css(\"top\", (S.opts.iframe ? r.offset().top + a : r.offset().top + t) - 1).css(\"left\", (S.opts.iframe ? r.offset().left + o : r.offset().left + n) - 1).css(\"width\", r.get(0).getBoundingClientRect().width).css(\"height\", r.get(0).getBoundingClientRect().height).addClass(\"fr-active\");\n }\n\n function K(e) {\n return '
    ');\n }\n\n function z(e) {\n dt() ? y.parents(\".fr-img-caption\").css(\"width\", e) : y.css(\"width\", e);\n }\n\n function W(e) {\n if (!S.core.sameInstance(l)) return !0;\n if (e.preventDefault(), e.stopPropagation(), S.$el.find(\"img.fr-error\").left) return !1;\n S.undo.canDo() || S.undo.saveStep();\n var t = e.pageX || e.originalEvent.touches[0].pageX;\n\n if (\"mousedown\" == e.type) {\n var n = S.$oel.get(0).ownerDocument,\n r = n.defaultView || n.parentWindow,\n a = !1;\n\n try {\n a = r.location != r.parent.location && !(r.$ && r.$.FE);\n } catch (s) {}\n\n a && r.frameElement && (t += S.helpers.getPX(R(r.frameElement).offset().left) + r.frameElement.clientLeft);\n }\n\n (c = R(this)).data(\"start-x\", t), c.data(\"start-width\", y.width()), c.data(\"start-height\", y.height());\n var o = y.width();\n\n if (S.opts.imageResizeWithPercent) {\n var i = y.parentsUntil(S.$el, S.html.blockTagsQuery()).get(0) || S.el;\n o = (o / R(i).outerWidth() * 100).toFixed(2) + \"%\";\n }\n\n z(o), d.show(), S.popups.hideAll(), it();\n }\n\n function V(e) {\n if (!S.core.sameInstance(l)) return !0;\n var t;\n\n if (c && y) {\n if (e.preventDefault(), S.$el.find(\"img.fr-error\").left) return !1;\n var n = e.pageX || (e.originalEvent.touches ? e.originalEvent.touches[0].pageX : null);\n if (!n) return !1;\n var r = n - c.data(\"start-x\"),\n a = c.data(\"start-width\");\n\n if ((c.hasClass(\"fr-hnw\") || c.hasClass(\"fr-hsw\")) && (r = 0 - r), S.opts.imageResizeWithPercent) {\n var o = y.parentsUntil(S.$el, S.html.blockTagsQuery()).get(0) || S.el;\n a = ((a + r) / R(o).outerWidth() * 100).toFixed(2), S.opts.imageRoundPercent && (a = Math.round(a)), z(\"\".concat(a, \"%\")), (t = dt() ? (S.helpers.getPX(y.parents(\".fr-img-caption\").css(\"width\")) / R(o).outerWidth() * 100).toFixed(2) : (S.helpers.getPX(y.css(\"width\")) / R(o).outerWidth() * 100).toFixed(2)) === a || S.opts.imageRoundPercent || z(\"\".concat(t, \"%\")), y.css(\"height\", \"\").removeAttr(\"height\");\n } else a + r >= S.opts.imageMinWidth && (z(a + r), t = dt() ? S.helpers.getPX(y.parents(\".fr-img-caption\").css(\"width\")) : S.helpers.getPX(y.css(\"width\"))), t !== a + r && z(t), ((y.attr(\"style\") || \"\").match(/(^height:)|(; *height:)/) || y.attr(\"height\")) && (y.css(\"height\", c.data(\"start-height\") * y.width() / c.data(\"start-width\")), y.removeAttr(\"height\"));\n\n U(), S.events.trigger(\"image.resize\", [lt()]);\n }\n }\n\n function G(e) {\n if (!S.core.sameInstance(l)) return !0;\n\n if (c && y) {\n if (e && e.stopPropagation(), S.$el.find(\"img.fr-error\").left) return !1;\n c = null, d.hide(), U(), S.undo.saveStep(), S.events.trigger(\"image.resizeEnd\", [lt()]);\n } else l.removeClass(\"fr-active\");\n }\n\n function Y() {\n O.forEach(function (e, t) {\n var n = S.popups.get(\"filesManager.insert\");\n n.find(\".fr-checkbox-file-\" + t).get(0).disabled = !0, document.getElementById(\"fr-file-autoplay-button-\" + t) && (document.getElementById(\"fr-file-autoplay-button-\" + t).disabled = !0, document.getElementById(\"fr-file-autoplay-button-\" + t).parentElement.classList.add(\"fr-checkbox-disabled\"), document.getElementById(\"fr-file-autoplay-button-\" + t).parentElement.classList.remove(\"fr-files-checkbox\")), n.find(\".fr-checkbox-\" + t).get(0).classList.remove(\"fr-files-checkbox\"), n.find(\".fr-checkbox-\" + t).get(0).classList.add(\"fr-checkbox-disabled\");\n });\n }\n\n function j(e, t, n, r) {\n S.edit.on(), y && y.addClass(\"fr-error\"), v[e] ? (e != I && e != m && e != D || Ee(100, r, !0), O.set(r, v[e]), Y(), function a() {\n O.forEach(function (e, t) {\n S.popups.get(\"filesManager.insert\"), document.getElementById(\"fr-file-edit-button-\".concat(t)) && (document.getElementById(\"fr-file-edit-button-\".concat(t)).classList.add(\"fr-disabled\"), document.getElementById(\"fr-file-view-button-\".concat(t)).classList.add(\"fr-disabled\"), document.getElementById(\"fr-file-insert-button-\".concat(t)).classList.add(\"fr-disabled\"));\n });\n }(), ne(S.language.translate(v[e]), r)) : ne(S.language.translate(\"Something went wrong. Please try again.\"), r), !y && n && Xe(n), S.events.trigger(\"filesManager.error\", [{\n code: e,\n message: v[e]\n }, t, n]);\n }\n\n function q() {\n var e = S.popups.get(\"filesManager.insert\"),\n t = e.find('.fr-command[data-cmd=\"insertAll\"]'),\n n = e.find('.fr-command[data-cmd=\"deleteAll\"]'),\n r = !0;\n M.forEach(function a(e, t, n) {\n M.get(t) && (r = !1);\n }), r ? t.addClass(\"fr-disabled\") : t.removeClass(\"fr-disabled\"), r ? n.addClass(\"fr-disabled\") : n.removeClass(\"fr-disabled\");\n }\n\n function X(e) {\n x.get(e) && x.get(e).link && S.events.trigger(\"filesManager.removed\", [x.get(e).link]);\n var t = S.popups.get(\"filesManager.insert\");\n t.find(\".fr-file-\" + e).get(0) !== undefined && (t.find(\".fr-file-\" + e).get(0).outerHTML = \"\"), x[\"delete\"](e), _[\"delete\"](e), M[\"delete\"](e), q(), 0 == _.size && (h = 0), O[\"delete\"](e), S.popups.setPopupDimensions(t, !0), S.opts.toolbarBottom ? C(!0) : S.popups.setPopupDimensions(t), t.find(\".fr-upload-progress\") && 0 == _.size && t.find(\".fr-upload-progress\").addClass(\"fr-none\");\n }\n\n function Z() {\n for (var e = S.popups.get(\"filesManager.insert\"), t = e.find(\".fr-insert-checkbox\"), n = 0; n < t.length; n++) {\n t.get(n).children.target.checked = !1, e.find(\".fr-file-\" + t.get(n).id.split(\"-\").pop()).get(0).classList.add(\"fr-unchecked\");\n }\n\n if (w) document.getElementById(\"fr-file-autoplay-button-\".concat(w)) && (document.getElementById(\"fr-file-autoplay-button-\".concat(w)).checked = !1), N = N.filter(function (e) {\n return e != w;\n });else {\n for (var r = e.find(\".fr-file-autoplay-button\"), a = 0; a < r.length; a++) {\n r.get(a).checked = !1;\n }\n\n N = [];\n }\n M = new Map(), q();\n }\n\n function Q(e) {\n var t = S.popups.get(\"filesManager.insert\");\n\n if (t || (t = Ue()), t.find(\".fr-layer.fr-active\").removeClass(\"fr-active\").addClass(\"fr-pactive\"), t.find(\".fr-files-progress-bar-layer\").addClass(\"fr-active\"), t.find(\".fr-buttons\").hide(), y) {\n var n = ct();\n S.popups.setContainer(\"filesManager.insert\", S.$sc);\n var r = n.offset().left,\n a = n.offset().top + n.height();\n S.popups.show(\"filesManager.insert\", r, a, n.outerHeight());\n }\n\n void 0 === e && ee(S.language.translate(\"Uploading\"), 0);\n }\n\n function J(e) {\n var t = S.popups.get(\"filesManager.insert\");\n\n if (t && (t.find(\".fr-layer.fr-pactive\").addClass(\"fr-active\").removeClass(\"fr-pactive\"), t.find(\".fr-files-progress-bar-layer\").removeClass(\"fr-active\"), t.find(\".fr-buttons\").show(), e || S.$el.find(\"img.fr-error\").length)) {\n if (S.events.focus(), S.$el.find(\"img.fr-error\").length && (S.$el.find(\"img.fr-error\").remove(), S.undo.saveStep(), S.undo.run(), S.undo.dropRedo()), !S.$wp && y) {\n var n = y;\n rt(!0), S.selection.setAfter(n.get(0)), S.selection.restore();\n }\n\n S.popups.hide(\"filesManager.insert\");\n }\n }\n\n function ee(e, t) {\n var n = S.popups.get(\"filesManager.insert\");\n\n if (n) {\n var r = n.find(\".fr-files-progress-bar-layer\");\n r.find(\"h3\").text(e + (t ? \" \".concat(t, \"%\") : \"\")), r.removeClass(\"fr-error\"), t ? (r.find(\"div\").removeClass(\"fr-indeterminate\"), r.find(\"div > span\").css(\"width\", \"\".concat(t, \"%\"))) : r.find(\"div\").addClass(\"fr-indeterminate\");\n }\n }\n\n function te(e) {\n Q();\n var t = S.popups.get(\"filesManager.insert\").find(\".fr-files-progress-bar-layer\");\n t.addClass(\"fr-error\");\n var n = t.find(\"h3\");\n n.text(e), S.events.disableBlur(), n.focus();\n }\n\n function ne(e, t) {\n var n = S.popups.get(\"filesManager.insert\"),\n r = n.find(\".fr-upload-progress-layer\"),\n a = n.find(\".fr-file-\".concat(t));\n r.addClass(\"fr-error\"), a.find(\"h5\").text(e);\n }\n\n v[k] = \"File cannot be loaded from the passed link.\", v[m] = \"No link in upload response.\", v[I] = \"Error during file upload.\", v[D] = \"Parsing response failed.\", v[B] = \"File is too large.\", v[F] = \"File type is invalid.\", v[7] = \"Files can be uploaded only to same domain in IE 8 and IE 9.\", v[8] = \"File is corrupted.\", v[9] = \"Error during file loading.\", v[$] = \"File upload cancelled\";\n var n,\n re,\n ae,\n oe,\n ie,\n se,\n r,\n le,\n ce,\n de,\n fe = \"\";\n\n function pe(e) {\n fe = e, n = document.getElementsByClassName(e), Array.prototype.map.call(n, function (e) {\n !function r(e) {\n if (e.addEventListener(\"dragover\", function (e) {\n e.preventDefault(), e.stopPropagation(), re = e.pageX, ae = e.pageY;\n var t = document.getElementById(\"filesList\");\n ae + 20 > t.getBoundingClientRect().bottom && ue(t, 0, 10), ae - 20 < t.getBoundingClientRect().top && ue(t, 0, -10);\n }, !1), S.helpers.isMobile()) {\n var t = e.getElementsByClassName(\"dot\");\n t[0].addEventListener(\"touchmove\", function (e) {\n e.preventDefault(), e.stopPropagation();\n\n for (var t = e.target; t && !t.classList.contains(fe);) {\n t = t.parentElement;\n }\n\n for (var n = document.elementFromPoint(e.targetTouches[0].clientX, e.targetTouches[0].clientY); n && !n.classList.contains(fe);) {\n n = n.parentElement;\n }\n\n var r = document.getElementsByClassName(\"fr-hovered-over-file\");\n Array.prototype.forEach.call(r, function (e) {\n e.classList.remove(\"fr-hovered-over-file\");\n }), n && !t.classList.contains(\"fr-unchecked\") && n.classList.add(\"fr-hovered-over-file\");\n var a = document.getElementById(\"filesList\");\n e.targetTouches[0].clientY + 5 > a.getBoundingClientRect().bottom && ue(a, 0, 5), e.targetTouches[0].clientY - 5 < a.getBoundingClientRect().top && ue(a, 0, -5);\n }, !1);\n }\n\n if (e.ondrag = he, e.ondragend = ge, S.helpers.isMobile()) {\n var n = e.getElementsByClassName(\"dot\");\n n[0].addEventListener(\"touchmove\", he, !1), n[0].addEventListener(\"touchend\", ge, !1);\n }\n }(e);\n });\n }\n\n function ue(e, t, n) {\n e.scrollLeft += t, e.scrollTop += n;\n }\n\n function he(e) {\n for (S.helpers.isMobile() && (ie = event.touches[0].clientX, se = event.touches[0].clientY), oe = e.target; !oe.classList.contains(fe);) {\n oe = oe.parentElement;\n }\n\n oe.classList.contains(fe) && !oe.classList.contains(\"fr-unchecked\") ? S.helpers.isMobile() && oe.classList.add(\"drag-sort-active\") : oe = undefined;\n }\n\n function ge(e) {\n var t;\n\n if (oe !== undefined) {\n var n, r;\n if (S.helpers.isMobile()) for (n = ie, r = se, t = event.target; !t.classList.contains(fe);) {\n t = t.parentElement;\n } else n = event.clientX, r = event.clientY;\n S.helpers.isMobile() || !S.browser.safari && !S.browser.mozilla || (n = re, r = ae);\n\n for (var a = document.elementFromPoint(n, r); a && !a.classList.contains(fe);) {\n a = a.parentElement;\n }\n\n a && !a.classList.contains(fe) ? a = undefined : a && oe !== a && function s(e, t) {\n var n,\n r,\n a = e.parentNode,\n o = t.parentNode;\n if (!a || !o || a.isEqualNode(t) || o.isEqualNode(e)) return;\n\n for (var i = 0; i < a.children.length; i++) {\n a.children[i].isEqualNode(e) && (n = i);\n }\n\n for (var i = 0; i < o.children.length; i++) {\n o.children[i].isEqualNode(t) && (r = i);\n }\n\n a.isEqualNode(o) && n < r && r++;\n a.insertBefore(t, a.children[n]), o.insertBefore(e, o.children[r]);\n }(oe, a), S.helpers.isMobile() && (t.classList.remove(\"fr-hovered-over-file\"), a.classList.remove(\"fr-hovered-over-file\"));\n }\n }\n\n function me(e) {\n var r = S.popups.get(\"filesManager.insert\");\n r.find(\".fr-upload-progress-layer\").hasClass(\"fr-active\") || r.find(\".fr-upload-progress-layer\").addClass(\"fr-active\"), r.find(\".fr-upload-progress\").removeClass(\"fr-none\");\n\n var t = _.get(e),\n n = function i(e) {\n var t,\n n = {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n };\n\n try {\n t = e.toLocaleDateString(S.opts.language ? S.opts.language : undefined, n);\n } catch (r) {\n t = e.toLocaleDateString(undefined, n);\n }\n\n return t + \"\";\n }(new Date()),\n a = M.get(e) ? \"\" : \"fr-unchecked \",\n o = \"\\n
    \\n
    \\n\\n \\n
    \\n ').concat(S.helpers.isMobile() ? \"
    \\n
    \") : \"\", '\\n
    \\n \\n ').concat('', '\\n \\n
    \\n \\n
    \\n \\n
    \\n Image preview\\n
    \\n\\n
    \\n
    \\n \").concat(function s(e, t, n) {\n null == t && (t = 100);\n null == n && (n = \"...\");\n return e.length > t ? e.substring(0, t - n.length) + n : e;\n }(t.name, 20), '\\n ').concat(t.name, \"\\n \\n
    \\n
    \\n
    \").concat(n, \"\\n
    \\n \\n
    \\n \").concat(function l(e) {\n if (0 == e) return \"0 Bytes\";\n var t = Math.floor(Math.log(e) / Math.log(1024));\n return \" | \" + 1 * (e / Math.pow(1024, t)).toFixed(2) + \" \" + [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\"][t];\n }(t.size), \"\\n
    \\n
    \\n\\n
    \\n
    \\n
    \\n
    \\n \\n
    \\n\\n
    \") + Ce(e) + \"
    \\n
    \";\n\n r.find(\".fr-upload-progress-layer\")[0].innerHTML = o + r.find(\".fr-upload-progress-layer\")[0].innerHTML, _.forEach(function c(e, t, n) {\n M.get(t) && r.find(\"input.fr-insert-attr.fr-checkbox-file-\".concat(t))[0].setAttribute(\"checked\", null);\n }), N.forEach(function (e) {\n document.getElementById(\"fr-file-autoplay-button-\" + e).checked = !0;\n }), be(e, t), J(), S.opts.toolbarBottom ? C(!0) : S.popups.setPopupDimensions(r), pe(\"fr-file-list-item\");\n }\n\n function ve(e) {\n switch (e) {\n case \"application/msword\":\n return S.icon.getFileIcon(\"docIcon\");\n\n case \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\":\n return S.icon.getFileIcon(\"docxIcon\");\n\n case \"image/gif\":\n return S.icon.getFileIcon(\"gifIcon\");\n\n case \"image/jpeg\":\n return S.icon.getFileIcon(\"jpegIcon\");\n\n case \"image/jpeg\":\n return S.icon.getFileIcon(\"jpgIcon\");\n\n case \"type/text\":\n return S.icon.getFileIcon(\"logIcon\");\n\n case \"video/quicktime\":\n return S.icon.getFileIcon(\"movIcon\");\n\n case \"audio/mp3\":\n case \"audio/mpeg\":\n return S.icon.getFileIcon(\"mp3Icon\");\n\n case \"video/mp4\":\n return S.icon.getFileIcon(\"mp4Icon\");\n\n case \"audio/ogg\":\n return S.icon.getFileIcon(\"oggIcon\");\n\n case \"video/ogg\":\n return S.icon.getFileIcon(\"ogvIcon\");\n\n case \"application/pdf\":\n return S.icon.getFileIcon(\"pdfIcon\");\n\n case \"image/png\":\n return S.icon.getFileIcon(\"pngIcon\");\n\n case \"text/plain\":\n return S.icon.getFileIcon(\"txtIcon\");\n\n case \"video/webm\":\n return S.icon.getFileIcon(\"webmIcon\");\n\n case \"image/webp\":\n return S.icon.getFileIcon(\"webpIcon\");\n\n case \"video/x-ms-wmv\":\n return S.icon.getFileIcon(\"wmvIcon\");\n\n case \"application/vnd.ms-excel\":\n return S.icon.getFileIcon(\"xlsIcon\");\n\n case \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\":\n return S.icon.getFileIcon(\"xlsxIcon\");\n\n case \"application/x-zip-compressed\":\n case \"application/zip\":\n return S.icon.getFileIcon(\"zipIcon\");\n\n default:\n return S.icon.getFileIcon(\"defaultIcon\");\n }\n }\n\n function be(r, a, e) {\n var o = S.popups.get(\"filesManager.insert\"),\n t = o.find(\".fr-file-item-icon-\" + r).get(0);\n\n if (Be(_e(a)) && \"image/gif\" != _e(a) && \"image/webp\" != _e(a)) {\n \"a\" != t.children[0].localName && (t.innerHTML = \"\" + t.innerHTML + \"\");\n o.find(\".fr-file-item-icon-\" + r).get(0).children[0].children[0];\n var i = new FileReader();\n\n if (null != e && e) {\n var n = _.get(r);\n\n a.name = n.name, _.set(r, a);\n }\n\n if (i.onloadend = function () {\n o.find(\".fr-file-item-icon-\" + r).get(0).children[0].children[0].src = i.result;\n\n for (var e = atob(i.result.split(\",\")[1]), t = [], n = 0; n < e.length; n++) {\n t.push(e.charCodeAt(n));\n }\n\n o.find(\".fr-file-item-icon-\" + r).get(0).children[0].href = window.URL.createObjectURL(new Blob([new Uint8Array(t)], {\n type: _e(a)\n })), o.find(\".fr-file-item-icon-\" + r).get(0).classList.add(\"file-item-thumbnail-hover\");\n }, a) i.readAsDataURL(a);else {\n var s = ve(_e(a));\n t.innerHTML = '\\n '.concat(s.path, \"\\n \");\n }\n } else {\n var l = ve(_e(a));\n t.innerHTML = '\\n '.concat(l.path, \"\\n \");\n }\n }\n\n function Ce(e) {\n var t = \"\";\n\n if ($e(_e(_.get(e)))) {\n var n = \"fr-files-checkbox\",\n r = \"\";\n He(_e(_.get(e))) || (n = \"fr-checkbox-disabled\", r = \"disabled\");\n t = '\\n
    \\n
    \\n \\n \\n\\n \").concat('', \" \\n
    \\n \\n
    \");\n }\n\n var a = \"application/msword\",\n o = \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\n i = \"\";\n return !Pe(_e(_.get(e))) && He(_e(_.get(e))) || (s = \"fr-disabled\"), $e(_e(_.get(e))) && (s = \"fr-disabled\"), Fe(_e(_.get(e))) && (s = \"fr-disabled\", _e(_.get(e)) != a && _e(_.get(e)) != o || S.opts.googleOptions && !S.helpers.isMobile() && S.opts.googleOptions.API_KEY && S.opts.googleOptions.CLIENT_ID && (s = \"\"), \"text/plain\" != _e(_.get(e)) && _e(_.get(e)) != a && \"application/pdf\" != _e(_.get(e)) && _e(_.get(e)) != o && \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\" != _e(_.get(e)) && \"application/vnd.ms-excel\" != _e(_.get(e)) && \"type/text\" != _e(_.get(e)) || (i = \"\")), \"video/url\" === _e(_.get(e)) && (s = \"fr-disabled\"), t += '
    \\n \\n\\n \\n \\n \\n\\n \\n \\n
    \\n
    \\n \\n
    \\n\\n
    \\n\\n
    \\n \");\n }\n\n function Ee(e, t, n) {\n var r = S.popups.get(\"filesManager.insert\");\n\n if (!n && e <= 100) {\n r.find(\".fr-checkbox-file-\" + t).get(0).disabled = !0, r.find(\".fr-checkbox-\" + t).get(0).classList.remove(\"fr-files-checkbox\"), r.find(\".fr-checkbox-\" + t).get(0).classList.add(\"fr-checkbox-disabled\");\n var a = r.find(\".fr-file-progress-circle-\" + t),\n o = r.find(\".fr-file-upload-percent-\" + t);\n return 50 < e ? a.get(0).setAttribute(\"class\", \"fr-file-progress-circle-\" + t + \" progress-circle p\" + Math.floor(e) + \" over50\") : a.get(0).setAttribute(\"class\", \"fr-file-progress-circle-\" + t + \" progress-circle p\" + Math.floor(e)), o.get(0).innerHTML = Math.floor(e) + \"%\", void ye(t, e, n);\n }\n\n n && (r.find(\".fr-checkbox-file-\" + t).get(0).disabled = !1, r.find(\".fr-checkbox-\" + t).get(0).classList.remove(\"fr-checkbox-disabled\"), r.find(\".fr-checkbox-\" + t).get(0).classList.add(\"fr-files-checkbox\"), r.find(\".fr-file-item-right-\" + t).get(0).innerHTML = Ce(t), ye(t, 100, n));\n }\n\n function ye(e, t, n) {\n var r = S.popups.get(\"filesManager.insert\");\n r.find(\".fr-progress-bar\").removeClass(\"fr-none\").addClass(\"fr-display-block\"), r.find(\".fr-upload-progress\").hasClass(\"fr-height-set\") && S.popups.setFileListHeight(r);\n var a = 0;\n L.set(e, t), L.forEach(function (e, t) {\n a += e;\n }), a /= L.size, 100 == t && n && o++, r.find('.fr-command[data-cmd=\"filesUpload\"]').addClass(\"fr-disabled\"), r.find('.fr-command[data-cmd=\"filesByURL\"]').addClass(\"fr-disabled\"), r.find('.fr-command[data-cmd=\"filesEmbed\"]').addClass(\"fr-disabled\"), r.find(\".fr-progress-bar\").get(0).style.width = a + \"%\", o == L.size && (r.find(\".fr-progress-bar\").removeClass(\"fr-display-block\").addClass(\"fr-none\"), L = new Map(), o = 0, r.find('.fr-command[data-cmd=\"filesUpload\"]').removeClass(\"fr-disabled\"), r.find('.fr-command[data-cmd=\"filesByURL\"]').removeClass(\"fr-disabled\"), r.find('.fr-command[data-cmd=\"filesEmbed\"]').removeClass(\"fr-disabled\"));\n }\n\n function Te(n, r) {\n J(), S.popups.get(\"filesManager.insert\").find(\".fr-upload-progress-layer\").addClass(\"fr-active\"), n.forEach(function (e, t) {\n Be(_e(e)) && S.opts.imageUploadRemoteUrls && S.opts.imageCORSProxy && S.opts.imageUpload ? ke(e, n, y, r[t]) : x.set(r[t], e);\n });\n }\n\n function Ae(e) {\n e && e.get && function n(e) {\n if (\"false\" == R(this).parents(\"[contenteditable]\").not(\".fr-element\").not(\".fr-img-caption\").not(\"body\").first().attr(\"contenteditable\")) return !0;\n if (e && \"touchend\" == e.type && de) return !0;\n if (e && S.edit.isDisabled()) return e.stopPropagation(), e.preventDefault(), !1;\n\n for (var t = 0; t < xt.INSTANCES.length; t++) {\n xt.INSTANCES[t] != S && xt.INSTANCES[t].events.trigger(\"image.hideResizer\");\n }\n\n S.toolbar.disable(), e && (e.stopPropagation(), e.preventDefault());\n S.helpers.isMobile() && (S.events.disableBlur(), S.$el.blur(), S.events.enableBlur());\n S.opts.iframe && S.size.syncIframe();\n y = R(this), U(), S.browser.msie ? (S.popups.areVisible() && S.events.disableBlur(), S.win.getSelection && (S.win.getSelection().removeAllRanges(), S.win.getSelection().addRange(S.doc.createRange()))) : S.selection.clear();\n S.helpers.isIOS() && (S.events.disableBlur(), S.$el.blur());\n S.button.bulkRefresh(), S.events.trigger(\"video.hideResizer\");\n }.call(e.get(0));\n }\n\n function Le() {\n var e = R(this);\n e.removeClass(\"fr-uploading\"), e.next().is(\"br\") && e.next().remove(), (0 == a.length || 0 < a.length && a.length == u) && (f = e), \"VIDEO\" == e.get(0).tagName || \"AUDIO\" == e.get(0).tagName ? S.selection.setAfter(e.parent()) : S.selection.setAfter(e), S.undo.saveStep(), S.events.trigger(\"filesManager.loaded\", [e]), we(a);\n }\n\n function Se() {\n var e,\n t = Array.prototype.slice.call(S.el.querySelectorAll(\"video, .fr-video > *\")),\n n = [];\n\n for (e = 0; e < t.length; e++) {\n n.push(t[e].getAttribute(\"src\")), R(t[e]).toggleClass(\"fr-draggable\", S.opts.videoMove), \"\" === t[e].getAttribute(\"class\") && t[e].removeAttribute(\"class\"), \"\" === t[e].getAttribute(\"style\") && t[e].removeAttribute(\"style\");\n }\n\n if (r) for (e = 0; e < r.length; e++) {\n n.indexOf(r[e].getAttribute(\"src\")) < 0 && S.events.trigger(\"video.removed\", [R(r[e])]);\n }\n r = t;\n }\n\n function we(e) {\n if (null != e) {\n if (0 == e.length) return void (null != f && (\"VIDEO\" == f.get(0).tagName ? S.video._editVideo(f.parent()) : \"IMG\" == f.get(0).tagName ? S.image.edit(f) : f.trigger(\"click\"), S.toolbar.disable()));\n xe(e.shift(), e);\n }\n }\n\n function Re(e) {\n var t = !1;\n if ($e(_e(x.get(e)))) S.trimVideoPlugin.trimVideo(_.get(e), e, _), t = !0;else if (Be(_e(x.get(e)))) {\n var n = x.get(e).link,\n r = S.o_doc.createElement(\"img\");\n r.src = n, y = r, i = e, S.imageTUI.launch(S, !1, e), t = !0;\n } else if (Fe(_e(x.get(e)))) {\n var a = {\n apiKey: S.opts.googleOptions.API_KEY,\n clientId: S.opts.googleOptions.CLIENT_ID,\n authorizeButton: \"authorize_button-\".concat(e),\n signoutButton: \"signout_button\",\n userArea: \"user_area-\".concat(e),\n fileInput: \"file_input\",\n fileIndex: e,\n file: _.get(e),\n fileContainer: \"file_container\",\n loadingText: \"File is being uploaded...\",\n events: {\n onInvalidFile: function onInvalidFile(e) {},\n onError: function onError(e) {}\n }\n };\n ce = function d(p) {\n var o,\n e = [\"https://www.googleapis.com/discovery/v1/apis/drive/v2/rest\"],\n u = \"id,title,mimeType,userPermission,editable,copyable,shared,fileSize\",\n h = \"-------314159265358979323846\",\n g = \"\\r\\n--\" + h + \"\\r\\n\",\n m = \"\\r\\n--\" + h + \"--\",\n t = (document.getElementById(p.authorizeButton), document.getElementById(p.userArea));\n p.events || (p.events = {});\n\n function n() {\n gapi.client.init({\n apiKey: p.apiKey,\n clientId: p.clientId,\n discoveryDocs: e,\n scope: \"https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/drive.appdata\"\n }).then(function () {\n gapi.auth2.getAuthInstance().isSignedIn.listen(r), r(gapi.auth2.getAuthInstance().isSignedIn.get()), function t(e) {\n !gapi.auth2.getAuthInstance().isSignedIn.get() || gapi.auth.getToken() !== undefined && gapi.auth.getToken().access_token === undefined ? Promise.resolve(gapi.auth2.getAuthInstance().signIn()).then(function () {\n i();\n }) : i();\n }();\n }, function (e) {\n p.events.onError(e);\n });\n }\n\n function r(e) {\n e && (t.style.display = \"block\");\n }\n\n function a(e) {\n var t = gapi.auth.getToken().access_token,\n n = o,\n r = \"https://docs.google.com/feeds/download/documents/export/Export?id=\" + n + \"&format=docx&access_token=\" + t,\n a = new XMLHttpRequest();\n a.open(\"get\", r), a.responseType = \"arraybuffer\", a.onload = function () {\n var e = new Blob([new Uint8Array(this.response)], {\n type: \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"\n }),\n t = _.get(p.fileIndex);\n\n e.name = t.name, e.lastModified = t.lastModified, e.lastModifiedDate = t.lastModifiedDate, _.set(p.fileIndex, e), S.filesManager.upload(e, x, y, p.fileIndex), l();\n }, a.send();\n }\n\n function i(e) {\n !function r(e) {\n for (var t = document.getElementsByClassName(\"fr-doc-edit-\".concat(e)), n = 0; n < t.length; n++) {\n t[n].setAttribute(\"disabled\", !0), t[n].classList.add(\"fr-disabled\");\n }\n }(p.fileIndex);\n var t = p.file;\n t ? function n(c, d) {\n var f = new FileReader();\n f.readAsArrayBuffer(c), f.onload = function (e) {\n for (var t = {\n title: c.name,\n mimeType: \"application/vnd.google-apps.document\"\n }, n = \"\", r = new Uint8Array(f.result), a = r.byteLength, o = 0; o < a; o++) {\n n += String.fromCharCode(r[o]);\n }\n\n var i = btoa(n),\n s = g + \"Content-Type: application/json; charset=UTF-8\\r\\n\\r\\n\" + JSON.stringify(t) + g + \"Content-Type: application/octet-stream\\r\\nContent-Transfer-Encoding: base64\\r\\n\\r\\n\" + i + m,\n l = gapi.client.request({\n path: \"/upload/drive/v2/files\",\n method: \"POST\",\n params: {\n uploadType: \"multipart\",\n fields: u\n },\n headers: {\n \"Content-Type\": 'multipart/related; boundary=\"' + h + '\"',\n \"Content-Length\": s.Length\n },\n body: s\n });\n d || (d = function d(e) {}), l.execute(function (e, t) {\n e.error ? p.events.onError(e.error) : d(e);\n });\n };\n }(t, s) : p.events.onInvalidFile(\"File is not selected\");\n }\n\n function s(e) {\n o = e.id;\n var t = \"https://docs.google.com/document/d/\" + e.id + \"/edit\",\n n = S.o_doc.body,\n r = S.o_doc.createElement(\"div\");\n r.setAttribute(\"id\", \"editDocContainer\"), r.style.cssText = \"position: fixed; top: 0;left: 0;padding: 0;width: 100%;height: 100%;background: rgba(255,255,255,1);z-index: 9998;display:block\", r.innerHTML = '
    ', n.appendChild(r), document.getElementById(\"signout_button\").onclick = a, document.getElementById(\"cancel_file_edit\").onclick = l;\n }\n\n function l() {\n document.getElementById(\"markSignOut\").checked && gapi.auth2.getAuthInstance().signOut().then(function () {\n gapi.auth.getToken() && (gapi.auth.getToken().access_token = undefined);\n });\n var e = document.getElementById(\"editDocContainer\");\n e.parentNode.removeChild(e), document.getElementById(\"user_area-\".concat(p.fileIndex)) && (document.getElementById(\"user_area-\".concat(p.fileIndex)).style.display = \"none\"), function r(e) {\n for (var t = document.getElementsByClassName(\"fr-doc-edit-\".concat(e)), n = 0; n < t.length; n++) {\n t[n].removeAttribute(\"disabled\"), t[n].classList.remove(\"fr-disabled\");\n }\n }(p.fileIndex);\n }\n\n p.events.onInvalidFile = p.events.onInvalidFile || function (e) {}, p.events.onError = p.events.onError || function (e) {};\n var c = {};\n return c.handleClientLoad = function () {\n gapi.load(\"client:auth2\", n);\n }, c;\n }(a), function o(e, t) {\n var r = function r(e, t) {\n var n = document.createElement(\"script\");\n n.src = e, n.onload = function () {\n this.onload = function () {}, ce.handleClientLoad();\n }, n.onreadystatechange = function () {\n \"complete\" === this.readyState && this.onload();\n }, (document.getElementsByTagName(\"head\")[0] || document.body).appendChild(n);\n };\n\n !function n() {\n 0 != e.length ? r(e.shift(), n) : t && t();\n }();\n }([\"https://apis.google.com/js/api.js\"], function () {});\n }\n t && (p = !0);\n }\n\n function _e(e) {\n if (\"\" != e.type) return e.type;\n var n,\n r = /(?:\\.([^.]+))?$/.exec(e.name)[1];\n return [[\".doc\", \"application/msword\"], [\".docx\", \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"], [\".gif\", \"image/gif\"], [\".jpeg\", \"image/jpeg\"], [\".jpg\", \"image/jpeg\"], [\".txt\", \"text/plain\"], [\".log\", \"type/text\"], [\".mov\", \"video/quicktime\"], [\".mp3\", \"audio/mpeg\"], [\".mp4\", \"video/mp4\"], [\".ogg\", \"audio/ogg\"], [\".ogv\", \"video/ogg\"], [\".pdf\", \"application/pdf\"], [\".png\", \"image/png\"], [\".webm\", \"video/webm\"], [\".webp\", \"image/webp\"], [\".wmv\", \"video/x-ms-wmv\"], [\".xls\", \"application/vnd.ms-excel\"], [\".xlsx\", \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"], [\".zip\", \"application/x-zip-compressed\"]].forEach(function (e, t) {\n e[0] == \".\".concat(r) && (n = e[1]);\n }), n;\n }\n\n function xe(s, e) {\n if (Fe(_e(x.get(s))) || !He(_e(x.get(s)))) {\n var t = x.get(s).link,\n n = x.get(s).text;\n !n && _.get(s) && _.get(s).name && (n = _.get(s).name);\n var r = x.get(s).response;\n if (S.edit.on(), S.events.focus(!0), S.selection.restore(), S.opts.fileUseSelectedText && S.selection.text().length && (n = S.selection.text()), t.endsWith(\".pdf\") || t.endsWith(\".txt\")) Me('\"), !0);else S.html.insert('').concat(n, \"\"));\n var a = S.$el.find(\"#fr-inserted-file\");\n a.removeAttr(\"id\"), S.undo.saveStep(), function T() {\n var e,\n t = Array.prototype.slice.call(S.el.querySelectorAll(\"a.fr-file\")),\n n = [];\n\n for (e = 0; e < t.length; e++) {\n n.push(t[e].getAttribute(\"href\"));\n }\n\n if (le) for (e = 0; e < le.length; e++) {\n n.indexOf(le[e].getAttribute(\"href\")) < 0 && S.events.trigger(\"file.unlink\", [le[e]]);\n }\n le = t;\n }(), S.selection.clear(), S.selection.setAfter(a), S.events.trigger(\"file.inserted\", [a, r]), we(e);\n }\n\n if (Be(_e(x.get(s))) && He(_e(x.get(s)))) {\n var i = x.get(s).link,\n o = x.get(s).sanitize,\n l = x.get(s).data,\n c = x.get(s).$existing_img,\n d = x.get(s).response;\n c && \"string\" == typeof c && (c = S.$(c)), S.edit.off(), ee(S.language.translate(\"Loading image\")), o && (i = S.helpers.sanitizeURL(i));\n var f = new Image();\n f.onload = function () {\n var e, t;\n\n if (c) {\n S.undo.canDo() || c.hasClass(\"fr-uploading\") || S.undo.saveStep();\n var n = c.data(\"fr-old-src\");\n c.data(\"fr-image-pasted\") && (n = null), S.$wp ? ((e = c.clone().removeData(\"fr-old-src\").removeClass(\"fr-uploading\").removeAttr(\"data-fr-image-pasted\")).off(\"load\"), n && c.attr(\"src\", n), c.replaceWith(e)) : e = c;\n\n for (var r = e.get(0).attributes, a = 0; a < r.length; a++) {\n var o = r[a];\n 0 === o.nodeName.indexOf(\"data-\") && e.removeAttr(o.nodeName);\n }\n\n if (void 0 !== l) for (t in l) {\n l.hasOwnProperty(t) && \"link\" != t && e.attr(\"data-\".concat(t), l[t]);\n }\n e.on(\"load\", Le), e.attr(\"src\", i), S.edit.on(), S.undo.saveStep(), S.events.disableBlur(), S.$el.blur(), S.events.trigger(n ? \"image.replaced\" : \"image.inserted\", [e, d]);\n } else e = function s(e, t, n) {\n var r,\n a = R(document.createElement(\"img\")).attr(\"src\", e);\n if (t && void 0 !== t) for (r in t) {\n t.hasOwnProperty(r) && \"link\" != r && (\" data-\".concat(r, '=\"').concat(t[r], '\"'), a.attr(\"data-\".concat(r), t[r]));\n }\n var o = S.opts.imageDefaultWidth;\n o && \"auto\" != o && (o = S.opts.imageResizeWithPercent ? \"100%\" : \"\".concat(o, \"px\"));\n a.attr(\"style\", o ? \"width: \".concat(o, \";\") : \"\"), st(a, S.opts.imageDefaultDisplay, S.opts.imageDefaultAlign), a.on(\"load\", n), a.on(\"error\", n), S.edit.on(), S.events.focus(!0), S.selection.restore(), S.undo.saveStep(), S.opts.imageSplitHTML ? S.markers.split() : S.markers.insert();\n S.html.wrap();\n var i = S.$el.find(\".fr-marker\");\n i.length ? (i.parent().is(\"hr\") && i.parent().after(i), S.node.isLastSibling(i) && i.parent().hasClass(\"fr-deletable\") && i.insertAfter(i.parent()), i.replaceWith(a)) : S.$el.append(a);\n return a;\n }(i, l, Le), S.undo.saveStep(), S.events.disableBlur(), S.$el.blur(), S.events.trigger(\"image.inserted\", [e, d]);\n }, f.onerror = function () {\n j(k, null, null, s), we(e);\n }, f.src = i;\n }\n\n if (($e(_e(x.get(s))) || Pe(_e(x.get(s)))) && He(_e(x.get(s)))) if (w = s, \"video/url\" == _e(x.get(s))) {\n var p = !1;\n\n if (document.getElementById(\"fr-file-autoplay-button-\" + s) !== undefined && (p = document.getElementById(\"fr-file-autoplay-button-\" + s).checked), p && x.get(s) !== undefined && -1 < x.get(s).video.indexOf(\"iframe\") && x.get(s).video.indexOf(\"autoplay=1\") < 0) {\n var u = x.get(s).video.substring(x.get(s).video.indexOf(\"src\") + 3),\n h = \"&\";\n (u = (u = u.substring(u.indexOf('\"') + 1)).substring(0, u.indexOf('\"'))).indexOf(\"?\") < 0 && (h = \"?\"), x.get(s).video = x.get(s).video.replace(u, u += h + \"autoplay=1\");\n } else !p && x.get(s).video.indexOf(!1) && (-1 < x.get(s).video.indexOf(\"&autoplay=1\") && (x.get(s).video = x.get(s).video.replace(\"&autoplay=1\", \"\")), -1 < x.get(s).video.indexOf(\"?autoplay=1\") && (x.get(s).video = x.get(s).video.replace(\"?autoplay=1\", \"\")));\n\n S.events.focus(!0), S.selection.restore(), S.html.insert(''.concat(x.get(s).video, \"\"), !1, S.opts.videoSplitHTML), S.popups.hide(\"filesManager.insert\");\n var g = S.$el.find(\".fr-jiv\");\n g.removeClass(\"fr-jiv\"), g.toggleClass(\"fr-rv\", S.opts.videoResponsive), function A(e, t, n) {\n !S.opts.htmlUntouched && S.opts.useClasses ? (e.removeClass(\"fr-fvl fr-fvr fr-dvb fr-dvi\"), e.addClass(\"fr-fv\".concat(n[0], \" fr-dv\").concat(t[0]))) : \"inline\" == t ? (e.css({\n display: \"inline-block\"\n }), \"center\" == n ? e.css({\n \"float\": \"none\"\n }) : \"left\" == n ? e.css({\n \"float\": \"left\"\n }) : e.css({\n \"float\": \"right\"\n })) : (e.css({\n display: \"block\",\n clear: \"both\"\n }), \"left\" == n ? e.css({\n textAlign: \"left\"\n }) : \"right\" == n ? e.css({\n textAlign: \"right\"\n }) : e.css({\n textAlign: \"center\"\n }));\n }(g, S.opts.videoDefaultDisplay, S.opts.videoDefaultAlign), g.toggleClass(\"fr-draggable\", S.opts.videoMove), S.events.trigger(\"video.inserted\", [g]), Le.call(g);\n } else {\n var m = x.get(s).link,\n v = x.get(s).sanitize,\n b = x.get(s).data,\n C = x.get(s).$existing_img,\n E = x.get(s).response;\n S.edit.off(), v && (m = S.helpers.sanitizeURL(m)), function L() {\n var e, t;\n\n if (C) {\n S.undo.canDo() || C.find(\"video\").hasClass(\"fr-uploading\") || S.undo.saveStep();\n var n = C.find(\"video\").data(\"fr-old-src\"),\n r = C.data(\"fr-replaced\");\n C.data(\"fr-replaced\", !1), S.$wp ? ((e = C.clone(!0)).find(\"video\").removeData(\"fr-old-src\").removeClass(\"fr-uploading\"), e.find(\"video\").off(\"canplay\"), n && C.find(\"video\").attr(\"src\", n), C.replaceWith(e)) : e = C;\n\n for (var a = e.find(\"video\").get(0).attributes, o = 0; o < a.length; o++) {\n var i = a[o];\n 0 === i.nodeName.indexOf(\"data-\") && e.find(\"video\").removeAttr(i.nodeName);\n }\n\n if (void 0 !== b) for (t in b) {\n b.hasOwnProperty(t) && \"link\" != t && e.find(\"video\").attr(\"data-\".concat(t), b[t]);\n }\n e.find(\"video\").on(\"canplay\", Le), e.find(\"video\").attr(\"src\", m), S.edit.on(), Se(), S.undo.saveStep(), S.$el.blur(), S.events.trigger(r ? \"video.replaced\" : \"video.inserted\", [e, E]);\n } else e = function u(e, t, n, r, a) {\n var o,\n i = \"\";\n if (t && void 0 !== t) for (o in t) {\n t.hasOwnProperty(o) && \"link\" != o && (i += \" data-\".concat(o, '=\"').concat(t[o], '\"'));\n }\n var s,\n l = S.opts.videoDefaultWidth;\n l && \"auto\" != l && (l = \"\".concat(l, \"px\"));\n if (Pe(r)) s = R(document.createElement(\"span\")).attr(\"contenteditable\", \"false\").attr(\"draggable\", \"true\").attr(\"class\", \"fr-video fr-dv\" + S.opts.videoDefaultDisplay[0] + (\"center\" != S.opts.videoDefaultAlign ? \" fr-fv\" + S.opts.videoDefaultAlign[0] : \"\")).html('\");else {\n var c = \"\",\n d = document.getElementById(\"fr-file-autoplay-button-\" + a).checked;\n d && (c = \"autoplay\"), s = R(document.createElement(\"span\")).attr(\"contenteditable\", \"false\").attr(\"draggable\", \"true\").attr(\"class\", \"fr-video fr-dv\" + S.opts.videoDefaultDisplay[0] + (\"center\" != S.opts.videoDefaultAlign ? \" fr-fv\" + S.opts.videoDefaultAlign[0] : \"\")).html('\");\n }\n s.toggleClass(\"fr-draggable\", S.opts.videoMove), S.edit.on(), S.events.focus(!0), S.selection.restore(), S.undo.saveStep(), S.opts.videoSplitHTML ? S.markers.split() : S.markers.insert();\n S.html.wrap();\n var f = S.$el.find(\".fr-marker\");\n S.node.isLastSibling(f) && f.parent().hasClass(\"fr-deletable\") && f.insertAfter(f.parent());\n f.replaceWith(s);\n var p = \"\";\n p = Pe(r) ? \"audio\" : \"video\", s.find(p).get(0).readyState > s.find(p).get(0).HAVE_FUTURE_DATA || S.helpers.isIOS() ? n.call(s.find(p).get(0)) : (s.find(p).on(\"canplaythrough load\", n), s.find(p).on(\"error\", n));\n return s;\n }(m, b, Le, _e(x.get(s)), s), Se(), S.undo.saveStep(), S.events.trigger(\"video.inserted\", [e, E]);\n }();\n }\n S.popups.hide(\"filesManager.insert\"), M[\"delete\"](s);\n var y = S.popups.get(\"filesManager.insert\");\n y.find(\"input.fr-insert-attr.fr-checkbox-file-\".concat(s))[0].checked = !1, y.find(\".fr-file-\" + s).get(0).classList.add(\"fr-unchecked\"), q(), document.getElementById(\"fr-file-autoplay-button-\" + s) && (document.getElementById(\"fr-file-autoplay-button-\" + s).checked = !1), N = N.filter(function (e) {\n return e != s;\n });\n }\n\n function Me(e, t) {\n var n, r;\n xt.VIDEO_EMBED_REGEX.test(e) ? (n = \"video\", r = S.opts.videoSplitHTML) : xt.IMAGE_EMBED_REGEX.test(e) && (n = \"image\", r = S.opts.imageSplitHTML), S.events.focus(!0), S.selection.restore();\n var a = !1;\n y && (Xe(), a = !0), S.html.insert('').concat(e, \"\"), !1, r), S.popups.hide(\"filesManager.insert\");\n var o = S.$el.find(\".fr-jiv\");\n o.removeClass(\"fr-jiv\"), \"video\" == n && (o.toggleClass(\"fr-rv\", S.opts.videoResponsive), function i(e, t, n) {\n !S.opts.htmlUntouched && S.opts.useClasses ? (e.removeClass(\"fr-fvl fr-fvr fr-dvb fr-dvi\"), e.addClass(\"fr-fv\".concat(n[0], \" fr-dv\").concat(t[0]))) : \"inline\" == t ? (e.css({\n display: \"inline-block\"\n }), \"center\" == n ? e.css({\n \"float\": \"none\"\n }) : \"left\" == n ? e.css({\n \"float\": \"left\"\n }) : e.css({\n \"float\": \"right\"\n })) : (e.css({\n display: \"block\",\n clear: \"both\"\n }), \"left\" == n ? e.css({\n textAlign: \"left\"\n }) : \"right\" == n ? e.css({\n textAlign: \"right\"\n }) : e.css({\n textAlign: \"center\"\n }));\n }(o, S.opts.videoDefaultDisplay, S.opts.videoDefaultAlign), o.toggleClass(\"fr-draggable\", S.opts.videoMove), S.events.trigger(a ? \"video.replaced\" : \"video.inserted\", [o])), \"image\" == n && (st(o, S.opts.imageDefaultDisplay, S.opts.imageDefaultAlign), o.find(\"img\").removeClass(\"fr-dii\"), o.find(\"img\").addClass(\"fr-dib\"), o.toggleClass(\"fr-draggable\", S.opts.imageMove), S.events.trigger(a ? \"image.replaced\" : \"image.inserted\", [o])), t && (f = o, S.selection.clear(), S.toolbar.disable(), S.video._editVideo(f));\n }\n\n function Oe(e, t) {\n try {\n if (!1 === S.events.trigger(\"filesManager.uploaded\", [e], !0)) return S.edit.on(), !1;\n var n = JSON.parse(e);\n return n.link ? n : (j(m, e, null, t), !1);\n } catch (r) {\n return j(D, e, null, t), !1;\n }\n }\n\n function Ne(e, t) {\n try {\n var n = R(e).find(\"Location\").text(),\n r = R(e).find(\"Key\").text();\n return !1 === S.events.trigger(\"filesManager.uploadedToS3\", [n, r, e], !0) ? (S.edit.on(), !1) : n;\n } catch (a) {\n return j(D, e, null, t), !1;\n }\n }\n\n function ke(e, t, n, r) {\n if (-1 < P.indexOf(_e(e)) || !_e(e)) return j(F, null, null, r), !1;\n if (!1 === S.events.trigger(\"filesManager.beforeUpload\", [t])) return !1;\n if (!(null !== S.opts.filesManagerUploadURL && S.opts.filesManagerUploadURL != T || S.opts.filesManagerUploadToS3 || S.opts.filesManagerUploadToAzure)) return function C(s, l, c) {\n var d = new FileReader();\n d.onload = function () {\n var e = d.result;\n\n if (d.result.indexOf(\"svg+xml\") < 0) {\n for (var t = atob(d.result.split(\",\")[1]), n = [], r = 0; r < t.length; r++) {\n n.push(t.charCodeAt(r));\n }\n\n if (e = window.URL.createObjectURL(new Blob([new Uint8Array(n)], {\n type: _e(l)\n })), Be(_e(l))) {\n var a = {\n link: e,\n sanitize: !1,\n data: null,\n $existing_img: c,\n response: null,\n type: _e(l)\n };\n x.set(s, a);\n }\n\n if (Fe(_e(l))) {\n var o = {\n link: e,\n text: l.name,\n response: null,\n type: _e(l)\n };\n x.set(s, o);\n }\n\n if ($e(_e(l)) || Pe(_e(l))) {\n var i = {\n link: e,\n sanitize: !1,\n data: null,\n $existing_img: c,\n type: _e(l)\n };\n x.set(s, i);\n }\n }\n }, d.readAsDataURL(l);\n }(r, e), !1;\n if (Be(_e(e)) && (e.name || (e.name = new Date().getTime() + \".\" + (_e(e) || \"image/jpeg\").replace(/image\\//g, \"\"))), e.size > S.opts.filesManagerMaxSize) return j(B, null, null, r), !1;\n if (S.opts.filesManagerAllowedTypes.indexOf(\"*\") < 0 && S.opts.filesManagerAllowedTypes.indexOf(_e(e)) < 0) return j(F, null, null, r), !1;\n var a;\n\n if (function E(e) {\n isNaN(e) || (S.popups.get(\"filesManager.insert\").find(\".fr-file-item-right-\" + e).get(0).innerHTML = '
    \\n \\n\\n \\n\\n
    \\n 0%\\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \"), L.set(e, 0));\n }(r), S.drag_support.formdata && (a = S.drag_support.formdata ? new FormData() : null), a) {\n var o;\n if (!1 !== S.opts.filesManagerUploadToS3) for (o in a.append(\"key\", S.opts.filesManagerUploadToS3.keyStart + new Date().getTime() + \"-\" + (e.name || \"untitled\")), a.append(\"success_action_status\", \"201\"), a.append(\"X-Requested-With\", \"xhr\"), a.append(\"Content-Type\", _e(e)), S.opts.filesManagerUploadToS3.params) {\n S.opts.filesManagerUploadToS3.params.hasOwnProperty(o) && a.append(o, S.opts.filesManagerUploadToS3.params[o]);\n }\n\n for (o in S.opts.filesManagerUploadParams) {\n S.opts.filesManagerUploadParams.hasOwnProperty(o) && a.append(o, S.opts.filesManagerUploadParams[o]);\n }\n\n a.append(S.opts.filesManagerUploadParam, e, e.name);\n var i,\n s,\n l = S.opts.filesManagerUploadURL;\n S.opts.filesManagerUploadToS3 && (l = S.opts.filesManagerUploadToS3.uploadURL ? S.opts.filesManagerUploadToS3.uploadURL : \"https://\".concat(S.opts.filesManagerUploadToS3.region, \".amazonaws.com/\").concat(S.opts.filesManagerUploadToS3.bucket)), S.opts.filesManagerUploadToAzure && (l = S.opts.filesManagerUploadToAzure.uploadURL ? \"\".concat(S.opts.filesManagerUploadToAzure.uploadURL, \"/\").concat(e.name) : encodeURI(\"https://\".concat(S.opts.filesManagerUploadToAzure.account, \".blob.core.windows.net/\").concat(S.opts.filesManagerUploadToAzure.container, \"/\").concat(e.name)), i = l, S.opts.filesManagerUploadToAzure.SASToken && (l += S.opts.filesManagerUploadToAzure.SASToken), S.opts.filesManagerUploadMethod = \"PUT\");\n var c = S.core.getXHR(l, S.opts.filesManagerUploadMethod);\n\n if (S.opts.filesManagerUploadToAzure) {\n var d = new Date().toUTCString();\n\n if (!S.opts.filesManagerUploadToAzure.SASToken && S.opts.filesManagerUploadToAzure.accessKey) {\n var f = S.opts.filesManagerUploadToAzure.account,\n p = S.opts.filesManagerUploadToAzure.container;\n\n if (S.opts.filesManagerUploadToAzure.uploadURL) {\n var u = S.opts.filesManagerUploadToAzure.uploadURL.split(\"/\");\n p = u.pop(), f = u.pop().split(\".\")[0];\n }\n\n var h = \"x-ms-blob-type:BlockBlob\\nx-ms-date:\".concat(d, \"\\nx-ms-version:2019-07-07\"),\n g = encodeURI(\"/\" + f + \"/\" + p + \"/\" + e.name),\n m = S.opts.filesManagerUploadMethod + \"\\n\\n\\n\" + e.size + \"\\n\\n\" + _e(e) + \"\\n\\n\\n\\n\\n\\n\\n\" + h + \"\\n\" + g,\n v = S.cryptoJSPlugin.cryptoJS.HmacSHA256(m, S.cryptoJSPlugin.cryptoJS.enc.Base64.parse(S.opts.filesManagerUploadToAzure.accessKey)).toString(S.cryptoJSPlugin.cryptoJS.enc.Base64),\n b = \"SharedKey \" + f + \":\" + v;\n s = v, c.setRequestHeader(\"Authorization\", b);\n }\n\n for (o in c.setRequestHeader(\"x-ms-version\", \"2019-07-07\"), c.setRequestHeader(\"x-ms-date\", d), c.setRequestHeader(\"Content-Type\", _e(e)), c.setRequestHeader(\"x-ms-blob-type\", \"BlockBlob\"), S.opts.filesManagerUploadParams) {\n S.opts.filesManagerUploadParams.hasOwnProperty(o) && c.setRequestHeader(o, S.opts.filesManagerUploadParams[o]);\n }\n\n for (o in S.opts.filesManagerUploadToAzure.params) {\n S.opts.filesManagerUploadToAzure.params.hasOwnProperty(o) && c.setRequestHeader(o, S.opts.filesManagerUploadToAzure.params[o]);\n }\n }\n\n c.onload = function () {\n Fe(_e(e)) ? function h(e, t, n, r, a) {\n var o = this.status,\n i = this.response,\n s = this.responseXML,\n l = this.responseText;\n\n try {\n if (S.opts.filesManagerUploadToS3 || S.opts.filesManagerUploadToAzure) {\n if (201 === o) {\n var c;\n\n if (S.opts.filesManagerUploadToAzure) {\n if (!1 === S.events.trigger(\"filesManager.uploadedToAzure\", [this.responseURL, a, i], !0)) return S.edit.on(), !1;\n c = r;\n } else c = Ne(s, t);\n\n if (c) {\n var d = {\n link: c,\n text: e,\n response: i,\n type: n\n };\n x.set(t, d);\n }\n } else j(D, i || s, null, t);\n } else if (200 <= o && o < 300) {\n var f = Oe(l, t);\n\n if (f) {\n var p = {\n link: f.link,\n text: e,\n response: i,\n type: n\n };\n x.set(t, p);\n }\n } else j(I, i || l, null, t);\n } catch (u) {\n j(D, i || l, null, t);\n }\n }.call(c, e.name, r, _e(e), i, s) : function g(e, t, n, r, a) {\n var o = this.status,\n i = this.response,\n s = this.responseXML,\n l = this.responseText;\n\n try {\n if (S.opts.filesManagerUploadToS3 || S.opts.filesManagerUploadToAzure) {\n if (201 == o) {\n var c;\n\n if (S.opts.filesManagerUploadToAzure) {\n if (!1 === S.events.trigger(\"filesManager.uploadedToAzure\", [this.responseURL, a, i], !0)) return S.edit.on(), !1;\n c = r;\n } else c = Ne(s, t);\n\n if (c) {\n var d = {\n link: c,\n sanitize: !1,\n data: [],\n $existing_img: e,\n response: i || s,\n type: n\n };\n x.set(t, d);\n }\n } else j(D, i || s, e, t);\n } else if (200 <= o && o < 300) {\n var f = Oe(l, t);\n\n if (f) {\n var p = {\n link: f.link,\n sanitize: !1,\n data: f,\n $existing_img: e,\n response: i || s,\n type: n\n };\n x.set(t, p);\n }\n } else j(I, i || l, e, t);\n } catch (u) {\n j(D, i || l, e, t);\n }\n }.call(c, y, r, _e(e), i, s), O.has(r) || Ee(100, r, !0);\n }, c.onerror = function () {\n j(D, this.response || this.responseText || this.responseXML, null, r);\n }, c.upload.onprogress = function (e) {\n !function n(e, t) {\n e.lengthComputable && Ee(e.loaded / e.total * 100 | 0, t, !1);\n }(e, r);\n }, c.onabort = function (e) {\n !function n(e, t) {\n j($, t, y, e);\n }(r, e);\n }, c.send(S.opts.filesManagerUploadToAzure ? e : a), A.set(r, c);\n }\n }\n\n function Ie(l) {\n S.events.$on(l, \"click\", \".fr-upload-progress-layer\", function (e) {\n if (S.helpers.isMobile()) return e.stopPropagation(), !1;\n }, !0), S.events.$on(l, \"dragover dragenter\", \".fr-upload-progress-layer\", function (e) {\n e.preventDefault();\n\n for (var t = 0; t < e.originalEvent.dataTransfer.types.length; t++) {\n \"Files\" == e.originalEvent.dataTransfer.types[t] && (e.originalEvent.dataTransfer.dropEffect = \"none\");\n }\n\n return !1;\n }, !0), S.events.$on(l, \"dragleave dragend\", \".fr-upload-progress-layer\", function (e) {\n return e.preventDefault(), !1;\n }, !0), S.events.$on(l, \"dragover dragenter\", \".fr-files-upload-layer\", function (e) {\n return R(this).addClass(\"fr-drop\"), (S.browser.msie || S.browser.edge) && e.preventDefault(), !1;\n }, !0), S.events.$on(l, \"dragleave dragend\", \".fr-files-upload-layer\", function (e) {\n return R(this).removeClass(\"fr-drop\"), (S.browser.msie || S.browser.edge) && e.preventDefault(), !1;\n }, !0), S.events.$on(l, \"click\", \".fr-insert-checkbox\", function (e) {\n if (this.classList.contains(\"fr-checkbox-disabled\")) return this.children.target.disabled = !0, void (this.children.target.checked = !1);\n var t = parseInt(this.id.split(\"-\").pop());\n M.set(t, this.children.target.checked);\n\n for (var n = l.find('.fr-command[data-cmd=\"insertAll\"]'), r = l.find('.fr-command[data-cmd=\"deleteAll\"]'), a = l.find('input.fr-file-insert-check[type=\"checkbox\"]'), o = a.length, i = !0, s = 0; s < o; s++) {\n 1 == a[s].checked && (i = !1);\n }\n\n if (i ? n.addClass(\"fr-disabled\") : n.removeClass(\"fr-disabled\"), i ? r.addClass(\"fr-disabled\") : r.removeClass(\"fr-disabled\"), this.children.target.checked) l.find(\".fr-file-\" + this.id.split(\"-\").pop()).get(0).setAttribute(\"draggable\", \"true\"), l.find(\".fr-file-\" + this.id.split(\"-\").pop()).get(0).classList.remove(\"fr-unchecked\");else {\n this.id.split(\"-\").pop();\n l.find(\".fr-file-\" + this.id.split(\"-\").pop()).get(0).setAttribute(\"draggable\", \"false\"), l.find(\".fr-file-\" + this.id.split(\"-\").pop()).get(0).classList.add(\"fr-unchecked\");\n }\n }), S.events.$on(l, \"click\", \".fr-file-insert-button\", function (e) {\n this.classList.contains(\"fr-disabled\") || xe(parseInt(this.id.split(\"-\").pop()));\n }), S.events.$on(l, \"click\", \".fr-file-autoplay-button\", function (e) {\n if (this.parentNode.classList.contains(\"fr-checkbox-disabled\")) return this.disabled = !0, void (this.checked = !1);\n De(parseInt(this.id.split(\"-\").pop()));\n }), S.events.$on(l, \"click\", \".fr-file-edit-button\", function (e) {\n var t = parseInt(this.id.split(\"-\").pop());\n l.find(\".fr-file-edit-button-\".concat(t)).hasClass(\"fr-disabled\") || Re(t);\n }), S.events.$on(l, \"click\", \".fr-file-view-button\", function (e) {\n var t = parseInt(this.id.split(\"-\").pop());\n l.find(\".fr-file-view-button-\".concat(t)).hasClass(\"fr-disabled\") || function v(e) {\n if (!He(_e(x.get(e)))) {\n var t = x.get(e).link,\n n = x.get(e).link;\n if (_.get(e) && _.get(e).name ? n = _.get(e).name : x.get(e).text && (n = x.get(e).text), 0 === t.indexOf(\"blob:\") && S.browser.msie && window.navigator && window.navigator.msSaveBlob) window.navigator.msSaveBlob(_.get(e), n);else {\n var r = document.createElement(\"a\");\n r.href = t, r.download = n, r.click();\n }\n return !1;\n }\n\n var a = S.popups.get(\"filesManager.insert\");\n if (0 < a.find(\".fr-file-view-image-\" + e).length) a.find(\".fr-file-view-image-\" + e)[0].remove();else {\n for (var o = a.find(\".fr-file-view\"), i = 0; i < o.length; i++) {\n o.get(i).remove();\n }\n\n var s = a.find(\".fr-file-view-\" + e);\n\n if (Be(_e(x.get(e)))) {\n var l = '
    \\n
    \\n
    ×
    \\n \\n
    \\n
    \";\n s[0].innerHTML = l + s[0].innerHTML;\n } else if ($e(_e(x.get(e)))) {\n var c;\n\n if (x.get(e).hasOwnProperty(\"video\")) {\n var d = x.get(e).video.substring(x.get(e).video.indexOf(\"src\") + 3),\n f = d.substring(d.indexOf('\"') + 1);\n f = f.substring(0, f.indexOf('\"')), c = '
    \\n
    \\n
    ×
    \\n \\n
    \\n
    ');\n } else c = '
    \\n
    \\n
    ×
    \\n \\n
    \\n
    \";\n\n s[0].innerHTML = c + s[0].innerHTML;\n } else if (Pe(_e(x.get(e)))) {\n var p = '
    \\n
    \\n
    ×
    \\n \\n
    \\n
    ');\n s[0].innerHTML = p + s[0].innerHTML;\n } else if (Fe(_e(x.get(e)))) {\n var u = x.get(e).link,\n h = x.get(e).text;\n\n if (u.endsWith(\".pdf\") || u.endsWith(\".txt\")) {\n var g = '
    \\t\\n
    \\t\\n
    ×
    \\t\\n \\t\\n
    \\t\\n
    ');\n s[0].innerHTML = g + s[0].innerHTML;\n } else if (0 === u.indexOf(\"blob:\") && S.browser.msie && window.navigator && window.navigator.msSaveBlob) window.navigator.msSaveBlob(_.get(e), h);else {\n var m = document.createElement(\"a\");\n m.href = u, m.download = h, m.click();\n }\n }\n }\n }(t);\n }), S.events.$on(l, \"click\", \".fr-file-delete-button\", function (e) {\n X(parseInt(this.id.split(\"-\").pop()));\n }), S.events.$on(l, \"click\", \".fr-file-cancel-upload-button\", function (e) {\n !function n(e) {\n var t = S.popups.get(\"filesManager.insert\");\n t.find(\".fr-file-item-right-\" + e).get(0).innerHTML = Ce(e), A.get(e).abort(), ye(e, 100, !0), t.find(\".fr-checkbox-file-\" + e).get(0).disabled = !0;\n }(parseInt(this.id.split(\"-\").pop()));\n }), S.events.$on(l, \"click\", \".fr-upload-delete-button\", function (e) {\n !function t(e) {\n 0 != A.get(e).readyState && (A.get(e).abort(), ye(e, 100, !0), A[\"delete\"](e)), X(e);\n }(parseInt(this.id.split(\"-\").pop()));\n }), S.events.$on(l, \"click\", \".fr-file-view-close\", function (e) {\n l.find(\".fr-file-view-modal\").get(0).outerHTML = \"\";\n }), S.events.$on(l, \"click\", \".fr-plugins-enable\", function (e) {\n !function t() {\n g.forEach(function (e) {\n S.opts.pluginsEnabled.indexOf(e) < 0 && S.opts.pluginsEnabled.push(e);\n });\n }(), function n(e) {\n for (var t in e) {\n if (!S[t]) {\n if (xt.PLUGINS[t] && S.opts.pluginsEnabled.indexOf(t) < 0) continue;\n S[t] = new e[t](S), S[t]._init && S[t]._init();\n }\n }\n }(xt.PLUGINS), S.popups.get(\"filesManager.insert\").get(0).outerHTML = \"\", Ue(), C(!0);\n }), S.events.$on(l, \"click\", \".fr-plugins-cancel\", function (e) {\n S.popups.hide(\"filesManager.insert\");\n }), S.events.$on(l, \"drop\", \".fr-upload-progress\", function (e) {\n e.preventDefault(), e.stopPropagation();\n }), S.events.$on(l, \"drop\", \".fr-files-upload-layer\", function (e) {\n e.preventDefault(), e.stopPropagation(), R(this).removeClass(\"fr-drop\");\n var t = e.originalEvent.dataTransfer;\n\n if (t && t.files) {\n var n = l.data(\"instance\") || S;\n n.events.disableBlur();\n\n for (var r = [], a = 0; a < t.files.length; a++) {\n var o = h;\n _.set(o, t.files[a]), me(o), M.set(o, !1), r.push(o), h++;\n }\n\n for (var i = 0; i < r.length; i++) {\n n.filesManager.upload(_.get(r[i]), t.files, y, r[i]);\n }\n\n n.events.enableBlur();\n }\n }, !0), S.helpers.isIOS() && S.events.$on(l, \"touchstart\", '.fr-files-upload-layer input[type=\"file\"]', function () {\n R(this).trigger(\"click\");\n }, !0), S.events.$on(l, \"change\", '.fr-files-upload-layer input[type=\"file\"]', function () {\n if (this.files) {\n var e = l.data(\"instance\") || S;\n e.events.disableBlur(), l.find(\"input:focus\").blur(), e.events.enableBlur();\n var t = [];\n\n if (\"undefined\" != typeof this.files && 0 < this.files.length) {\n for (var n = 0; n < this.files.length; n++) {\n var r = h;\n _.set(r, this.files[n]), me(r), M.set(r, !1), ++h, t.push(r);\n }\n\n for (var a = 0; a < t.length; a++) {\n e.filesManager.upload(_.get(t[a]), this.files, y, t[a]);\n }\n }\n }\n\n R(this).val(\"\");\n }, !0);\n }\n\n function De(t) {\n document.getElementById(\"fr-file-autoplay-button-\" + t).checked ? N.push(t) : N = N.filter(function (e) {\n return e != t;\n });\n }\n\n function Be(e) {\n return e && \"image\" === e.split(\"/\")[0];\n }\n\n function Fe(e) {\n return e && \"image\" != e.split(\"/\")[0] && e && \"video\" != e.split(\"/\")[0] && e && \"audio\" != e.split(\"/\")[0];\n }\n\n function $e(e) {\n return e && \"video\" === e.split(\"/\")[0];\n }\n\n function Pe(e) {\n return e && \"audio\" === e.split(\"/\")[0];\n }\n\n function He(e) {\n if (\"audio/ogg\" == e || \"video/ogg\" == e || \"image/webp\" == e || \"video/webm\" == e) {\n if (S.browser.msie || S.browser.edge || S.browser.safari) return !1;\n\n if (S.helpers.isMobile()) {\n if (\"audio/ogg\" == e || \"video/ogg\" == e) return !1;\n if (!S.helpers.isAndroid() && !S.browser.chrome) return !1;\n }\n }\n\n return !0;\n }\n\n function Ue(e) {\n if (e) return S.popups.onRefresh(\"filesManager.insert\", b), S.popups.onHide(\"filesManager.insert\", H), !0;\n var t,\n n,\n r = \"\";\n S.opts.imageUpload || -1 === S.opts.filesInsertButtons.indexOf(\"filesUpload\") || S.opts.imageInsertButtons.splice(S.opts.filesInsertButtons.indexOf(\"filesUpload\"), 1);\n var a = S.button.buildList(S.opts.filesInsertButtons),\n o = S.button.buildList(S.opts.filesInsertButtons2);\n \"\" !== a && (r = '
    '.concat(a, '').concat(o, \"
    \"));\n var i = S.opts.filesInsertButtons.indexOf(\"filesUpload\"),\n s = S.opts.filesInsertButtons.indexOf(\"filesByURL\"),\n l = S.opts.filesInsertButtons.indexOf(\"filesEmbed\"),\n c = \"\";\n 0 <= i && (t = \" fr-active\", 0 <= s && s < i && (t = \"\"), c = '
    Drag & Drop One or More Files
    OR
    Click Browse Files
    '));\n var d = \"\";\n 0 <= l && (t = \" fr-active\", (i < l && 0 <= i || s < l && 0 <= s) && (t = \"\"), d = '
    \"));\n var f = \"\";\n 0 <= s && (t = \" fr-active\", 0 <= i && i < s && (t = \"\"), f = '
    \"));\n var p = {\n buttons: r,\n upload_layer: c,\n by_url_layer: f,\n embed_layer: d,\n upload_progress_layer: \"
    \"),\n progress_bar: '

    Uploading

    '\n };\n return 1 <= S.opts.imageInsertButtons.length && (n = S.popups.create(\"filesManager.insert\", p)), S.$wp && S.events.$on(S.$wp, \"scroll\", function () {\n y && S.popups.isVisible(\"filesManager.insert\") && replace();\n }), Ie(n), S.popups.setPopupDimensions(n), n;\n }\n\n function Ke(e) {\n var t = e.split(\"/\").pop();\n\n if (t.split(\".\").length < 2) {\n var n = new Date();\n return t + \"-\" + n.getDate() + \"/\" + (n.getMonth() + 1) + \"/\" + n.getFullYear();\n }\n\n return t;\n }\n\n function ze() {\n y && S.popups.get(\"image.alt\").find(\"input\").val(y.attr(\"alt\") || \"\").trigger(\"change\");\n }\n\n function We() {\n var e = S.popups.get(\"image.alt\");\n e || (e = Ve()), J(), S.popups.refresh(\"image.alt\"), S.popups.setContainer(\"image.alt\", S.$sc);\n var t = ct();\n dt() && (t = t.find(\".fr-img-wrap\"));\n var n = t.offset().left + t.outerWidth() / 2,\n r = t.offset().top + t.outerHeight();\n S.popups.show(\"image.alt\", n, r, t.outerHeight(), !0);\n }\n\n function Ve(e) {\n if (e) return S.popups.onRefresh(\"image.alt\", ze), !0;\n var t = {\n buttons: '
    '.concat(S.button.buildList(S.opts.imageAltButtons), \"
    \"),\n alt_layer: '
    \")\n },\n n = S.popups.create(\"image.alt\", t);\n return S.$wp && S.events.$on(S.$wp, \"scroll.image-alt\", function () {\n y && S.popups.isVisible(\"image.alt\") && We();\n }), n;\n }\n\n function Ge() {\n var e = S.popups.get(\"image.size\");\n if (y) if (dt()) {\n var t = y.parent();\n t.get(0).style.width || (t = y.parent().parent()), e.find('input[name=\"width\"]').val(t.get(0).style.width).trigger(\"change\"), e.find('input[name=\"height\"]').val(t.get(0).style.height).trigger(\"change\");\n } else e.find('input[name=\"width\"]').val(y.get(0).style.width).trigger(\"change\"), e.find('input[name=\"height\"]').val(y.get(0).style.height).trigger(\"change\");\n }\n\n function Ye() {\n var e = S.popups.get(\"image.size\");\n e || (e = je()), J(), S.popups.refresh(\"image.size\"), S.popups.setContainer(\"image.size\", S.$sc);\n var t = ct();\n dt() && (t = t.find(\".fr-img-wrap\"));\n var n = t.offset().left + t.outerWidth() / 2,\n r = t.offset().top + t.outerHeight();\n S.popups.show(\"image.size\", n, r, t.outerHeight(), !0);\n }\n\n function je(e) {\n if (e) return S.popups.onRefresh(\"image.size\", Ge), !0;\n var t = {\n buttons: '
    '.concat(S.button.buildList(S.opts.imageSizeButtons), \"
    \"),\n size_layer: '
    \")\n },\n n = S.popups.create(\"image.size\", t);\n return S.$wp && S.events.$on(S.$wp, \"scroll.image-size\", function () {\n y && S.popups.isVisible(\"image.size\") && Ye();\n }), n;\n }\n\n function qe(e, t, n, r) {\n return e.pageX = t, W.call(this, e), e.pageX = e.pageX + n * Math.floor(Math.pow(1.1, r)), V.call(this, e), G.call(this, e), ++r;\n }\n\n function Xe(e) {\n (e = e || ct()) && !1 !== S.events.trigger(\"image.beforeRemove\", [e]) && (S.popups.hideAll(), rt(!0), S.undo.canDo() || S.undo.saveStep(), e.get(0) == S.el ? e.removeAttr(\"src\") : (e.get(0).parentNode && \"A\" == e.get(0).parentNode.tagName ? (S.selection.setBefore(e.get(0).parentNode) || S.selection.setAfter(e.get(0).parentNode) || e.parent().after(xt.MARKERS), R(e.get(0).parentNode).remove()) : (S.selection.setBefore(e.get(0)) || S.selection.setAfter(e.get(0)) || e.after(xt.MARKERS), e.remove()), S.html.fillEmptyBlocks(), S.selection.restore()), S.undo.saveStep());\n }\n\n function Ze(e) {\n var t = e.which;\n if (y && (t == xt.KEYCODE.BACKSPACE || t == xt.KEYCODE.DELETE)) return e.preventDefault(), e.stopPropagation(), Xe(), !1;\n\n if (y && t == xt.KEYCODE.ESC) {\n var n = y;\n return rt(!0), S.selection.setAfter(n.get(0)), S.selection.restore(), e.preventDefault(), !1;\n }\n\n if (!y || t != xt.KEYCODE.ARROW_LEFT && t != xt.KEYCODE.ARROW_RIGHT) return y && t === xt.KEYCODE.TAB ? (e.preventDefault(), e.stopPropagation(), rt(!0), !1) : y && t != xt.KEYCODE.F10 && !S.keys.isBrowserAction(e) ? (e.preventDefault(), e.stopPropagation(), !1) : void 0;\n var r = y.get(0);\n return rt(!0), t == xt.KEYCODE.ARROW_LEFT ? S.selection.setBefore(r) : S.selection.setAfter(r), S.selection.restore(), e.preventDefault(), !1;\n }\n\n function Qe(e) {\n if (e && \"IMG\" == e.tagName) {\n if (S.node.hasClass(e, \"fr-uploading\") || S.node.hasClass(e, \"fr-error\") ? e.parentNode.removeChild(e) : S.node.hasClass(e, \"fr-draggable\") && e.classList.remove(\"fr-draggable\"), e.parentNode && e.parentNode.parentNode && S.node.hasClass(e.parentNode.parentNode, \"fr-img-caption\")) {\n var t = e.parentNode.parentNode;\n t.removeAttribute(\"contenteditable\"), t.removeAttribute(\"draggable\"), t.classList.remove(\"fr-draggable\");\n var n = e.nextSibling;\n n && n.removeAttribute(\"contenteditable\");\n }\n } else if (e && e.nodeType == Node.ELEMENT_NODE) for (var r = e.querySelectorAll(\"img.fr-uploading, img.fr-error, img.fr-draggable\"), a = 0; a < r.length; a++) {\n Qe(r[a]);\n }\n }\n\n function Je(e) {\n var t = e.target.result,\n n = S.opts.imageDefaultWidth;\n n && \"auto\" != n && (n += S.opts.imageResizeWithPercent ? \"%\" : \"px\"), S.undo.saveStep(), S.html.insert('\"));\n var r = S.$el.find('img[data-fr-image-pasted=\"true\"]');\n r && st(r, S.opts.imageDefaultDisplay, S.opts.imageDefaultAlign), S.events.trigger(\"paste.after\");\n }\n\n function et(e, t) {\n var n = new FileReader();\n n.onload = function r(e) {\n var t = S.opts.imageDefaultWidth;\n t && \"auto\" != t && (t += S.opts.imageResizeWithPercent ? \"%\" : \"px\"), S.html.insert('\"));\n var n = S.$el.find('img[data-fr-image-pasted=\"true\"]');\n n && st(n, S.opts.imageDefaultDisplay, S.opts.imageDefaultAlign), S.events.trigger(\"paste.after\");\n }(t), n.readAsDataURL(e, t);\n }\n\n function tt(e) {\n if (e && e.clipboardData && e.clipboardData.items) {\n var t = (e.clipboardData || window.clipboardData).getData(\"text/html\") || \"\",\n n = new DOMParser().parseFromString(t, \"text/html\").querySelector(\"img\");\n\n if (n) {\n if (!n) return !1;\n var r = n.src,\n a = null;\n if (e.clipboardData.types && -1 != [].indexOf.call(e.clipboardData.types, \"text/rtf\") || e.clipboardData.getData(\"text/rtf\")) a = e.clipboardData.items[0].getAsFile();else for (var o = 0; o < e.clipboardData.items.length && !(a = e.clipboardData.items[o].getAsFile()); o++) {\n ;\n }\n if (a) return et(a, r), !1;\n } else {\n var i = null;\n if (e.clipboardData.types && -1 != [].indexOf.call(e.clipboardData.types, \"text/rtf\") || e.clipboardData.getData(\"text/rtf\")) i = e.clipboardData.items[0].getAsFile();else for (var s = 0; s < e.clipboardData.items.length && !(i = e.clipboardData.items[s].getAsFile()); s++) {\n ;\n }\n if (i) return function l(e) {\n var t = new FileReader();\n t.onload = Je, t.readAsDataURL(e);\n }(i), !1;\n }\n }\n }\n\n function nt(e) {\n return e = e.replace(/\") : R(S.node.blockParent(e.get(0))).after(\"<\".concat(S.html.defaultTag(), \">
    \")));\n });\n })(), \"IMG\" == S.el.tagName && S.$el.addClass(\"fr-view\"), S.helpers.isMobile() && (S.events.$on(S.$el, \"touchstart\", \"IMG\" == S.el.tagName ? null : 'img:not([contenteditable=\"false\"])', function () {\n de = !1;\n }), S.events.$on(S.$el, \"touchmove\", function () {\n de = !0;\n })), S.$wp ? (S.events.on(\"window.keydown keydown\", Ze, !0), S.events.on(\"keyup\", function (e) {\n if (y && e.which == xt.KEYCODE.ENTER) return !1;\n }, !0), S.events.$on(S.$el, \"keydown\", function () {\n var e = S.selection.element();\n (e.nodeType === Node.TEXT_NODE || \"BR\" == e.tagName && S.node.isLastSibling(e)) && (e = e.parentNode), S.node.hasClass(e, \"fr-inner\") || (S.node.hasClass(e, \"fr-img-caption\") || (e = R(e).parents(\".fr-img-caption\").get(0)), S.node.hasClass(e, \"fr-img-caption\") && (R(e).after(xt.INVISIBLE_SPACE + xt.MARKERS), S.selection.restore()));\n })) : S.events.$on(S.$win, \"keydown\", Ze), S.events.on(\"toolbar.esc\", function () {\n if (y) {\n if (S.$wp) S.events.disableBlur(), S.events.focus();else {\n var e = y;\n rt(!0), S.selection.setAfter(e.get(0)), S.selection.restore();\n }\n return !1;\n }\n }, !0), S.events.on(\"toolbar.focusEditor\", function () {\n if (y) return !1;\n }, !0), S.events.on(\"window.cut window.copy\", function (e) {\n if (y && S.popups.isVisible(\"image.edit\") && !S.popups.get(\"image.edit\").find(\":focus\").length) {\n var t = ct();\n dt() ? (t.before(xt.START_MARKER), t.after(xt.END_MARKER), S.selection.restore(), S.paste.saveCopiedText(t.get(0).outerHTML, t.text())) : S.paste.saveCopiedText(y.get(0).outerHTML, y.attr(\"alt\")), \"copy\" == e.type ? setTimeout(function () {\n Ae(y);\n }) : (rt(!0), S.undo.saveStep(), setTimeout(function () {\n S.undo.saveStep();\n }, 0));\n }\n }, !0), S.browser.msie && S.events.on(\"keydown\", function (e) {\n if (!S.selection.isCollapsed() || !y) return !0;\n var t = e.which;\n t == xt.KEYCODE.C && S.keys.ctrlKey(e) ? S.events.trigger(\"window.copy\") : t == xt.KEYCODE.X && S.keys.ctrlKey(e) && S.events.trigger(\"window.cut\");\n }), S.events.$on(R(S.o_win), \"keydown\", function (e) {\n var t = e.which;\n if (y && t == xt.KEYCODE.BACKSPACE) return e.preventDefault(), !1;\n }), S.events.$on(S.$win, \"keydown\", function (e) {\n var t = e.which;\n y && y.hasClass(\"fr-uploading\") && t == xt.KEYCODE.ESC && y.trigger(\"abortUpload\");\n }), S.events.on(\"destroy\", function () {\n y && y.hasClass(\"fr-uploading\") && y.trigger(\"abortUpload\");\n }), S.events.on(\"paste.before\", tt), S.events.on(\"paste.beforeCleanup\", nt), S.events.on(\"html.processGet\", Qe), S.opts.imageOutputSize && S.events.on(\"html.beforeGet\", function () {\n r = S.el.querySelectorAll(\"img\");\n\n for (var e = 0; e < r.length; e++) {\n var t = r[e].style.width || R(r[e]).width(),\n n = r[e].style.height || R(r[e]).height();\n t && r[e].setAttribute(\"width\", \"\".concat(t).replace(/px/, \"\")), n && r[e].setAttribute(\"height\", \"\".concat(n).replace(/px/, \"\"));\n }\n }), S.opts.iframe && S.events.on(\"image.loaded\", S.size.syncIframe), S.events.$on(R(S.o_win), \"orientationchange.image\", function () {\n setTimeout(function () {\n y && Ae(y);\n }, 100);\n }), function a(e) {\n if (e) return S.$wp && S.events.$on(S.$wp, \"scroll.image-edit\", function () {\n y && S.popups.isVisible(\"image.edit\") && S.events.disableBlur();\n }), !0;\n var t = \"\";\n\n if (0 < S.opts.imageEditButtons.length) {\n var n = {\n buttons: t += '
    \\n '.concat(S.button.buildList(S.opts.imageEditButtons), \"\\n
    \")\n };\n return S.popups.create(\"image.edit\", n);\n }\n\n return !1;\n }(!0), Ue(!0), je(!0), Ve(!0), S.events.on(\"node.remove\", function (e) {\n if (\"IMG\" == e.get(0).tagName) return Xe(e), !1;\n }), S.events.on(\"popups.hide.filesManager.insert\", function (e) {\n S.filesManager.minimizePopup(w);\n });\n },\n showInsertPopup: C,\n showLayer: function pt(e) {\n var t,\n n,\n r = S.popups.get(\"filesManager.insert\");\n\n if (y || S.opts.toolbarInline) {\n if (y) {\n var a = ct();\n dt() && (a = a.find(\".fr-img-wrap\")), n = a.offset().top + a.outerHeight(), t = a.offset().left;\n }\n } else {\n var o = S.$tb.find('.fr-command[data-cmd=\"insertFiles\"]');\n t = o.offset().left, n = o.offset().top + (S.opts.toolbarBottom ? 10 : o.outerHeight() - 10);\n }\n\n !y && S.opts.toolbarInline && (n = r.offset().top - S.helpers.getPX(r.css(\"margin-top\")), r.hasClass(\"fr-above\") && (n += r.outerHeight())), r.find(\".fr-layer\").removeClass(\"fr-active\"), r.find(\".fr-\".concat(e, \"-layer\")).addClass(\"fr-active\"), r.find(\".fr-upload-progress-layer\").addClass(\"fr-active\"), S.popups.show(\"filesManager.insert\", t, n, y ? y.outerHeight() : 0), S.accessibility.focusPopup(r);\n },\n refreshUploadButton: function ut(e) {\n var t = S.popups.get(\"filesManager.insert\");\n t && t.find(\".fr-files-upload-layer\").hasClass(\"fr-active\") && e.addClass(\"fr-active\").attr(\"aria-pressed\", !0);\n },\n refreshByURLButton: function ht(e) {\n var t = S.popups.get(\"filesManager.insert\");\n t && t.find(\".fr-files-by-url-layer\").hasClass(\"fr-active\") && e.addClass(\"fr-active\").attr(\"aria-pressed\", !0);\n },\n upload: ke,\n insertByURL: function gt() {\n for (var e, t = S.popups.get(\"filesManager.insert\").find(\".fr-files-by-url-layer input\"), n = t.val().trim().split(/[ ,]+/), r = [], a = 0, o = 0; o < n.length; o++) {\n e = n[o], new RegExp(\"^(https?:\\\\/\\\\/)?((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*(\\\\?[;&a-z\\\\d%_.~+=-]*)?(\\\\#[-a-z\\\\d_]*)?$\", \"i\").test(e) && (r[a] = n[o], a++);\n }\n\n if (0 != r.length) {\n if (0 < t.val().trim().length && 0 < r.length) {\n var s = [],\n l = [],\n c = h,\n d = r.length;\n r.forEach(function (e, n) {\n if (0 == e.trim().length) h == c + --d && Te(s, l);else {\n J(), Q(), ee(S.language.translate(\"Loading file(s)\"));\n\n var r = e.trim(),\n t = function i(e) {\n if (void 0 === e) return e;\n var t = null;\n if (/^http/.test(e) || (e = \"https://\".concat(e)), S.helpers.isURL(e)) for (var n = 0; n < xt.VIDEO_PROVIDERS.length; n++) {\n var r = xt.VIDEO_PROVIDERS[n];\n\n if (r.test_regex.test(e) && new RegExp(S.opts.videoAllowedProviders.join(\"|\")).test(r.provider)) {\n t = e.replace(r.url_regex, r.url_text), t = r.html.replace(/\\{url\\}/, t);\n break;\n }\n }\n return t;\n }(r);\n\n if (t) {\n var a = {\n link: r,\n name: r,\n type: \"video/url\",\n size: 2,\n video: t\n };\n _.set(c + n, a), me(c + n), J(), Q(), ee(S.language.translate(\"Loading file(s)\")), x.set(c + n, a), ++h == c + d && Te(s, l);\n } else {\n var o = new XMLHttpRequest();\n o.onload = function () {\n if (200 == this.status) {\n var e = new Blob([this.response], {\n type: this.response.type || \"\"\n });\n e.name = Ke(r), e.link = r, Be(this.response.type) ? (e.sanitize = !0, e.existing_image = y) : Fe(this.response.type) && (e.text = Ke(r)), s.push(e), l.push(c + n), _.set(c + n, e), me(c + n), (-1 < P.indexOf(_e(e)) || !_e(e)) && j(F, null, null, c + n);\n } else {\n var t = new Blob([this.response], {\n type: this.response.type || \" \"\n });\n t.name = Ke(r), t.link = r, _.set(c + n, t), me(c + n), j(k, this.response, y, c + n);\n }\n\n J(), Q(), ee(S.language.translate(\"Loading file(s)\")), ++h == c + d && Te(s, l);\n }, o.onerror = function () {\n var e = {\n link: r,\n name: Ke(r),\n size: 0,\n type: \"\"\n };\n j(9, this.response, y, c + n);\n var t = h;\n _.set(t, e), me(t), J(), Q(), ee(S.language.translate(\"Loading file(s)\")), ++h == c + d && Te(s, l);\n }, o.open(\"GET\", \"\".concat(S.opts.imageCORSProxy, \"/\").concat(r), !0), o.responseType = \"blob\", o.send();\n }\n }\n }), t.val(\"\"), t.blur();\n }\n } else te(S.language.translate(\"Url entered is invalid. Please try again.\"));\n },\n insertAllFiles: function mt() {\n a = [];\n var e = S.popups.get(\"filesManager.insert\");\n u = -1, f = null, e.find(\".fr-insert-checkbox\").toArray().forEach(function r(e, t, n) {\n e.children.target.checked && (a.push(parseInt(e.id.split(\"-\").pop())), Be(x.get(parseInt(e.id.split(\"-\").pop())).type) && -1 == u && (u = t));\n }), we(a), q();\n },\n deleteAllFiles: function e() {\n S.popups.get(\"filesManager.insert\").find(\".fr-insert-checkbox\").toArray().forEach(function a(e, t, n) {\n if (e.children.target.checked) {\n var r = parseInt(e.id.split(\"-\").pop());\n A.has(r) && A[\"delete\"](r), X(r);\n }\n }), q();\n },\n get: lt,\n getEl: ct,\n insert: xe,\n showProgressBar: Q,\n remove: Xe,\n hideProgressBar: J,\n applyStyle: function vt(e, t, n) {\n if (void 0 === t && (t = S.opts.imageStyles), void 0 === n && (n = S.opts.imageMultipleStyles), !y) return !1;\n var r = ct();\n\n if (!n) {\n var a = Object.keys(t);\n a.splice(a.indexOf(e), 1), r.removeClass(a.join(\" \"));\n }\n\n \"object\" == _t(t[e]) ? (r.removeAttr(\"style\"), r.css(t[e].style)) : r.toggleClass(e), Ae(y);\n },\n showAltPopup: We,\n showSizePopup: Ye,\n setAlt: function bt(e) {\n if (y) {\n var t = S.popups.get(\"image.alt\");\n y.attr(\"alt\", e || t.find(\"input\").val() || \"\"), t.find(\"input:focus\").blur(), Ae(y);\n }\n },\n setSize: function Ct(e, t) {\n if (y) {\n var n = S.popups.get(\"image.size\");\n e = e || n.find('input[name=\"width\"]').val() || \"\", t = t || n.find('input[name=\"height\"]').val() || \"\";\n var r = /^[\\d]+((px)|%)*$/g;\n y.removeAttr(\"width\").removeAttr(\"height\"), e.match(r) ? y.css(\"width\", e) : y.css(\"width\", \"\"), t.match(r) ? y.css(\"height\", t) : y.css(\"height\", \"\"), dt() && (y.parents(\".fr-img-caption\").removeAttr(\"width\").removeAttr(\"height\"), e.match(r) ? y.parents(\".fr-img-caption\").css(\"width\", e) : y.parents(\".fr-img-caption\").css(\"width\", \"\"), t.match(r) ? y.parents(\".fr-img-caption\").css(\"height\", t) : y.parents(\".fr-img-caption\").css(\"height\", \"\")), n && n.find(\"input:focus\").blur(), Ae(y);\n }\n },\n toggleCaption: function Et() {\n var e;\n\n if (y && !dt()) {\n (e = y).parent().is(\"a\") && (e = y.parent());\n var t,\n n,\n r = y.parents(\"ul\") && 0 < y.parents(\"ul\").length ? y.parents(\"ul\") : y.parents(\"ol\") && 0 < y.parents(\"ol\").length ? y.parents(\"ol\") : [];\n\n if (0 < r.length) {\n var a = r.find(\"li\").length,\n o = y.parents(\"li\"),\n i = document.createElement(\"li\");\n a - 1 === o.index() && (r.append(i), i.innerHTML = \" \");\n }\n\n e.attr(\"style\") && (n = -1 < (t = e.attr(\"style\").split(\":\")).indexOf(\"width\") ? t[t.indexOf(\"width\") + 1].replace(\";\", \"\") : \"\");\n var s = S.opts.imageResizeWithPercent ? (-1 < n.indexOf(\"px\") ? null : n) || \"100%\" : y.width() + \"px\";\n e.wrap('

     

    '), e.wrap(''), y.after('\").concat(xt.START_MARKER).concat(S.language.translate(\"Image Caption\")).concat(xt.END_MARKER, \"\")), y.removeAttr(\"class\").removeAttr(\"style\").removeAttr(\"width\"), y.parents(\".fr-img-caption\").css(\"width\", s), rt(!0), S.selection.restore();\n } else e = ct(), y.insertAfter(e), y.attr(\"class\", e.attr(\"class\").replace(\"fr-img-caption\", \"\")).attr(\"style\", e.attr(\"style\")), e.remove(), Ae(y);\n },\n refreshEmbedButton: function yt(e) {\n var t = S.popups.get(\"filesManager.insert\");\n t && t.find(\".fr-files-embed-layer\").hasClass(\"fr-active\") && e.addClass(\"fr-active\").attr(\"aria-pressed\", !0);\n },\n insertEmbed: function Tt(e) {\n void 0 === e && (e = S.popups.get(\"filesManager.insert\").find(\".fr-files-embed-layer textarea\").val() || \"\"), 0 === e.length || !xt.VIDEO_EMBED_REGEX.test(e) && !xt.IMAGE_EMBED_REGEX.test(e) ? (te(S.language.translate(\"Something went wrong. Please try again.\")), xt.VIDEO_EMBED_REGEX.test(e) && S.events.trigger(\"video.codeError\", [e])) : Me(e);\n },\n hasCaption: dt,\n exitEdit: rt,\n edit: Ae,\n cancelFileInsert: function At() {\n this.file_manager_dialog_open = !1, A.forEach(function (e, t) {\n 4 != e.readyState && (e.abort(), X(t));\n });\n var e = S.popups.get(\"filesManager.insert\");\n e.find(\".fr-progress-bar\").removeClass(\"fr-display-block\").addClass(\"fr-none\"), e.find('.fr-command[data-cmd=\"filesUpload\"]').removeClass(\"fr-disabled\"), e.find('.fr-command[data-cmd=\"filesByURL\"]').removeClass(\"fr-disabled\"), e.find('.fr-command[data-cmd=\"filesEmbed\"]').removeClass(\"fr-disabled\"), o = 0, A = new Map(), L = new Map(), Z(), S.popups.hide(\"filesManager.insert\");\n },\n minimizePopup: function Lt(e) {\n this.file_manager_dialog_open = !1, S.popups.hide(\"filesManager.insert\"), Z();\n },\n editImage: Re,\n saveImage: function St(e) {\n var t = x.get(i);\n t.link = window.URL.createObjectURL(new Blob(e, {\n type: \"image/png\"\n })), x.set(i, t);\n },\n _showErrorMessage: te,\n _showFileErrorMessage: ne,\n getFileThumbnail: be,\n deleteFile: X,\n checkAutoplay: De,\n checkInsertAllState: q,\n _disableInsertCheckbox: Y,\n _getFileType: _e,\n isChildWindowOpen: function wt() {\n return p;\n },\n setChildWindowState: function Rt(e) {\n e !== undefined && (p = e);\n },\n resetAllFilesCheckbox: Z\n };\n }, xt.DefineIcon(\"insertFiles\", {\n NAME: \"image\",\n SVG_KEY: \"fileManager\"\n }), xt.RegisterShortcut(xt.KEYCODE.P, \"insertFiles\", null, \"P\"), xt.RegisterCommand(\"insertFiles\", {\n title: \"Insert Files\",\n undo: !1,\n focus: !0,\n refreshAfterCallback: !1,\n popup: !0,\n callback: function callback() {\n this.popups.isVisible(\"filesManager.insert\") ? (this.$el.find(\".fr-marker\").length && (this.events.disableBlur(), this.selection.restore()), this.popups.hide(\"filesManager.insert\")) : this.filesManager.showInsertPopup();\n },\n plugin: \"filesManager\"\n }), xt.DefineIcon(\"cloudIcon\", {\n NAME: \"cloudIcon\",\n SVG_KEY: \"uploadFiles\"\n }), xt.DefineIcon(\"filesUpload\", {\n NAME: \"uploadFiles\",\n SVG_KEY: \"uploadFiles\"\n }), xt.RegisterCommand(\"filesUpload\", {\n title: \"Upload Files\",\n undo: !1,\n focus: !1,\n toggle: !0,\n callback: function callback() {\n this.filesManager.showLayer(\"files-upload\");\n },\n refresh: function refresh(e) {\n this.filesManager.refreshUploadButton(e);\n }\n }), xt.DefineIcon(\"filesByURL\", {\n NAME: \"link\",\n SVG_KEY: \"insertLink\"\n }), xt.RegisterCommand(\"filesByURL\", {\n title: \"By URL\",\n undo: !1,\n focus: !1,\n toggle: !0,\n callback: function callback() {\n this.filesManager.showLayer(\"files-by-url\");\n },\n refresh: function refresh(e) {\n this.filesManager.refreshByURLButton(e);\n }\n }), xt.DefineIcon(\"filesEmbed\", {\n NAME: \"code\",\n SVG_KEY: \"codeView\"\n }), xt.RegisterCommand(\"filesEmbed\", {\n title: \"Embedded Code\",\n undo: !1,\n focus: !1,\n toggle: !0,\n callback: function callback() {\n this.filesManager.showLayer(\"files-embed\");\n },\n refresh: function refresh(e) {\n this.filesManager.refreshEmbedButton(e);\n }\n }), xt.DefineIcon(\"insertAll\", {\n NAME: \"insertAll\",\n SVG_KEY: \"fileInsert\"\n }), xt.RegisterCommand(\"insertAll\", {\n title: \"Insert\",\n undo: !1,\n focus: !1,\n toggle: !0,\n disabled: !0,\n callback: function callback() {\n this.filesManager.insertAllFiles();\n }\n }), xt.DefineIcon(\"deleteAll\", {\n NAME: \"remove\",\n SVG_KEY: \"remove\"\n }), xt.RegisterCommand(\"deleteAll\", {\n title: \"Delete\",\n undo: !1,\n focus: !1,\n toggle: !0,\n disabled: !0,\n callback: function callback() {\n this.filesManager.deleteAllFiles();\n }\n }), xt.DefineIcon(\"cancel\", {\n NAME: \"cancel\",\n SVG_KEY: \"cancel\"\n }), xt.RegisterCommand(\"cancel\", {\n title: \"Cancel\",\n undo: !1,\n focus: !1,\n toggle: !0,\n callback: function callback() {\n this.filesManager.cancelFileInsert();\n },\n refresh: function refresh(e) {}\n }), xt.DefineIcon(\"minimize\", {\n NAME: \"minimize\",\n SVG_KEY: \"minimize\"\n }), xt.RegisterCommand(\"minimize\", {\n title: \"Minimize\",\n undo: !1,\n focus: !1,\n toggle: !0,\n callback: function callback() {\n this.filesManager.minimizePopup(\"image.insert\", !0);\n },\n refresh: function refresh(e) {\n this.filesManager.refreshEmbedButton(e);\n }\n }), xt.RegisterCommand(\"filesInsertByURL\", {\n title: \"Insert Image\",\n undo: !0,\n refreshAfterCallback: !1,\n callback: function callback() {\n this.filesManager.insertByURL();\n },\n refresh: function refresh(e) {\n e.text(this.language.translate(\"Add\"));\n }\n }), xt.RegisterCommand(\"imageInsertByUpload\", {\n title: \"Insert\",\n undo: !0,\n refreshAfterCallback: !1,\n callback: function callback(e, t) {},\n refresh: function refresh(e) {}\n }), xt.RegisterCommand(\"viewImage\", {\n title: \"View Image\",\n undo: !0,\n refreshAfterCallback: !1,\n callback: function callback(e, t) {},\n refresh: function refresh(e) {}\n }), xt.RegisterCommand(\"insertEmbed\", {\n undo: !0,\n focus: !0,\n callback: function callback() {\n this.filesManager.insertEmbed(), this.popups.get(\"filesManager.insert\").find(\"textarea\")[0].value = \"\", this.popups.get(\"filesManager.insert\").find(\"textarea\").removeClass(\"fr-not-empty\");\n }\n }), xt.RegisterCommand(\"filesDismissError\", {\n title: \"OK\",\n undo: !1,\n callback: function callback() {\n this.filesManager.hideProgressBar(!0);\n }\n }), xt.PLUGINS.cryptoJSPlugin = function (e) {\n var t,\n d,\n n,\n r,\n a,\n o,\n i,\n f,\n s,\n l,\n c,\n p,\n u,\n h,\n g,\n v,\n m,\n b,\n C,\n E,\n y,\n T,\n A,\n L,\n S,\n w,\n R,\n _,\n x,\n M,\n O,\n N,\n k,\n I,\n D,\n B,\n F,\n $,\n P,\n H,\n U,\n K,\n z,\n W,\n V,\n G,\n Y,\n j,\n q,\n X,\n Z,\n Q,\n J,\n ee,\n te,\n ne,\n re,\n ae,\n oe,\n ie,\n se,\n le,\n ce,\n de,\n fe,\n pe,\n ue,\n he,\n ge,\n me,\n ve = ve || function (d, e) {\n var t;\n if (\"undefined\" != typeof window && window.crypto && (t = window.crypto), !t && \"undefined\" != typeof window && window.msCrypto && (t = window.msCrypto), !t && \"undefined\" != typeof global && global.crypto && (t = global.crypto), !t && \"function\" == typeof require) try {\n t = require(\"crypto\");\n } catch (g) {}\n\n var r = function r() {\n if (t) {\n if (\"function\" == typeof t.getRandomValues) try {\n return t.getRandomValues(new Uint32Array(1))[0];\n } catch (g) {}\n if (\"function\" == typeof t.randomBytes) try {\n return t.randomBytes(4).readInt32LE();\n } catch (g) {}\n }\n\n throw new Error(\"Native crypto module could not be used to get secure random number.\");\n },\n n = Object.create || function () {\n function n() {}\n\n return function (e) {\n var t;\n return n.prototype = e, t = new n(), n.prototype = null, t;\n };\n }(),\n a = {},\n o = a.lib = {},\n i = o.Base = {\n extend: function extend(e) {\n var t = n(this);\n return e && t.mixIn(e), t.hasOwnProperty(\"init\") && this.init !== t.init || (t.init = function () {\n t.$super.init.apply(this, arguments);\n }), (t.init.prototype = t).$super = this, t;\n },\n create: function create() {\n var e = this.extend();\n return e.init.apply(e, arguments), e;\n },\n init: function init() {},\n mixIn: function mixIn(e) {\n for (var t in e) {\n e.hasOwnProperty(t) && (this[t] = e[t]);\n }\n\n e.hasOwnProperty(\"toString\") && (this.toString = e.toString);\n },\n clone: function clone() {\n return this.init.prototype.extend(this);\n }\n },\n f = o.WordArray = i.extend({\n init: function init(e, t) {\n e = this.words = e || [], this.sigBytes = null != t ? t : 4 * e.length;\n },\n toString: function toString(e) {\n return (e || l).stringify(this);\n },\n concat: function concat(e) {\n var t = this.words,\n n = e.words,\n r = this.sigBytes,\n a = e.sigBytes;\n if (this.clamp(), r % 4) for (var o = 0; o < a; o++) {\n var i = n[o >>> 2] >>> 24 - o % 4 * 8 & 255;\n t[r + o >>> 2] |= i << 24 - (r + o) % 4 * 8;\n } else for (o = 0; o < a; o += 4) {\n t[r + o >>> 2] = n[o >>> 2];\n }\n return this.sigBytes += a, this;\n },\n clamp: function clamp() {\n var e = this.words,\n t = this.sigBytes;\n e[t >>> 2] &= 4294967295 << 32 - t % 4 * 8, e.length = d.ceil(t / 4);\n },\n clone: function e() {\n var e = i.clone.call(this);\n return e.words = this.words.slice(0), e;\n },\n random: function random(e) {\n for (var t = [], n = 0; n < e; n += 4) {\n t.push(r());\n }\n\n return new f.init(t, e);\n }\n }),\n s = a.enc = {},\n l = s.Hex = {\n stringify: function stringify(e) {\n for (var t = e.words, n = e.sigBytes, r = [], a = 0; a < n; a++) {\n var o = t[a >>> 2] >>> 24 - a % 4 * 8 & 255;\n r.push((o >>> 4).toString(16)), r.push((15 & o).toString(16));\n }\n\n return r.join(\"\");\n },\n parse: function parse(e) {\n for (var t = e.length, n = [], r = 0; r < t; r += 2) {\n n[r >>> 3] |= parseInt(e.substr(r, 2), 16) << 24 - r % 8 * 4;\n }\n\n return new f.init(n, t / 2);\n }\n },\n c = s.Latin1 = {\n stringify: function stringify(e) {\n for (var t = e.words, n = e.sigBytes, r = [], a = 0; a < n; a++) {\n var o = t[a >>> 2] >>> 24 - a % 4 * 8 & 255;\n r.push(String.fromCharCode(o));\n }\n\n return r.join(\"\");\n },\n parse: function parse(e) {\n for (var t = e.length, n = [], r = 0; r < t; r++) {\n n[r >>> 2] |= (255 & e.charCodeAt(r)) << 24 - r % 4 * 8;\n }\n\n return new f.init(n, t);\n }\n },\n p = s.Utf8 = {\n stringify: function stringify(e) {\n try {\n return decodeURIComponent(escape(c.stringify(e)));\n } catch (t) {\n throw new Error(\"Malformed UTF-8 data\");\n }\n },\n parse: function parse(e) {\n return c.parse(unescape(encodeURIComponent(e)));\n }\n },\n u = o.BufferedBlockAlgorithm = i.extend({\n reset: function reset() {\n this._data = new f.init(), this._nDataBytes = 0;\n },\n _append: function _append(e) {\n \"string\" == typeof e && (e = p.parse(e)), this._data.concat(e), this._nDataBytes += e.sigBytes;\n },\n _process: function _process(e) {\n var t,\n n = this._data,\n r = n.words,\n a = n.sigBytes,\n o = this.blockSize,\n i = a / (4 * o),\n s = (i = e ? d.ceil(i) : d.max((0 | i) - this._minBufferSize, 0)) * o,\n l = d.min(4 * s, a);\n\n if (s) {\n for (var c = 0; c < s; c += o) {\n this._doProcessBlock(r, c);\n }\n\n t = r.splice(0, s), n.sigBytes -= l;\n }\n\n return new f.init(t, l);\n },\n clone: function e() {\n var e = i.clone.call(this);\n return e._data = this._data.clone(), e;\n },\n _minBufferSize: 0\n }),\n h = (o.Hasher = u.extend({\n cfg: i.extend(),\n init: function init(e) {\n this.cfg = this.cfg.extend(e), this.reset();\n },\n reset: function reset() {\n u.reset.call(this), this._doReset();\n },\n update: function update(e) {\n return this._append(e), this._process(), this;\n },\n finalize: function finalize(e) {\n return e && this._append(e), this._doFinalize();\n },\n blockSize: 16,\n _createHelper: function _createHelper(n) {\n return function (e, t) {\n return new n.init(t).finalize(e);\n };\n },\n _createHmacHelper: function _createHmacHelper(n) {\n return function (e, t) {\n return new h.HMAC.init(n, t).finalize(e);\n };\n }\n }), a.algo = {});\n\n return a;\n }(Math);\n\n return d = (t = ve).lib.WordArray, t.enc.Base64 = {\n stringify: function stringify(e) {\n var t = e.words,\n n = e.sigBytes,\n r = this._map;\n e.clamp();\n\n for (var a = [], o = 0; o < n; o += 3) {\n for (var i = (t[o >>> 2] >>> 24 - o % 4 * 8 & 255) << 16 | (t[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255) << 8 | t[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, s = 0; s < 4 && o + .75 * s < n; s++) {\n a.push(r.charAt(i >>> 6 * (3 - s) & 63));\n }\n }\n\n var l = r.charAt(64);\n if (l) for (; a.length % 4;) {\n a.push(l);\n }\n return a.join(\"\");\n },\n parse: function parse(e) {\n var t = e.length,\n n = this._map,\n r = this._reverseMap;\n\n if (!r) {\n r = this._reverseMap = [];\n\n for (var a = 0; a < n.length; a++) {\n r[n.charCodeAt(a)] = a;\n }\n }\n\n var o = n.charAt(64);\n\n if (o) {\n var i = e.indexOf(o);\n -1 !== i && (t = i);\n }\n\n return function c(e, t, n) {\n for (var r = [], a = 0, o = 0; o < t; o++) {\n if (o % 4) {\n var i = n[e.charCodeAt(o - 1)] << o % 4 * 2,\n s = n[e.charCodeAt(o)] >>> 6 - o % 4 * 2,\n l = i | s;\n r[a >>> 2] |= l << 24 - a % 4 * 8, a++;\n }\n }\n\n return d.create(r, a);\n }(e, t, r);\n },\n _map: \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\"\n }, function (d) {\n var e = ve,\n t = e.lib,\n n = t.WordArray,\n r = t.Hasher,\n a = e.algo,\n w = [];\n !function () {\n for (var e = 0; e < 64; e++) {\n w[e] = 4294967296 * d.abs(d.sin(e + 1)) | 0;\n }\n }();\n var o = a.MD5 = r.extend({\n _doReset: function _doReset() {\n this._hash = new n.init([1732584193, 4023233417, 2562383102, 271733878]);\n },\n _doProcessBlock: function _doProcessBlock(e, t) {\n for (var n = 0; n < 16; n++) {\n var r = t + n,\n a = e[r];\n e[r] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8);\n }\n\n var o = this._hash.words,\n i = e[t + 0],\n s = e[t + 1],\n l = e[t + 2],\n c = e[t + 3],\n d = e[t + 4],\n f = e[t + 5],\n p = e[t + 6],\n u = e[t + 7],\n h = e[t + 8],\n g = e[t + 9],\n m = e[t + 10],\n v = e[t + 11],\n b = e[t + 12],\n C = e[t + 13],\n E = e[t + 14],\n y = e[t + 15],\n T = o[0],\n A = o[1],\n L = o[2],\n S = o[3];\n A = M(A = M(A = M(A = M(A = x(A = x(A = x(A = x(A = _(A = _(A = _(A = _(A = R(A = R(A = R(A = R(A, L = R(L, S = R(S, T = R(T, A, L, S, i, 7, w[0]), A, L, s, 12, w[1]), T, A, l, 17, w[2]), S, T, c, 22, w[3]), L = R(L, S = R(S, T = R(T, A, L, S, d, 7, w[4]), A, L, f, 12, w[5]), T, A, p, 17, w[6]), S, T, u, 22, w[7]), L = R(L, S = R(S, T = R(T, A, L, S, h, 7, w[8]), A, L, g, 12, w[9]), T, A, m, 17, w[10]), S, T, v, 22, w[11]), L = R(L, S = R(S, T = R(T, A, L, S, b, 7, w[12]), A, L, C, 12, w[13]), T, A, E, 17, w[14]), S, T, y, 22, w[15]), L = _(L, S = _(S, T = _(T, A, L, S, s, 5, w[16]), A, L, p, 9, w[17]), T, A, v, 14, w[18]), S, T, i, 20, w[19]), L = _(L, S = _(S, T = _(T, A, L, S, f, 5, w[20]), A, L, m, 9, w[21]), T, A, y, 14, w[22]), S, T, d, 20, w[23]), L = _(L, S = _(S, T = _(T, A, L, S, g, 5, w[24]), A, L, E, 9, w[25]), T, A, c, 14, w[26]), S, T, h, 20, w[27]), L = _(L, S = _(S, T = _(T, A, L, S, C, 5, w[28]), A, L, l, 9, w[29]), T, A, u, 14, w[30]), S, T, b, 20, w[31]), L = x(L, S = x(S, T = x(T, A, L, S, f, 4, w[32]), A, L, h, 11, w[33]), T, A, v, 16, w[34]), S, T, E, 23, w[35]), L = x(L, S = x(S, T = x(T, A, L, S, s, 4, w[36]), A, L, d, 11, w[37]), T, A, u, 16, w[38]), S, T, m, 23, w[39]), L = x(L, S = x(S, T = x(T, A, L, S, C, 4, w[40]), A, L, i, 11, w[41]), T, A, c, 16, w[42]), S, T, p, 23, w[43]), L = x(L, S = x(S, T = x(T, A, L, S, g, 4, w[44]), A, L, b, 11, w[45]), T, A, y, 16, w[46]), S, T, l, 23, w[47]), L = M(L, S = M(S, T = M(T, A, L, S, i, 6, w[48]), A, L, u, 10, w[49]), T, A, E, 15, w[50]), S, T, f, 21, w[51]), L = M(L, S = M(S, T = M(T, A, L, S, b, 6, w[52]), A, L, c, 10, w[53]), T, A, m, 15, w[54]), S, T, s, 21, w[55]), L = M(L, S = M(S, T = M(T, A, L, S, h, 6, w[56]), A, L, y, 10, w[57]), T, A, p, 15, w[58]), S, T, C, 21, w[59]), L = M(L, S = M(S, T = M(T, A, L, S, d, 6, w[60]), A, L, v, 10, w[61]), T, A, l, 15, w[62]), S, T, g, 21, w[63]), o[0] = o[0] + T | 0, o[1] = o[1] + A | 0, o[2] = o[2] + L | 0, o[3] = o[3] + S | 0;\n },\n _doFinalize: function _doFinalize() {\n var e = this._data,\n t = e.words,\n n = 8 * this._nDataBytes,\n r = 8 * e.sigBytes;\n t[r >>> 5] |= 128 << 24 - r % 32;\n var a = d.floor(n / 4294967296),\n o = n;\n t[15 + (r + 64 >>> 9 << 4)] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), t[14 + (r + 64 >>> 9 << 4)] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), e.sigBytes = 4 * (t.length + 1), this._process();\n\n for (var i = this._hash, s = i.words, l = 0; l < 4; l++) {\n var c = s[l];\n s[l] = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8);\n }\n\n return i;\n },\n clone: function e() {\n var e = r.clone.call(this);\n return e._hash = this._hash.clone(), e;\n }\n });\n\n function R(e, t, n, r, a, o, i) {\n var s = e + (t & n | ~t & r) + a + i;\n return (s << o | s >>> 32 - o) + t;\n }\n\n function _(e, t, n, r, a, o, i) {\n var s = e + (t & r | n & ~r) + a + i;\n return (s << o | s >>> 32 - o) + t;\n }\n\n function x(e, t, n, r, a, o, i) {\n var s = e + (t ^ n ^ r) + a + i;\n return (s << o | s >>> 32 - o) + t;\n }\n\n function M(e, t, n, r, a, o, i) {\n var s = e + (n ^ (t | ~r)) + a + i;\n return (s << o | s >>> 32 - o) + t;\n }\n\n e.MD5 = r._createHelper(o), e.HmacMD5 = r._createHmacHelper(o);\n }(Math), r = (n = ve).lib, a = r.WordArray, o = r.Hasher, i = n.algo, f = [], s = i.SHA1 = o.extend({\n _doReset: function _doReset() {\n this._hash = new a.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]);\n },\n _doProcessBlock: function _doProcessBlock(e, t) {\n for (var n = this._hash.words, r = n[0], a = n[1], o = n[2], i = n[3], s = n[4], l = 0; l < 80; l++) {\n if (l < 16) f[l] = 0 | e[t + l];else {\n var c = f[l - 3] ^ f[l - 8] ^ f[l - 14] ^ f[l - 16];\n f[l] = c << 1 | c >>> 31;\n }\n var d = (r << 5 | r >>> 27) + s + f[l];\n d += l < 20 ? 1518500249 + (a & o | ~a & i) : l < 40 ? 1859775393 + (a ^ o ^ i) : l < 60 ? (a & o | a & i | o & i) - 1894007588 : (a ^ o ^ i) - 899497514, s = i, i = o, o = a << 30 | a >>> 2, a = r, r = d;\n }\n\n n[0] = n[0] + r | 0, n[1] = n[1] + a | 0, n[2] = n[2] + o | 0, n[3] = n[3] + i | 0, n[4] = n[4] + s | 0;\n },\n _doFinalize: function _doFinalize() {\n var e = this._data,\n t = e.words,\n n = 8 * this._nDataBytes,\n r = 8 * e.sigBytes;\n return t[r >>> 5] |= 128 << 24 - r % 32, t[14 + (r + 64 >>> 9 << 4)] = Math.floor(n / 4294967296), t[15 + (r + 64 >>> 9 << 4)] = n, e.sigBytes = 4 * t.length, this._process(), this._hash;\n },\n clone: function e() {\n var e = o.clone.call(this);\n return e._hash = this._hash.clone(), e;\n }\n }), n.SHA1 = o._createHelper(s), n.HmacSHA1 = o._createHmacHelper(s), function (a) {\n var e = ve,\n t = e.lib,\n n = t.WordArray,\n r = t.Hasher,\n o = e.algo,\n i = [],\n C = [];\n !function () {\n function e(e) {\n for (var t = a.sqrt(e), n = 2; n <= t; n++) {\n if (!(e % n)) return !1;\n }\n\n return !0;\n }\n\n function t(e) {\n return 4294967296 * (e - (0 | e)) | 0;\n }\n\n for (var n = 2, r = 0; r < 64;) {\n e(n) && (r < 8 && (i[r] = t(a.pow(n, .5))), C[r] = t(a.pow(n, 1 / 3)), r++), n++;\n }\n }();\n var E = [],\n s = o.SHA256 = r.extend({\n _doReset: function _doReset() {\n this._hash = new n.init(i.slice(0));\n },\n _doProcessBlock: function _doProcessBlock(e, t) {\n for (var n = this._hash.words, r = n[0], a = n[1], o = n[2], i = n[3], s = n[4], l = n[5], c = n[6], d = n[7], f = 0; f < 64; f++) {\n if (f < 16) E[f] = 0 | e[t + f];else {\n var p = E[f - 15],\n u = (p << 25 | p >>> 7) ^ (p << 14 | p >>> 18) ^ p >>> 3,\n h = E[f - 2],\n g = (h << 15 | h >>> 17) ^ (h << 13 | h >>> 19) ^ h >>> 10;\n E[f] = u + E[f - 7] + g + E[f - 16];\n }\n var m = r & a ^ r & o ^ a & o,\n v = (r << 30 | r >>> 2) ^ (r << 19 | r >>> 13) ^ (r << 10 | r >>> 22),\n b = d + ((s << 26 | s >>> 6) ^ (s << 21 | s >>> 11) ^ (s << 7 | s >>> 25)) + (s & l ^ ~s & c) + C[f] + E[f];\n d = c, c = l, l = s, s = i + b | 0, i = o, o = a, a = r, r = b + (v + m) | 0;\n }\n\n n[0] = n[0] + r | 0, n[1] = n[1] + a | 0, n[2] = n[2] + o | 0, n[3] = n[3] + i | 0, n[4] = n[4] + s | 0, n[5] = n[5] + l | 0, n[6] = n[6] + c | 0, n[7] = n[7] + d | 0;\n },\n _doFinalize: function _doFinalize() {\n var e = this._data,\n t = e.words,\n n = 8 * this._nDataBytes,\n r = 8 * e.sigBytes;\n return t[r >>> 5] |= 128 << 24 - r % 32, t[14 + (r + 64 >>> 9 << 4)] = a.floor(n / 4294967296), t[15 + (r + 64 >>> 9 << 4)] = n, e.sigBytes = 4 * t.length, this._process(), this._hash;\n },\n clone: function e() {\n var e = r.clone.call(this);\n return e._hash = this._hash.clone(), e;\n }\n });\n e.SHA256 = r._createHelper(s), e.HmacSHA256 = r._createHmacHelper(s);\n }(Math), function () {\n var e = ve,\n a = e.lib.WordArray,\n t = e.enc;\n t.Utf16 = t.Utf16BE = {\n stringify: function stringify(e) {\n for (var t = e.words, n = e.sigBytes, r = [], a = 0; a < n; a += 2) {\n var o = t[a >>> 2] >>> 16 - a % 4 * 8 & 65535;\n r.push(String.fromCharCode(o));\n }\n\n return r.join(\"\");\n },\n parse: function parse(e) {\n for (var t = e.length, n = [], r = 0; r < t; r++) {\n n[r >>> 1] |= e.charCodeAt(r) << 16 - r % 2 * 16;\n }\n\n return a.create(n, 2 * t);\n }\n };\n\n function i(e) {\n return e << 8 & 4278255360 | e >>> 8 & 16711935;\n }\n\n t.Utf16LE = {\n stringify: function stringify(e) {\n for (var t = e.words, n = e.sigBytes, r = [], a = 0; a < n; a += 2) {\n var o = i(t[a >>> 2] >>> 16 - a % 4 * 8 & 65535);\n r.push(String.fromCharCode(o));\n }\n\n return r.join(\"\");\n },\n parse: function parse(e) {\n for (var t = e.length, n = [], r = 0; r < t; r++) {\n n[r >>> 1] |= i(e.charCodeAt(r) << 16 - r % 2 * 16);\n }\n\n return a.create(n, 2 * t);\n }\n };\n }(), function () {\n if (\"function\" == typeof ArrayBuffer) {\n var e = ve.lib.WordArray,\n a = e.init;\n (e.init = function (e) {\n if (e instanceof ArrayBuffer && (e = new Uint8Array(e)), (e instanceof Int8Array || \"undefined\" != typeof Uint8ClampedArray && e instanceof Uint8ClampedArray || e instanceof Int16Array || e instanceof Uint16Array || e instanceof Int32Array || e instanceof Uint32Array || e instanceof Float32Array || e instanceof Float64Array) && (e = new Uint8Array(e.buffer, e.byteOffset, e.byteLength)), e instanceof Uint8Array) {\n for (var t = e.byteLength, n = [], r = 0; r < t; r++) {\n n[r >>> 2] |= e[r] << 24 - r % 4 * 8;\n }\n\n a.call(this, n, t);\n } else a.apply(this, arguments);\n }).prototype = e;\n }\n }(), function (e) {\n var t = ve,\n n = t.lib,\n r = n.WordArray,\n a = n.Hasher,\n o = t.algo,\n A = r.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]),\n L = r.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]),\n S = r.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]),\n w = r.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]),\n R = r.create([0, 1518500249, 1859775393, 2400959708, 2840853838]),\n _ = r.create([1352829926, 1548603684, 1836072691, 2053994217, 0]),\n i = o.RIPEMD160 = a.extend({\n _doReset: function _doReset() {\n this._hash = r.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]);\n },\n _doProcessBlock: function _doProcessBlock(e, t) {\n for (var n = 0; n < 16; n++) {\n var r = t + n,\n a = e[r];\n e[r] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8);\n }\n\n var o,\n i,\n s,\n l,\n c,\n d,\n f,\n p,\n u,\n h,\n g,\n m = this._hash.words,\n v = R.words,\n b = _.words,\n C = A.words,\n E = L.words,\n y = S.words,\n T = w.words;\n d = o = m[0], f = i = m[1], p = s = m[2], u = l = m[3], h = c = m[4];\n\n for (n = 0; n < 80; n += 1) {\n g = o + e[t + C[n]] | 0, g += n < 16 ? x(i, s, l) + v[0] : n < 32 ? M(i, s, l) + v[1] : n < 48 ? O(i, s, l) + v[2] : n < 64 ? N(i, s, l) + v[3] : k(i, s, l) + v[4], g = (g = I(g |= 0, y[n])) + c | 0, o = c, c = l, l = I(s, 10), s = i, i = g, g = d + e[t + E[n]] | 0, g += n < 16 ? k(f, p, u) + b[0] : n < 32 ? N(f, p, u) + b[1] : n < 48 ? O(f, p, u) + b[2] : n < 64 ? M(f, p, u) + b[3] : x(f, p, u) + b[4], g = (g = I(g |= 0, T[n])) + h | 0, d = h, h = u, u = I(p, 10), p = f, f = g;\n }\n\n g = m[1] + s + u | 0, m[1] = m[2] + l + h | 0, m[2] = m[3] + c + d | 0, m[3] = m[4] + o + f | 0, m[4] = m[0] + i + p | 0, m[0] = g;\n },\n _doFinalize: function _doFinalize() {\n var e = this._data,\n t = e.words,\n n = 8 * this._nDataBytes,\n r = 8 * e.sigBytes;\n t[r >>> 5] |= 128 << 24 - r % 32, t[14 + (r + 64 >>> 9 << 4)] = 16711935 & (n << 8 | n >>> 24) | 4278255360 & (n << 24 | n >>> 8), e.sigBytes = 4 * (t.length + 1), this._process();\n\n for (var a = this._hash, o = a.words, i = 0; i < 5; i++) {\n var s = o[i];\n o[i] = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8);\n }\n\n return a;\n },\n clone: function e() {\n var e = a.clone.call(this);\n return e._hash = this._hash.clone(), e;\n }\n });\n\n function x(e, t, n) {\n return e ^ t ^ n;\n }\n\n function M(e, t, n) {\n return e & t | ~e & n;\n }\n\n function O(e, t, n) {\n return (e | ~t) ^ n;\n }\n\n function N(e, t, n) {\n return e & n | t & ~n;\n }\n\n function k(e, t, n) {\n return e ^ (t | ~n);\n }\n\n function I(e, t) {\n return e << t | e >>> 32 - t;\n }\n\n t.RIPEMD160 = a._createHelper(i), t.HmacRIPEMD160 = a._createHmacHelper(i);\n }(Math), c = (l = ve).lib.Base, p = l.enc.Utf8, l.algo.HMAC = c.extend({\n init: function init(e, t) {\n e = this._hasher = new e.init(), \"string\" == typeof t && (t = p.parse(t));\n var n = e.blockSize,\n r = 4 * n;\n t.sigBytes > r && (t = e.finalize(t)), t.clamp();\n\n for (var a = this._oKey = t.clone(), o = this._iKey = t.clone(), i = a.words, s = o.words, l = 0; l < n; l++) {\n i[l] ^= 1549556828, s[l] ^= 909522486;\n }\n\n a.sigBytes = o.sigBytes = r, this.reset();\n },\n reset: function reset() {\n var e = this._hasher;\n e.reset(), e.update(this._iKey);\n },\n update: function update(e) {\n return this._hasher.update(e), this;\n },\n finalize: function finalize(e) {\n var t = this._hasher,\n n = t.finalize(e);\n return t.reset(), t.finalize(this._oKey.clone().concat(n));\n }\n }), h = (u = ve).lib, g = h.Base, v = h.WordArray, m = u.algo, b = m.SHA1, C = m.HMAC, E = m.PBKDF2 = g.extend({\n cfg: g.extend({\n keySize: 4,\n hasher: b,\n iterations: 1\n }),\n init: function init(e) {\n this.cfg = this.cfg.extend(e);\n },\n compute: function compute(e, t) {\n for (var n = this.cfg, r = C.create(n.hasher, e), a = v.create(), o = v.create([1]), i = a.words, s = o.words, l = n.keySize, c = n.iterations; i.length < l;) {\n var d = r.update(t).finalize(o);\n r.reset();\n\n for (var f = d.words, p = f.length, u = d, h = 1; h < c; h++) {\n u = r.finalize(u), r.reset();\n\n for (var g = u.words, m = 0; m < p; m++) {\n f[m] ^= g[m];\n }\n }\n\n a.concat(d), s[0]++;\n }\n\n return a.sigBytes = 4 * l, a;\n }\n }), u.PBKDF2 = function (e, t, n) {\n return E.create(n).compute(e, t);\n }, T = (y = ve).lib, A = T.Base, L = T.WordArray, S = y.algo, w = S.MD5, R = S.EvpKDF = A.extend({\n cfg: A.extend({\n keySize: 4,\n hasher: w,\n iterations: 1\n }),\n init: function init(e) {\n this.cfg = this.cfg.extend(e);\n },\n compute: function compute(e, t) {\n for (var n, r = this.cfg, a = r.hasher.create(), o = L.create(), i = o.words, s = r.keySize, l = r.iterations; i.length < s;) {\n n && a.update(n), n = a.update(e).finalize(t), a.reset();\n\n for (var c = 1; c < l; c++) {\n n = a.finalize(n), a.reset();\n }\n\n o.concat(n);\n }\n\n return o.sigBytes = 4 * s, o;\n }\n }), y.EvpKDF = function (e, t, n) {\n return R.create(n).compute(e, t);\n }, x = (_ = ve).lib.WordArray, M = _.algo, O = M.SHA256, N = M.SHA224 = O.extend({\n _doReset: function _doReset() {\n this._hash = new x.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]);\n },\n _doFinalize: function _doFinalize() {\n var e = O._doFinalize.call(this);\n\n return e.sigBytes -= 4, e;\n }\n }), _.SHA224 = O._createHelper(N), _.HmacSHA224 = O._createHmacHelper(N), I = (k = ve).lib, D = I.Base, B = I.WordArray, (F = k.x64 = {}).Word = D.extend({\n init: function init(e, t) {\n this.high = e, this.low = t;\n }\n }), F.WordArray = D.extend({\n init: function init(e, t) {\n e = this.words = e || [], this.sigBytes = null != t ? t : 8 * e.length;\n },\n toX32: function toX32() {\n for (var e = this.words, t = e.length, n = [], r = 0; r < t; r++) {\n var a = e[r];\n n.push(a.high), n.push(a.low);\n }\n\n return B.create(n, this.sigBytes);\n },\n clone: function e() {\n for (var e = D.clone.call(this), t = e.words = this.words.slice(0), n = t.length, r = 0; r < n; r++) {\n t[r] = t[r].clone();\n }\n\n return e;\n }\n }), function (p) {\n var e = ve,\n t = e.lib,\n u = t.WordArray,\n r = t.Hasher,\n d = e.x64.Word,\n n = e.algo,\n x = [],\n M = [],\n O = [];\n !function () {\n for (var e = 1, t = 0, n = 0; n < 24; n++) {\n x[e + 5 * t] = (n + 1) * (n + 2) / 2 % 64;\n var r = (2 * e + 3 * t) % 5;\n e = t % 5, t = r;\n }\n\n for (e = 0; e < 5; e++) {\n for (t = 0; t < 5; t++) {\n M[e + 5 * t] = t + (2 * e + 3 * t) % 5 * 5;\n }\n }\n\n for (var a = 1, o = 0; o < 24; o++) {\n for (var i = 0, s = 0, l = 0; l < 7; l++) {\n if (1 & a) {\n var c = (1 << l) - 1;\n c < 32 ? s ^= 1 << c : i ^= 1 << c - 32;\n }\n\n 128 & a ? a = a << 1 ^ 113 : a <<= 1;\n }\n\n O[o] = d.create(i, s);\n }\n }();\n var N = [];\n !function () {\n for (var e = 0; e < 25; e++) {\n N[e] = d.create();\n }\n }();\n var a = n.SHA3 = r.extend({\n cfg: r.cfg.extend({\n outputLength: 512\n }),\n _doReset: function _doReset() {\n for (var e = this._state = [], t = 0; t < 25; t++) {\n e[t] = new d.init();\n }\n\n this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;\n },\n _doProcessBlock: function _doProcessBlock(e, t) {\n for (var n = this._state, r = this.blockSize / 2, a = 0; a < r; a++) {\n var o = e[t + 2 * a],\n i = e[t + 2 * a + 1];\n o = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), i = 16711935 & (i << 8 | i >>> 24) | 4278255360 & (i << 24 | i >>> 8), (L = n[a]).high ^= i, L.low ^= o;\n }\n\n for (var s = 0; s < 24; s++) {\n for (var l = 0; l < 5; l++) {\n for (var c = 0, d = 0, f = 0; f < 5; f++) {\n c ^= (L = n[l + 5 * f]).high, d ^= L.low;\n }\n\n var p = N[l];\n p.high = c, p.low = d;\n }\n\n for (l = 0; l < 5; l++) {\n var u = N[(l + 4) % 5],\n h = N[(l + 1) % 5],\n g = h.high,\n m = h.low;\n\n for (c = u.high ^ (g << 1 | m >>> 31), d = u.low ^ (m << 1 | g >>> 31), f = 0; f < 5; f++) {\n (L = n[l + 5 * f]).high ^= c, L.low ^= d;\n }\n }\n\n for (var v = 1; v < 25; v++) {\n var b = (L = n[v]).high,\n C = L.low,\n E = x[v];\n d = E < 32 ? (c = b << E | C >>> 32 - E, C << E | b >>> 32 - E) : (c = C << E - 32 | b >>> 64 - E, b << E - 32 | C >>> 64 - E);\n var y = N[M[v]];\n y.high = c, y.low = d;\n }\n\n var T = N[0],\n A = n[0];\n T.high = A.high, T.low = A.low;\n\n for (l = 0; l < 5; l++) {\n for (f = 0; f < 5; f++) {\n var L = n[v = l + 5 * f],\n S = N[v],\n w = N[(l + 1) % 5 + 5 * f],\n R = N[(l + 2) % 5 + 5 * f];\n L.high = S.high ^ ~w.high & R.high, L.low = S.low ^ ~w.low & R.low;\n }\n }\n\n L = n[0];\n var _ = O[s];\n L.high ^= _.high, L.low ^= _.low;\n }\n },\n _doFinalize: function _doFinalize() {\n var e = this._data,\n t = e.words,\n n = (this._nDataBytes, 8 * e.sigBytes),\n r = 32 * this.blockSize;\n t[n >>> 5] |= 1 << 24 - n % 32, t[(p.ceil((n + 1) / r) * r >>> 5) - 1] |= 128, e.sigBytes = 4 * t.length, this._process();\n\n for (var a = this._state, o = this.cfg.outputLength / 8, i = o / 8, s = [], l = 0; l < i; l++) {\n var c = a[l],\n d = c.high,\n f = c.low;\n d = 16711935 & (d << 8 | d >>> 24) | 4278255360 & (d << 24 | d >>> 8), f = 16711935 & (f << 8 | f >>> 24) | 4278255360 & (f << 24 | f >>> 8), s.push(f), s.push(d);\n }\n\n return new u.init(s, o);\n },\n clone: function e() {\n for (var e = r.clone.call(this), t = e._state = this._state.slice(0), n = 0; n < 25; n++) {\n t[n] = t[n].clone();\n }\n\n return e;\n }\n });\n e.SHA3 = r._createHelper(a), e.HmacSHA3 = r._createHmacHelper(a);\n }(Math), function () {\n var e = ve,\n t = e.lib.Hasher,\n n = e.x64,\n r = n.Word,\n a = n.WordArray,\n o = e.algo;\n\n function i() {\n return r.create.apply(r, arguments);\n }\n\n var Ae = [i(1116352408, 3609767458), i(1899447441, 602891725), i(3049323471, 3964484399), i(3921009573, 2173295548), i(961987163, 4081628472), i(1508970993, 3053834265), i(2453635748, 2937671579), i(2870763221, 3664609560), i(3624381080, 2734883394), i(310598401, 1164996542), i(607225278, 1323610764), i(1426881987, 3590304994), i(1925078388, 4068182383), i(2162078206, 991336113), i(2614888103, 633803317), i(3248222580, 3479774868), i(3835390401, 2666613458), i(4022224774, 944711139), i(264347078, 2341262773), i(604807628, 2007800933), i(770255983, 1495990901), i(1249150122, 1856431235), i(1555081692, 3175218132), i(1996064986, 2198950837), i(2554220882, 3999719339), i(2821834349, 766784016), i(2952996808, 2566594879), i(3210313671, 3203337956), i(3336571891, 1034457026), i(3584528711, 2466948901), i(113926993, 3758326383), i(338241895, 168717936), i(666307205, 1188179964), i(773529912, 1546045734), i(1294757372, 1522805485), i(1396182291, 2643833823), i(1695183700, 2343527390), i(1986661051, 1014477480), i(2177026350, 1206759142), i(2456956037, 344077627), i(2730485921, 1290863460), i(2820302411, 3158454273), i(3259730800, 3505952657), i(3345764771, 106217008), i(3516065817, 3606008344), i(3600352804, 1432725776), i(4094571909, 1467031594), i(275423344, 851169720), i(430227734, 3100823752), i(506948616, 1363258195), i(659060556, 3750685593), i(883997877, 3785050280), i(958139571, 3318307427), i(1322822218, 3812723403), i(1537002063, 2003034995), i(1747873779, 3602036899), i(1955562222, 1575990012), i(2024104815, 1125592928), i(2227730452, 2716904306), i(2361852424, 442776044), i(2428436474, 593698344), i(2756734187, 3733110249), i(3204031479, 2999351573), i(3329325298, 3815920427), i(3391569614, 3928383900), i(3515267271, 566280711), i(3940187606, 3454069534), i(4118630271, 4000239992), i(116418474, 1914138554), i(174292421, 2731055270), i(289380356, 3203993006), i(460393269, 320620315), i(685471733, 587496836), i(852142971, 1086792851), i(1017036298, 365543100), i(1126000580, 2618297676), i(1288033470, 3409855158), i(1501505948, 4234509866), i(1607167915, 987167468), i(1816402316, 1246189591)],\n Le = [];\n !function () {\n for (var e = 0; e < 80; e++) {\n Le[e] = i();\n }\n }();\n var s = o.SHA512 = t.extend({\n _doReset: function _doReset() {\n this._hash = new a.init([new r.init(1779033703, 4089235720), new r.init(3144134277, 2227873595), new r.init(1013904242, 4271175723), new r.init(2773480762, 1595750129), new r.init(1359893119, 2917565137), new r.init(2600822924, 725511199), new r.init(528734635, 4215389547), new r.init(1541459225, 327033209)]);\n },\n _doProcessBlock: function _doProcessBlock(e, t) {\n for (var n = this._hash.words, r = n[0], a = n[1], o = n[2], i = n[3], s = n[4], l = n[5], c = n[6], d = n[7], f = r.high, p = r.low, u = a.high, h = a.low, g = o.high, m = o.low, v = i.high, b = i.low, C = s.high, E = s.low, y = l.high, T = l.low, A = c.high, L = c.low, S = d.high, w = d.low, R = f, _ = p, x = u, M = h, O = g, N = m, k = v, I = b, D = C, B = E, F = y, $ = T, P = A, H = L, U = S, K = w, z = 0; z < 80; z++) {\n var W,\n V,\n G = Le[z];\n if (z < 16) V = G.high = 0 | e[t + 2 * z], W = G.low = 0 | e[t + 2 * z + 1];else {\n var Y = Le[z - 15],\n j = Y.high,\n q = Y.low,\n X = (j >>> 1 | q << 31) ^ (j >>> 8 | q << 24) ^ j >>> 7,\n Z = (q >>> 1 | j << 31) ^ (q >>> 8 | j << 24) ^ (q >>> 7 | j << 25),\n Q = Le[z - 2],\n J = Q.high,\n ee = Q.low,\n te = (J >>> 19 | ee << 13) ^ (J << 3 | ee >>> 29) ^ J >>> 6,\n ne = (ee >>> 19 | J << 13) ^ (ee << 3 | J >>> 29) ^ (ee >>> 6 | J << 26),\n re = Le[z - 7],\n ae = re.high,\n oe = re.low,\n ie = Le[z - 16],\n se = ie.high,\n le = ie.low;\n V = (V = (V = X + ae + ((W = Z + oe) >>> 0 < Z >>> 0 ? 1 : 0)) + te + ((W += ne) >>> 0 < ne >>> 0 ? 1 : 0)) + se + ((W += le) >>> 0 < le >>> 0 ? 1 : 0), G.high = V, G.low = W;\n }\n var ce,\n de = D & F ^ ~D & P,\n fe = B & $ ^ ~B & H,\n pe = R & x ^ R & O ^ x & O,\n ue = _ & M ^ _ & N ^ M & N,\n he = (R >>> 28 | _ << 4) ^ (R << 30 | _ >>> 2) ^ (R << 25 | _ >>> 7),\n ge = (_ >>> 28 | R << 4) ^ (_ << 30 | R >>> 2) ^ (_ << 25 | R >>> 7),\n me = (D >>> 14 | B << 18) ^ (D >>> 18 | B << 14) ^ (D << 23 | B >>> 9),\n ve = (B >>> 14 | D << 18) ^ (B >>> 18 | D << 14) ^ (B << 23 | D >>> 9),\n be = Ae[z],\n Ce = be.high,\n Ee = be.low,\n ye = U + me + ((ce = K + ve) >>> 0 < K >>> 0 ? 1 : 0),\n Te = ge + ue;\n U = P, K = H, P = F, H = $, F = D, $ = B, D = k + (ye = (ye = (ye = ye + de + ((ce = ce + fe) >>> 0 < fe >>> 0 ? 1 : 0)) + Ce + ((ce = ce + Ee) >>> 0 < Ee >>> 0 ? 1 : 0)) + V + ((ce = ce + W) >>> 0 < W >>> 0 ? 1 : 0)) + ((B = I + ce | 0) >>> 0 < I >>> 0 ? 1 : 0) | 0, k = O, I = N, O = x, N = M, x = R, M = _, R = ye + (he + pe + (Te >>> 0 < ge >>> 0 ? 1 : 0)) + ((_ = ce + Te | 0) >>> 0 < ce >>> 0 ? 1 : 0) | 0;\n }\n\n p = r.low = p + _, r.high = f + R + (p >>> 0 < _ >>> 0 ? 1 : 0), h = a.low = h + M, a.high = u + x + (h >>> 0 < M >>> 0 ? 1 : 0), m = o.low = m + N, o.high = g + O + (m >>> 0 < N >>> 0 ? 1 : 0), b = i.low = b + I, i.high = v + k + (b >>> 0 < I >>> 0 ? 1 : 0), E = s.low = E + B, s.high = C + D + (E >>> 0 < B >>> 0 ? 1 : 0), T = l.low = T + $, l.high = y + F + (T >>> 0 < $ >>> 0 ? 1 : 0), L = c.low = L + H, c.high = A + P + (L >>> 0 < H >>> 0 ? 1 : 0), w = d.low = w + K, d.high = S + U + (w >>> 0 < K >>> 0 ? 1 : 0);\n },\n _doFinalize: function _doFinalize() {\n var e = this._data,\n t = e.words,\n n = 8 * this._nDataBytes,\n r = 8 * e.sigBytes;\n return t[r >>> 5] |= 128 << 24 - r % 32, t[30 + (r + 128 >>> 10 << 5)] = Math.floor(n / 4294967296), t[31 + (r + 128 >>> 10 << 5)] = n, e.sigBytes = 4 * t.length, this._process(), this._hash.toX32();\n },\n clone: function e() {\n var e = t.clone.call(this);\n return e._hash = this._hash.clone(), e;\n },\n blockSize: 32\n });\n e.SHA512 = t._createHelper(s), e.HmacSHA512 = t._createHmacHelper(s);\n }(), P = ($ = ve).x64, H = P.Word, U = P.WordArray, K = $.algo, z = K.SHA512, W = K.SHA384 = z.extend({\n _doReset: function _doReset() {\n this._hash = new U.init([new H.init(3418070365, 3238371032), new H.init(1654270250, 914150663), new H.init(2438529370, 812702999), new H.init(355462360, 4144912697), new H.init(1731405415, 4290775857), new H.init(2394180231, 1750603025), new H.init(3675008525, 1694076839), new H.init(1203062813, 3204075428)]);\n },\n _doFinalize: function _doFinalize() {\n var e = z._doFinalize.call(this);\n\n return e.sigBytes -= 16, e;\n }\n }), $.SHA384 = z._createHelper(W), $.HmacSHA384 = z._createHmacHelper(W), ve.lib.Cipher || (G = (V = ve).lib, Y = G.Base, j = G.WordArray, q = G.BufferedBlockAlgorithm, (X = V.enc).Utf8, Z = X.Base64, Q = V.algo.EvpKDF, J = G.Cipher = q.extend({\n cfg: Y.extend(),\n createEncryptor: function createEncryptor(e, t) {\n return this.create(this._ENC_XFORM_MODE, e, t);\n },\n createDecryptor: function createDecryptor(e, t) {\n return this.create(this._DEC_XFORM_MODE, e, t);\n },\n init: function init(e, t, n) {\n this.cfg = this.cfg.extend(n), this._xformMode = e, this._key = t, this.reset();\n },\n reset: function reset() {\n q.reset.call(this), this._doReset();\n },\n process: function process(e) {\n return this._append(e), this._process();\n },\n finalize: function finalize(e) {\n return e && this._append(e), this._doFinalize();\n },\n keySize: 4,\n ivSize: 4,\n _ENC_XFORM_MODE: 1,\n _DEC_XFORM_MODE: 2,\n _createHelper: function () {\n function a(e) {\n return \"string\" == typeof e ? le : ie;\n }\n\n return function (r) {\n return {\n encrypt: function encrypt(e, t, n) {\n return a(t).encrypt(r, e, t, n);\n },\n decrypt: function decrypt(e, t, n) {\n return a(t).decrypt(r, e, t, n);\n }\n };\n };\n }()\n }), G.StreamCipher = J.extend({\n _doFinalize: function _doFinalize() {\n return this._process(!0);\n },\n blockSize: 1\n }), ee = V.mode = {}, te = G.BlockCipherMode = Y.extend({\n createEncryptor: function createEncryptor(e, t) {\n return this.Encryptor.create(e, t);\n },\n createDecryptor: function createDecryptor(e, t) {\n return this.Decryptor.create(e, t);\n },\n init: function init(e, t) {\n this._cipher = e, this._iv = t;\n }\n }), ne = ee.CBC = function () {\n var e = te.extend();\n\n function o(e, t, n) {\n var r,\n a = this._iv;\n a ? (r = a, this._iv = void 0) : r = this._prevBlock;\n\n for (var o = 0; o < n; o++) {\n e[t + o] ^= r[o];\n }\n }\n\n return e.Encryptor = e.extend({\n processBlock: function processBlock(e, t) {\n var n = this._cipher,\n r = n.blockSize;\n o.call(this, e, t, r), n.encryptBlock(e, t), this._prevBlock = e.slice(t, t + r);\n }\n }), e.Decryptor = e.extend({\n processBlock: function processBlock(e, t) {\n var n = this._cipher,\n r = n.blockSize,\n a = e.slice(t, t + r);\n n.decryptBlock(e, t), o.call(this, e, t, r), this._prevBlock = a;\n }\n }), e;\n }(), re = (V.pad = {}).Pkcs7 = {\n pad: function pad(e, t) {\n for (var n = 4 * t, r = n - e.sigBytes % n, a = r << 24 | r << 16 | r << 8 | r, o = [], i = 0; i < r; i += 4) {\n o.push(a);\n }\n\n var s = j.create(o, r);\n e.concat(s);\n },\n unpad: function unpad(e) {\n var t = 255 & e.words[e.sigBytes - 1 >>> 2];\n e.sigBytes -= t;\n }\n }, G.BlockCipher = J.extend({\n cfg: J.cfg.extend({\n mode: ne,\n padding: re\n }),\n reset: function reset() {\n var e;\n J.reset.call(this);\n var t = this.cfg,\n n = t.iv,\n r = t.mode;\n this._xformMode == this._ENC_XFORM_MODE ? e = r.createEncryptor : (e = r.createDecryptor, this._minBufferSize = 1), this._mode && this._mode.__creator == e ? this._mode.init(this, n && n.words) : (this._mode = e.call(r, this, n && n.words), this._mode.__creator = e);\n },\n _doProcessBlock: function _doProcessBlock(e, t) {\n this._mode.processBlock(e, t);\n },\n _doFinalize: function _doFinalize() {\n var e,\n t = this.cfg.padding;\n return this._xformMode == this._ENC_XFORM_MODE ? (t.pad(this._data, this.blockSize), e = this._process(!0)) : (e = this._process(!0), t.unpad(e)), e;\n },\n blockSize: 4\n }), ae = G.CipherParams = Y.extend({\n init: function init(e) {\n this.mixIn(e);\n },\n toString: function toString(e) {\n return (e || this.formatter).stringify(this);\n }\n }), oe = (V.format = {}).OpenSSL = {\n stringify: function stringify(e) {\n var t = e.ciphertext,\n n = e.salt;\n return (n ? j.create([1398893684, 1701076831]).concat(n).concat(t) : t).toString(Z);\n },\n parse: function parse(e) {\n var t,\n n = Z.parse(e),\n r = n.words;\n return 1398893684 == r[0] && 1701076831 == r[1] && (t = j.create(r.slice(2, 4)), r.splice(0, 4), n.sigBytes -= 16), ae.create({\n ciphertext: n,\n salt: t\n });\n }\n }, ie = G.SerializableCipher = Y.extend({\n cfg: Y.extend({\n format: oe\n }),\n encrypt: function encrypt(e, t, n, r) {\n r = this.cfg.extend(r);\n var a = e.createEncryptor(n, r),\n o = a.finalize(t),\n i = a.cfg;\n return ae.create({\n ciphertext: o,\n key: n,\n iv: i.iv,\n algorithm: e,\n mode: i.mode,\n padding: i.padding,\n blockSize: e.blockSize,\n formatter: r.format\n });\n },\n decrypt: function decrypt(e, t, n, r) {\n return r = this.cfg.extend(r), t = this._parse(t, r.format), e.createDecryptor(n, r).finalize(t.ciphertext);\n },\n _parse: function _parse(e, t) {\n return \"string\" == typeof e ? t.parse(e, this) : e;\n }\n }), se = (V.kdf = {}).OpenSSL = {\n execute: function execute(e, t, n, r) {\n r || (r = j.random(8));\n var a = Q.create({\n keySize: t + n\n }).compute(e, r),\n o = j.create(a.words.slice(t), 4 * n);\n return a.sigBytes = 4 * t, ae.create({\n key: a,\n iv: o,\n salt: r\n });\n }\n }, le = G.PasswordBasedCipher = ie.extend({\n cfg: ie.cfg.extend({\n kdf: se\n }),\n encrypt: function encrypt(e, t, n, r) {\n var a = (r = this.cfg.extend(r)).kdf.execute(n, e.keySize, e.ivSize);\n r.iv = a.iv;\n var o = ie.encrypt.call(this, e, t, a.key, r);\n return o.mixIn(a), o;\n },\n decrypt: function decrypt(e, t, n, r) {\n r = this.cfg.extend(r), t = this._parse(t, r.format);\n var a = r.kdf.execute(n, e.keySize, e.ivSize, t.salt);\n return r.iv = a.iv, ie.decrypt.call(this, e, t, a.key, r);\n }\n })), ve.mode.CFB = function () {\n var e = ve.lib.BlockCipherMode.extend();\n\n function o(e, t, n, r) {\n var a,\n o = this._iv;\n o ? (a = o.slice(0), this._iv = undefined) : a = this._prevBlock, r.encryptBlock(a, 0);\n\n for (var i = 0; i < n; i++) {\n e[t + i] ^= a[i];\n }\n }\n\n return e.Encryptor = e.extend({\n processBlock: function processBlock(e, t) {\n var n = this._cipher,\n r = n.blockSize;\n o.call(this, e, t, r, n), this._prevBlock = e.slice(t, t + r);\n }\n }), e.Decryptor = e.extend({\n processBlock: function processBlock(e, t) {\n var n = this._cipher,\n r = n.blockSize,\n a = e.slice(t, t + r);\n o.call(this, e, t, r, n), this._prevBlock = a;\n }\n }), e;\n }(), ve.mode.ECB = ((ce = ve.lib.BlockCipherMode.extend()).Encryptor = ce.extend({\n processBlock: function processBlock(e, t) {\n this._cipher.encryptBlock(e, t);\n }\n }), ce.Decryptor = ce.extend({\n processBlock: function processBlock(e, t) {\n this._cipher.decryptBlock(e, t);\n }\n }), ce), ve.pad.AnsiX923 = {\n pad: function pad(e, t) {\n var n = e.sigBytes,\n r = 4 * t,\n a = r - n % r,\n o = n + a - 1;\n e.clamp(), e.words[o >>> 2] |= a << 24 - o % 4 * 8, e.sigBytes += a;\n },\n unpad: function unpad(e) {\n var t = 255 & e.words[e.sigBytes - 1 >>> 2];\n e.sigBytes -= t;\n }\n }, ve.pad.Iso10126 = {\n pad: function pad(e, t) {\n var n = 4 * t,\n r = n - e.sigBytes % n;\n e.concat(ve.lib.WordArray.random(r - 1)).concat(ve.lib.WordArray.create([r << 24], 1));\n },\n unpad: function unpad(e) {\n var t = 255 & e.words[e.sigBytes - 1 >>> 2];\n e.sigBytes -= t;\n }\n }, ve.pad.Iso97971 = {\n pad: function pad(e, t) {\n e.concat(ve.lib.WordArray.create([2147483648], 1)), ve.pad.ZeroPadding.pad(e, t);\n },\n unpad: function unpad(e) {\n ve.pad.ZeroPadding.unpad(e), e.sigBytes--;\n }\n }, ve.mode.OFB = (de = ve.lib.BlockCipherMode.extend(), fe = de.Encryptor = de.extend({\n processBlock: function processBlock(e, t) {\n var n = this._cipher,\n r = n.blockSize,\n a = this._iv,\n o = this._keystream;\n a && (o = this._keystream = a.slice(0), this._iv = undefined), n.encryptBlock(o, 0);\n\n for (var i = 0; i < r; i++) {\n e[t + i] ^= o[i];\n }\n }\n }), de.Decryptor = fe, de), ve.pad.NoPadding = {\n pad: function pad() {},\n unpad: function unpad() {}\n }, ue = (pe = ve).lib.CipherParams, he = pe.enc.Hex, pe.format.Hex = {\n stringify: function stringify(e) {\n return e.ciphertext.toString(he);\n },\n parse: function parse(e) {\n var t = he.parse(e);\n return ue.create({\n ciphertext: t\n });\n }\n }, function () {\n var e = ve,\n t = e.lib.BlockCipher,\n n = e.algo,\n c = [],\n d = [],\n f = [],\n p = [],\n u = [],\n h = [],\n g = [],\n m = [],\n v = [],\n b = [];\n !function () {\n for (var e = [], t = 0; t < 256; t++) {\n e[t] = t < 128 ? t << 1 : t << 1 ^ 283;\n }\n\n var n = 0,\n r = 0;\n\n for (t = 0; t < 256; t++) {\n var a = r ^ r << 1 ^ r << 2 ^ r << 3 ^ r << 4;\n a = a >>> 8 ^ 255 & a ^ 99, c[n] = a;\n var o = e[d[a] = n],\n i = e[o],\n s = e[i],\n l = 257 * e[a] ^ 16843008 * a;\n f[n] = l << 24 | l >>> 8, p[n] = l << 16 | l >>> 16, u[n] = l << 8 | l >>> 24, h[n] = l;\n l = 16843009 * s ^ 65537 * i ^ 257 * o ^ 16843008 * n;\n g[a] = l << 24 | l >>> 8, m[a] = l << 16 | l >>> 16, v[a] = l << 8 | l >>> 24, b[a] = l, n ? (n = o ^ e[e[e[s ^ o]]], r ^= e[e[r]]) : n = r = 1;\n }\n }();\n var C = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54],\n r = n.AES = t.extend({\n _doReset: function _doReset() {\n if (!this._nRounds || this._keyPriorReset !== this._key) {\n for (var e = this._keyPriorReset = this._key, t = e.words, n = e.sigBytes / 4, r = 4 * ((this._nRounds = n + 6) + 1), a = this._keySchedule = [], o = 0; o < r; o++) {\n o < n ? a[o] = t[o] : (l = a[o - 1], o % n ? 6 < n && o % n == 4 && (l = c[l >>> 24] << 24 | c[l >>> 16 & 255] << 16 | c[l >>> 8 & 255] << 8 | c[255 & l]) : (l = c[(l = l << 8 | l >>> 24) >>> 24] << 24 | c[l >>> 16 & 255] << 16 | c[l >>> 8 & 255] << 8 | c[255 & l], l ^= C[o / n | 0] << 24), a[o] = a[o - n] ^ l);\n }\n\n for (var i = this._invKeySchedule = [], s = 0; s < r; s++) {\n o = r - s;\n if (s % 4) var l = a[o];else l = a[o - 4];\n i[s] = s < 4 || o <= 4 ? l : g[c[l >>> 24]] ^ m[c[l >>> 16 & 255]] ^ v[c[l >>> 8 & 255]] ^ b[c[255 & l]];\n }\n }\n },\n encryptBlock: function encryptBlock(e, t) {\n this._doCryptBlock(e, t, this._keySchedule, f, p, u, h, c);\n },\n decryptBlock: function decryptBlock(e, t) {\n var n = e[t + 1];\n e[t + 1] = e[t + 3], e[t + 3] = n, this._doCryptBlock(e, t, this._invKeySchedule, g, m, v, b, d);\n n = e[t + 1];\n e[t + 1] = e[t + 3], e[t + 3] = n;\n },\n _doCryptBlock: function _doCryptBlock(e, t, n, r, a, o, i, s) {\n for (var l = this._nRounds, c = e[t] ^ n[0], d = e[t + 1] ^ n[1], f = e[t + 2] ^ n[2], p = e[t + 3] ^ n[3], u = 4, h = 1; h < l; h++) {\n var g = r[c >>> 24] ^ a[d >>> 16 & 255] ^ o[f >>> 8 & 255] ^ i[255 & p] ^ n[u++],\n m = r[d >>> 24] ^ a[f >>> 16 & 255] ^ o[p >>> 8 & 255] ^ i[255 & c] ^ n[u++],\n v = r[f >>> 24] ^ a[p >>> 16 & 255] ^ o[c >>> 8 & 255] ^ i[255 & d] ^ n[u++],\n b = r[p >>> 24] ^ a[c >>> 16 & 255] ^ o[d >>> 8 & 255] ^ i[255 & f] ^ n[u++];\n c = g, d = m, f = v, p = b;\n }\n\n g = (s[c >>> 24] << 24 | s[d >>> 16 & 255] << 16 | s[f >>> 8 & 255] << 8 | s[255 & p]) ^ n[u++], m = (s[d >>> 24] << 24 | s[f >>> 16 & 255] << 16 | s[p >>> 8 & 255] << 8 | s[255 & c]) ^ n[u++], v = (s[f >>> 24] << 24 | s[p >>> 16 & 255] << 16 | s[c >>> 8 & 255] << 8 | s[255 & d]) ^ n[u++], b = (s[p >>> 24] << 24 | s[c >>> 16 & 255] << 16 | s[d >>> 8 & 255] << 8 | s[255 & f]) ^ n[u++];\n e[t] = g, e[t + 1] = m, e[t + 2] = v, e[t + 3] = b;\n },\n keySize: 8\n });\n e.AES = t._createHelper(r);\n }(), function () {\n var e = ve,\n t = e.lib,\n a = t.WordArray,\n n = t.BlockCipher,\n r = e.algo,\n c = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4],\n d = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32],\n f = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28],\n p = [{\n 0: 8421888,\n 268435456: 32768,\n 536870912: 8421378,\n 805306368: 2,\n 1073741824: 512,\n 1342177280: 8421890,\n 1610612736: 8389122,\n 1879048192: 8388608,\n 2147483648: 514,\n 2415919104: 8389120,\n 2684354560: 33280,\n 2952790016: 8421376,\n 3221225472: 32770,\n 3489660928: 8388610,\n 3758096384: 0,\n 4026531840: 33282,\n 134217728: 0,\n 402653184: 8421890,\n 671088640: 33282,\n 939524096: 32768,\n 1207959552: 8421888,\n 1476395008: 512,\n 1744830464: 8421378,\n 2013265920: 2,\n 2281701376: 8389120,\n 2550136832: 33280,\n 2818572288: 8421376,\n 3087007744: 8389122,\n 3355443200: 8388610,\n 3623878656: 32770,\n 3892314112: 514,\n 4160749568: 8388608,\n 1: 32768,\n 268435457: 2,\n 536870913: 8421888,\n 805306369: 8388608,\n 1073741825: 8421378,\n 1342177281: 33280,\n 1610612737: 512,\n 1879048193: 8389122,\n 2147483649: 8421890,\n 2415919105: 8421376,\n 2684354561: 8388610,\n 2952790017: 33282,\n 3221225473: 514,\n 3489660929: 8389120,\n 3758096385: 32770,\n 4026531841: 0,\n 134217729: 8421890,\n 402653185: 8421376,\n 671088641: 8388608,\n 939524097: 512,\n 1207959553: 32768,\n 1476395009: 8388610,\n 1744830465: 2,\n 2013265921: 33282,\n 2281701377: 32770,\n 2550136833: 8389122,\n 2818572289: 514,\n 3087007745: 8421888,\n 3355443201: 8389120,\n 3623878657: 0,\n 3892314113: 33280,\n 4160749569: 8421378\n }, {\n 0: 1074282512,\n 16777216: 16384,\n 33554432: 524288,\n 50331648: 1074266128,\n 67108864: 1073741840,\n 83886080: 1074282496,\n 100663296: 1073758208,\n 117440512: 16,\n 134217728: 540672,\n 150994944: 1073758224,\n 167772160: 1073741824,\n 184549376: 540688,\n 201326592: 524304,\n 218103808: 0,\n 234881024: 16400,\n 251658240: 1074266112,\n 8388608: 1073758208,\n 25165824: 540688,\n 41943040: 16,\n 58720256: 1073758224,\n 75497472: 1074282512,\n 92274688: 1073741824,\n 109051904: 524288,\n 125829120: 1074266128,\n 142606336: 524304,\n 159383552: 0,\n 176160768: 16384,\n 192937984: 1074266112,\n 209715200: 1073741840,\n 226492416: 540672,\n 243269632: 1074282496,\n 260046848: 16400,\n 268435456: 0,\n 285212672: 1074266128,\n 301989888: 1073758224,\n 318767104: 1074282496,\n 335544320: 1074266112,\n 352321536: 16,\n 369098752: 540688,\n 385875968: 16384,\n 402653184: 16400,\n 419430400: 524288,\n 436207616: 524304,\n 452984832: 1073741840,\n 469762048: 540672,\n 486539264: 1073758208,\n 503316480: 1073741824,\n 520093696: 1074282512,\n 276824064: 540688,\n 293601280: 524288,\n 310378496: 1074266112,\n 327155712: 16384,\n 343932928: 1073758208,\n 360710144: 1074282512,\n 377487360: 16,\n 394264576: 1073741824,\n 411041792: 1074282496,\n 427819008: 1073741840,\n 444596224: 1073758224,\n 461373440: 524304,\n 478150656: 0,\n 494927872: 16400,\n 511705088: 1074266128,\n 528482304: 540672\n }, {\n 0: 260,\n 1048576: 0,\n 2097152: 67109120,\n 3145728: 65796,\n 4194304: 65540,\n 5242880: 67108868,\n 6291456: 67174660,\n 7340032: 67174400,\n 8388608: 67108864,\n 9437184: 67174656,\n 10485760: 65792,\n 11534336: 67174404,\n 12582912: 67109124,\n 13631488: 65536,\n 14680064: 4,\n 15728640: 256,\n 524288: 67174656,\n 1572864: 67174404,\n 2621440: 0,\n 3670016: 67109120,\n 4718592: 67108868,\n 5767168: 65536,\n 6815744: 65540,\n 7864320: 260,\n 8912896: 4,\n 9961472: 256,\n 11010048: 67174400,\n 12058624: 65796,\n 13107200: 65792,\n 14155776: 67109124,\n 15204352: 67174660,\n 16252928: 67108864,\n 16777216: 67174656,\n 17825792: 65540,\n 18874368: 65536,\n 19922944: 67109120,\n 20971520: 256,\n 22020096: 67174660,\n 23068672: 67108868,\n 24117248: 0,\n 25165824: 67109124,\n 26214400: 67108864,\n 27262976: 4,\n 28311552: 65792,\n 29360128: 67174400,\n 30408704: 260,\n 31457280: 65796,\n 32505856: 67174404,\n 17301504: 67108864,\n 18350080: 260,\n 19398656: 67174656,\n 20447232: 0,\n 21495808: 65540,\n 22544384: 67109120,\n 23592960: 256,\n 24641536: 67174404,\n 25690112: 65536,\n 26738688: 67174660,\n 27787264: 65796,\n 28835840: 67108868,\n 29884416: 67109124,\n 30932992: 67174400,\n 31981568: 4,\n 33030144: 65792\n }, {\n 0: 2151682048,\n 65536: 2147487808,\n 131072: 4198464,\n 196608: 2151677952,\n 262144: 0,\n 327680: 4198400,\n 393216: 2147483712,\n 458752: 4194368,\n 524288: 2147483648,\n 589824: 4194304,\n 655360: 64,\n 720896: 2147487744,\n 786432: 2151678016,\n 851968: 4160,\n 917504: 4096,\n 983040: 2151682112,\n 32768: 2147487808,\n 98304: 64,\n 163840: 2151678016,\n 229376: 2147487744,\n 294912: 4198400,\n 360448: 2151682112,\n 425984: 0,\n 491520: 2151677952,\n 557056: 4096,\n 622592: 2151682048,\n 688128: 4194304,\n 753664: 4160,\n 819200: 2147483648,\n 884736: 4194368,\n 950272: 4198464,\n 1015808: 2147483712,\n 1048576: 4194368,\n 1114112: 4198400,\n 1179648: 2147483712,\n 1245184: 0,\n 1310720: 4160,\n 1376256: 2151678016,\n 1441792: 2151682048,\n 1507328: 2147487808,\n 1572864: 2151682112,\n 1638400: 2147483648,\n 1703936: 2151677952,\n 1769472: 4198464,\n 1835008: 2147487744,\n 1900544: 4194304,\n 1966080: 64,\n 2031616: 4096,\n 1081344: 2151677952,\n 1146880: 2151682112,\n 1212416: 0,\n 1277952: 4198400,\n 1343488: 4194368,\n 1409024: 2147483648,\n 1474560: 2147487808,\n 1540096: 64,\n 1605632: 2147483712,\n 1671168: 4096,\n 1736704: 2147487744,\n 1802240: 2151678016,\n 1867776: 4160,\n 1933312: 2151682048,\n 1998848: 4194304,\n 2064384: 4198464\n }, {\n 0: 128,\n 4096: 17039360,\n 8192: 262144,\n 12288: 536870912,\n 16384: 537133184,\n 20480: 16777344,\n 24576: 553648256,\n 28672: 262272,\n 32768: 16777216,\n 36864: 537133056,\n 40960: 536871040,\n 45056: 553910400,\n 49152: 553910272,\n 53248: 0,\n 57344: 17039488,\n 61440: 553648128,\n 2048: 17039488,\n 6144: 553648256,\n 10240: 128,\n 14336: 17039360,\n 18432: 262144,\n 22528: 537133184,\n 26624: 553910272,\n 30720: 536870912,\n 34816: 537133056,\n 38912: 0,\n 43008: 553910400,\n 47104: 16777344,\n 51200: 536871040,\n 55296: 553648128,\n 59392: 16777216,\n 63488: 262272,\n 65536: 262144,\n 69632: 128,\n 73728: 536870912,\n 77824: 553648256,\n 81920: 16777344,\n 86016: 553910272,\n 90112: 537133184,\n 94208: 16777216,\n 98304: 553910400,\n 102400: 553648128,\n 106496: 17039360,\n 110592: 537133056,\n 114688: 262272,\n 118784: 536871040,\n 122880: 0,\n 126976: 17039488,\n 67584: 553648256,\n 71680: 16777216,\n 75776: 17039360,\n 79872: 537133184,\n 83968: 536870912,\n 88064: 17039488,\n 92160: 128,\n 96256: 553910272,\n 100352: 262272,\n 104448: 553910400,\n 108544: 0,\n 112640: 553648128,\n 116736: 16777344,\n 120832: 262144,\n 124928: 537133056,\n 129024: 536871040\n }, {\n 0: 268435464,\n 256: 8192,\n 512: 270532608,\n 768: 270540808,\n 1024: 268443648,\n 1280: 2097152,\n 1536: 2097160,\n 1792: 268435456,\n 2048: 0,\n 2304: 268443656,\n 2560: 2105344,\n 2816: 8,\n 3072: 270532616,\n 3328: 2105352,\n 3584: 8200,\n 3840: 270540800,\n 128: 270532608,\n 384: 270540808,\n 640: 8,\n 896: 2097152,\n 1152: 2105352,\n 1408: 268435464,\n 1664: 268443648,\n 1920: 8200,\n 2176: 2097160,\n 2432: 8192,\n 2688: 268443656,\n 2944: 270532616,\n 3200: 0,\n 3456: 270540800,\n 3712: 2105344,\n 3968: 268435456,\n 4096: 268443648,\n 4352: 270532616,\n 4608: 270540808,\n 4864: 8200,\n 5120: 2097152,\n 5376: 268435456,\n 5632: 268435464,\n 5888: 2105344,\n 6144: 2105352,\n 6400: 0,\n 6656: 8,\n 6912: 270532608,\n 7168: 8192,\n 7424: 268443656,\n 7680: 270540800,\n 7936: 2097160,\n 4224: 8,\n 4480: 2105344,\n 4736: 2097152,\n 4992: 268435464,\n 5248: 268443648,\n 5504: 8200,\n 5760: 270540808,\n 6016: 270532608,\n 6272: 270540800,\n 6528: 270532616,\n 6784: 8192,\n 7040: 2105352,\n 7296: 2097160,\n 7552: 0,\n 7808: 268435456,\n 8064: 268443656\n }, {\n 0: 1048576,\n 16: 33555457,\n 32: 1024,\n 48: 1049601,\n 64: 34604033,\n 80: 0,\n 96: 1,\n 112: 34603009,\n 128: 33555456,\n 144: 1048577,\n 160: 33554433,\n 176: 34604032,\n 192: 34603008,\n 208: 1025,\n 224: 1049600,\n 240: 33554432,\n 8: 34603009,\n 24: 0,\n 40: 33555457,\n 56: 34604032,\n 72: 1048576,\n 88: 33554433,\n 104: 33554432,\n 120: 1025,\n 136: 1049601,\n 152: 33555456,\n 168: 34603008,\n 184: 1048577,\n 200: 1024,\n 216: 34604033,\n 232: 1,\n 248: 1049600,\n 256: 33554432,\n 272: 1048576,\n 288: 33555457,\n 304: 34603009,\n 320: 1048577,\n 336: 33555456,\n 352: 34604032,\n 368: 1049601,\n 384: 1025,\n 400: 34604033,\n 416: 1049600,\n 432: 1,\n 448: 0,\n 464: 34603008,\n 480: 33554433,\n 496: 1024,\n 264: 1049600,\n 280: 33555457,\n 296: 34603009,\n 312: 1,\n 328: 33554432,\n 344: 1048576,\n 360: 1025,\n 376: 34604032,\n 392: 33554433,\n 408: 34603008,\n 424: 0,\n 440: 34604033,\n 456: 1049601,\n 472: 1024,\n 488: 33555456,\n 504: 1048577\n }, {\n 0: 134219808,\n 1: 131072,\n 2: 134217728,\n 3: 32,\n 4: 131104,\n 5: 134350880,\n 6: 134350848,\n 7: 2048,\n 8: 134348800,\n 9: 134219776,\n 10: 133120,\n 11: 134348832,\n 12: 2080,\n 13: 0,\n 14: 134217760,\n 15: 133152,\n 2147483648: 2048,\n 2147483649: 134350880,\n 2147483650: 134219808,\n 2147483651: 134217728,\n 2147483652: 134348800,\n 2147483653: 133120,\n 2147483654: 133152,\n 2147483655: 32,\n 2147483656: 134217760,\n 2147483657: 2080,\n 2147483658: 131104,\n 2147483659: 134350848,\n 2147483660: 0,\n 2147483661: 134348832,\n 2147483662: 134219776,\n 2147483663: 131072,\n 16: 133152,\n 17: 134350848,\n 18: 32,\n 19: 2048,\n 20: 134219776,\n 21: 134217760,\n 22: 134348832,\n 23: 131072,\n 24: 0,\n 25: 131104,\n 26: 134348800,\n 27: 134219808,\n 28: 134350880,\n 29: 133120,\n 30: 2080,\n 31: 134217728,\n 2147483664: 131072,\n 2147483665: 2048,\n 2147483666: 134348832,\n 2147483667: 133152,\n 2147483668: 32,\n 2147483669: 134348800,\n 2147483670: 134217728,\n 2147483671: 134219808,\n 2147483672: 134350880,\n 2147483673: 134217760,\n 2147483674: 134219776,\n 2147483675: 0,\n 2147483676: 133120,\n 2147483677: 2080,\n 2147483678: 131104,\n 2147483679: 134350848\n }],\n u = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679],\n o = r.DES = n.extend({\n _doReset: function _doReset() {\n for (var e = this._key.words, t = [], n = 0; n < 56; n++) {\n var r = c[n] - 1;\n t[n] = e[r >>> 5] >>> 31 - r % 32 & 1;\n }\n\n for (var a = this._subKeys = [], o = 0; o < 16; o++) {\n var i = a[o] = [],\n s = f[o];\n\n for (n = 0; n < 24; n++) {\n i[n / 6 | 0] |= t[(d[n] - 1 + s) % 28] << 31 - n % 6, i[4 + (n / 6 | 0)] |= t[28 + (d[n + 24] - 1 + s) % 28] << 31 - n % 6;\n }\n\n i[0] = i[0] << 1 | i[0] >>> 31;\n\n for (n = 1; n < 7; n++) {\n i[n] = i[n] >>> 4 * (n - 1) + 3;\n }\n\n i[7] = i[7] << 5 | i[7] >>> 27;\n }\n\n var l = this._invSubKeys = [];\n\n for (n = 0; n < 16; n++) {\n l[n] = a[15 - n];\n }\n },\n encryptBlock: function encryptBlock(e, t) {\n this._doCryptBlock(e, t, this._subKeys);\n },\n decryptBlock: function decryptBlock(e, t) {\n this._doCryptBlock(e, t, this._invSubKeys);\n },\n _doCryptBlock: function _doCryptBlock(e, t, n) {\n this._lBlock = e[t], this._rBlock = e[t + 1], h.call(this, 4, 252645135), h.call(this, 16, 65535), g.call(this, 2, 858993459), g.call(this, 8, 16711935), h.call(this, 1, 1431655765);\n\n for (var r = 0; r < 16; r++) {\n for (var a = n[r], o = this._lBlock, i = this._rBlock, s = 0, l = 0; l < 8; l++) {\n s |= p[l][((i ^ a[l]) & u[l]) >>> 0];\n }\n\n this._lBlock = i, this._rBlock = o ^ s;\n }\n\n var c = this._lBlock;\n this._lBlock = this._rBlock, this._rBlock = c, h.call(this, 1, 1431655765), g.call(this, 8, 16711935), g.call(this, 2, 858993459), h.call(this, 16, 65535), h.call(this, 4, 252645135), e[t] = this._lBlock, e[t + 1] = this._rBlock;\n },\n keySize: 2,\n ivSize: 2,\n blockSize: 2\n });\n\n function h(e, t) {\n var n = (this._lBlock >>> e ^ this._rBlock) & t;\n this._rBlock ^= n, this._lBlock ^= n << e;\n }\n\n function g(e, t) {\n var n = (this._rBlock >>> e ^ this._lBlock) & t;\n this._lBlock ^= n, this._rBlock ^= n << e;\n }\n\n e.DES = n._createHelper(o);\n var i = r.TripleDES = n.extend({\n _doReset: function _doReset() {\n var e = this._key.words;\n if (2 !== e.length && 4 !== e.length && e.length < 6) throw new Error(\"Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.\");\n var t = e.slice(0, 2),\n n = e.length < 4 ? e.slice(0, 2) : e.slice(2, 4),\n r = e.length < 6 ? e.slice(0, 2) : e.slice(4, 6);\n this._des1 = o.createEncryptor(a.create(t)), this._des2 = o.createEncryptor(a.create(n)), this._des3 = o.createEncryptor(a.create(r));\n },\n encryptBlock: function encryptBlock(e, t) {\n this._des1.encryptBlock(e, t), this._des2.decryptBlock(e, t), this._des3.encryptBlock(e, t);\n },\n decryptBlock: function decryptBlock(e, t) {\n this._des3.decryptBlock(e, t), this._des2.encryptBlock(e, t), this._des1.decryptBlock(e, t);\n },\n keySize: 6,\n ivSize: 2,\n blockSize: 2\n });\n e.TripleDES = n._createHelper(i);\n }(), function () {\n var e = ve,\n t = e.lib.StreamCipher,\n n = e.algo,\n r = n.RC4 = t.extend({\n _doReset: function _doReset() {\n for (var e = this._key, t = e.words, n = e.sigBytes, r = this._S = [], a = 0; a < 256; a++) {\n r[a] = a;\n }\n\n a = 0;\n\n for (var o = 0; a < 256; a++) {\n var i = a % n,\n s = t[i >>> 2] >>> 24 - i % 4 * 8 & 255;\n o = (o + r[a] + s) % 256;\n var l = r[a];\n r[a] = r[o], r[o] = l;\n }\n\n this._i = this._j = 0;\n },\n _doProcessBlock: function _doProcessBlock(e, t) {\n e[t] ^= a.call(this);\n },\n keySize: 8,\n ivSize: 0\n });\n\n function a() {\n for (var e = this._S, t = this._i, n = this._j, r = 0, a = 0; a < 4; a++) {\n n = (n + e[t = (t + 1) % 256]) % 256;\n var o = e[t];\n e[t] = e[n], e[n] = o, r |= e[(e[t] + e[n]) % 256] << 24 - 8 * a;\n }\n\n return this._i = t, this._j = n, r;\n }\n\n e.RC4 = t._createHelper(r);\n var o = n.RC4Drop = r.extend({\n cfg: r.cfg.extend({\n drop: 192\n }),\n _doReset: function _doReset() {\n r._doReset.call(this);\n\n for (var e = this.cfg.drop; 0 < e; e--) {\n a.call(this);\n }\n }\n });\n e.RC4Drop = t._createHelper(o);\n }(), ve.mode.CTRGladman = function () {\n var e = ve.lib.BlockCipherMode.extend();\n\n function c(e) {\n if (255 == (e >> 24 & 255)) {\n var t = e >> 16 & 255,\n n = e >> 8 & 255,\n r = 255 & e;\n 255 === t ? (t = 0, 255 === n ? (n = 0, 255 === r ? r = 0 : ++r) : ++n) : ++t, e = 0, e += t << 16, e += n << 8, e += r;\n } else e += 1 << 24;\n\n return e;\n }\n\n var t = e.Encryptor = e.extend({\n processBlock: function processBlock(e, t) {\n var n = this._cipher,\n r = n.blockSize,\n a = this._iv,\n o = this._counter;\n a && (o = this._counter = a.slice(0), this._iv = undefined), function l(e) {\n return 0 === (e[0] = c(e[0])) && (e[1] = c(e[1])), e;\n }(o);\n var i = o.slice(0);\n n.encryptBlock(i, 0);\n\n for (var s = 0; s < r; s++) {\n e[t + s] ^= i[s];\n }\n }\n });\n return e.Decryptor = t, e;\n }(), function () {\n var e = ve,\n t = e.lib.StreamCipher,\n n = e.algo,\n a = [],\n l = [],\n c = [],\n r = n.Rabbit = t.extend({\n _doReset: function _doReset() {\n for (var e = this._key.words, t = this.cfg.iv, n = 0; n < 4; n++) {\n e[n] = 16711935 & (e[n] << 8 | e[n] >>> 24) | 4278255360 & (e[n] << 24 | e[n] >>> 8);\n }\n\n var r = this._X = [e[0], e[3] << 16 | e[2] >>> 16, e[1], e[0] << 16 | e[3] >>> 16, e[2], e[1] << 16 | e[0] >>> 16, e[3], e[2] << 16 | e[1] >>> 16],\n a = this._C = [e[2] << 16 | e[2] >>> 16, 4294901760 & e[0] | 65535 & e[1], e[3] << 16 | e[3] >>> 16, 4294901760 & e[1] | 65535 & e[2], e[0] << 16 | e[0] >>> 16, 4294901760 & e[2] | 65535 & e[3], e[1] << 16 | e[1] >>> 16, 4294901760 & e[3] | 65535 & e[0]];\n\n for (n = this._b = 0; n < 4; n++) {\n p.call(this);\n }\n\n for (n = 0; n < 8; n++) {\n a[n] ^= r[n + 4 & 7];\n }\n\n if (t) {\n var o = t.words,\n i = o[0],\n s = o[1],\n l = 16711935 & (i << 8 | i >>> 24) | 4278255360 & (i << 24 | i >>> 8),\n c = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8),\n d = l >>> 16 | 4294901760 & c,\n f = c << 16 | 65535 & l;\n a[0] ^= l, a[1] ^= d, a[2] ^= c, a[3] ^= f, a[4] ^= l, a[5] ^= d, a[6] ^= c, a[7] ^= f;\n\n for (n = 0; n < 4; n++) {\n p.call(this);\n }\n }\n },\n _doProcessBlock: function _doProcessBlock(e, t) {\n var n = this._X;\n p.call(this), a[0] = n[0] ^ n[5] >>> 16 ^ n[3] << 16, a[1] = n[2] ^ n[7] >>> 16 ^ n[5] << 16, a[2] = n[4] ^ n[1] >>> 16 ^ n[7] << 16, a[3] = n[6] ^ n[3] >>> 16 ^ n[1] << 16;\n\n for (var r = 0; r < 4; r++) {\n a[r] = 16711935 & (a[r] << 8 | a[r] >>> 24) | 4278255360 & (a[r] << 24 | a[r] >>> 8), e[t + r] ^= a[r];\n }\n },\n blockSize: 4,\n ivSize: 2\n });\n\n function p() {\n for (var e = this._X, t = this._C, n = 0; n < 8; n++) {\n l[n] = t[n];\n }\n\n t[0] = t[0] + 1295307597 + this._b | 0, t[1] = t[1] + 3545052371 + (t[0] >>> 0 < l[0] >>> 0 ? 1 : 0) | 0, t[2] = t[2] + 886263092 + (t[1] >>> 0 < l[1] >>> 0 ? 1 : 0) | 0, t[3] = t[3] + 1295307597 + (t[2] >>> 0 < l[2] >>> 0 ? 1 : 0) | 0, t[4] = t[4] + 3545052371 + (t[3] >>> 0 < l[3] >>> 0 ? 1 : 0) | 0, t[5] = t[5] + 886263092 + (t[4] >>> 0 < l[4] >>> 0 ? 1 : 0) | 0, t[6] = t[6] + 1295307597 + (t[5] >>> 0 < l[5] >>> 0 ? 1 : 0) | 0, t[7] = t[7] + 3545052371 + (t[6] >>> 0 < l[6] >>> 0 ? 1 : 0) | 0, this._b = t[7] >>> 0 < l[7] >>> 0 ? 1 : 0;\n\n for (n = 0; n < 8; n++) {\n var r = e[n] + t[n],\n a = 65535 & r,\n o = r >>> 16,\n i = ((a * a >>> 17) + a * o >>> 15) + o * o,\n s = ((4294901760 & r) * r | 0) + ((65535 & r) * r | 0);\n c[n] = i ^ s;\n }\n\n e[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, e[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, e[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, e[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, e[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, e[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, e[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, e[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0;\n }\n\n e.Rabbit = t._createHelper(r);\n }(), ve.mode.CTR = (ge = ve.lib.BlockCipherMode.extend(), me = ge.Encryptor = ge.extend({\n processBlock: function processBlock(e, t) {\n var n = this._cipher,\n r = n.blockSize,\n a = this._iv,\n o = this._counter;\n a && (o = this._counter = a.slice(0), this._iv = undefined);\n var i = o.slice(0);\n n.encryptBlock(i, 0), o[r - 1] = o[r - 1] + 1 | 0;\n\n for (var s = 0; s < r; s++) {\n e[t + s] ^= i[s];\n }\n }\n }), ge.Decryptor = me, ge), function () {\n var e = ve,\n t = e.lib.StreamCipher,\n n = e.algo,\n a = [],\n l = [],\n c = [],\n r = n.RabbitLegacy = t.extend({\n _doReset: function _doReset() {\n for (var e = this._key.words, t = this.cfg.iv, n = this._X = [e[0], e[3] << 16 | e[2] >>> 16, e[1], e[0] << 16 | e[3] >>> 16, e[2], e[1] << 16 | e[0] >>> 16, e[3], e[2] << 16 | e[1] >>> 16], r = this._C = [e[2] << 16 | e[2] >>> 16, 4294901760 & e[0] | 65535 & e[1], e[3] << 16 | e[3] >>> 16, 4294901760 & e[1] | 65535 & e[2], e[0] << 16 | e[0] >>> 16, 4294901760 & e[2] | 65535 & e[3], e[1] << 16 | e[1] >>> 16, 4294901760 & e[3] | 65535 & e[0]], a = this._b = 0; a < 4; a++) {\n p.call(this);\n }\n\n for (a = 0; a < 8; a++) {\n r[a] ^= n[a + 4 & 7];\n }\n\n if (t) {\n var o = t.words,\n i = o[0],\n s = o[1],\n l = 16711935 & (i << 8 | i >>> 24) | 4278255360 & (i << 24 | i >>> 8),\n c = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8),\n d = l >>> 16 | 4294901760 & c,\n f = c << 16 | 65535 & l;\n r[0] ^= l, r[1] ^= d, r[2] ^= c, r[3] ^= f, r[4] ^= l, r[5] ^= d, r[6] ^= c, r[7] ^= f;\n\n for (a = 0; a < 4; a++) {\n p.call(this);\n }\n }\n },\n _doProcessBlock: function _doProcessBlock(e, t) {\n var n = this._X;\n p.call(this), a[0] = n[0] ^ n[5] >>> 16 ^ n[3] << 16, a[1] = n[2] ^ n[7] >>> 16 ^ n[5] << 16, a[2] = n[4] ^ n[1] >>> 16 ^ n[7] << 16, a[3] = n[6] ^ n[3] >>> 16 ^ n[1] << 16;\n\n for (var r = 0; r < 4; r++) {\n a[r] = 16711935 & (a[r] << 8 | a[r] >>> 24) | 4278255360 & (a[r] << 24 | a[r] >>> 8), e[t + r] ^= a[r];\n }\n },\n blockSize: 4,\n ivSize: 2\n });\n\n function p() {\n for (var e = this._X, t = this._C, n = 0; n < 8; n++) {\n l[n] = t[n];\n }\n\n t[0] = t[0] + 1295307597 + this._b | 0, t[1] = t[1] + 3545052371 + (t[0] >>> 0 < l[0] >>> 0 ? 1 : 0) | 0, t[2] = t[2] + 886263092 + (t[1] >>> 0 < l[1] >>> 0 ? 1 : 0) | 0, t[3] = t[3] + 1295307597 + (t[2] >>> 0 < l[2] >>> 0 ? 1 : 0) | 0, t[4] = t[4] + 3545052371 + (t[3] >>> 0 < l[3] >>> 0 ? 1 : 0) | 0, t[5] = t[5] + 886263092 + (t[4] >>> 0 < l[4] >>> 0 ? 1 : 0) | 0, t[6] = t[6] + 1295307597 + (t[5] >>> 0 < l[5] >>> 0 ? 1 : 0) | 0, t[7] = t[7] + 3545052371 + (t[6] >>> 0 < l[6] >>> 0 ? 1 : 0) | 0, this._b = t[7] >>> 0 < l[7] >>> 0 ? 1 : 0;\n\n for (n = 0; n < 8; n++) {\n var r = e[n] + t[n],\n a = 65535 & r,\n o = r >>> 16,\n i = ((a * a >>> 17) + a * o >>> 15) + o * o,\n s = ((4294901760 & r) * r | 0) + ((65535 & r) * r | 0);\n c[n] = i ^ s;\n }\n\n e[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, e[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, e[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, e[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, e[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, e[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, e[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, e[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0;\n }\n\n e.RabbitLegacy = t._createHelper(r);\n }(), ve.pad.ZeroPadding = {\n pad: function pad(e, t) {\n var n = 4 * t;\n e.clamp(), e.sigBytes += n - (e.sigBytes % n || n);\n },\n unpad: function unpad(e) {\n var t = e.words,\n n = e.sigBytes - 1;\n\n for (n = e.sigBytes - 1; 0 <= n; n--) {\n if (t[n >>> 2] >>> 24 - n % 4 * 8 & 255) {\n e.sigBytes = n + 1;\n break;\n }\n }\n }\n }, {\n init: function be() {},\n cryptoJS: ve\n };\n }, Object.assign(xt.DEFAULTS, {\n fontFamily: {\n \"Arial,Helvetica,sans-serif\": \"Arial\",\n \"Georgia,serif\": \"Georgia\",\n \"Impact,Charcoal,sans-serif\": \"Impact\",\n \"Tahoma,Geneva,sans-serif\": \"Tahoma\",\n \"Times New Roman,Times,serif,-webkit-standard\": \"Times New Roman\",\n \"Verdana,Geneva,sans-serif\": \"Verdana\"\n },\n fontFamilySelection: !1,\n fontFamilyDefaultSelection: \"Font Family\"\n }), xt.PLUGINS.fontFamily = function (a) {\n var o = a.$;\n\n function i(e) {\n var t = e.replace(/(sans-serif|serif|monospace|cursive|fantasy)/gi, \"\").replace(/\"|'| /g, \"\").split(\",\");\n return o(this).grep(t, function (e) {\n return 0 < e.length;\n });\n }\n\n function s(e, t) {\n for (var n = 0; n < e.length; n++) {\n for (var r = 0; r < t.length; r++) {\n if (e[n].toLowerCase() === t[r].toLowerCase()) return [n, r];\n }\n }\n\n return null;\n }\n\n function n() {\n var e = i(o(a.selection.element()).css(\"font-family\")),\n t = [];\n\n for (var n in a.opts.fontFamily) {\n if (a.opts.fontFamily.hasOwnProperty(n)) {\n var r = s(e, i(n));\n r && t.push([n, r]);\n }\n }\n\n return 0 === t.length ? null : (t.sort(function (e, t) {\n var n = e[1][0] - t[1][0];\n return 0 === n ? e[1][1] - t[1][1] : n;\n }), t[0][0]);\n }\n\n return {\n apply: function t(e) {\n a.format.applyStyle(\"font-family\", e);\n },\n refreshOnShow: function r(e, t) {\n t.find(\".fr-command.fr-active\").removeClass(\"fr-active\").attr(\"aria-selected\", !1), t.find('.fr-command[data-param1=\"'.concat(n(), '\"]')).addClass(\"fr-active\").attr(\"aria-selected\", !0);\n },\n refresh: function l(e) {\n if (a.opts.fontFamilySelection) {\n var t = o(a.selection.element()).css(\"font-family\").replace(/(sans-serif|serif|monospace|cursive|fantasy)/gi, \"\").replace(/\"|'|/g, \"\").split(\",\");\n e.find(\"> span\").text(a.opts.fontFamily[n()] || t[0] || a.language.translate(a.opts.fontFamilyDefaultSelection));\n }\n }\n };\n }, xt.RegisterCommand(\"fontFamily\", {\n type: \"dropdown\",\n displaySelection: function displaySelection(e) {\n return e.opts.fontFamilySelection;\n },\n defaultSelection: function defaultSelection(e) {\n return e.opts.fontFamilyDefaultSelection;\n },\n displaySelectionWidth: 120,\n html: function html() {\n var e = '
      ',\n t = this.opts.fontFamily;\n\n for (var n in t) {\n t.hasOwnProperty(n) && (e += '
    • ').concat(t[n], \"
    • \"));\n }\n\n return e += \"
    \";\n },\n title: \"Font Family\",\n callback: function callback(e, t) {\n this.fontFamily.apply(t);\n },\n refresh: function refresh(e) {\n this.fontFamily.refresh(e);\n },\n refreshOnShow: function refreshOnShow(e, t) {\n this.fontFamily.refreshOnShow(e, t);\n },\n plugin: \"fontFamily\"\n }), xt.DefineIcon(\"fontFamily\", {\n NAME: \"font\",\n SVG_KEY: \"fontFamily\"\n }), Object.assign(xt.DEFAULTS, {\n fontSize: [\"8\", \"9\", \"10\", \"11\", \"12\", \"14\", \"18\", \"24\", \"30\", \"36\", \"48\", \"60\", \"72\", \"96\"],\n fontSizeSelection: !1,\n fontSizeDefaultSelection: \"12\",\n fontSizeUnit: \"px\"\n }), xt.PLUGINS.fontSize = function (r) {\n var a = r.$;\n return {\n apply: function t(e) {\n r.format.applyStyle(\"font-size\", e);\n },\n refreshOnShow: function o(e, t) {\n var n = a(r.selection.element()).css(\"font-size\");\n \"pt\" === r.opts.fontSizeUnit && (n = \"\".concat(Math.round(72 * parseFloat(n, 10) / 96), \"pt\")), t.find(\".fr-command.fr-active\").removeClass(\"fr-active\").attr(\"aria-selected\", !1), t.find('.fr-command[data-param1=\"'.concat(n, '\"]')).addClass(\"fr-active\").attr(\"aria-selected\", !0);\n },\n refresh: function n(e) {\n if (r.opts.fontSizeSelection) {\n var t = r.helpers.getPX(a(r.selection.element()).css(\"font-size\"));\n \"pt\" === r.opts.fontSizeUnit && (t = \"\".concat(Math.round(72 * parseFloat(t, 10) / 96), \"pt\")), e.find(\"> span\").text(t);\n }\n }\n };\n }, xt.RegisterCommand(\"fontSize\", {\n type: \"dropdown\",\n title: \"Font Size\",\n displaySelection: function displaySelection(e) {\n return e.opts.fontSizeSelection;\n },\n displaySelectionWidth: 30,\n defaultSelection: function defaultSelection(e) {\n return e.opts.fontSizeDefaultSelection;\n },\n html: function html() {\n for (var e = '
      ', t = this.opts.fontSize, n = 0; n < t.length; n++) {\n var r = t[n];\n e += '
    • ').concat(r, \"
    • \");\n }\n\n return e += \"
    \";\n },\n callback: function callback(e, t) {\n this.fontSize.apply(t);\n },\n refresh: function refresh(e) {\n this.fontSize.refresh(e);\n },\n refreshOnShow: function refreshOnShow(e, t) {\n this.fontSize.refreshOnShow(e, t);\n },\n plugin: \"fontSize\"\n }), xt.DefineIcon(\"fontSize\", {\n NAME: \"text-height\",\n SVG_KEY: \"fontSize\"\n }), Object.assign(xt.POPUP_TEMPLATES, {\n \"forms.edit\": \"[_BUTTONS_]\",\n \"forms.update\": \"[_BUTTONS_][_TEXT_LAYER_]\"\n }), Object.assign(xt.DEFAULTS, {\n formEditButtons: [\"inputStyle\", \"inputEdit\"],\n formStyles: {\n \"fr-rounded\": \"Rounded\",\n \"fr-large\": \"Large\"\n },\n formMultipleStyles: !0,\n formUpdateButtons: [\"inputBack\", \"|\"]\n }), xt.PLUGINS.forms = function (i) {\n var s,\n l = i.$;\n\n function t(e) {\n i.selection.clear(), l(this).data(\"mousedown\", !0);\n }\n\n function n(e) {\n l(this).data(\"mousedown\") && (e.stopPropagation(), l(this).removeData(\"mousedown\"), d(s = this)), e.preventDefault();\n }\n\n function r() {\n i.$el.find(\"input, textarea, button\").removeData(\"mousedown\");\n }\n\n function a() {\n l(this).removeData(\"mousedown\");\n }\n\n function c() {\n return s || null;\n }\n\n function d(e) {\n if (-1 == [\"checkbox\", \"radio\"].indexOf(e.type)) {\n var t = i.popups.get(\"forms.edit\");\n t || (t = function o() {\n var e = \"\";\n 0 < i.opts.formEditButtons.length && (e = '
    '.concat(i.button.buildList(i.opts.formEditButtons), \"
    \"));\n var t = {\n buttons: e\n },\n n = i.popups.create(\"forms.edit\", t);\n return i.$wp && i.events.$on(i.$wp, \"scroll.link-edit\", function () {\n c() && i.popups.isVisible(\"forms.edit\") && d(c());\n }), n;\n }());\n var n = l(s = e);\n i.popups.refresh(\"forms.edit\"), i.popups.setContainer(\"forms.edit\", i.$sc);\n var r = n.offset().left + n.outerWidth() / 2,\n a = n.offset().top + n.outerHeight();\n i.popups.show(\"forms.edit\", r, a, n.outerHeight());\n }\n }\n\n function o() {\n var e = i.popups.get(\"forms.update\"),\n t = c();\n\n if (t) {\n var n = l(t);\n n.is(\"button\") ? e.find('input[type=\"text\"][name=\"text\"]').val(n.text()) : n.is(\"input[type=button]\") || n.is(\"input[type=submit]\") || n.is(\"input[type=reset]\") ? e.find('input[type=\"text\"][name=\"text\"]').val(n.val()) : e.find('input[type=\"text\"][name=\"text\"]').val(n.attr(\"placeholder\"));\n }\n\n e.find('input[type=\"text\"][name=\"text\"]').trigger(\"change\");\n }\n\n function f() {\n s = null;\n }\n\n function p(e) {\n if (e) return i.popups.onRefresh(\"forms.update\", o), i.popups.onHide(\"forms.update\", f), !0;\n var t = \"\";\n 1 <= i.opts.formUpdateButtons.length && (t = '
    '.concat(i.button.buildList(i.opts.formUpdateButtons), \"
    \"));\n var n = 0,\n r = {\n buttons: t,\n text_layer: '
    \\n
    \\n
    \")\n };\n return i.popups.create(\"forms.update\", r);\n }\n\n return {\n _init: function u() {\n !function e() {\n i.events.$on(i.$el, i._mousedown, \"input, textarea, button\", t), i.events.$on(i.$el, i._mouseup, \"input, textarea, button\", n), i.events.$on(i.$el, \"touchmove\", \"input, textarea, button\", a), i.events.$on(i.$el, i._mouseup, r), i.events.$on(i.$win, i._mouseup, r), p(!0);\n }(), i.events.$on(i.$el, \"submit\", \"form\", function (e) {\n return e.preventDefault(), !1;\n });\n },\n updateInput: function h() {\n var e = i.popups.get(\"forms.update\"),\n t = c();\n\n if (t) {\n var n = l(t),\n r = e.find('input[type=\"text\"][name=\"text\"]').val() || \"\";\n n.is(\"button\") ? r.length ? n.text(r) : n.text(\"\\u200B\") : -1 != [\"button\", \"submit\", \"reset\"].indexOf(t.type) ? n.attr(\"value\", r) : n.attr(\"placeholder\", r), i.popups.hide(\"forms.update\"), d(t);\n }\n },\n getInput: c,\n applyStyle: function g(e, t, n) {\n void 0 === t && (t = i.opts.formStyles), void 0 === n && (n = i.opts.formMultipleStyles);\n var r = c();\n if (!r) return !1;\n\n if (!n) {\n var a = Object.keys(t);\n a.splice(a.indexOf(e), 1), l(r).removeClass(a.join(\" \"));\n }\n\n l(r).toggleClass(e);\n },\n showUpdatePopup: function m() {\n var e = c();\n\n if (e) {\n var t = l(e),\n n = i.popups.get(\"forms.update\");\n n || (n = p()), i.popups.isVisible(\"forms.update\") || i.popups.refresh(\"forms.update\"), i.popups.setContainer(\"forms.update\", i.$sc);\n var r = t.offset().left + t.outerWidth() / 2,\n a = t.offset().top + t.outerHeight();\n i.popups.show(\"forms.update\", r, a, t.outerHeight());\n }\n },\n showEditPopup: d,\n back: function v() {\n i.events.disableBlur(), i.selection.restore(), i.events.enableBlur();\n var e = c();\n e && i.$wp && (\"BUTTON\" === e.tagName && i.selection.restore(), d(e));\n }\n };\n }, xt.RegisterCommand(\"updateInput\", {\n undo: !1,\n focus: !1,\n title: \"Update\",\n callback: function callback() {\n this.forms.updateInput();\n }\n }), xt.DefineIcon(\"inputStyle\", {\n NAME: \"magic\",\n SVG_KEY: \"inlineStyle\"\n }), xt.RegisterCommand(\"inputStyle\", {\n title: \"Style\",\n type: \"dropdown\",\n html: function html() {\n var e = '\";\n },\n callback: function callback(e, t) {\n var n = this.forms.getInput();\n n && (this.forms.applyStyle(t), this.forms.showEditPopup(n));\n },\n refreshOnShow: function refreshOnShow(e, t) {\n var n = this.$,\n r = this.forms.getInput();\n\n if (r) {\n var a = n(r);\n t.find(\".fr-command\").each(function () {\n var e = n(this).data(\"param1\");\n n(this).toggleClass(\"fr-active\", a.hasClass(e));\n });\n }\n }\n }), xt.DefineIcon(\"inputEdit\", {\n NAME: \"edit\",\n SVG_KEY: \"edit\"\n }), xt.RegisterCommand(\"inputEdit\", {\n title: \"Edit Button\",\n undo: !1,\n refreshAfterCallback: !1,\n callback: function callback() {\n this.forms.showUpdatePopup();\n }\n }), xt.DefineIcon(\"inputBack\", {\n NAME: \"arrow-left\",\n SVG_KEY: \"back\"\n }), xt.RegisterCommand(\"inputBack\", {\n title: \"Back\",\n undo: !1,\n focus: !1,\n back: !0,\n refreshAfterCallback: !1,\n callback: function callback() {\n this.forms.back();\n }\n }), xt.RegisterCommand(\"updateInput\", {\n undo: !1,\n focus: !1,\n title: \"Update\",\n callback: function callback() {\n this.forms.updateInput();\n }\n }), xt.PLUGINS.fullscreen = function (a) {\n var t,\n n,\n r,\n o,\n i = a.$,\n s = function s() {\n return a.$box.hasClass(\"fr-fullscreen\");\n };\n\n function l() {\n if (a.helpers.isIOS() && a.core.hasFocus()) return a.$el.blur(), setTimeout(d, 250), !1;\n t = a.helpers.scrollTop(), a.$box.toggleClass(\"fr-fullscreen\"), i(\"body\").first().toggleClass(\"fr-fullscreen\"), a.helpers.isMobile() && (a.opts.toolbarBottom ? a.$tb[0].removeAttribute(\"style\") : (a.$tb.data(\"parent\", a.$tb.parent()), a.$box.prepend(a.$tb), a.$tb.data(\"sticky-dummy\") && a.$tb.after(a.$tb.data(\"sticky-dummy\")))), n = a.opts.height, r = a.opts.heightMax, o = a.opts.z_index, a.opts.height = a.o_win.innerHeight - (a.opts.toolbarInline ? 0 : a.$tb.outerHeight() + (a.$second_tb ? a.$second_tb.outerHeight() : 0)), a.opts.zIndex = 2147483641, a.opts.heightMax = null, a.size.refresh(), a.opts.toolbarInline && a.toolbar.showInline();\n\n for (var e = a.$box.parent(); !e.first().is(\"body\");) {\n e.addClass(\"fr-fullscreen-wrapper\"), e = e.parent();\n }\n\n a.opts.toolbarContainer && a.$box.prepend(a.$tb), a.events.trigger(\"charCounter.update\"), a.events.trigger(\"codeView.update\"), a.$win.trigger(\"scroll\");\n }\n\n function c() {\n if (a.helpers.isIOS() && a.core.hasFocus()) return a.$el.blur(), setTimeout(d, 250), !1;\n a.$box.toggleClass(\"fr-fullscreen\"), i(\"body\").first().toggleClass(\"fr-fullscreen\"), a.$tb.data(\"parent\") && a.$tb.data(\"parent\").prepend(a.$tb), a.$tb.data(\"sticky-dummy\") && a.$tb.after(a.$tb.data(\"sticky-dummy\")), a.opts.height = n, a.opts.heightMax = r, a.opts.zIndex = o, a.size.refresh(), i(a.o_win).scrollTop(t), a.opts.toolbarInline && a.toolbar.showInline(), a.events.trigger(\"charCounter.update\"), a.opts.toolbarSticky && a.opts.toolbarStickyOffset && (a.opts.toolbarBottom ? a.$tb.css(\"bottom\", a.opts.toolbarStickyOffset).data(\"bottom\", a.opts.toolbarStickyOffset) : a.$tb.css(\"top\", a.opts.toolbarStickyOffset).data(\"top\", a.opts.toolbarStickyOffset));\n\n for (var e = a.$box.parent(); !e.first().is(\"body\");) {\n e.removeClass(\"fr-fullscreen-wrapper\"), e = e.parent();\n }\n\n a.opts.toolbarContainer && i(a.opts.toolbarContainer).append(a.$tb), i(a.o_win).trigger(\"scroll\"), a.events.trigger(\"codeView.update\");\n }\n\n function d() {\n s() ? c() : l(), f(a.$tb.find('.fr-command[data-cmd=\"fullscreen\"]'));\n var e = a.$tb.find('.fr-command[data-cmd=\"moreText\"]'),\n t = a.$tb.find('.fr-command[data-cmd=\"moreParagraph\"]'),\n n = a.$tb.find('.fr-command[data-cmd=\"moreRich\"]'),\n r = a.$tb.find('.fr-command[data-cmd=\"moreMisc\"]');\n e.length && a.refresh.moreText(e), t.length && a.refresh.moreParagraph(t), n.length && a.refresh.moreRich(n), r.length && a.refresh.moreMisc(r);\n }\n\n function f(e) {\n var t = s();\n e.toggleClass(\"fr-active\", t).attr(\"aria-pressed\", t), e.find(\"> *\").not(\".fr-sr-only\").replaceWith(t ? a.icon.create(\"fullscreenCompress\") : a.icon.create(\"fullscreen\"));\n }\n\n return {\n _init: function e() {\n if (!a.$wp) return !1;\n a.events.$on(i(a.o_win), \"resize\", function () {\n s() && (c(), l());\n }), a.events.on(\"toolbar.hide\", function () {\n if (s() && a.helpers.isMobile()) return !1;\n }), a.events.on(\"position.refresh\", function () {\n if (a.helpers.isIOS()) return !s();\n }), a.events.on(\"destroy\", function () {\n s() && c();\n }, !0);\n },\n toggle: d,\n refresh: f,\n isActive: s\n };\n }, xt.RegisterCommand(\"fullscreen\", {\n title: \"Fullscreen\",\n undo: !1,\n focus: !1,\n accessibilityFocus: !0,\n forcedRefresh: !0,\n toggle: !0,\n callback: function callback() {\n this.fullscreen.toggle();\n },\n refresh: function refresh(e) {\n this.fullscreen.refresh(e);\n },\n plugin: \"fullscreen\"\n }), xt.DefineIcon(\"fullscreen\", {\n NAME: \"expand\",\n SVG_KEY: \"fullscreen\"\n }), xt.DefineIcon(\"fullscreenCompress\", {\n NAME: \"compress\",\n SVG_KEY: \"exitFullscreen\"\n }), Object.assign(xt.DEFAULTS, {\n helpSets: [{\n title: \"Inline Editor\",\n commands: [{\n val: \"OSkeyE\",\n desc: \"Show the editor\"\n }]\n }, {\n title: \"Common actions\",\n commands: [{\n val: \"OSkeyC\",\n desc: \"Copy\"\n }, {\n val: \"OSkeyX\",\n desc: \"Cut\"\n }, {\n val: \"OSkeyV\",\n desc: \"Paste\"\n }, {\n val: \"OSkeyZ\",\n desc: \"Undo\"\n }, {\n val: \"OSkeyShift+Z\",\n desc: \"Redo\"\n }, {\n val: \"OSkeyK\",\n desc: \"Insert Link\"\n }, {\n val: \"OSkeyP\",\n desc: \"Insert Image\"\n }]\n }, {\n title: \"Basic Formatting\",\n commands: [{\n val: \"OSkeyA\",\n desc: \"Select All\"\n }, {\n val: \"OSkeyB\",\n desc: \"Bold\"\n }, {\n val: \"OSkeyI\",\n desc: \"Italic\"\n }, {\n val: \"OSkeyU\",\n desc: \"Underline\"\n }, {\n val: \"OSkeyS\",\n desc: \"Strikethrough\"\n }, {\n val: \"OSkey]\",\n desc: \"Increase Indent\"\n }, {\n val: \"OSkey[\",\n desc: \"Decrease Indent\"\n }]\n }, {\n title: \"Quote\",\n commands: [{\n val: \"OSkey'\",\n desc: \"Increase quote level\"\n }, {\n val: \"OSkeyShift+'\",\n desc: \"Decrease quote level\"\n }]\n }, {\n title: \"Image / Video\",\n commands: [{\n val: \"OSkey+\",\n desc: \"Resize larger\"\n }, {\n val: \"OSkey-\",\n desc: \"Resize smaller\"\n }]\n }, {\n title: \"Table\",\n commands: [{\n val: \"Alt+Space\",\n desc: \"Select table cell\"\n }, {\n val: \"Shift+Left/Right arrow\",\n desc: \"Extend selection one cell\"\n }, {\n val: \"Shift+Up/Down arrow\",\n desc: \"Extend selection one row\"\n }]\n }, {\n title: \"Navigation\",\n commands: [{\n val: \"OSkey/\",\n desc: \"Shortcuts\"\n }, {\n val: \"Alt+F10\",\n desc: \"Focus popup / toolbar\"\n }, {\n val: \"Esc\",\n desc: \"Return focus to previous position\"\n }]\n }]\n }), xt.PLUGINS.help = function (s) {\n var r,\n a = s.$,\n o = \"help\";\n return {\n _init: function e() {},\n show: function l() {\n if (!r) {\n var e = \"

    \".concat(s.language.translate(\"Shortcuts\"), \"

    \"),\n t = function i() {\n for (var e = '
    ', t = 0; t < s.opts.helpSets.length; t++) {\n var n = s.opts.helpSets[t],\n r = \"\";\n r += \"\"), r += \"\";\n\n for (var a = 0; a < n.commands.length; a++) {\n var o = n.commands[a];\n r += \"\", r += \"\"), r += \"\"), r += \"\";\n }\n\n e += r += \"
    \".concat(s.language.translate(n.title), \"
    \".concat(s.language.translate(o.desc), \"\".concat(o.val.replace(\"OSkey\", s.helpers.isMac() ? \"⌘\" : \"Ctrl+\"), \"
    \";\n }\n\n return e += \"
    \";\n }(),\n n = s.modals.create(o, e, t);\n\n r = n.$modal, s.events.$on(a(s.o_win), \"resize\", function () {\n s.modals.resize(o);\n });\n }\n\n s.modals.show(o), s.modals.resize(o);\n },\n hide: function t() {\n s.modals.hide(o);\n }\n };\n }, xt.DefineIcon(\"help\", {\n NAME: \"question\",\n SVG_KEY: \"help\"\n }), xt.RegisterShortcut(xt.KEYCODE.SLASH, \"help\", null, \"/\"), xt.RegisterCommand(\"help\", {\n title: \"Help\",\n icon: \"help\",\n undo: !1,\n focus: !1,\n modal: !0,\n callback: function callback() {\n this.help.show();\n },\n plugin: \"help\",\n showOnMobile: !1\n }), Object.assign(xt.POPUP_TEMPLATES, {\n \"image.insert\": \"[_BUTTONS_][_UPLOAD_LAYER_][_BY_URL_LAYER_][_PROGRESS_BAR_]\",\n \"image.edit\": \"[_BUTTONS_]\",\n \"image.alt\": \"[_BUTTONS_][_ALT_LAYER_]\",\n \"image.size\": \"[_BUTTONS_][_SIZE_LAYER_]\"\n }), Object.assign(xt.DEFAULTS, {\n imageInsertButtons: [\"imageBack\", \"|\", \"imageUpload\", \"imageByURL\"],\n imageEditButtons: [\"imageReplace\", \"imageAlign\", \"imageCaption\", \"imageRemove\", \"imageLink\", \"linkOpen\", \"linkEdit\", \"linkRemove\", \"-\", \"imageDisplay\", \"imageStyle\", \"imageAlt\", \"imageSize\"],\n imageAltButtons: [\"imageBack\", \"|\"],\n imageSizeButtons: [\"imageBack\", \"|\"],\n imageUpload: !0,\n imageUploadURL: null,\n imageCORSProxy: \"https://cors-anywhere.froala.com\",\n imageUploadRemoteUrls: !0,\n imageUploadParam: \"file\",\n imageUploadParams: {},\n imageUploadToS3: !1,\n imageUploadToAzure: !1,\n imageUploadMethod: \"POST\",\n imageMaxSize: 10485760,\n imageAllowedTypes: [\"jpeg\", \"jpg\", \"png\", \"gif\", \"webp\"],\n imageResize: !0,\n imageResizeWithPercent: !1,\n imageRoundPercent: !1,\n imageDefaultWidth: 300,\n imageDefaultAlign: \"center\",\n imageDefaultDisplay: \"block\",\n imageSplitHTML: !1,\n imageStyles: {\n \"fr-rounded\": \"Rounded\",\n \"fr-bordered\": \"Bordered\",\n \"fr-shadow\": \"Shadow\"\n },\n imageMove: !0,\n imageMultipleStyles: !0,\n imageTextNear: !0,\n imagePaste: !0,\n imagePasteProcess: !1,\n imageMinWidth: 16,\n imageOutputSize: !1,\n imageDefaultMargin: 5,\n imageAddNewLine: !1\n }), xt.PLUGINS.image = function (T) {\n var A,\n l,\n c,\n d,\n s,\n n,\n L = T.$,\n S = \"https://i.froala.com/upload\",\n t = !1,\n r = 1,\n p = 2,\n u = 3,\n h = 4,\n w = 5,\n R = 6,\n a = {};\n\n function f() {\n var e = T.popups.get(\"image.insert\").find(\".fr-image-by-url-layer input\");\n e.val(\"\"), A && e.val(A.attr(\"src\")), e.trigger(\"change\");\n }\n\n function o() {\n var e = T.popups.get(\"image.edit\");\n\n if (e || (e = O()), e) {\n var t = ye();\n Te() && (t = t.find(\".fr-img-wrap\")), T.popups.setContainer(\"image.edit\", T.$sc), T.popups.refresh(\"image.edit\");\n\n var n = t.offset().left + t.outerWidth() / 2,\n r = (function a(e) {\n for (var t = 0; e;) {\n if (\"BODY\" == e.tagName) {\n var n = e.scrollTop || document.documentElement.scrollTop;\n t += e.offsetTop - n + e.clientTop;\n } else t += e.offsetTop - e.scrollTop + e.clientTop;\n\n e = e.offsetParent;\n }\n\n return {\n y: t\n };\n }(A[0]).y + t.outerHeight()) / 5;\n\n t.offset().top < 0 || !T.opts.height || T.helpers.isMobile() || T.opts.iframe ? r = t.offset().top + t.outerHeight() : Te() && T.opts.height && (r = t.offset().top + t.outerHeight() / 4), A.hasClass(\"fr-uploading\") ? N() : T.popups.show(\"image.edit\", n, r, t.outerHeight(), !0);\n }\n }\n\n function g() {\n k();\n }\n\n function i(e) {\n 0 < e.parents(\".fr-img-caption\").length && (e = e.parents(\".fr-img-caption\").first());\n var t = e.hasClass(\"fr-dib\") ? \"block\" : e.hasClass(\"fr-dii\") ? \"inline\" : null,\n n = e.hasClass(\"fr-fil\") ? \"left\" : e.hasClass(\"fr-fir\") ? \"right\" : me(e);\n ge(e, t, n), e.removeClass(\"fr-dib fr-dii fr-fir fr-fil\");\n }\n\n function m() {\n for (var e, t = \"IMG\" == T.el.tagName ? [T.el] : T.el.querySelectorAll(\"img\"), n = 0; n < t.length; n++) {\n var r = L(t[n]);\n !T.opts.htmlUntouched && T.opts.useClasses ? ((T.opts.imageDefaultAlign || T.opts.imageDefaultDisplay) && (0 < (e = r).parents(\".fr-img-caption\").length && (e = e.parents(\".fr-img-caption\").first()), e.hasClass(\"fr-dii\") || e.hasClass(\"fr-dib\") || (e.addClass(\"fr-fi\".concat(me(e)[0])), e.addClass(\"fr-di\".concat(ve(e)[0])), e.css(\"margin\", \"\"), e.css(\"float\", \"\"), e.css(\"display\", \"\"), e.css(\"z-index\", \"\"), e.css(\"position\", \"\"), e.css(\"overflow\", \"\"), e.css(\"vertical-align\", \"\"))), T.opts.imageTextNear || (0 < r.parents(\".fr-img-caption\").length ? r.parents(\".fr-img-caption\").first().removeClass(\"fr-dii\").addClass(\"fr-dib\") : r.removeClass(\"fr-dii\").addClass(\"fr-dib\"))) : T.opts.htmlUntouched || T.opts.useClasses || (T.opts.imageDefaultAlign || T.opts.imageDefaultDisplay) && i(r), T.opts.iframe && r.on(\"load\", T.size.syncIframe);\n }\n }\n\n function v(e) {\n void 0 === e && (e = !0);\n var t,\n n = Array.prototype.slice.call(T.el.querySelectorAll(\"img\")),\n r = [];\n\n for (t = 0; t < n.length; t++) {\n if (r.push(n[t].getAttribute(\"src\")), L(n[t]).toggleClass(\"fr-draggable\", T.opts.imageMove), \"\" === n[t].getAttribute(\"class\") && n[t].removeAttribute(\"class\"), \"\" === n[t].getAttribute(\"style\") && n[t].removeAttribute(\"style\"), n[t].parentNode && n[t].parentNode.parentNode && T.node.hasClass(n[t].parentNode.parentNode, \"fr-img-caption\")) {\n var a = n[t].parentNode.parentNode;\n T.browser.mozilla || a.setAttribute(\"contenteditable\", !1), a.setAttribute(\"draggable\", !1), a.classList.add(\"fr-draggable\");\n var o = n[t].nextSibling;\n o && !T.browser.mozilla && o.setAttribute(\"contenteditable\", !0);\n }\n }\n\n if (s) for (t = 0; t < s.length; t++) {\n r.indexOf(s[t].getAttribute(\"src\")) < 0 && T.events.trigger(\"image.removed\", [L(s[t])]);\n }\n\n if (s && e) {\n var i = [];\n\n for (t = 0; t < s.length; t++) {\n i.push(s[t].getAttribute(\"src\"));\n }\n\n for (t = 0; t < n.length; t++) {\n i.indexOf(n[t].getAttribute(\"src\")) < 0 && T.events.trigger(\"image.loaded\", [L(n[t])]);\n }\n }\n\n s = n;\n }\n\n function _() {\n if (l || function i() {\n var e;\n T.shared.$image_resizer ? (l = T.shared.$image_resizer, d = T.shared.$img_overlay, T.events.on(\"destroy\", function () {\n L(\"body\").first().append(l.removeClass(\"fr-active\"));\n }, !0)) : (T.shared.$image_resizer = L(document.createElement(\"div\")).attr(\"class\", \"fr-image-resizer\"), l = T.shared.$image_resizer, T.events.$on(l, \"mousedown\", function (e) {\n e.stopPropagation();\n }, !0), T.opts.imageResize && (l.append(b(\"nw\") + b(\"ne\") + b(\"sw\") + b(\"se\")), T.shared.$img_overlay = L(document.createElement(\"div\")).attr(\"class\", \"fr-image-overlay\"), d = T.shared.$img_overlay, e = l.get(0).ownerDocument, L(e).find(\"body\").first().append(d)));\n T.events.on(\"shared.destroy\", function () {\n l.html(\"\").removeData().remove(), l = null, T.opts.imageResize && (d.remove(), d = null);\n }, !0), T.helpers.isMobile() || T.events.$on(L(T.o_win), \"resize\", function () {\n A && !A.hasClass(\"fr-uploading\") ? fe(!0) : A && (_(), be(), N(!1));\n });\n\n if (T.opts.imageResize) {\n e = l.get(0).ownerDocument, T.events.$on(l, T._mousedown, \".fr-handler\", E), T.events.$on(L(e), T._mousemove, y), T.events.$on(L(e.defaultView || e.parentWindow), T._mouseup, x), T.events.$on(d, \"mouseleave\", x);\n var r = 1,\n a = null,\n o = 0;\n T.events.on(\"keydown\", function (e) {\n if (A) {\n var t = -1 != navigator.userAgent.indexOf(\"Mac OS X\") ? e.metaKey : e.ctrlKey,\n n = e.which;\n (n !== a || 200 < e.timeStamp - o) && (r = 1), (n == xt.KEYCODE.EQUALS || T.browser.mozilla && n == xt.KEYCODE.FF_EQUALS) && t && !e.altKey ? r = ee.call(this, e, 1, 1, r) : (n == xt.KEYCODE.HYPHEN || T.browser.mozilla && n == xt.KEYCODE.FF_HYPHEN) && t && !e.altKey ? r = ee.call(this, e, 2, -1, r) : T.keys.ctrlKey(e) || n != xt.KEYCODE.ENTER || (A.before(\"
    \"), B(A)), a = n, o = e.timeStamp;\n }\n }, !0), T.events.on(\"keyup\", function () {\n r = 1;\n });\n }\n }(), !A) return !1;\n var e = T.$wp || T.$sc;\n e.append(l), l.data(\"instance\", T);\n var t = e.scrollTop() - (\"static\" != e.css(\"position\") ? e.offset().top : 0),\n n = e.scrollLeft() - (\"static\" != e.css(\"position\") ? e.offset().left : 0);\n n -= T.helpers.getPX(e.css(\"border-left-width\")), t -= T.helpers.getPX(e.css(\"border-top-width\")), T.$el.is(\"img\") && T.$sc.is(\"body\") && (n = t = 0);\n var r = ye();\n Te() && (r = r.find(\".fr-img-wrap\"));\n var a = 0,\n o = 0;\n T.opts.iframe && (a = T.helpers.getPX(T.$wp.find(\".fr-iframe\").css(\"padding-top\")), o = T.helpers.getPX(T.$wp.find(\".fr-iframe\").css(\"padding-left\"))), l.css(\"top\", (T.opts.iframe ? r.offset().top + a : r.offset().top + t) - 1).css(\"left\", (T.opts.iframe ? r.offset().left + o : r.offset().left + n) - 1).css(\"width\", r.get(0).getBoundingClientRect().width).css(\"height\", r.get(0).getBoundingClientRect().height).addClass(\"fr-active\");\n }\n\n function b(e) {\n return '
    ');\n }\n\n function C(e) {\n Te() ? A.parents(\".fr-img-caption\").css(\"width\", e) : A.css(\"width\", e);\n }\n\n function E(e) {\n if (!T.core.sameInstance(l)) return !0;\n if (e.preventDefault(), e.stopPropagation(), T.$el.find(\"img.fr-error\").left) return !1;\n T.undo.canDo() || T.undo.saveStep();\n var t = e.pageX || e.originalEvent.touches[0].pageX;\n\n if (\"mousedown\" == e.type) {\n var n = T.$oel.get(0).ownerDocument,\n r = n.defaultView || n.parentWindow,\n a = !1;\n\n try {\n a = r.location != r.parent.location && !(r.$ && r.$.FE);\n } catch (s) {}\n\n a && r.frameElement && (t += T.helpers.getPX(L(r.frameElement).offset().left) + r.frameElement.clientLeft);\n }\n\n (c = L(this)).data(\"start-x\", t), c.data(\"start-width\", A.width()), c.data(\"start-height\", A.height());\n var o = A.width();\n\n if (T.opts.imageResizeWithPercent) {\n var i = A.parentsUntil(T.$el, T.html.blockTagsQuery()).get(0) || T.el;\n o = (o / L(i).outerWidth() * 100).toFixed(2) + \"%\";\n }\n\n C(o), d.show(), T.popups.hideAll(), he();\n }\n\n function y(e) {\n if (!T.core.sameInstance(l)) return !0;\n var t;\n\n if (c && A) {\n if (e.preventDefault(), T.$el.find(\"img.fr-error\").left) return !1;\n var n = e.pageX || (e.originalEvent.touches ? e.originalEvent.touches[0].pageX : null);\n if (!n) return !1;\n var r = n - c.data(\"start-x\"),\n a = c.data(\"start-width\");\n\n if ((c.hasClass(\"fr-hnw\") || c.hasClass(\"fr-hsw\")) && (r = 0 - r), T.opts.imageResizeWithPercent) {\n var o = A.parentsUntil(T.$el, T.html.blockTagsQuery()).get(0) || T.el;\n a = ((a + r) / L(o).outerWidth() * 100).toFixed(2), T.opts.imageRoundPercent && (a = Math.round(a)), C(\"\".concat(a, \"%\")), (t = Te() ? (T.helpers.getPX(A.parents(\".fr-img-caption\").css(\"width\")) / L(o).outerWidth() * 100).toFixed(2) : (T.helpers.getPX(A.css(\"width\")) / L(o).outerWidth() * 100).toFixed(2)) === a || T.opts.imageRoundPercent || C(\"\".concat(t, \"%\")), A.css(\"height\", \"\").removeAttr(\"height\");\n } else a + r >= T.opts.imageMinWidth && (C(a + r), t = Te() ? T.helpers.getPX(A.parents(\".fr-img-caption\").css(\"width\")) : T.helpers.getPX(A.css(\"width\"))), t !== a + r && C(t), ((A.attr(\"style\") || \"\").match(/(^height:)|(; *height:)/) || A.attr(\"height\")) && (A.css(\"height\", c.data(\"start-height\") * A.width() / c.data(\"start-width\")), A.removeAttr(\"height\"));\n\n _(), T.events.trigger(\"image.resize\", [Ee()]);\n }\n }\n\n function x(e) {\n if (!T.core.sameInstance(l)) return !0;\n\n if (c && A) {\n if (e && e.stopPropagation(), T.$el.find(\"img.fr-error\").left) return !1;\n c = null, d.hide(), _(), o(), T.undo.saveStep(), T.events.trigger(\"image.resizeEnd\", [Ee()]);\n } else l.removeClass(\"fr-active\");\n }\n\n function M(e, t, n) {\n T.edit.on(), A && A.addClass(\"fr-error\"), a[e] ? D(T.language.translate(a[e])) : D(T.language.translate(\"Something went wrong. Please try again.\")), !A && n && te(n), T.events.trigger(\"image.error\", [{\n code: e,\n message: a[e]\n }, t, n]);\n }\n\n function O(e) {\n if (e) return T.$wp && T.events.$on(T.$wp, \"scroll.image-edit\", function () {\n A && T.popups.isVisible(\"image.edit\") && (T.events.disableBlur(), o());\n }), !0;\n var t = \"\";\n\n if (0 < T.opts.imageEditButtons.length) {\n var n = {\n buttons: t += '
    \\n '.concat(T.button.buildList(T.opts.imageEditButtons), \"\\n
    \")\n };\n return T.popups.create(\"image.edit\", n);\n }\n\n return !1;\n }\n\n function N(e) {\n var t = T.popups.get(\"image.insert\");\n\n if (t || (t = Y()), t.find(\".fr-layer.fr-active\").removeClass(\"fr-active\").addClass(\"fr-pactive\"), t.find(\".fr-image-progress-bar-layer\").addClass(\"fr-active\"), t.find(\".fr-buttons\").hide(), A) {\n var n = ye();\n T.popups.setContainer(\"image.insert\", T.$sc);\n var r = n.offset().left,\n a = n.offset().top + n.height();\n T.popups.show(\"image.insert\", r, a, n.outerHeight());\n }\n\n void 0 === e && I(T.language.translate(\"Uploading\"), 0);\n }\n\n function k(e) {\n var t = T.popups.get(\"image.insert\");\n\n if (t && (t.find(\".fr-layer.fr-pactive\").addClass(\"fr-active\").removeClass(\"fr-pactive\"), t.find(\".fr-image-progress-bar-layer\").removeClass(\"fr-active\"), t.find(\".fr-buttons\").show(), e || T.$el.find(\"img.fr-error\").length)) {\n if (T.events.focus(), T.$el.find(\"img.fr-error\").length && (T.$el.find(\"img.fr-error\").remove(), T.undo.saveStep(), T.undo.run(), T.undo.dropRedo()), !T.$wp && A) {\n var n = A;\n fe(!0), T.selection.setAfter(n.get(0)), T.selection.restore();\n }\n\n T.popups.hide(\"image.insert\");\n }\n }\n\n function I(e, t) {\n var n = T.popups.get(\"image.insert\");\n\n if (n) {\n var r = n.find(\".fr-image-progress-bar-layer\");\n r.find(\"h3\").text(e + (t ? \" \".concat(t, \"%\") : \"\")), r.removeClass(\"fr-error\"), t ? (r.find(\"div\").removeClass(\"fr-indeterminate\"), r.find(\"div > span\").css(\"width\", \"\".concat(t, \"%\"))) : r.find(\"div\").addClass(\"fr-indeterminate\");\n }\n }\n\n function D(e) {\n N();\n var t = T.popups.get(\"image.insert\").find(\".fr-image-progress-bar-layer\");\n t.addClass(\"fr-error\");\n var n = t.find(\"h3\");\n n.text(e), T.events.disableBlur(), n.focus();\n }\n\n function B(e) {\n de.call(e.get(0));\n }\n\n function F() {\n var e = L(this);\n T.popups.hide(\"image.insert\"), e.removeClass(\"fr-uploading\"), e.next().is(\"br\") && e.next().remove(), B(e), T.events.trigger(\"image.loaded\", [e]);\n }\n\n function $(i, e, s, l, c) {\n l && \"string\" == typeof l && (l = T.$(l)), T.edit.off(), I(T.language.translate(\"Loading image\")), e && (i = T.helpers.sanitizeURL(i));\n var t = new Image();\n t.onload = function () {\n var e, t;\n\n if (l) {\n T.undo.canDo() || l.hasClass(\"fr-uploading\") || T.undo.saveStep();\n var n = l.data(\"fr-old-src\");\n l.data(\"fr-image-pasted\") && (n = null), T.$wp ? ((e = l.clone().removeData(\"fr-old-src\").removeClass(\"fr-uploading\").removeAttr(\"data-fr-image-pasted\")).off(\"load\"), n && l.attr(\"src\", n), l.replaceWith(e)) : e = l;\n\n for (var r = e.get(0).attributes, a = 0; a < r.length; a++) {\n var o = r[a];\n 0 === o.nodeName.indexOf(\"data-\") ? e.removeAttr(o.nodeName) : s && s.hasOwnProperty(o.nodeName) && e.removeAttr(o.nodeName);\n }\n\n if (void 0 !== s) for (t in s) {\n s.hasOwnProperty(t) && \"link\" != t && e.attr(\"\".concat(t), s[t]);\n }\n e.on(\"load\", F), e.attr(\"src\", i), T.edit.on(), v(!1), T.undo.saveStep(), T.events.disableBlur(), T.$el.blur(), T.events.trigger(n ? \"image.replaced\" : \"image.inserted\", [e, c]);\n } else e = K(i, s, F), v(!1), T.undo.saveStep(), T.events.disableBlur(), T.$el.blur(), T.events.trigger(\"image.inserted\", [e, c]);\n }, t.onerror = function () {\n M(r);\n }, N(T.language.translate(\"Loading image\")), t.src = i;\n }\n\n function P(e, t, n) {\n I(T.language.translate(\"Loading image\"));\n var r = this.status,\n a = this.response,\n o = this.responseXML,\n i = this.responseText;\n\n try {\n if (T.opts.imageUploadToS3 || T.opts.imageUploadToAzure) {\n if (201 == r) {\n var s;\n\n if (T.opts.imageUploadToAzure) {\n if (!1 === T.events.trigger(\"image.uploadedToAzure\", [this.responseURL, n, a], !0)) return T.edit.on(), !1;\n s = t;\n } else s = function c(e) {\n try {\n var t = L(e).find(\"Location\").text(),\n n = L(e).find(\"Key\").text();\n return !1 === T.events.trigger(\"image.uploadedToS3\", [t, n, e], !0) ? (T.edit.on(), !1) : t;\n } catch (r) {\n return M(h, e), !1;\n }\n }(o);\n\n s && $(s, !1, [], e, a || o);\n } else M(h, a || o, e);\n } else if (200 <= r && r < 300) {\n var l = function d(e) {\n try {\n if (!1 === T.events.trigger(\"image.uploaded\", [e], !0)) return T.edit.on(), !1;\n var t = JSON.parse(e);\n return t.link ? t : (M(p, e), !1);\n } catch (n) {\n return M(h, e), !1;\n }\n }(i);\n\n l && $(l.link, !1, l, e, a || i);\n } else M(u, a || i, e);\n } catch (f) {\n M(h, a || i, e);\n }\n }\n\n function H() {\n M(h, this.response || this.responseText || this.responseXML);\n }\n\n function U(e) {\n if (e.lengthComputable) {\n var t = e.loaded / e.total * 100 | 0;\n I(T.language.translate(\"Uploading\"), t);\n }\n }\n\n function K(e, t, n) {\n var r,\n a = L(document.createElement(\"img\")).attr(\"src\", e);\n if (t && void 0 !== t) for (r in t) {\n t.hasOwnProperty(r) && \"link\" != r && (\" data-\".concat(r, '=\"').concat(t[r], '\"'), a.attr(\"\".concat(r), t[r]));\n }\n var o = T.opts.imageDefaultWidth;\n o && \"auto\" != o && (o = T.opts.imageResizeWithPercent ? \"100%\" : \"\".concat(o, \"px\")), a.attr(\"style\", o ? \"width: \".concat(o, \";\") : \"\"), ge(a, T.opts.imageDefaultDisplay, T.opts.imageDefaultAlign), a.on(\"load\", n), a.on(\"error\", n), T.edit.on(), T.events.focus(!0), T.selection.restore(), T.undo.saveStep(), T.opts.imageSplitHTML ? T.markers.split() : T.markers.insert(), T.html.wrap();\n var i = T.$el.find(\".fr-marker\");\n return i.length ? (i.parent().is(\"hr\") && i.parent().after(i), T.node.isLastSibling(i) && i.parent().hasClass(\"fr-deletable\") && i.insertAfter(i.parent()), i.replaceWith(a)) : T.$el.append(a), T.selection.clear(), a;\n }\n\n function z() {\n T.edit.on(), k(!0);\n }\n\n function W(e, t) {\n if (void 0 !== e && 0 < e.length) {\n if (e && \"image/svg+xml\" == e[0].type) {\n var n = new FileReader();\n n.onload = function (e) {\n var t = e.target.result;\n T.image.insert(t, null, null, T.image.get());\n }, n.readAsDataURL(e[0]);\n }\n\n if (!1 === T.events.trigger(\"image.beforeUpload\", [e, t])) return !1;\n var r,\n a = e[0];\n if (!(null !== T.opts.imageUploadURL && T.opts.imageUploadURL != S || T.opts.imageUploadToS3 || T.opts.imageUploadToAzure)) return function E(a, o) {\n var i = new FileReader();\n i.onload = function () {\n var e = i.result;\n\n if (i.result.indexOf(\"svg+xml\") < 0) {\n for (var t = atob(i.result.split(\",\")[1]), n = [], r = 0; r < t.length; r++) {\n n.push(t.charCodeAt(r));\n }\n\n e = window.URL.createObjectURL(new Blob([new Uint8Array(n)], {\n type: a.type\n })), o && o.data(\"fr-old-src\", o.attr(\"src\")), T.image.insert(e, !1, null, o);\n }\n }, N(), i.readAsDataURL(a);\n }(a, t || A), !1;\n if (a.name || (a.name = new Date().getTime() + \".\" + (a.type || \"image/jpeg\").replace(/image\\//g, \"\")), a.size > T.opts.imageMaxSize) return M(w), !1;\n if (T.opts.imageAllowedTypes.indexOf(a.type.replace(/image\\//g, \"\")) < 0) return M(R), !1;\n\n if (T.drag_support.formdata && (r = T.drag_support.formdata ? new FormData() : null), r) {\n var o;\n if (!1 !== T.opts.imageUploadToS3) for (o in r.append(\"key\", T.opts.imageUploadToS3.keyStart + new Date().getTime() + \"-\" + (a.name || \"untitled\")), r.append(\"success_action_status\", \"201\"), r.append(\"X-Requested-With\", \"xhr\"), r.append(\"Content-Type\", a.type), T.opts.imageUploadToS3.params) {\n T.opts.imageUploadToS3.params.hasOwnProperty(o) && r.append(o, T.opts.imageUploadToS3.params[o]);\n }\n\n for (o in T.opts.imageUploadParams) {\n T.opts.imageUploadParams.hasOwnProperty(o) && r.append(o, T.opts.imageUploadParams[o]);\n }\n\n r.append(T.opts.imageUploadParam, a, a.name);\n var i,\n s,\n l = T.opts.imageUploadURL,\n c = T.opts.imageUploadMethod;\n T.opts.imageUploadToS3 && (l = T.opts.imageUploadToS3.uploadURL ? T.opts.imageUploadToS3.uploadURL : \"https://\".concat(T.opts.imageUploadToS3.region, \".amazonaws.com/\").concat(T.opts.imageUploadToS3.bucket)), T.opts.imageUploadToAzure && (i = l = T.opts.imageUploadToAzure.uploadURL ? \"\".concat(T.opts.imageUploadToAzure.uploadURL, \"/\").concat(a.name) : encodeURI(\"https://\".concat(T.opts.imageUploadToAzure.account, \".blob.core.windows.net/\").concat(T.opts.imageUploadToAzure.container, \"/\").concat(a.name)), T.opts.imageUploadToAzure.SASToken && (l += T.opts.imageUploadToAzure.SASToken), c = \"PUT\");\n var d = T.core.getXHR(l, c);\n\n if (T.opts.imageUploadToAzure) {\n var f = new Date().toUTCString();\n\n if (!T.opts.imageUploadToAzure.SASToken && T.opts.imageUploadToAzure.accessKey) {\n var p = T.opts.imageUploadToAzure.account,\n u = T.opts.imageUploadToAzure.container;\n\n if (T.opts.imageUploadToAzure.uploadURL) {\n var h = T.opts.imageUploadToAzure.uploadURL.split(\"/\");\n u = h.pop(), p = h.pop().split(\".\")[0];\n }\n\n var g = \"x-ms-blob-type:BlockBlob\\nx-ms-date:\".concat(f, \"\\nx-ms-version:2019-07-07\"),\n m = encodeURI(\"/\" + p + \"/\" + u + \"/\" + a.name),\n v = c + \"\\n\\n\\n\" + a.size + \"\\n\\n\" + a.type + \"\\n\\n\\n\\n\\n\\n\\n\" + g + \"\\n\" + m,\n b = T.cryptoJSPlugin.cryptoJS.HmacSHA256(v, T.cryptoJSPlugin.cryptoJS.enc.Base64.parse(T.opts.imageUploadToAzure.accessKey)).toString(T.cryptoJSPlugin.cryptoJS.enc.Base64),\n C = \"SharedKey \" + p + \":\" + b;\n s = b, d.setRequestHeader(\"Authorization\", C);\n }\n\n for (o in d.setRequestHeader(\"x-ms-version\", \"2019-07-07\"), d.setRequestHeader(\"x-ms-date\", f), d.setRequestHeader(\"Content-Type\", a.type), d.setRequestHeader(\"x-ms-blob-type\", \"BlockBlob\"), T.opts.imageUploadParams) {\n T.opts.imageUploadParams.hasOwnProperty(o) && d.setRequestHeader(o, T.opts.imageUploadParams[o]);\n }\n\n for (o in T.opts.imageUploadToAzure.params) {\n T.opts.imageUploadToAzure.params.hasOwnProperty(o) && d.setRequestHeader(o, T.opts.imageUploadToAzure.params[o]);\n }\n }\n\n !function y(t, n, r, a, o, i) {\n function s() {\n var e = L(this);\n e.off(\"load\"), e.addClass(\"fr-uploading\"), e.next().is(\"br\") && e.next().remove(), T.placeholder.refresh(), B(e), _(), N(), T.edit.off(), t.onload = function () {\n P.call(t, e, o, i);\n }, t.onerror = H, t.upload.onprogress = U, t.onabort = z, L(e.off(\"abortUpload\")).on(\"abortUpload\", function () {\n 4 != t.readyState && (t.abort(), a ? (a.attr(\"src\", a.data(\"fr-old-src\")), a.removeClass(\"fr-uploading\")) : e.remove(), fe(!0));\n }), t.send(T.opts.imageUploadToAzure ? r : n);\n }\n\n var l = new FileReader();\n l.onload = function () {\n var e = l.result;\n\n if (l.result.indexOf(\"svg+xml\") < 0) {\n for (var t = atob(l.result.split(\",\")[1]), n = [], r = 0; r < t.length; r++) {\n n.push(t.charCodeAt(r));\n }\n\n e = window.URL.createObjectURL(new Blob([new Uint8Array(n)], {\n type: \"image/jpeg\"\n }));\n }\n\n a ? (a.on(\"load\", s), a.on(\"error\", function () {\n s(), L(this).off(\"error\");\n }), T.edit.on(), T.undo.saveStep(), a.data(\"fr-old-src\", a.attr(\"src\")), a.attr(\"src\", e)) : K(e, null, s);\n }, l.readAsDataURL(r);\n }(d, r, a, t || A, i, s);\n }\n }\n }\n\n function V(e) {\n if (e.is(\"img\") && 0 < e.parents(\".fr-img-caption\").length) return e.parents(\".fr-img-caption\");\n }\n\n function G(e) {\n var t = e.originalEvent.dataTransfer;\n\n if (t && t.files && t.files.length) {\n var n = t.files[0];\n\n if (n && n.type && -1 !== n.type.indexOf(\"image\") && 0 <= T.opts.imageAllowedTypes.indexOf(n.type.replace(/image\\//g, \"\"))) {\n if (!T.opts.imageUpload) return e.preventDefault(), e.stopPropagation(), !1;\n T.markers.remove(), T.markers.insertAtPoint(e.originalEvent), T.$el.find(\".fr-marker\").replaceWith(xt.MARKERS), 0 === T.$el.find(\".fr-marker\").length && T.selection.setAtEnd(T.el), T.popups.hideAll();\n var r = T.popups.get(\"image.insert\");\n r || (r = Y()), T.popups.setContainer(\"image.insert\", T.$sc);\n var a = e.originalEvent.pageX,\n o = e.originalEvent.pageY;\n\n if (T.opts.iframe) {\n var i = T.helpers.getPX(T.$wp.find(\".fr-iframe\").css(\"padding-top\")),\n s = T.helpers.getPX(T.$wp.find(\".fr-iframe\").css(\"padding-left\"));\n o += T.$iframe.offset().top + i, a += T.$iframe.offset().left + s;\n }\n\n return T.popups.show(\"image.insert\", a, o), N(), 0 <= T.opts.imageAllowedTypes.indexOf(n.type.replace(/image\\//g, \"\")) ? (fe(!0), W(t.files)) : M(R), e.preventDefault(), e.stopPropagation(), !1;\n }\n }\n }\n\n function Y(e) {\n if (e) return T.popups.onRefresh(\"image.insert\", f), T.popups.onHide(\"image.insert\", g), !0;\n var t,\n n,\n r = \"\";\n T.opts.imageUpload || -1 === T.opts.imageInsertButtons.indexOf(\"imageUpload\") || T.opts.imageInsertButtons.splice(T.opts.imageInsertButtons.indexOf(\"imageUpload\"), 1);\n var a = T.button.buildList(T.opts.imageInsertButtons);\n \"\" !== a && (r = '
    '.concat(a, \"
    \"));\n var o = T.opts.imageInsertButtons.indexOf(\"imageUpload\"),\n i = T.opts.imageInsertButtons.indexOf(\"imageByURL\"),\n s = \"\";\n 0 <= o && (t = \" fr-active\", 0 <= i && i < o && (t = \"\"), s = '
    ').concat(T.language.translate(\"Drop image\"), \"
    (\").concat(T.language.translate(\"or click\"), ')
    '));\n var l = \"\";\n 0 <= i && (t = \" fr-active\", 0 <= o && o < i && (t = \"\"), l = '
    \"));\n var c = {\n buttons: r,\n upload_layer: s,\n by_url_layer: l,\n progress_bar: '

    Uploading

    '\n };\n return 1 <= T.opts.imageInsertButtons.length && (n = T.popups.create(\"image.insert\", c)), T.$wp && T.events.$on(T.$wp, \"scroll\", function () {\n A && T.popups.isVisible(\"image.insert\") && be();\n }), function d(r) {\n T.events.$on(r, \"dragover dragenter\", \".fr-image-upload-layer\", function (e) {\n return L(this).addClass(\"fr-drop\"), (T.browser.msie || T.browser.edge) && e.preventDefault(), !1;\n }, !0), T.events.$on(r, \"dragleave dragend\", \".fr-image-upload-layer\", function (e) {\n return L(this).removeClass(\"fr-drop\"), (T.browser.msie || T.browser.edge) && e.preventDefault(), !1;\n }, !0), T.events.$on(r, \"drop\", \".fr-image-upload-layer\", function (e) {\n e.preventDefault(), e.stopPropagation(), L(this).removeClass(\"fr-drop\");\n var t = e.originalEvent.dataTransfer;\n\n if (t && t.files) {\n var n = r.data(\"instance\") || T;\n n.events.disableBlur(), n.image.upload(t.files), n.events.enableBlur();\n }\n }, !0), T.helpers.isIOS() && T.events.$on(r, \"touchstart\", '.fr-image-upload-layer input[type=\"file\"]', function () {\n L(this).trigger(\"click\");\n }, !0), T.events.$on(r, \"change\", '.fr-image-upload-layer input[type=\"file\"]', function () {\n if (this.files) {\n var e = r.data(\"instance\") || T;\n e.events.disableBlur(), r.find(\"input:focus\").blur(), e.events.enableBlur(), e.image.upload(this.files, A);\n }\n\n L(this).val(\"\");\n }, !0);\n }(n), n;\n }\n\n function j() {\n A && T.popups.get(\"image.alt\").find(\"input\").val(A.attr(\"alt\") || \"\").trigger(\"change\");\n }\n\n function q() {\n var e = T.popups.get(\"image.alt\");\n e || (e = X()), k(), T.popups.refresh(\"image.alt\"), T.popups.setContainer(\"image.alt\", T.$sc);\n var t = ye();\n Te() && (t = t.find(\".fr-img-wrap\"));\n var n = t.offset().left + t.outerWidth() / 2,\n r = t.offset().top + t.outerHeight();\n T.popups.show(\"image.alt\", n, r, t.outerHeight(), !0);\n }\n\n function X(e) {\n if (e) return T.popups.onRefresh(\"image.alt\", j), !0;\n var t = {\n buttons: '
    '.concat(T.button.buildList(T.opts.imageAltButtons), \"
    \"),\n alt_layer: '
    \")\n },\n n = T.popups.create(\"image.alt\", t);\n return T.$wp && T.events.$on(T.$wp, \"scroll.image-alt\", function () {\n A && T.popups.isVisible(\"image.alt\") && q();\n }), n;\n }\n\n function Z() {\n var e = T.popups.get(\"image.size\"),\n t = A.get(0).style.height ? A.get(0).style.height : \"auto\",\n n = A.get(0).style.width ? A.get(0).style.width : \"auto\";\n if (A) if (Te()) {\n var r = A.parent();\n r.get(0).style.width || (r = A.parent().parent()), e.find('input[name=\"width\"]').val(n).trigger(\"change\"), e.find('input[name=\"height\"]').val(t).trigger(\"change\");\n } else e.find('input[name=\"width\"]').val(n).trigger(\"change\"), e.find('input[name=\"height\"]').val(t).trigger(\"change\");\n }\n\n function Q() {\n var e = T.popups.get(\"image.size\");\n e || (e = J()), k(), T.popups.refresh(\"image.size\"), T.popups.setContainer(\"image.size\", T.$sc);\n var t = ye();\n Te() && (t = t.find(\".fr-img-wrap\"));\n var n = t.offset().left + t.outerWidth() / 2,\n r = t.offset().top + t.outerHeight();\n T.popups.show(\"image.size\", n, r, t.outerHeight(), !0);\n }\n\n function J(e) {\n if (e) return T.popups.onRefresh(\"image.size\", Z), !0;\n var t = {\n buttons: '
    '.concat(T.button.buildList(T.opts.imageSizeButtons), \"
    \"),\n size_layer: '
    \")\n },\n n = T.popups.create(\"image.size\", t);\n return T.$wp && T.events.$on(T.$wp, \"scroll.image-size\", function () {\n A && T.popups.isVisible(\"image.size\") && Q();\n }), n;\n }\n\n function ee(e, t, n, r) {\n return e.pageX = t, E.call(this, e), e.pageX = e.pageX + n * Math.floor(Math.pow(1.1, r)), y.call(this, e), x.call(this, e), ++r;\n }\n\n function te(e) {\n (e = e || ye()) && !1 !== T.events.trigger(\"image.beforeRemove\", [e]) && (T.popups.hideAll(), Ce(), fe(!0), T.undo.canDo() || T.undo.saveStep(), e.get(0) == T.el ? e.removeAttr(\"src\") : (e.get(0).parentNode && \"A\" == e.get(0).parentNode.tagName ? (T.selection.setBefore(e.get(0).parentNode) || T.selection.setAfter(e.get(0).parentNode) || e.parent().after(xt.MARKERS), L(e.get(0).parentNode).remove()) : (T.selection.setBefore(e.get(0)) || T.selection.setAfter(e.get(0)) || e.after(xt.MARKERS), e.remove()), T.html.fillEmptyBlocks(), T.selection.restore()), T.undo.saveStep());\n }\n\n function ne(e) {\n var t = e.which;\n if (A && (t == xt.KEYCODE.BACKSPACE || t == xt.KEYCODE.DELETE)) return e.preventDefault(), e.stopPropagation(), te(), !1;\n\n if (A && t == xt.KEYCODE.ESC) {\n var n = A;\n return fe(!0), T.selection.setAfter(n.get(0)), T.selection.restore(), e.preventDefault(), !1;\n }\n\n if (!A || t != xt.KEYCODE.ARROW_LEFT && t != xt.KEYCODE.ARROW_RIGHT) return A && t === xt.KEYCODE.TAB ? (e.preventDefault(), e.stopPropagation(), fe(!0), !1) : A && t != xt.KEYCODE.F10 && !T.keys.isBrowserAction(e) ? (e.preventDefault(), e.stopPropagation(), !1) : void 0;\n var r = A.get(0);\n return fe(!0), t == xt.KEYCODE.ARROW_LEFT ? T.selection.setBefore(r) : T.selection.setAfter(r), T.selection.restore(), e.preventDefault(), !1;\n }\n\n function re(e) {\n if (e && \"IMG\" == e.tagName) {\n if (T.node.hasClass(e, \"fr-uploading\") || T.node.hasClass(e, \"fr-error\") ? e.parentNode.removeChild(e) : T.node.hasClass(e, \"fr-draggable\") && e.classList.remove(\"fr-draggable\"), e.parentNode && e.parentNode.parentNode && T.node.hasClass(e.parentNode.parentNode, \"fr-img-caption\")) {\n var t = e.parentNode.parentNode;\n t.removeAttribute(\"contenteditable\"), t.removeAttribute(\"draggable\"), t.classList.remove(\"fr-draggable\");\n var n = e.nextSibling;\n n && n.removeAttribute(\"contenteditable\");\n }\n } else if (e && e.nodeType == Node.ELEMENT_NODE) for (var r = e.querySelectorAll(\"img.fr-uploading, img.fr-error, img.fr-draggable\"), a = 0; a < r.length; a++) {\n re(r[a]);\n }\n }\n\n function ae(e) {\n if (!1 === T.events.trigger(\"image.beforePasteUpload\", [e])) return !1;\n A = L(e), _(), o(), be(), N(), A.on(\"load\", function () {\n var t = [];\n _(), L(T.popups.get(\"image.insert\").get(0)).find(\"div.fr-active.fr-error\").length < 1 && N(), L(this).data(\"events\").filter(function (e) {\n \"load\" === e[0] && t.push(e);\n }), t.length <= 1 && L(this).off(\"load\");\n });\n\n for (var t = L(e).attr(\"src\").split(\",\"), n = atob(t[1]), r = [], a = 0; a < n.length; a++) {\n r.push(n.charCodeAt(a));\n }\n\n W([new Blob([new Uint8Array(r)], {\n type: t[0].replace(/data\\:/g, \"\").replace(/;base64/g, \"\")\n })], A);\n }\n\n function oe() {\n T.opts.imagePaste ? T.$el.find(\"img[data-fr-image-pasted]\").each(function (e, r) {\n if (T.opts.imagePasteProcess) {\n var t = T.opts.imageDefaultWidth;\n t && \"auto\" != t && (t += T.opts.imageResizeWithPercent ? \"%\" : \"px\"), L(r).css(\"width\", t).removeClass(\"fr-dii fr-dib fr-fir fr-fil\"), ge(L(r), T.opts.imageDefaultDisplay, T.opts.imageDefaultAlign);\n }\n\n if (0 === r.src.indexOf(\"data:\")) ae(r);else if (0 === r.src.indexOf(\"blob:\") || 0 === r.src.indexOf(\"http\") && T.opts.imageUploadRemoteUrls && T.opts.imageCORSProxy) {\n var n = new Image();\n n.crossOrigin = \"Anonymous\", n.onload = function () {\n var e,\n t = T.o_doc.createElement(\"CANVAS\"),\n n = t.getContext(\"2d\");\n t.height = this.naturalHeight, t.width = this.naturalWidth, n.drawImage(this, 0, 0), setTimeout(function () {\n ae(r);\n }, 0), e = 2e3 < this.naturalWidth || 1500 < this.naturalHeight ? \"jpeg\" : \"png\", r.src = t.toDataURL(\"image/\".concat(e));\n }, n.src = (0 === r.src.indexOf(\"blob:\") ? \"\" : \"\".concat(T.opts.imageCORSProxy, \"/\")) + r.src;\n } else 0 !== r.src.indexOf(\"http\") || 0 === r.src.indexOf(\"https://mail.google.com/mail\") ? (T.selection.save(), L(r).remove(), T.selection.restore()) : L(r).removeAttr(\"data-fr-image-pasted\");\n }) : T.$el.find(\"img[data-fr-image-pasted]\").remove();\n }\n\n function ie(e) {\n var t = e.target.result,\n n = T.opts.imageDefaultWidth;\n n && \"auto\" != n && (n += T.opts.imageResizeWithPercent ? \"%\" : \"px\"), T.undo.saveStep(), T.html.insert('\"));\n var r = T.$el.find('img[data-fr-image-pasted=\"true\"]');\n r && ge(r, T.opts.imageDefaultDisplay, T.opts.imageDefaultAlign), T.events.trigger(\"paste.after\");\n }\n\n function se(e, t) {\n var n = new FileReader();\n n.onload = function r(e) {\n var t = T.opts.imageDefaultWidth;\n t && \"auto\" != t && (t += T.opts.imageResizeWithPercent ? \"%\" : \"px\"), T.html.insert('\"));\n var n = T.$el.find('img[data-fr-image-pasted=\"true\"]');\n n && ge(n, T.opts.imageDefaultDisplay, T.opts.imageDefaultAlign), T.events.trigger(\"paste.after\");\n }(t), n.readAsDataURL(e, t);\n }\n\n function le(e) {\n if (e && e.clipboardData && e.clipboardData.items) {\n var t = (e.clipboardData || window.clipboardData).getData(\"text/html\") || \"\",\n n = new DOMParser().parseFromString(t, \"text/html\").querySelector(\"img\");\n\n if (n) {\n if (!n) return !1;\n var r = n.src,\n a = null;\n if (e.clipboardData.types && -1 != [].indexOf.call(e.clipboardData.types, \"text/rtf\") || e.clipboardData.getData(\"text/rtf\")) a = e.clipboardData.items[0].getAsFile();else for (var o = 0; o < e.clipboardData.items.length && !(a = e.clipboardData.items[o].getAsFile()); o++) {\n ;\n }\n if (a) return se(a, r), !1;\n } else {\n var i = null;\n if (e.clipboardData.types && -1 != [].indexOf.call(e.clipboardData.types, \"text/rtf\") || e.clipboardData.getData(\"text/rtf\")) i = e.clipboardData.items[0].getAsFile();else for (var s = 0; s < e.clipboardData.items.length && !(i = e.clipboardData.items[s].getAsFile()); s++) {\n ;\n }\n if (i) return function l(e) {\n var t = new FileReader();\n t.onload = ie, t.readAsDataURL(e);\n }(i), !1;\n }\n }\n }\n\n function ce(e) {\n return e = e.replace(/\") : L(T.node.blockParent(e.get(0))).after(\"<\".concat(T.html.defaultTag(), \">
    \")));\n });\n })(), \"IMG\" == T.el.tagName && T.$el.addClass(\"fr-view\"), T.events.$on(T.$el, T.helpers.isMobile() && !T.helpers.isWindowsPhone() ? \"touchend\" : \"click\", \"IMG\" == T.el.tagName ? null : 'img:not([contenteditable=\"false\"])', de), T.helpers.isMobile() && (T.events.$on(T.$el, \"touchstart\", \"IMG\" == T.el.tagName ? null : 'img:not([contenteditable=\"false\"])', function () {\n n = !1;\n }), T.events.$on(T.$el, \"touchmove\", function () {\n n = !0;\n })), T.$wp ? (T.events.on(\"window.keydown keydown\", ne, !0), T.events.on(\"keyup\", function (e) {\n if (A && e.which == xt.KEYCODE.ENTER) return !1;\n }, !0), T.events.$on(T.$el, \"keydown\", function () {\n var e = T.selection.element();\n (e.nodeType === Node.TEXT_NODE || \"BR\" == e.tagName && T.node.isLastSibling(e)) && (e = e.parentNode), T.node.hasClass(e, \"fr-inner\") || (T.node.hasClass(e, \"fr-img-caption\") || (e = L(e).parents(\".fr-img-caption\").get(0)), T.node.hasClass(e, \"fr-img-caption\") && (L(e).after(xt.INVISIBLE_SPACE + xt.MARKERS), T.selection.restore()));\n })) : T.events.$on(T.$win, \"keydown\", ne), T.events.on(\"toolbar.esc\", function () {\n if (A) {\n if (T.$wp) T.events.disableBlur(), T.events.focus();else {\n var e = A;\n fe(!0), T.selection.setAfter(e.get(0)), T.selection.restore();\n }\n return !1;\n }\n }, !0), T.events.on(\"toolbar.focusEditor\", function () {\n if (A) return !1;\n }, !0), T.events.on(\"window.cut window.copy\", function (e) {\n if (A && T.popups.isVisible(\"image.edit\") && !T.popups.get(\"image.edit\").find(\":focus\").length) {\n var t = ye();\n Te() ? (t.before(xt.START_MARKER), t.after(xt.END_MARKER), T.selection.restore(), T.paste.saveCopiedText(t.get(0).outerHTML, t.text())) : (Ce(), T.paste.saveCopiedText(A.get(0).outerHTML, A.attr(\"alt\"))), \"copy\" == e.type ? setTimeout(function () {\n B(A);\n }) : (fe(!0), T.undo.saveStep(), setTimeout(function () {\n T.undo.saveStep();\n }, 0));\n }\n }, !0), T.browser.msie && T.events.on(\"keydown\", function (e) {\n if (!T.selection.isCollapsed() || !A) return !0;\n var t = e.which;\n t == xt.KEYCODE.C && T.keys.ctrlKey(e) ? T.events.trigger(\"window.copy\") : t == xt.KEYCODE.X && T.keys.ctrlKey(e) && T.events.trigger(\"window.cut\");\n }), T.events.$on(L(T.o_win), \"keydown\", function (e) {\n var t = e.which;\n if (A && t == xt.KEYCODE.BACKSPACE) return e.preventDefault(), !1;\n }), T.events.$on(T.$win, \"keydown\", function (e) {\n var t = e.which;\n A && A.hasClass(\"fr-uploading\") && t == xt.KEYCODE.ESC && A.trigger(\"abortUpload\");\n }), T.events.on(\"destroy\", function () {\n A && A.hasClass(\"fr-uploading\") && A.trigger(\"abortUpload\");\n }), T.events.on(\"paste.before\", le), T.events.on(\"paste.beforeCleanup\", ce), T.events.on(\"paste.after\", oe), T.events.on(\"html.set\", m), T.events.on(\"html.inserted\", m), m(), T.events.on(\"destroy\", function () {\n s = [];\n }), T.events.on(\"html.processGet\", re), T.opts.imageOutputSize && T.events.on(\"html.beforeGet\", function () {\n r = T.el.querySelectorAll(\"img\");\n\n for (var e = 0; e < r.length; e++) {\n var t = r[e].style.width || L(r[e]).width(),\n n = r[e].style.height || L(r[e]).height();\n t && r[e].setAttribute(\"width\", \"\".concat(t).replace(/px/, \"\")), n && r[e].setAttribute(\"height\", \"\".concat(n).replace(/px/, \"\"));\n }\n }), T.opts.iframe && T.events.on(\"image.loaded\", T.size.syncIframe), T.$wp && (v(), T.events.on(\"contentChanged\", v)), T.events.$on(L(T.o_win), \"orientationchange.image\", function () {\n setTimeout(function () {\n A && B(A);\n }, 100);\n }), O(!0), Y(!0), J(!0), X(!0), T.events.on(\"node.remove\", function (e) {\n if (\"IMG\" == e.get(0).tagName) return te(e), !1;\n });\n },\n showInsertPopup: function Se() {\n var e = T.$tb.find('.fr-command[data-cmd=\"insertImage\"]'),\n t = T.popups.get(\"image.insert\");\n if (t || (t = Y()), k(), !t.hasClass(\"fr-active\")) if (T.popups.refresh(\"image.insert\"), T.popups.setContainer(\"image.insert\", T.$tb), e.isVisible()) {\n var n = T.button.getPosition(e),\n r = n.left,\n a = n.top;\n T.popups.show(\"image.insert\", r, a, e.outerHeight());\n } else T.position.forSelection(t), T.popups.show(\"image.insert\");\n },\n showLayer: function we(e) {\n var t,\n n,\n r = T.popups.get(\"image.insert\");\n\n if (A || T.opts.toolbarInline) {\n if (A) {\n var a = ye();\n Te() && (a = a.find(\".fr-img-wrap\")), n = a.offset().top + a.outerHeight(), t = a.offset().left;\n }\n } else {\n var o = T.$tb.find('.fr-command[data-cmd=\"insertImage\"]');\n t = o.offset().left, n = o.offset().top + (T.opts.toolbarBottom ? 10 : o.outerHeight() - 10);\n }\n\n !A && T.opts.toolbarInline && (n = r.offset().top - T.helpers.getPX(r.css(\"margin-top\")), r.hasClass(\"fr-above\") && (n += r.outerHeight())), r.find(\".fr-layer\").removeClass(\"fr-active\"), r.find(\".fr-\".concat(e, \"-layer\")).addClass(\"fr-active\"), T.popups.show(\"image.insert\", t, n, A ? A.outerHeight() : 0), T.accessibility.focusPopup(r);\n },\n refreshUploadButton: function Re(e) {\n var t = T.popups.get(\"image.insert\");\n t && t.find(\".fr-image-upload-layer\").hasClass(\"fr-active\") && e.addClass(\"fr-active\").attr(\"aria-pressed\", !0);\n },\n refreshByURLButton: function _e(e) {\n var t = T.popups.get(\"image.insert\");\n t && t.find(\".fr-image-by-url-layer\").hasClass(\"fr-active\") && e.addClass(\"fr-active\").attr(\"aria-pressed\", !0);\n },\n upload: W,\n insertByURL: function xe() {\n var e = T.popups.get(\"image.insert\").find(\".fr-image-by-url-layer input\");\n\n if (0 < e.val().length) {\n N(), I(T.language.translate(\"Loading image\"));\n var t = e.val().trim();\n\n if (T.opts.imageUploadRemoteUrls && T.opts.imageCORSProxy && T.opts.imageUpload) {\n var n = new XMLHttpRequest();\n n.onload = function () {\n 200 == this.status ? W([new Blob([this.response], {\n type: this.response.type || \"image/png\"\n })], A) : M(r);\n }, n.onerror = function () {\n $(t, !0, [], A);\n }, n.open(\"GET\", \"\".concat(T.opts.imageCORSProxy, \"/\").concat(t), !0), n.responseType = \"blob\", n.send();\n } else $(t, !0, [], A);\n\n e.val(\"\"), e.blur();\n }\n },\n align: function Me(e) {\n var t = ye();\n t.removeClass(\"fr-fir fr-fil\"), !T.opts.htmlUntouched && T.opts.useClasses ? \"left\" == e ? t.addClass(\"fr-fil\") : \"right\" == e && t.addClass(\"fr-fir\") : ge(t, ve(), e), Ce(), _(), o(), T.selection.clear();\n },\n refreshAlign: function Oe(e) {\n A && e.find(\"> *\").first().replaceWith(T.icon.create(\"image-align-\".concat(me())));\n },\n refreshAlignOnShow: function Ne(e, t) {\n A && t.find('.fr-command[data-param1=\"'.concat(me(), '\"]')).addClass(\"fr-active\").attr(\"aria-selected\", !0);\n },\n display: function ke(e) {\n var t = ye();\n t.removeClass(\"fr-dii fr-dib\"), !T.opts.htmlUntouched && T.opts.useClasses ? \"inline\" == e ? t.addClass(\"fr-dii\") : \"block\" == e && t.addClass(\"fr-dib\") : ge(t, e, me()), Ce(), _(), o(), T.selection.clear();\n },\n refreshDisplayOnShow: function Ie(e, t) {\n A && t.find('.fr-command[data-param1=\"'.concat(ve(), '\"]')).addClass(\"fr-active\").attr(\"aria-selected\", !0);\n },\n replace: be,\n back: function e() {\n A ? (T.events.disableBlur(), L(\".fr-popup input:focus\").blur(), B(A)) : (T.events.disableBlur(), T.selection.restore(), T.events.enableBlur(), T.popups.hide(\"image.insert\"), T.toolbar.showInline());\n },\n get: Ee,\n getEl: ye,\n insert: $,\n showProgressBar: N,\n remove: te,\n hideProgressBar: k,\n applyStyle: function De(e, t, n) {\n if (void 0 === t && (t = T.opts.imageStyles), void 0 === n && (n = T.opts.imageMultipleStyles), !A) return !1;\n var r = ye();\n\n if (!n) {\n var a = Object.keys(t);\n a.splice(a.indexOf(e), 1), r.removeClass(a.join(\" \"));\n }\n\n \"object\" == _t(t[e]) ? (r.removeAttr(\"style\"), r.css(t[e].style)) : r.toggleClass(e), B(A);\n },\n showAltPopup: q,\n showSizePopup: Q,\n setAlt: function Be(e) {\n if (A) {\n var t = T.popups.get(\"image.alt\");\n A.attr(\"alt\", e || t.find(\"input\").val() || \"\"), t.find(\"input:focus\").blur(), B(A);\n }\n },\n setSize: function Fe(e, t) {\n if (A) {\n var n = T.popups.get(\"image.size\");\n e = e || n.find('input[name=\"width\"]').val() || \"\", t = t || n.find('input[name=\"height\"]').val() || \"\";\n var r = /^[\\d]+((px)|%)*$/g;\n A.removeAttr(\"width\").removeAttr(\"height\"), e.match(r) ? A.css(\"width\", e) : A.css(\"width\", \"\"), t.match(r) ? A.css(\"height\", t) : A.css(\"height\", \"\"), Te() && (A.parents(\".fr-img-caption\").removeAttr(\"width\").removeAttr(\"height\"), e.match(r) ? A.parents(\".fr-img-caption\").css(\"width\", e) : A.parents(\".fr-img-caption\").css(\"width\", \"\"), t.match(r) ? A.parents(\".fr-img-caption\").css(\"height\", t) : A.parents(\".fr-img-caption\").css(\"height\", \"\")), n && n.find(\"input:focus\").blur(), B(A);\n }\n },\n toggleCaption: function $e() {\n var e;\n\n if (A && !Te()) {\n ((e = A).parent().is(\"a\") || A.parent().is(\"p\")) && (e = A.parent());\n var t,\n n,\n r = A.parents(\"ul\") && 0 < A.parents(\"ul\").length ? A.parents(\"ul\") : A.parents(\"ol\") && 0 < A.parents(\"ol\").length ? A.parents(\"ol\") : [];\n\n if (0 < r.length) {\n var a = r.find(\"li\").length,\n o = A.parents(\"li\"),\n i = document.createElement(\"li\");\n a - 1 === o.index() && (r.append(i), i.innerHTML = \" \");\n }\n\n e.attr(\"style\") ? n = -1 < (t = e.attr(\"style\").split(\":\")).indexOf(\"width\") ? t[t.indexOf(\"width\") + 1].replace(\";\", \"\") : \"\" : e.attr(\"width\") && (n = e.attr(\"width\"));\n var s = T.opts.imageResizeWithPercent ? (-1 < n.indexOf(\"px\") ? null : n) || \"100%\" : A.width() + \"px\";\n e.wrap('

     

    '), e.wrap(''), A.after('\").concat(xt.START_MARKER).concat(T.language.translate(\"Image Caption\")).concat(xt.END_MARKER, \"\")), A.parents(\".fr-img-caption\").css(\"width\", s), 1 < A.parents(\".fr-img-space-wrap\").length && (Ae(document.querySelector(\".fr-img-space-wrap\")), Ae(document.querySelector(\".fr-img-space-wrap2\"))), fe(!0), T.selection.restore();\n } else {\n if (e = ye(), A.insertBefore(e), null !== e[0].querySelector(\"a\")) {\n for (var l, c = e[0].querySelector(\"a\"), d = document.createElement(\"a\"), f = 0, p = c.attributes, u = p.length; f < u; f++) {\n l = p[f], d.setAttribute(l.nodeName, l.nodeValue);\n }\n\n A.wrap(d);\n }\n\n A.attr(\"class\", e.attr(\"class\").replace(\"fr-img-caption\", \"\")).attr(\"style\", e.attr(\"style\")), e.remove(), 1 < A.parents(\".fr-img-space-wrap\").length && (Ae(document.querySelector(\".fr-img-space-wrap\")), Ae(document.querySelector(\".fr-img-space-wrap2\"))), B(A);\n }\n },\n hasCaption: Te,\n exitEdit: fe,\n edit: B\n };\n }, xt.DefineIcon(\"insertImage\", {\n NAME: \"image\",\n SVG_KEY: \"insertImage\"\n }), xt.RegisterShortcut(xt.KEYCODE.P, \"insertImage\", null, \"P\"), xt.RegisterCommand(\"insertImage\", {\n title: \"Insert Image\",\n undo: !1,\n focus: !0,\n refreshAfterCallback: !1,\n popup: !0,\n callback: function callback() {\n this.popups.isVisible(\"image.insert\") ? (this.$el.find(\".fr-marker\").length && (this.events.disableBlur(), this.selection.restore()), this.popups.hide(\"image.insert\")) : this.image.showInsertPopup();\n },\n plugin: \"image\"\n }), xt.DefineIcon(\"imageUpload\", {\n NAME: \"upload\",\n SVG_KEY: \"upload\"\n }), xt.RegisterCommand(\"imageUpload\", {\n title: \"Upload Image\",\n undo: !1,\n focus: !1,\n toggle: !0,\n callback: function callback() {\n this.image.showLayer(\"image-upload\");\n },\n refresh: function refresh(e) {\n this.image.refreshUploadButton(e);\n }\n }), xt.DefineIcon(\"imageByURL\", {\n NAME: \"link\",\n SVG_KEY: \"insertLink\"\n }), xt.RegisterCommand(\"imageByURL\", {\n title: \"By URL\",\n undo: !1,\n focus: !1,\n toggle: !0,\n callback: function callback() {\n this.image.showLayer(\"image-by-url\");\n },\n refresh: function refresh(e) {\n this.image.refreshByURLButton(e);\n }\n }), xt.RegisterCommand(\"imageInsertByURL\", {\n title: \"Insert Image\",\n undo: !0,\n refreshAfterCallback: !1,\n callback: function callback() {\n this.image.insertByURL();\n },\n refresh: function refresh(e) {\n this.image.get() ? e.text(this.language.translate(\"Replace\")) : e.text(this.language.translate(\"Insert\"));\n }\n }), xt.DefineIcon(\"imageDisplay\", {\n NAME: \"star\",\n SVG_KEY: \"imageDisplay\"\n }), xt.RegisterCommand(\"imageDisplay\", {\n title: \"Display\",\n type: \"dropdown\",\n options: {\n inline: \"Inline\",\n block: \"Break Text\"\n },\n callback: function callback(e, t) {\n this.image.display(t);\n },\n refresh: function refresh(e) {\n this.opts.imageTextNear || e.addClass(\"fr-hidden\");\n },\n refreshOnShow: function refreshOnShow(e, t) {\n this.image.refreshDisplayOnShow(e, t);\n }\n }), xt.DefineIcon(\"image-align\", {\n NAME: \"align-left\",\n SVG_KEY: \"alignLeft\"\n }), xt.DefineIcon(\"image-align-left\", {\n NAME: \"align-left\",\n SVG_KEY: \"alignLeft\"\n }), xt.DefineIcon(\"image-align-right\", {\n NAME: \"align-right\",\n SVG_KEY: \"alignRight\"\n }), xt.DefineIcon(\"image-align-center\", {\n NAME: \"align-justify\",\n SVG_KEY: \"alignCenter\"\n }), xt.DefineIcon(\"imageAlign\", {\n NAME: \"align-justify\",\n SVG_KEY: \"alignJustify\"\n }), xt.RegisterCommand(\"imageAlign\", {\n type: \"dropdown\",\n title: \"Align\",\n options: {\n left: \"Align Left\",\n center: \"None\",\n right: \"Align Right\"\n },\n html: function html() {\n var e = '\";\n },\n callback: function callback(e, t) {\n this.image.align(t);\n },\n refresh: function refresh(e) {\n this.image.refreshAlign(e);\n },\n refreshOnShow: function refreshOnShow(e, t) {\n this.image.refreshAlignOnShow(e, t);\n }\n }), xt.DefineIcon(\"imageReplace\", {\n NAME: \"exchange\",\n FA5NAME: \"exchange-alt\",\n SVG_KEY: \"replaceImage\"\n }), xt.RegisterCommand(\"imageReplace\", {\n title: \"Replace\",\n undo: !1,\n focus: !1,\n popup: !0,\n refreshAfterCallback: !1,\n callback: function callback() {\n this.image.replace();\n }\n }), xt.DefineIcon(\"imageRemove\", {\n NAME: \"trash\",\n SVG_KEY: \"remove\"\n }), xt.RegisterCommand(\"imageRemove\", {\n title: \"Remove\",\n callback: function callback() {\n this.image.remove();\n }\n }), xt.DefineIcon(\"imageBack\", {\n NAME: \"arrow-left\",\n SVG_KEY: \"back\"\n }), xt.RegisterCommand(\"imageBack\", {\n title: \"Back\",\n undo: !1,\n focus: !1,\n back: !0,\n callback: function callback() {\n this.image.back();\n },\n refresh: function refresh(e) {\n this.$;\n this.image.get() || this.opts.toolbarInline ? (e.removeClass(\"fr-hidden\"), e.next(\".fr-separator\").removeClass(\"fr-hidden\")) : (e.addClass(\"fr-hidden\"), e.next(\".fr-separator\").addClass(\"fr-hidden\"));\n }\n }), xt.RegisterCommand(\"imageDismissError\", {\n title: \"OK\",\n undo: !1,\n callback: function callback() {\n this.image.hideProgressBar(!0);\n }\n }), xt.DefineIcon(\"imageStyle\", {\n NAME: \"magic\",\n SVG_KEY: \"imageClass\"\n }), xt.RegisterCommand(\"imageStyle\", {\n title: \"Style\",\n type: \"dropdown\",\n html: function html() {\n var e = '
      ',\n t = this.opts.imageStyles;\n\n for (var n in t) {\n if (t.hasOwnProperty(n)) {\n var r = t[n];\n \"object\" == _t(r) && (r = r.title), e += '
    • ').concat(this.language.translate(r), \"
    • \");\n }\n }\n\n return e += \"
    \";\n },\n callback: function callback(e, t) {\n this.image.applyStyle(t);\n },\n refreshOnShow: function refreshOnShow(e, t) {\n var n = this.$,\n r = this.image.getEl();\n r && t.find(\".fr-command\").each(function () {\n var e = n(this).data(\"param1\"),\n t = r.hasClass(e);\n n(this).toggleClass(\"fr-active\", t).attr(\"aria-selected\", t);\n });\n }\n }), xt.DefineIcon(\"imageAlt\", {\n NAME: \"info\",\n SVG_KEY: \"imageAltText\"\n }), xt.RegisterCommand(\"imageAlt\", {\n undo: !1,\n focus: !1,\n popup: !0,\n title: \"Alternative Text\",\n callback: function callback() {\n this.image.showAltPopup();\n }\n }), xt.RegisterCommand(\"imageSetAlt\", {\n undo: !0,\n focus: !1,\n title: \"Update\",\n refreshAfterCallback: !1,\n callback: function callback() {\n this.image.setAlt();\n }\n }), xt.DefineIcon(\"imageSize\", {\n NAME: \"arrows-alt\",\n SVG_KEY: \"imageSize\"\n }), xt.RegisterCommand(\"imageSize\", {\n undo: !1,\n focus: !1,\n popup: !0,\n title: \"Change Size\",\n callback: function callback() {\n this.image.showSizePopup();\n }\n }), xt.RegisterCommand(\"imageSetSize\", {\n undo: !0,\n focus: !1,\n title: \"Update\",\n refreshAfterCallback: !1,\n callback: function callback() {\n this.image.setSize();\n }\n }), xt.DefineIcon(\"imageCaption\", {\n NAME: \"commenting\",\n FA5NAME: \"comment-alt\",\n SVG_KEY: \"imageCaption\"\n }), xt.RegisterCommand(\"imageCaption\", {\n undo: !0,\n focus: !1,\n title: \"Image Caption\",\n refreshAfterCallback: !0,\n callback: function callback() {\n this.image.toggleCaption();\n },\n refresh: function refresh(e) {\n this.image.get() && e.toggleClass(\"fr-active\", this.image.hasCaption());\n }\n }), Object.assign(xt.DEFAULTS, {\n imageManagerLoadURL: \"https://i.froala.com/load-files\",\n imageManagerLoadMethod: \"get\",\n imageManagerLoadParams: {},\n imageManagerPreloader: null,\n imageManagerDeleteURL: \"\",\n imageManagerDeleteMethod: \"post\",\n imageManagerDeleteParams: {},\n imageManagerPageSize: 12,\n imageManagerScrollOffset: 20,\n imageManagerToggleTags: !0\n }), xt.PLUGINS.imageManager = function (s) {\n var l,\n c,\n o,\n i,\n d,\n f,\n p,\n u,\n h,\n g,\n m,\n v = s.$,\n b = \"image_manager\",\n e = 10,\n C = 11,\n E = 12,\n y = 13,\n T = 14,\n A = 15,\n n = 21,\n r = 22,\n a = {};\n\n function L() {\n var e = v(window).outerWidth();\n return e < 768 ? 2 : e < 1200 ? 3 : 4;\n }\n\n function S() {\n d.empty();\n\n for (var e = 0; e < m; e++) {\n d.append('
    ');\n }\n }\n\n function w() {\n if (h < p.length && o[0].scrollTop >= o[0].scrollHeight - s.opts.imageManagerScrollOffset - o.outerHeight()) {\n u++;\n\n for (var e = s.opts.imageManagerPageSize * (u - 1); e < Math.min(p.length, s.opts.imageManagerPageSize * u); e++) {\n t(p[e]);\n }\n }\n }\n\n function t(a) {\n var o = new Image(),\n i = v(document.createElement(\"div\")).attr(\"class\", \"fr-image-container fr-empty fr-image-\" + g++).attr(\"data-loading\", s.language.translate(\"Loading\") + \"..\").attr(\"data-deleting\", s.language.translate(\"Deleting\") + \"..\");\n M(!1), o.onload = function () {\n i.height(Math.floor(i.width() / o.width * o.height));\n var n = v(document.createElement(\"img\"));\n if (a.thumb) n.attr(\"src\", a.thumb);else {\n if (I(T, a), !a.url) return I(A, a), !1;\n n.attr(\"src\", a.url);\n }\n if (a.url && n.attr(\"data-url\", a.url), a.tag) if (c.find(\".fr-modal-more.fr-not-available\").removeClass(\"fr-not-available\"), c.find(\".fr-modal-tags\").show(), 0 <= a.tag.indexOf(\",\")) {\n for (var e = a.tag.split(\",\"), t = 0; t < e.length; t++) {\n e[t] = e[t].trim(), 0 === f.find('a[title=\"'.concat(e[t], '\"]')).length && f.append('').concat(e[t], \"\"));\n }\n\n n.attr(\"data-tag\", e.join());\n } else 0 === f.find('a[title=\"'.concat(a.tag.trim(), '\"]')).length && f.append('').concat(a.tag.trim(), \"\")), n.attr(\"data-tag\", a.tag.trim());\n\n for (var r in a.name && n.attr(\"alt\", a.name), a) {\n a.hasOwnProperty(r) && \"thumb\" !== r && \"url\" !== r && \"tag\" !== r && n.attr(\"data-\".concat(r), a[r]);\n }\n\n i.append(n).append(v(s.icon.create(\"imageManagerDelete\")).addClass(\"fr-delete-img\").attr(\"title\", s.language.translate(\"Delete\"))).append(v(s.icon.create(\"imageManagerInsert\")).addClass(\"fr-insert-img\").attr(\"title\", s.language.translate(\"Insert\"))), f.find(\".fr-selected-tag\").each(function (e, t) {\n $(n, t.text) || i.hide();\n }), n.on(\"load\", function () {\n i.removeClass(\"fr-empty\"), i.height(\"auto\"), h++, x(_(parseInt(n.parent().attr(\"class\").match(/fr-image-(\\d+)/)[1], 10) + 1)), M(!1), h % s.opts.imageManagerPageSize == 0 && w();\n }), s.events.trigger(\"imageManager.imageLoaded\", [n]);\n }, o.onerror = function () {\n h++, i.remove(), x(_(parseInt(i.attr(\"class\").match(/fr-image-(\\d+)/)[1], 10) + 1)), I(e, a), h % s.opts.imageManagerPageSize == 0 && w();\n }, o.src = a.thumb || a.url, R().append(i);\n }\n\n function R() {\n var r, a;\n return d.find(\".fr-list-column\").each(function (e, t) {\n var n = v(t);\n 0 === e ? (a = n.outerHeight(), r = n) : n.outerHeight() < a && (a = n.outerHeight(), r = n);\n }), r;\n }\n\n function _(e) {\n e === undefined && (e = 0);\n\n for (var t = [], n = g - 1; e <= n; n--) {\n var r = d.find(\".fr-image-\".concat(n));\n r.length && (t.push(r), v(document.createElement(\"div\")).attr(\"id\", \"fr-image-hidden-container\").append(r), d.find(\".fr-image-\".concat(n)).remove());\n }\n\n return t;\n }\n\n function x(e) {\n for (var t = e.length - 1; 0 <= t; t--) {\n R().append(e[t]);\n }\n }\n\n function M(e) {\n if (e === undefined && (e = !0), !l.isVisible()) return !0;\n var t = L();\n\n if (t !== m) {\n m = t;\n\n var n = _();\n\n S(), x(n);\n }\n\n s.modals.resize(b), e && w();\n }\n\n function O(e) {\n for (var t, n = e[0].attributes, r = n.length, a = {}; r--;) {\n n[r] && \"src\" !== (t = n[r].name) && (a[t] = n[r].value);\n }\n\n return a;\n }\n\n function N(e) {\n var t = v(e.currentTarget).siblings(\"img\"),\n n = l.data(\"instance\") || s,\n r = l.data(\"current-image\");\n if (s.modals.hide(b), n.image.showProgressBar(), r) r.data(\"fr-old-src\", r.attr(\"src\")), r.trigger(\"click\");else {\n n.events.focus(!0), n.selection.restore();\n var a = n.position.getBoundingRect(),\n o = a.left + a.width / 2 + v(s.doc).scrollLeft(),\n i = a.top + a.height + v(s.doc).scrollTop();\n n.popups.setContainer(\"image.insert\", s.$sc), n.popups.show(\"image.insert\", o, i);\n }\n n.image.insert(t.data(\"url\"), !1, O(t), r);\n }\n\n function k(e) {\n var o = v(e.currentTarget).siblings(\"img\"),\n t = s.language.translate(\"Are you sure? Image will be deleted.\");\n confirm(t) && (s.opts.imageManagerDeleteURL ? !1 !== s.events.trigger(\"imageManager.beforeDeleteImage\", [o]) && (o.parent().addClass(\"fr-image-deleting\"), v(this).ajax({\n method: s.opts.imageManagerDeleteMethod,\n url: s.opts.imageManagerDeleteURL,\n data: Object.assign(Object.assign({\n src: o.attr(\"src\")\n }, O(o)), s.opts.imageManagerDeleteParams),\n crossDomain: s.opts.requestWithCORS,\n withCredentials: s.opts.requestWithCredentials,\n headers: s.opts.requestHeaders,\n done: function done(e, t, n) {\n s.events.trigger(\"imageManager.imageDeleted\", [e]);\n\n var r = _(parseInt(o.parent().attr(\"class\").match(/fr-image-(\\d+)/)[1], 10) + 1);\n\n o.parent().remove(), x(r), function a() {\n l.find(\"#fr-modal-tags > a\").each(function () {\n 0 === l.find('#fr-image-list [data-tag*=\"'.concat(v(this).text(), '\"]')).length && v(this).removeClass(\"fr-selected-tag\").hide();\n }), B();\n }(), M(!0);\n },\n fail: function fail(e) {\n I(n, e.response || e.responseText);\n }\n })) : I(r));\n }\n\n function I(e, t) {\n 10 <= e && e < 20 ? i.hide() : 20 <= e && e < 30 && v(\".fr-image-deleting\").removeClass(\"fr-image-deleting\"), s.events.trigger(\"imageManager.error\", [{\n code: e,\n message: a[e]\n }, t]);\n }\n\n function D() {\n var e = c.find(\".fr-modal-head-line\").outerHeight(),\n t = f.outerHeight();\n c.toggleClass(\"fr-show-tags\"), c.hasClass(\"fr-show-tags\") ? (c.css(\"height\", e + t), o.css(\"marginTop\", e + t), f.find(\"a\").css(\"opacity\", 1)) : (c.css(\"height\", e), o.css(\"marginTop\", e), f.find(\"a\").css(\"opacity\", 0));\n }\n\n function B() {\n var e = f.find(\".fr-selected-tag\");\n 0 < e.length ? (d.find(\"img\").parents().show(), e.each(function (e, r) {\n d.find(\"img\").each(function (e, t) {\n var n = v(t);\n $(n, r.text) || n.parent().hide();\n });\n })) : d.find(\"img\").parents().show(), x(_()), w();\n }\n\n function F(e) {\n e.preventDefault();\n var t = v(e.currentTarget);\n t.toggleClass(\"fr-selected-tag\"), s.opts.imageManagerToggleTags && t.siblings(\"a\").removeClass(\"fr-selected-tag\"), B();\n }\n\n function $(e, t) {\n for (var n = (e.attr(\"data-tag\") || \"\").split(\",\"), r = 0; r < n.length; r++) {\n if (n[r] === t) return !0;\n }\n\n return !1;\n }\n\n return a[e] = \"Image cannot be loaded from the passed link.\", a[C] = \"Error during load images request.\", a[E] = \"Missing imageManagerLoadURL option.\", a[y] = \"Parsing load response failed.\", a[T] = \"Missing image thumb.\", a[A] = \"Missing image URL.\", a[n] = \"Error during delete image request.\", a[r] = \"Missing imageManagerDeleteURL option.\", {\n require: [\"image\"],\n _init: function P() {\n if (!s.$wp && \"IMG\" !== s.el.tagName) return !1;\n },\n show: function H() {\n if (!l) {\n var e,\n t = '

    ').concat(s.language.translate(\"Manage Images\"), '

    \\n
    ');\n e = s.opts.imageManagerPreloader ? '\"'.concat(s.language.translate(\"Loading\"),') : ''.concat(s.language.translate(\"Loading\"), \"\"), e += '
    ';\n var n = s.modals.create(b, t, e);\n l = n.$modal, c = n.$head, o = n.$body;\n }\n\n l.data(\"current-image\", s.image.get()), s.modals.show(b), i || function r() {\n i = l.find(\"#fr-preloader\"), d = l.find(\"#fr-image-list\"), f = l.find(\"#fr-modal-tags\"), m = L(), S(), c.css(\"height\", c.find(\".fr-modal-head-line\").outerHeight()), s.events.$on(v(s.o_win), \"resize\", function () {\n M(!!p);\n }), s.events.bindClick(d, \".fr-insert-img\", N), s.events.bindClick(d, \".fr-delete-img\", k), s.helpers.isMobile() && (s.events.bindClick(d, \"div.fr-image-container\", function (e) {\n l.find(\".fr-mobile-selected\").removeClass(\"fr-mobile-selected\"), v(e.currentTarget).addClass(\"fr-mobile-selected\");\n }), l.on(s._mousedown, function () {\n l.find(\".fr-mobile-selected\").removeClass(\"fr-mobile-selected\");\n })), l.on(s._mousedown + \" \" + s._mouseup, function (e) {\n e.stopPropagation();\n }), l.on(s._mousedown, \"*\", function () {\n s.events.disableBlur();\n }), o.on(\"scroll\", w), s.events.bindClick(l, \"button#fr-modal-more-\".concat(s.sid), D), s.events.bindClick(f, \"a\", F);\n }(), function a() {\n i.show(), d.find(\".fr-list-column\").empty(), s.opts.imageManagerLoadURL ? v(this).ajax({\n url: s.opts.imageManagerLoadURL,\n method: s.opts.imageManagerLoadMethod,\n data: s.opts.imageManagerLoadParams,\n crossDomain: s.opts.requestWithCORS,\n withCredentials: s.opts.requestWithCredentials,\n headers: s.opts.requestHeaders,\n done: function done(e, t, n) {\n s.events.trigger(\"imageManager.imagesLoaded\", [e]), function r(e, t) {\n try {\n d.find(\".fr-list-column\").empty(), g = h = u = 0, p = JSON.parse(e), w();\n } catch (n) {\n I(y, t);\n }\n }(e, n.response), i.hide();\n },\n fail: function fail(e) {\n I(C, e.response || e.responseText);\n }\n }) : I(E);\n }();\n },\n hide: function U() {\n s.modals.hide(b);\n }\n };\n }, !xt.PLUGINS.image) throw new Error(\"Image manager plugin requires image plugin.\");\n return xt.DEFAULTS.imageInsertButtons.push(\"imageManager\"), xt.RegisterCommand(\"imageManager\", {\n title: \"Browse\",\n undo: !1,\n focus: !1,\n modal: !0,\n callback: function callback() {\n this.imageManager.show();\n },\n plugin: \"imageManager\"\n }), xt.DefineIcon(\"imageManager\", {\n NAME: \"folder\",\n SVG_KEY: \"imageManager\"\n }), xt.DefineIcon(\"imageManagerInsert\", {\n NAME: \"plus\",\n SVG_KEY: \"add\"\n }), xt.DefineIcon(\"imageManagerDelete\", {\n NAME: \"trash\",\n SVG_KEY: \"remove\"\n }), Object.assign(xt.DEFAULTS, {\n inlineClasses: {\n \"fr-class-code\": \"Code\",\n \"fr-class-highlighted\": \"Highlighted\",\n \"fr-class-transparency\": \"Transparent\"\n }\n }), xt.PLUGINS.inlineClass = function (n) {\n var r = n.$;\n return {\n apply: function t(e) {\n n.format.toggle(\"span\", {\n \"class\": e\n });\n },\n refreshOnShow: function a(e, t) {\n t.find(\".fr-command\").each(function () {\n var e = r(this).data(\"param1\"),\n t = n.format.is(\"span\", {\n \"class\": e\n });\n r(this).toggleClass(\"fr-active\", t).attr(\"aria-selected\", t);\n });\n }\n };\n }, xt.RegisterCommand(\"inlineClass\", {\n type: \"dropdown\",\n title: \"Inline Class\",\n html: function html() {\n var e = '
      ',\n t = this.opts.inlineClasses;\n\n for (var n in t) {\n t.hasOwnProperty(n) && (e += '
    • ').concat(t[n], \"
    • \"));\n }\n\n return e += \"
    \";\n },\n callback: function callback(e, t) {\n this.inlineClass.apply(t);\n },\n refreshOnShow: function refreshOnShow(e, t) {\n this.inlineClass.refreshOnShow(e, t);\n },\n plugin: \"inlineClass\"\n }), xt.DefineIcon(\"inlineClass\", {\n NAME: \"tag\",\n SVG_KEY: \"inlineClass\"\n }), Object.assign(xt.DEFAULTS, {\n inlineStyles: {\n \"Big Red\": \"font-size: 20px; color: red;\",\n \"Small Blue\": \"font-size: 14px; color: blue;\"\n }\n }), xt.PLUGINS.inlineStyle = function (a) {\n return {\n apply: function o(e) {\n for (var t = e.split(\";\"), n = 0; n < t.length; n++) {\n var r = t[n].split(\":\");\n t[n].length && 2 == r.length && a.format.applyStyle(r[0].trim(), r[1].trim());\n }\n }\n };\n }, xt.RegisterCommand(\"inlineStyle\", {\n type: \"dropdown\",\n html: function html() {\n var e = '
      ',\n t = this.opts.inlineStyles;\n\n for (var n in t) {\n if (t.hasOwnProperty(n)) {\n var r = t[n] + (-1 === t[n].indexOf(\"display:block;\") ? \" display:block;\" : \"\");\n e += '
    • ').concat(this.language.translate(n), \"
    • \");\n }\n }\n\n return e += \"
    \";\n },\n title: \"Inline Style\",\n callback: function callback(e, t) {\n this.inlineStyle.apply(t);\n },\n plugin: \"inlineStyle\"\n }), xt.DefineIcon(\"inlineStyle\", {\n NAME: \"paint-brush\",\n SVG_KEY: \"inlineStyle\"\n }), Object.assign(xt.DEFAULTS, {\n lineBreakerTags: [\"table\", \"hr\", \"form\", \"dl\", \"span.fr-video\", \".fr-embedly\", \"img\"],\n lineBreakerOffset: 15,\n lineBreakerHorizontalOffset: 10\n }), xt.PLUGINS.lineBreaker = function (h) {\n var g,\n t,\n a,\n m = h.$;\n\n function l(e, t) {\n var n, r, a, o, i, s, l, c;\n if (null == e) i = (o = t.parent()).offset().top, n = (l = t.offset().top) - Math.min((l - i) / 2, h.opts.lineBreakerOffset), a = o.outerWidth(), r = o.offset().left;else if (null == t) (s = (o = e.parent()).offset().top + o.outerHeight()) < (c = e.offset().top + e.outerHeight()) && (s = (o = m(o).parent()).offset().top + o.outerHeight()), n = c + Math.min(Math.abs(s - c) / 2, h.opts.lineBreakerOffset), a = o.outerWidth(), r = o.offset().left;else {\n o = e.parent();\n var d = e.offset().top + e.height(),\n f = t.offset().top;\n if (f < d) return !1;\n n = (d + f) / 2, a = o.outerWidth(), r = o.offset().left;\n }\n\n if (h.opts.iframe) {\n var p = h.helpers.getPX(h.$wp.find(\".fr-iframe\").css(\"padding-top\")),\n u = h.helpers.getPX(h.$wp.find(\".fr-iframe\").css(\"padding-left\"));\n r += h.$iframe.offset().left - h.helpers.scrollLeft() + u, n += h.$iframe.offset().top - h.helpers.scrollTop() + p;\n }\n\n h.$box.append(g), g.css(\"top\", n - h.win.pageYOffset), g.css(\"left\", r - h.win.pageXOffset), g.css(\"width\", a), g.data(\"tag1\", e), g.data(\"tag2\", t), g.addClass(\"fr-visible\").data(\"instance\", h);\n }\n\n function c(e) {\n if (e) {\n var t = m(e);\n if (0 === h.$el.find(t).length) return null;\n if (e.nodeType != Node.TEXT_NODE && t.is(h.opts.lineBreakerTags.join(\",\"))) return t;\n if (0 < t.parents(h.opts.lineBreakerTags.join(\",\")).length) return e = t.parents(h.opts.lineBreakerTags.join(\",\")).get(0), 0 !== h.$el.find(m(e)).length && m(e).is(h.opts.lineBreakerTags.join(\",\")) ? m(e) : null;\n }\n\n return null;\n }\n\n function o(e, t) {\n var n = h.doc.elementFromPoint(e, t);\n return n && !m(n).closest(\".fr-line-breaker\").length && !h.node.isElement(n) && n != h.$wp.get(0) && function r(e) {\n if (\"undefined\" != typeof e.inFroalaWrapper) return e.inFroalaWrapper;\n\n for (var t = e; e.parentNode && e.parentNode !== h.$wp.get(0);) {\n e = e.parentNode;\n }\n\n return t.inFroalaWrapper = e.parentNode == h.$wp.get(0), t.inFroalaWrapper;\n }(n) ? n : null;\n }\n\n function i(e, t, n) {\n for (var r = n, a = null; r <= h.opts.lineBreakerOffset && !a;) {\n (a = o(e, t - r)) || (a = o(e, t + r)), r += n;\n }\n\n return a;\n }\n\n function d(e, t, n) {\n for (var r = null, a = 100; !r && e > h.$box.offset().left && e < h.$box.offset().left + h.$box.outerWidth() && 0 < a;) {\n (r = o(e, t)) || (r = i(e, t, 5)), \"left\" == n ? e -= h.opts.lineBreakerHorizontalOffset : e += h.opts.lineBreakerHorizontalOffset, a -= h.opts.lineBreakerHorizontalOffset;\n }\n\n return r;\n }\n\n function n(e) {\n var t = a = null,\n n = null,\n r = h.doc.elementFromPoint(e.pageX - h.win.pageXOffset, e.pageY - h.win.pageYOffset);\n (t = r && (\"HTML\" == r.tagName || \"BODY\" == r.tagName || h.node.isElement(r) || 0 <= (r.getAttribute(\"class\") || \"\").indexOf(\"fr-line-breaker\")) ? ((n = i(e.pageX - h.win.pageXOffset, e.pageY - h.win.pageYOffset, 1)) || (n = d(e.pageX - h.win.pageXOffset - h.opts.lineBreakerHorizontalOffset, e.pageY - h.win.pageYOffset, \"left\")), n || (n = d(e.pageX - h.win.pageXOffset + h.opts.lineBreakerHorizontalOffset, e.pageY - h.win.pageYOffset, \"right\")), c(n)) : c(r)) ? function s(e, t) {\n var n,\n r,\n a = e.offset().top,\n o = e.offset().top + e.outerHeight();\n if (Math.abs(o - t) <= h.opts.lineBreakerOffset || Math.abs(t - a) <= h.opts.lineBreakerOffset) if (Math.abs(o - t) < Math.abs(t - a)) {\n var i = null;\n\n for ((r = e.get(0)).nextSibling && (i = r.nextSibling.offsetParent ? r.nextSibling : null); i && i.nodeType == Node.TEXT_NODE && 0 === i.textContent.length;) {\n i = i.nextSibling;\n }\n\n if (!i) return l(e, null), !0;\n if (n = c(i)) return l(e, n), !0;\n } else {\n if (!(r = e.get(0)).previousSibling) return l(null, e), !0;\n if (n = c(r.previousSibling)) return l(n, e), !0;\n }\n g.removeClass(\"fr-visible\").removeData(\"instance\");\n }(t, e.pageY) : h.core.sameInstance(g) && g.removeClass(\"fr-visible\").removeData(\"instance\");\n }\n\n function r(e) {\n return !(g.hasClass(\"fr-visible\") && !h.core.sameInstance(g)) && (h.popups.areVisible() || h.el.querySelector(\".fr-selected-cell\") ? (g.removeClass(\"fr-visible\"), !0) : void (!1 !== t || h.edit.isDisabled() || (a && clearTimeout(a), a = setTimeout(n, 30, e))));\n }\n\n function s() {\n a && clearTimeout(a), g && g.hasClass(\"fr-visible\") && g.removeClass(\"fr-visible\").removeData(\"instance\");\n }\n\n var f = function f() {\n t = !0, s();\n },\n p = function p() {\n t = !1;\n };\n\n function u(e) {\n e.preventDefault();\n var t = g.data(\"instance\") || h;\n g.removeClass(\"fr-visible\").removeData(\"instance\");\n var n = g.data(\"tag1\"),\n r = g.data(\"tag2\"),\n a = h.html.defaultTag();\n null == n ? a && \"TD\" != r.parent().get(0).tagName && 0 === r.parents(a).length ? r.before(\"<\".concat(a, \">\").concat(xt.MARKERS, \"
    \")) : r.before(\"\".concat(xt.MARKERS, \"
    \")) : a && \"TD\" != n.parent().get(0).tagName && 0 === n.parents(a).length ? n.after(\"<\".concat(a, \">\").concat(xt.MARKERS, \"
    \")) : n.after(\"\".concat(xt.MARKERS, \"
    \")), t.selection.restore(), h.toolbar.enable();\n }\n\n return {\n _init: function v() {\n if (!h.$wp) return !1;\n !function e() {\n h.shared.$line_breaker || (h.shared.$line_breaker = m(document.createElement(\"div\")).attr(\"class\", \"fr-line-breaker\").html(''))), g = h.shared.$line_breaker, h.events.on(\"shared.destroy\", function () {\n g.html(\"\").removeData().remove(), g = null;\n }, !0), h.events.on(\"destroy\", function () {\n g.removeData(\"instance\").removeClass(\"fr-visible\"), m(\"body\").first().append(g), clearTimeout(a);\n }, !0), h.events.$on(g, \"mousemove\", function (e) {\n e.stopPropagation();\n }, !0), h.events.bindClick(g, \"a\", u);\n }(), t = !1, h.events.$on(h.$win, \"mousemove\", r), h.events.$on(m(h.win), \"scroll\", s), h.events.on(\"popups.show.table.edit\", s), h.events.on(\"commands.after\", s), h.events.$on(m(h.win), \"mousedown\", f), h.events.$on(m(h.win), \"mouseup\", p);\n }\n };\n }, Object.assign(xt.DEFAULTS, {\n lineHeights: {\n Default: \"\",\n Single: \"1\",\n 1.15: \"1.15\",\n 1.5: \"1.5\",\n Double: \"2\"\n }\n }), xt.PLUGINS.lineHeight = function (r) {\n var s = r.$;\n return {\n _init: function e() {},\n apply: function a(e) {\n r.selection.save(), r.html.wrap(!0, !0, !0, !0), r.selection.restore();\n var t = r.selection.blocks();\n t.length && s(t[0]).parent().is(\"td\") && r.format.applyStyle(\"line-height\", e.toString()), r.selection.save();\n\n for (var n = 0; n < t.length; n++) {\n s(t[n]).css(\"line-height\", e), \"\" === s(t[n]).attr(\"style\") && s(t[n]).removeAttr(\"style\");\n }\n\n r.html.unwrap(), r.selection.restore();\n },\n refreshOnShow: function o(e, t) {\n var n = r.selection.blocks();\n\n if (n.length) {\n var i = s(n[0]);\n t.find(\".fr-command\").each(function () {\n var e = s(this).data(\"param1\"),\n t = i.attr(\"style\"),\n n = 0 <= (t || \"\").indexOf(\"line-height: \" + e + \";\");\n\n if (t) {\n var r = t.substring(t.indexOf(\"line-height\")),\n a = r.substr(0, r.indexOf(\";\")),\n o = a && a.split(\":\")[1];\n o && o.length || \"Default\" !== i.text() || (n = !0);\n }\n\n t && -1 !== t.indexOf(\"line-height\") || \"\" !== e || (n = !0), s(this).toggleClass(\"fr-active\", n).attr(\"aria-selected\", n);\n });\n }\n }\n };\n }, xt.RegisterCommand(\"lineHeight\", {\n type: \"dropdown\",\n html: function html() {\n var e = '\";\n },\n title: \"Line Height\",\n callback: function callback(e, t) {\n this.lineHeight.apply(t);\n },\n refreshOnShow: function refreshOnShow(e, t) {\n this.lineHeight.refreshOnShow(e, t);\n },\n plugin: \"lineHeight\"\n }), xt.DefineIcon(\"lineHeight\", {\n NAME: \"arrows-v\",\n FA5NAME: \"arrows-alt-v\",\n SVG_KEY: \"lineHeight\"\n }), Object.assign(xt.POPUP_TEMPLATES, {\n \"link.edit\": \"[_BUTTONS_]\",\n \"link.insert\": \"[_BUTTONS_][_INPUT_LAYER_]\"\n }), Object.assign(xt.DEFAULTS, {\n linkEditButtons: [\"linkOpen\", \"linkStyle\", \"linkEdit\", \"linkRemove\"],\n linkInsertButtons: [\"linkBack\", \"|\", \"linkList\"],\n linkAttributes: {},\n linkAutoPrefix: \"http://\",\n linkStyles: {\n \"fr-green\": \"Green\",\n \"fr-strong\": \"Thick\"\n },\n linkMultipleStyles: !0,\n linkConvertEmailAddress: !0,\n linkAlwaysBlank: !1,\n linkAlwaysNoFollow: !1,\n linkNoOpener: !0,\n linkNoReferrer: !0,\n linkList: [{\n text: \"Froala\",\n href: \"https://froala.com\",\n target: \"_blank\"\n }, {\n text: \"Google\",\n href: \"https://google.com\",\n target: \"_blank\"\n }, {\n displayText: \"Facebook\",\n href: \"https://facebook.com\"\n }],\n linkText: !0\n }), xt.PLUGINS.link = function (u) {\n var h = u.$;\n\n function g() {\n var e = u.image ? u.image.get() : null;\n if (e || !u.$wp) return \"A\" == u.el.tagName ? u.el : e && e.get(0).parentNode && \"A\" == e.get(0).parentNode.tagName ? e.get(0).parentNode : void 0;\n var t = u.selection.ranges(0).commonAncestorContainer;\n\n try {\n t && (t.contains && t.contains(u.el) || !u.el.contains(t) || u.el == t) && (t = null);\n } catch (a) {\n t = null;\n }\n\n if (t && \"A\" === t.tagName) return t;\n var n = u.selection.element(),\n r = u.selection.endElement();\n \"A\" == n.tagName || u.node.isElement(n) || (n = h(n).parentsUntil(u.$el, \"a\").first().get(0)), \"A\" == r.tagName || u.node.isElement(r) || (r = h(r).parentsUntil(u.$el, \"a\").first().get(0));\n\n try {\n r && (r.contains && r.contains(u.el) || !u.el.contains(r) || u.el == r) && (r = null);\n } catch (a) {\n r = null;\n }\n\n try {\n n && (n.contains && n.contains(u.el) || !u.el.contains(n) || u.el == n) && (n = null);\n } catch (a) {\n n = null;\n }\n\n return r && r == n && \"A\" == r.tagName ? (u.browser.msie || u.helpers.isMobile()) && (u.selection.info(n).atEnd || u.selection.info(n).atStart) ? null : n : null;\n }\n\n function m() {\n var e,\n t,\n n,\n r,\n a = u.image ? u.image.get() : null,\n o = [];\n if (a) \"A\" == a.get(0).parentNode.tagName && o.push(a.get(0).parentNode);else if (u.win.getSelection) {\n var i = u.win.getSelection();\n\n if (i.getRangeAt && i.rangeCount) {\n r = u.doc.createRange();\n\n for (var s = 0; s < i.rangeCount; ++s) {\n if ((t = (e = i.getRangeAt(s)).commonAncestorContainer) && 1 != t.nodeType && (t = t.parentNode), t && \"a\" == t.nodeName.toLowerCase()) o.push(t);else {\n n = t.getElementsByTagName(\"a\");\n\n for (var l = 0; l < n.length; ++l) {\n r.selectNodeContents(n[l]), r.compareBoundaryPoints(e.END_TO_START, e) < 1 && -1 < r.compareBoundaryPoints(e.START_TO_END, e) && o.push(n[l]);\n }\n }\n }\n }\n } else if (u.doc.selection && \"Control\" != u.doc.selection.type) if (\"a\" == (t = (e = u.doc.selection.createRange()).parentElement()).nodeName.toLowerCase()) o.push(t);else {\n n = t.getElementsByTagName(\"a\"), r = u.doc.body.createTextRange();\n\n for (var c = 0; c < n.length; ++c) {\n r.moveToElementText(n[c]), -1 < r.compareEndPoints(\"StartToEnd\", e) && r.compareEndPoints(\"EndToStart\", e) < 1 && o.push(n[c]);\n }\n }\n return o;\n }\n\n function v(a) {\n if (u.core.hasFocus()) {\n if (o(), a && \"keyup\" === a.type && (a.altKey || a.which == xt.KEYCODE.ALT)) return !0;\n setTimeout(function () {\n if (!a || a && (1 == a.which || \"mouseup\" != a.type)) {\n var e = g(),\n t = u.image ? u.image.get() : null;\n\n if (e && !t) {\n if (u.image) {\n var n = u.node.contents(e);\n\n if (1 == n.length && \"IMG\" == n[0].tagName) {\n var r = u.selection.ranges(0);\n return 0 === r.startOffset && 0 === r.endOffset ? h(e).before(xt.MARKERS) : h(e).after(xt.MARKERS), u.selection.restore(), !1;\n }\n }\n\n a && a.stopPropagation(), i(e);\n }\n }\n }, u.helpers.isIOS() ? 100 : 0);\n }\n }\n\n function i(e) {\n var t = u.popups.get(\"link.edit\");\n t || (t = function o() {\n var e = \"\";\n 1 <= u.opts.linkEditButtons.length && (\"A\" == u.el.tagName && 0 <= u.opts.linkEditButtons.indexOf(\"linkRemove\") && u.opts.linkEditButtons.splice(u.opts.linkEditButtons.indexOf(\"linkRemove\"), 1), e = '
    '.concat(u.button.buildList(u.opts.linkEditButtons), \"
    \"));\n var t = {\n buttons: e\n },\n n = u.popups.create(\"link.edit\", t);\n u.$wp && u.events.$on(u.$wp, \"scroll.link-edit\", function () {\n g() && u.popups.isVisible(\"link.edit\") && i(g());\n });\n return n;\n }());\n var n = h(e);\n u.popups.isVisible(\"link.edit\") || u.popups.refresh(\"link.edit\"), u.popups.setContainer(\"link.edit\", u.$sc);\n var r = n.offset().left + n.outerWidth() / 2,\n a = n.offset().top + n.outerHeight();\n u.popups.show(\"link.edit\", r, a, n.outerHeight(), !0);\n }\n\n function o() {\n u.popups.hide(\"link.edit\");\n }\n\n function l() {\n var e = u.popups.get(\"link.insert\"),\n t = g();\n\n if (t) {\n var n,\n r,\n a = h(t),\n o = e.find('input.fr-link-attr[type=\"text\"]'),\n i = e.find('input.fr-link-attr[type=\"checkbox\"]');\n\n for (n = 0; n < o.length; n++) {\n (r = h(o[n])).val(a.attr(r.attr(\"name\") || \"\"));\n }\n\n for (i.attr(\"checked\", !1), n = 0; n < i.length; n++) {\n r = h(i[n]), a.attr(r.attr(\"name\")) == r.data(\"checked\") && r.attr(\"checked\", !0);\n }\n\n e.find('input.fr-link-attr[type=\"text\"][name=\"text\"]').val(a.text());\n } else e.find('input.fr-link-attr[type=\"text\"]').val(\"\"), e.find('input.fr-link-attr[type=\"checkbox\"]').attr(\"checked\", !1), e.find('input.fr-link-attr[type=\"text\"][name=\"text\"]').val(u.selection.text());\n\n e.find(\"input.fr-link-attr\").trigger(\"change\"), (u.image ? u.image.get() : null) ? e.find('.fr-link-attr[name=\"text\"]').parent().hide() : e.find('.fr-link-attr[name=\"text\"]').parent().show();\n }\n\n function s(e) {\n if (e) return u.popups.onRefresh(\"link.insert\", l), !0;\n var t = \"\";\n 1 <= u.opts.linkInsertButtons.length && (t = '
    '.concat(u.button.buildList(u.opts.linkInsertButtons), \"
    \"));\n var n = \"\",\n r = 0;\n\n for (var a in n = '\")\n },\n s = u.popups.create(\"link.insert\", i);\n return u.$wp && u.events.$on(u.$wp, \"scroll.link-insert\", function () {\n (u.image ? u.image.get() : null) && u.popups.isVisible(\"link.insert\") && f(), u.popups.isVisible(\"link.insert\") && d();\n }), s;\n }\n\n function c(e, t, n) {\n if (void 0 === n && (n = {}), !1 === u.events.trigger(\"link.beforeInsert\", [e, t, n])) return !1;\n var r = u.image ? u.image.get() : null;\n r || \"A\" == u.el.tagName ? \"A\" == u.el.tagName && u.$el.focus() : (u.selection.restore(), u.popups.hide(\"link.insert\"));\n var a = e;\n u.opts.linkConvertEmailAddress && u.helpers.isEmail(e) && !/^mailto:.*/i.test(e) && (e = \"mailto:\".concat(e));\n if (\"\" === u.opts.linkAutoPrefix || new RegExp(\"^(\" + xt.LinkProtocols.join(\"|\") + \"):.\", \"i\").test(e) || /^data:image.*/i.test(e) || /^(https?:|ftps?:|file:|)\\/\\//i.test(e) || /^([A-Za-z]:(\\\\){1,2}|[A-Za-z]:((\\\\){1,2}[^\\\\]+)+)(\\\\)?$/i.test(e) || [\"/\", \"{\", \"[\", \"#\", \"(\", \".\"].indexOf((e || \"\")[0]) < 0 && (e = u.opts.linkAutoPrefix + e), e = u.helpers.sanitizeURL(e), u.opts.linkAlwaysBlank && (n.target = \"_blank\"), u.opts.linkAlwaysNoFollow && (n.rel = \"nofollow\"), u.helpers.isEmail(a) && (n.target = null, n.rel = null), \"_blank\" == n.target ? (u.opts.linkNoOpener && (n.rel ? n.rel += \" noopener\" : n.rel = \"noopener\"), u.opts.linkNoReferrer && (n.rel ? n.rel += \" noreferrer\" : n.rel = \"noreferrer\")) : null == n.target && (n.rel ? n.rel = n.rel.replace(/noopener/, \"\").replace(/noreferrer/, \"\") : n.rel = null), t = t || \"\", e === u.opts.linkAutoPrefix) return u.popups.get(\"link.insert\").find('input[name=\"href\"]').addClass(\"fr-error\"), u.events.trigger(\"link.bad\", [a]), !1;\n var o,\n i = g();\n\n if (i) {\n if ((o = h(i)).attr(\"href\", e), 0 < t.length && o.text() != t && !r) {\n for (var s = o.get(0); 1 === s.childNodes.length && s.childNodes[0].nodeType == Node.ELEMENT_NODE;) {\n s = s.childNodes[0];\n }\n\n h(s).text(t);\n }\n\n for (var l in r || o.prepend(xt.START_MARKER).append(xt.END_MARKER), n) {\n n[l] ? o.attr(l, n[l]) : o.removeAttr(l);\n }\n\n r || u.selection.restore();\n } else {\n r ? (r.wrap('')), u.image.hasCaption() && r.parent().append(r.parents(\".fr-img-caption\").find(\".fr-inner\"))) : (u.format.remove(\"a\"), u.selection.isCollapsed() ? (t = 0 === t.length ? a : t, u.html.insert('').concat(xt.START_MARKER).concat(t.replace(/&/g, \"&\").replace(/\", \">\")).concat(xt.END_MARKER, \"\")), u.selection.restore()) : 0 < t.length && t != u.selection.text().replace(/\\n/g, \"\") ? (u.selection.remove(), u.html.insert('').concat(xt.START_MARKER).concat(t.replace(/&/g, \"&\")).concat(xt.END_MARKER, \"\")), u.selection.restore()) : (!function p() {\n if (!u.selection.isCollapsed()) {\n u.selection.save();\n\n for (var e = u.$el.find(\".fr-marker\").addClass(\"fr-unprocessed\").toArray(); e.length;) {\n var t = h(e.pop());\n t.removeClass(\"fr-unprocessed\");\n var n = u.node.deepestParent(t.get(0));\n\n if (n) {\n for (var r = t.get(0), a = \"\", o = \"\"; r = r.parentNode, u.node.isBlock(r) || (a += u.node.closeTagString(r), o = u.node.openTagString(r) + o), r != n;) {\n ;\n }\n\n var i = u.node.openTagString(t.get(0)) + t.html() + u.node.closeTagString(t.get(0));\n t.replaceWith('');\n var s = n.outerHTML;\n s = (s = s.replace(/<\\/span>/g, a + i + o)).replace(o + a, \"\"), n.outerHTML = s;\n }\n\n e = u.$el.find(\".fr-marker.fr-unprocessed\").toArray();\n }\n\n u.html.cleanEmptyTags(), u.selection.restore();\n }\n }(), u.format.apply(\"a\", {\n href: e\n })));\n\n for (var c = m(), d = 0; d < c.length; d++) {\n (o = h(c[d])).attr(n), o.removeAttr(\"_moz_dirty\");\n }\n\n 1 == c.length && u.$wp && !r && (h(c[0]).prepend(xt.START_MARKER).append(xt.END_MARKER), u.selection.restore());\n }\n\n if (r) {\n var f = u.popups.get(\"link.insert\");\n f && f.find(\"input:focus\").blur(), u.image.edit(r);\n } else v();\n }\n\n function d() {\n o();\n var e = g();\n\n if (e) {\n var t = u.popups.get(\"link.insert\");\n t || (t = s()), u.popups.isVisible(\"link.insert\") || (u.popups.refresh(\"link.insert\"), u.selection.save(), u.helpers.isMobile() && (u.events.disableBlur(), u.$el.blur(), u.events.enableBlur())), u.popups.setContainer(\"link.insert\", u.$sc);\n var n = (u.image ? u.image.get() : null) || h(e),\n r = n.offset().left + n.outerWidth() / 2,\n a = n.offset().top + n.outerHeight();\n u.popups.show(\"link.insert\", r, a, n.outerHeight(), !0);\n }\n }\n\n function f() {\n var e = u.image ? u.image.getEl() : null;\n\n if (e) {\n var t = u.popups.get(\"link.insert\");\n u.image.hasCaption() && (e = e.find(\".fr-img-wrap\")), t || (t = s()), l(), u.popups.setContainer(\"link.insert\", u.$sc);\n var n = e.offset().left + e.outerWidth() / 2,\n r = e.offset().top + e.outerHeight();\n u.popups.show(\"link.insert\", n, r, e.outerHeight(), !0);\n }\n }\n\n return {\n _init: function e() {\n u.events.on(\"keyup\", function (e) {\n e.which != xt.KEYCODE.ESC && v(e);\n }), u.events.on(\"window.mouseup\", v), u.events.$on(u.$el, \"click\", \"a\", function (e) {\n u.edit.isDisabled() && e.preventDefault();\n }), u.helpers.isMobile() && u.events.$on(u.$doc, \"selectionchange\", v), s(!0), \"A\" == u.el.tagName && u.$el.addClass(\"fr-view\"), u.events.on(\"toolbar.esc\", function () {\n if (u.popups.isVisible(\"link.edit\")) return u.events.disableBlur(), u.events.focus(), !1;\n }, !0);\n },\n remove: function r() {\n var e = g(),\n t = u.image ? u.image.get() : null;\n if (!1 === u.events.trigger(\"link.beforeRemove\", [e])) return !1;\n if (t && e) {\n if (u.image.hasCaption()) {\n t.addClass(\"img-link-caption\"), h(e).replaceWith(h(e).html());\n var n = document.querySelectorAll(\"img.img-link-caption\");\n u.image.edit(h(n[0])), h(n[0]).removeClass(\"img-link-caption\");\n } else t.unwrap(), u.image.edit(t);\n } else e && (u.selection.save(), h(e).replaceWith(h(e).html()), u.selection.restore(), o());\n },\n showInsertPopup: function p() {\n var e = u.$tb.find('.fr-command[data-cmd=\"insertLink\"]'),\n t = u.popups.get(\"link.insert\");\n if (t || (t = s()), !t.hasClass(\"fr-active\")) if (u.popups.refresh(\"link.insert\"), u.popups.setContainer(\"link.insert\", u.$tb || u.$sc), e.isVisible()) {\n var n = u.button.getPosition(e),\n r = n.left,\n a = n.top;\n u.popups.show(\"link.insert\", r, a, e.outerHeight());\n } else u.position.forSelection(t), u.popups.show(\"link.insert\");\n },\n usePredefined: function b(e) {\n var t,\n n,\n r = u.opts.linkList[e],\n a = u.popups.get(\"link.insert\"),\n o = a.find('input.fr-link-attr[type=\"text\"]'),\n i = a.find('input.fr-link-attr[type=\"checkbox\"]');\n\n for (r.rel && (a.rel = r.rel), n = 0; n < o.length; n++) {\n r[(t = h(o[n])).attr(\"name\")] ? (t.val(r[t.attr(\"name\")]), t.toggleClass(\"fr-not-empty\", !0)) : \"text\" != t.attr(\"name\") && t.val(\"\");\n }\n\n for (n = 0; n < i.length; n++) {\n (t = h(i[n])).attr(\"checked\", t.data(\"checked\") == r[t.attr(\"name\")]);\n }\n\n u.accessibility.focusPopup(a);\n },\n insertCallback: function C() {\n var e,\n t,\n n = u.popups.get(\"link.insert\"),\n r = n.find('input.fr-link-attr[type=\"text\"]'),\n a = n.find('input.fr-link-attr[type=\"checkbox\"]'),\n o = (r.filter('[name=\"href\"]').val() || \"\").trim(),\n i = u.opts.linkText ? r.filter('[name=\"text\"]').val() : \"\",\n s = {};\n\n for (t = 0; t < r.length; t++) {\n e = h(r[t]), [\"href\", \"text\"].indexOf(e.attr(\"name\")) < 0 && (s[e.attr(\"name\")] = e.val());\n }\n\n for (t = 0; t < a.length; t++) {\n (e = h(a[t])).is(\":checked\") ? s[e.attr(\"name\")] = e.data(\"checked\") : s[e.attr(\"name\")] = e.data(\"unchecked\") || null;\n }\n\n n.rel && (s.rel = n.rel);\n var l = u.helpers.scrollTop();\n c(o, i, s), h(u.o_win).scrollTop(l);\n },\n insert: c,\n update: d,\n get: g,\n allSelected: m,\n back: function t() {\n u.image && u.image.get() ? u.image.back() : (u.events.disableBlur(), u.selection.restore(), u.events.enableBlur(), g() && u.$wp ? (u.selection.restore(), o(), v()) : \"A\" == u.el.tagName ? (u.$el.focus(), v()) : (u.popups.hide(\"link.insert\"), u.toolbar.showInline()));\n },\n imageLink: f,\n applyStyle: function E(e, t, n) {\n void 0 === n && (n = u.opts.linkMultipleStyles), void 0 === t && (t = u.opts.linkStyles);\n var r = g();\n if (!r) return !1;\n\n if (!n) {\n var a = Object.keys(t);\n a.splice(a.indexOf(e), 1), h(r).removeClass(a.join(\" \"));\n }\n\n h(r).toggleClass(e), v();\n }\n };\n }, xt.DefineIcon(\"insertLink\", {\n NAME: \"link\",\n SVG_KEY: \"insertLink\"\n }), xt.RegisterShortcut(xt.KEYCODE.K, \"insertLink\", null, \"K\"), xt.RegisterCommand(\"insertLink\", {\n title: \"Insert Link\",\n undo: !1,\n focus: !0,\n refreshOnCallback: !1,\n popup: !0,\n callback: function callback() {\n this.popups.isVisible(\"link.insert\") ? (this.$el.find(\".fr-marker\").length && (this.events.disableBlur(), this.selection.restore()), this.popups.hide(\"link.insert\")) : this.link.showInsertPopup();\n },\n plugin: \"link\"\n }), xt.DefineIcon(\"linkOpen\", {\n NAME: \"external-link\",\n FA5NAME: \"external-link-alt\",\n SVG_KEY: \"openLink\"\n }), xt.RegisterCommand(\"linkOpen\", {\n title: \"Open Link\",\n undo: !1,\n refresh: function refresh(e) {\n this.link.get() ? e.removeClass(\"fr-hidden\") : e.addClass(\"fr-hidden\");\n },\n callback: function callback() {\n var e = this.link.get();\n e && (-1 !== e.href.indexOf(\"mailto:\") ? this.o_win.open(e.href).close() : (e.target || (e.target = \"_self\"), this.browser.msie || this.browser.edge ? this.o_win.open(e.href, e.target) : this.o_win.open(e.href, e.target, \"noopener\")), this.popups.hide(\"link.edit\"));\n },\n plugin: \"link\"\n }), xt.DefineIcon(\"linkEdit\", {\n NAME: \"edit\",\n SVG_KEY: \"edit\"\n }), xt.RegisterCommand(\"linkEdit\", {\n title: \"Edit Link\",\n undo: !1,\n refreshAfterCallback: !1,\n popup: !0,\n callback: function callback() {\n this.link.update();\n },\n refresh: function refresh(e) {\n this.link.get() ? e.removeClass(\"fr-hidden\") : e.addClass(\"fr-hidden\");\n },\n plugin: \"link\"\n }), xt.DefineIcon(\"linkRemove\", {\n NAME: \"unlink\",\n SVG_KEY: \"unlink\"\n }), xt.RegisterCommand(\"linkRemove\", {\n title: \"Unlink\",\n callback: function callback() {\n this.link.remove();\n },\n refresh: function refresh(e) {\n this.link.get() ? e.removeClass(\"fr-hidden\") : e.addClass(\"fr-hidden\");\n },\n plugin: \"link\"\n }), xt.DefineIcon(\"linkBack\", {\n NAME: \"arrow-left\",\n SVG_KEY: \"back\"\n }), xt.RegisterCommand(\"linkBack\", {\n title: \"Back\",\n undo: !1,\n focus: !1,\n back: !0,\n refreshAfterCallback: !1,\n callback: function callback() {\n this.link.back();\n },\n refresh: function refresh(e) {\n var t = this.link.get() && this.doc.hasFocus();\n (this.image ? this.image.get() : null) || t || this.opts.toolbarInline ? (e.removeClass(\"fr-hidden\"), e.next(\".fr-separator\").removeClass(\"fr-hidden\")) : (e.addClass(\"fr-hidden\"), e.next(\".fr-separator\").addClass(\"fr-hidden\"));\n },\n plugin: \"link\"\n }), xt.DefineIcon(\"linkList\", {\n NAME: \"search\",\n SVG_KEY: \"search\"\n }), xt.RegisterCommand(\"linkList\", {\n title: \"Choose Link\",\n type: \"dropdown\",\n focus: !1,\n undo: !1,\n refreshAfterCallback: !1,\n html: function html() {\n for (var e = '\";\n },\n callback: function callback(e, t) {\n this.link.usePredefined(t);\n },\n plugin: \"link\"\n }), xt.RegisterCommand(\"linkInsert\", {\n focus: !1,\n refreshAfterCallback: !1,\n callback: function callback() {\n this.link.insertCallback();\n },\n refresh: function refresh(e) {\n this.link.get() ? e.text(this.language.translate(\"Update\")) : e.text(this.language.translate(\"Insert\"));\n },\n plugin: \"link\"\n }), xt.DefineIcon(\"imageLink\", {\n NAME: \"link\",\n SVG_KEY: \"insertLink\"\n }), xt.RegisterCommand(\"imageLink\", {\n title: \"Insert Link\",\n undo: !1,\n focus: !1,\n popup: !0,\n callback: function callback() {\n this.link.imageLink();\n },\n refresh: function refresh(e) {\n var t;\n this.link.get() ? ((t = e.prev()).hasClass(\"fr-separator\") && t.removeClass(\"fr-hidden\"), e.addClass(\"fr-hidden\")) : ((t = e.prev()).hasClass(\"fr-separator\") && t.addClass(\"fr-hidden\"), e.removeClass(\"fr-hidden\"));\n },\n plugin: \"link\"\n }), xt.DefineIcon(\"linkStyle\", {\n NAME: \"magic\",\n SVG_KEY: \"linkStyles\"\n }), xt.RegisterCommand(\"linkStyle\", {\n title: \"Style\",\n type: \"dropdown\",\n html: function html() {\n var e = '\";\n },\n callback: function callback(e, t) {\n this.link.applyStyle(t);\n },\n refreshOnShow: function refreshOnShow(e, t) {\n var n = this.$,\n r = this.link.get();\n\n if (r) {\n var a = n(r);\n t.find(\".fr-command\").each(function () {\n var e = n(this).data(\"param1\"),\n t = a.hasClass(e);\n n(this).toggleClass(\"fr-active\", t).attr(\"aria-selected\", t);\n });\n }\n },\n refresh: function refresh(e) {\n this.link.get() ? e.removeClass(\"fr-hidden\") : e.addClass(\"fr-hidden\");\n },\n plugin: \"link\"\n }), Object.assign(xt.DEFAULTS, {\n listAdvancedTypes: !0\n }), xt.PLUGINS.lists = function (f) {\n var p = f.$;\n\n function u(e) {\n return '');\n }\n\n function h(e) {\n return '');\n }\n\n function o(e, t) {\n !function c(e, t) {\n for (var n = [], r = 0; r < e.length; r++) {\n var a = e[r].parentNode;\n \"LI\" == e[r].tagName && a.tagName != t && n.indexOf(a) < 0 && n.push(a);\n }\n\n for (var o = n.length - 1; 0 <= o; o--) {\n var i = p(n[o]);\n i.replaceWith(\"<\".concat(t.toLowerCase(), \" \").concat(f.node.attributes(i.get(0)), \">\").concat(i.html(), \"\"));\n }\n }(e, t);\n var n,\n r = f.html.defaultTag(),\n a = null;\n e.length && (n = \"rtl\" == f.opts.direction || \"rtl\" == p(e[0]).css(\"direction\") ? \"margin-right\" : \"margin-left\");\n\n for (var o = 0; o < e.length; o++) {\n if (\"TD\" != e[o].tagName && \"TH\" != e[o].tagName && \"LI\" != e[o].tagName) {\n var i = f.helpers.getPX(p(e[o]).css(n)) || 0;\n (e[o].style.marginLeft = null) === a && (a = i);\n var s = 0 < a ? \"<\".concat(t, ' style=\"').concat(n, \": \").concat(a, 'px \">') : \"<\".concat(t, \">\"),\n l = \"\");\n\n for (i -= a; 0 < i / f.opts.indentMargin;) {\n s += \"\"), l += l, i -= f.opts.indentMargin;\n }\n\n r && e[o].tagName.toLowerCase() == r ? p(e[o]).replaceWith(\"\".concat(s, \"\").concat(p(e[o]).html(), \"\").concat(l)) : p(e[o]).wrap(\"\".concat(s, \"
  • \").concat(l));\n }\n }\n\n f.clean.lists();\n }\n\n function i(e) {\n var t, n;\n\n for (t = e.length - 1; 0 <= t; t--) {\n for (n = t - 1; 0 <= n; n--) {\n if (p(e[n]).find(e[t]).length || e[n] == e[t]) {\n e.splice(t, 1);\n break;\n }\n }\n }\n\n var r = [];\n\n for (t = 0; t < e.length; t++) {\n var a = p(e[t]),\n o = e[t].parentNode,\n i = a.attr(\"class\");\n if (a.before(h(o.tagName)), \"LI\" == o.parentNode.tagName) a.before(h(\"LI\")), a.after(u(\"LI\"));else {\n var s = \"\";\n i && (s += ' class=\"'.concat(i, '\"'));\n var l = \"rtl\" == f.opts.direction || \"rtl\" == a.css(\"direction\") ? \"margin-right\" : \"margin-left\";\n f.helpers.getPX(p(o).css(l)) && 0 <= (p(o).attr(\"style\") || \"\").indexOf(\"\".concat(l, \":\")) && (s += ' style=\"'.concat(l, \":\").concat(f.helpers.getPX(p(o).css(l)), 'px;\"')), f.html.defaultTag() && 0 === a.find(f.html.blockTagsQuery()).length && a.wrapInner(f.html.defaultTag() + s), f.node.isEmpty(a.get(0), !0) || 0 !== a.find(f.html.blockTagsQuery()).length || a.append(\"
    \"), a.append(u(\"LI\")), a.prepend(h(\"LI\"));\n }\n a.after(u(o.tagName)), \"LI\" == o.parentNode.tagName && (o = o.parentNode.parentNode), r.indexOf(o) < 0 && r.push(o);\n }\n\n for (t = 0; t < r.length; t++) {\n var c = p(r[t]),\n d = c.html();\n d = (d = d.replace(/<\\/span>/g, \"\")).replace(/<\\/span>/g, \"<$1>\"), c.replaceWith(f.node.openTagString(c.get(0)) + d + f.node.closeTagString(c.get(0)));\n }\n\n f.$el.find(\"li:empty\").remove(), f.$el.find(\"ul:empty, ol:empty\").remove(), f.clean.lists(), f.$el.find(\"ul:empty, ol:empty\").remove(), f.html.wrap();\n }\n\n function l(e) {\n f.selection.save();\n\n for (var t = 0; t < e.length; t++) {\n var n = e[t].previousSibling;\n\n if (n) {\n var r = p(e[t]).find(\"> ul, > ol\").last().get(0);\n\n if (r) {\n var a = p(document.createElement(\"li\"));\n p(r).prepend(a);\n\n for (var o = f.node.contents(e[t])[0]; o && !f.node.isList(o);) {\n var i = o.nextSibling;\n a.append(o), o = i;\n }\n\n p(n).append(p(r)), p(e[t]).remove();\n } else {\n var s = p(n).find(\"> ul, > ol\").last().get(0);\n if (s) p(s).append(p(e[t]));else {\n var l = p(\"<\".concat(e[t].parentNode.tagName, \">\"));\n p(n).append(l), l.append(p(e[t]));\n }\n }\n }\n }\n\n f.clean.lists(), f.selection.restore();\n }\n\n function c(e) {\n f.selection.save(), i(e), f.selection.restore();\n }\n\n function e(e) {\n if (\"indent\" == e || \"outdent\" == e) {\n var t = !1,\n n = f.selection.blocks(),\n r = [],\n a = n[0].previousSibling || n[0].parentElement;\n\n if (\"outdent\" == e) {\n if (\"UL\" != a.parentNode.tagName && \"OL\" != a.parentNode.tagName && \"LI\" != a.parentNode.tagName) return;\n if (!n[0].previousSibling && \"none\" == a.parentNode.style.listStyleType) return void function i(e) {\n for (f.selection.save(); 0 < e.childNodes.length;) {\n e.parentNode.parentNode.append(e.childNodes[0]);\n }\n\n f.clean.lists(), f.selection.restore();\n }(a);\n } else {\n if (\"UL\" != a.parentNode.tagName && \"OL\" != a.parentNode.tagName && \"LI\" != a.parentNode.tagName) return;\n if (!n[0].previousSibling || \"LI\" != n[0].previousSibling.tagName) return void function s(e) {\n f.selection.save();\n\n for (var t = \"OL\" == e.tagName ? document.createElement(\"ol\") : document.createElement(\"ul\"); 0 < e.childNodes.length;) {\n t.append(e.childNodes[0]);\n }\n\n var n = document.createElement(\"li\");\n t.style.listStyleType = \"none\", t.append(n), e.append(t), f.clean.lists(), f.selection.restore();\n }(a);\n }\n\n for (var o = 0; o < n.length; o++) {\n \"LI\" == n[o].tagName ? (t = !0, r.push(n[o])) : \"LI\" == n[o].parentNode.tagName && (t = !0, r.push(n[o].parentNode));\n }\n\n t && (\"indent\" == e ? l(r) : c(r));\n }\n }\n\n return {\n _init: function t() {\n f.events.on(\"commands.after\", e), f.events.on(\"keydown\", function (e) {\n if (e.which == xt.KEYCODE.TAB) {\n for (var t = f.selection.blocks(), n = [], r = 0; r < t.length; r++) {\n \"LI\" == t[r].tagName ? n.push(t[r]) : \"LI\" == t[r].parentNode.tagName && n.push(t[r].parentNode);\n }\n\n if (1 < n.length || n.length && (f.selection.info(n[0]).atStart || f.node.isEmpty(n[0]))) return e.preventDefault(), e.stopPropagation(), e.shiftKey ? c(n) : l(n), !1;\n }\n }, !0);\n },\n format: function s(e, t) {\n var n, r;\n\n for (f.html.syncInputs(), f.selection.save(), f.html.wrap(!0, !0, !0, !0), f.selection.restore(), r = f.selection.blocks(!0), n = 0; n < r.length; n++) {\n \"LI\" != r[n].tagName && \"LI\" == r[n].parentNode.tagName && (r[n] = r[n].parentNode);\n }\n\n if (f.selection.save(), function a(e, t) {\n for (var n = !0, r = 0; r < e.length; r++) {\n if (\"LI\" != e[r].tagName) return !1;\n e[r].parentNode.tagName != t && (n = !1);\n }\n\n return n;\n }(r, e) ? t || i(r) : o(r, e), f.html.unwrap(), f.selection.restore(), t = t || \"default\") {\n for (r = f.selection.blocks(), n = 0; n < r.length; n++) {\n \"LI\" != r[n].tagName && \"LI\" == r[n].parentNode.tagName && (r[n] = r[n].parentNode);\n }\n\n for (n = 0; n < r.length; n++) {\n \"LI\" == r[n].tagName && (p(r[n].parentNode).css(\"list-style-type\", \"default\" === t ? \"\" : t), 0 === (p(r[n].parentNode).attr(\"style\") || \"\").length && p(r[n].parentNode).removeAttr(\"style\"));\n }\n }\n },\n refresh: function a(e, t) {\n var n = p(f.selection.element());\n\n if (n.get(0) != f.el) {\n var r = n.get(0);\n (r = \"LI\" != r.tagName && r.firstElementChild && \"LI\" != r.firstElementChild.tagName ? n.parents(\"li\").get(0) : \"LI\" == r.tagName || r.firstElementChild ? r.firstElementChild && \"LI\" == r.firstElementChild.tagName ? n.get(0).firstChild : n.get(0) : n.parents(\"li\").get(0)) && r.parentNode.tagName == t && f.el.contains(r.parentNode) && e.addClass(\"fr-active\");\n }\n }\n };\n }, xt.DefineIcon(\"formatOLSimple\", {\n NAME: \"list-ol\",\n SVG_KEY: \"orderedList\"\n }), xt.RegisterCommand(\"formatOLSimple\", {\n title: \"Ordered List\",\n type: \"button\",\n options: {\n \"default\": \"Default\",\n circle: \"Circle\",\n disc: \"Disc\",\n square: \"Square\"\n },\n refresh: function refresh(e) {\n this.lists.refresh(e, \"OL\");\n },\n callback: function callback(e, t) {\n this.lists.format(\"OL\", t);\n },\n plugin: \"lists\"\n }), xt.RegisterCommand(\"formatUL\", {\n title: \"Unordered List\",\n type: \"button\",\n hasOptions: function hasOptions() {\n return this.opts.listAdvancedTypes;\n },\n options: {\n \"default\": \"Default\",\n circle: \"Circle\",\n disc: \"Disc\",\n square: \"Square\"\n },\n refresh: function refresh(e) {\n this.lists.refresh(e, \"UL\");\n },\n callback: function callback(e, t) {\n this.lists.format(\"UL\", t);\n },\n plugin: \"lists\"\n }), xt.RegisterCommand(\"formatOL\", {\n title: \"Ordered List\",\n hasOptions: function hasOptions() {\n return this.opts.listAdvancedTypes;\n },\n options: {\n \"default\": \"Default\",\n \"lower-alpha\": \"Lower Alpha\",\n \"lower-greek\": \"Lower Greek\",\n \"lower-roman\": \"Lower Roman\",\n \"upper-alpha\": \"Upper Alpha\",\n \"upper-roman\": \"Upper Roman\"\n },\n refresh: function refresh(e) {\n this.lists.refresh(e, \"OL\");\n },\n callback: function callback(e, t) {\n this.lists.format(\"OL\", t);\n },\n plugin: \"lists\"\n }), xt.DefineIcon(\"formatUL\", {\n NAME: \"list-ul\",\n SVG_KEY: \"unorderedList\"\n }), xt.DefineIcon(\"formatOL\", {\n NAME: \"list-ol\",\n SVG_KEY: \"orderedList\"\n }), Object.assign(xt.DEFAULTS, {\n paragraphFormat: {\n N: \"Normal\",\n H1: \"Heading 1\",\n H2: \"Heading 2\",\n H3: \"Heading 3\",\n H4: \"Heading 4\",\n PRE: \"Code\"\n },\n paragraphFormatSelection: !1,\n paragraphDefaultSelection: \"Paragraph Format\"\n }), xt.PLUGINS.paragraphFormat = function (p) {\n var u = p.$;\n\n function h(e, t) {\n var n = p.html.defaultTag();\n if (t && t.toLowerCase() != n) if (0 < e.find(\"ul, ol\").length) {\n var r = u(\"<\" + t + \">\");\n e.prepend(r);\n\n for (var a = p.node.contents(e.get(0))[0]; a && [\"UL\", \"OL\"].indexOf(a.tagName) < 0;) {\n var o = a.nextSibling;\n r.append(a), a = o;\n }\n } else e.html(\"<\" + t + \">\" + e.html() + \"\");\n }\n\n return {\n apply: function g(e) {\n \"N\" == e && (e = p.html.defaultTag()), p.selection.save(), p.html.wrap(!0, !0, !p.opts.paragraphFormat.BLOCKQUOTE, !0, !0), p.selection.restore();\n var t,\n n,\n r,\n a,\n o,\n i,\n s,\n l,\n c = p.selection.blocks();\n p.selection.save(), p.$el.find(\"pre\").attr(\"skip\", !0);\n\n for (var d = 0; d < c.length; d++) {\n if (c[d].tagName != e && !p.node.isList(c[d])) {\n var f = u(c[d]);\n \"LI\" == c[d].tagName ? h(f, e) : \"LI\" == c[d].parentNode.tagName && c[d] ? (i = f, s = e, l = p.html.defaultTag(), s && s.toLowerCase() != l || (s = 'div class=\"fr-temp-div\"'), i.replaceWith(u(\"<\" + s + \">\").html(i.html()))) : 0 <= [\"TD\", \"TH\"].indexOf(c[d].parentNode.tagName) ? (r = f, a = e, o = p.html.defaultTag(), a || (a = 'div class=\"fr-temp-div\"' + (p.node.isEmpty(r.get(0), !0) ? ' data-empty=\"true\"' : \"\")), a.toLowerCase() == o ? (p.node.isEmpty(r.get(0), !0) || r.append(\"
    \"), r.replaceWith(r.html())) : r.replaceWith(u(\"<\" + a + \">\").html(r.html()))) : (t = f, (n = e) || (n = 'div class=\"fr-temp-div\"' + (p.node.isEmpty(t.get(0), !0) ? ' data-empty=\"true\"' : \"\")), \"H1\" != n && \"H2\" != n && \"H3\" != n && \"H4\" != n && \"H5\" != n || !p.node.attributes(t.get(0)).includes(\"font-size:\") ? t.replaceWith(u(\"<\" + n + \" \" + p.node.attributes(t.get(0)) + \">\").html(t.html()).removeAttr(\"data-empty\")) : t.replaceWith(u(\"<\" + n + \" \" + p.node.attributes(t.get(0)).replace(/font-size:[0-9]+px;?/, \"\") + \">\").html(t.html()).removeAttr(\"data-empty\")));\n }\n }\n\n p.$el.find('pre:not([skip=\"true\"]) + pre:not([skip=\"true\"])').each(function () {\n u(this).prev().append(\"
    \" + u(this).html()), u(this).remove();\n }), p.$el.find(\"pre\").removeAttr(\"skip\"), p.html.unwrap(), p.selection.restore();\n },\n refreshOnShow: function i(e, t) {\n var n = p.selection.blocks();\n\n if (n.length) {\n var r = n[0],\n a = \"N\",\n o = p.html.defaultTag();\n r.tagName.toLowerCase() != o && r != p.el && (a = r.tagName), t.find('.fr-command[data-param1=\"' + a + '\"]').addClass(\"fr-active\").attr(\"aria-selected\", !0);\n } else t.find('.fr-command[data-param1=\"N\"]').addClass(\"fr-active\").attr(\"aria-selected\", !0);\n },\n refresh: function o(e) {\n if (p.opts.paragraphFormatSelection) {\n var t = p.selection.blocks();\n\n if (t.length) {\n var n = t[0],\n r = \"N\",\n a = p.html.defaultTag();\n n.tagName.toLowerCase() != a && n != p.el && (r = n.tagName), 0 <= [\"LI\", \"TD\", \"TH\"].indexOf(r) && (r = \"N\"), e.find(\">span\").text(p.language.translate(p.opts.paragraphFormat[r]));\n } else e.find(\">span\").text(p.language.translate(p.opts.paragraphFormat.N));\n }\n }\n };\n }, xt.RegisterCommand(\"paragraphFormat\", {\n type: \"dropdown\",\n displaySelection: function displaySelection(e) {\n return e.opts.paragraphFormatSelection;\n },\n defaultSelection: function defaultSelection(e) {\n return e.language.translate(e.opts.paragraphDefaultSelection);\n },\n displaySelectionWidth: 80,\n html: function html() {\n var e = '
      ',\n t = this.opts.paragraphFormat;\n\n for (var n in t) {\n if (t.hasOwnProperty(n)) {\n var r = this.shortcuts.get(\"paragraphFormat.\" + n);\n r = r ? '' + r + \"\" : \"\", e += '
    • <' + (\"N\" == n ? this.html.defaultTag() || \"DIV\" : n) + ' style=\"padding: 0 !important; margin: 0 !important; border: 0 !important; background-color: transparent !important; ' + (\"PRE\" == n || \"N\" == n ? \"font-size: 15px\" : \"font-weight: bold !important; \") + (\"H1\" == n ? \"font-size: 2em !important; \" : \"\") + (\"H2\" == n ? \"font-size: 1.5em !important; \" : \"\") + (\"H3\" == n ? \"font-size: 1.17em !important; \" : \"\") + (\"H4\" == n ? \"font-size: 15px !important;\" : \"\") + '\" role=\"presentation\">' + this.language.translate(t[n]) + \"
    • \";\n }\n }\n\n return e += \"
    \";\n },\n title: \"Paragraph Format\",\n callback: function callback(e, t) {\n this.paragraphFormat.apply(t);\n },\n refresh: function refresh(e) {\n this.paragraphFormat.refresh(e);\n },\n refreshOnShow: function refreshOnShow(e, t) {\n this.paragraphFormat.refreshOnShow(e, t);\n },\n plugin: \"paragraphFormat\"\n }), xt.DefineIcon(\"paragraphFormat\", {\n NAME: \"paragraph\",\n SVG_KEY: \"paragraphFormat\"\n }), Object.assign(xt.DEFAULTS, {\n paragraphStyles: {\n \"fr-text-gray\": \"Gray\",\n \"fr-text-bordered\": \"Bordered\",\n \"fr-text-spaced\": \"Spaced\",\n \"fr-text-uppercase\": \"Uppercase\"\n },\n paragraphMultipleStyles: !0\n }), xt.PLUGINS.paragraphStyle = function (s) {\n var l = s.$;\n return {\n _init: function e() {},\n apply: function c(e, t, n) {\n void 0 === t && (t = s.opts.paragraphStyles), void 0 === n && (n = s.opts.paragraphMultipleStyles);\n var r = \"\";\n n || ((r = Object.keys(t)).splice(r.indexOf(e), 1), r = r.join(\" \")), s.selection.save(), s.html.wrap(!0, !0, !0, !0), s.selection.restore();\n var a = s.selection.blocks();\n s.selection.save();\n\n for (var o = l(a[0]).hasClass(e), i = 0; i < a.length; i++) {\n l(a[i]).removeClass(r).toggleClass(e, !o), l(a[i]).hasClass(\"fr-temp-div\") && l(a[i]).removeClass(\"fr-temp-div\"), \"\" === l(a[i]).attr(\"class\") && l(a[i]).removeAttr(\"class\");\n }\n\n s.html.unwrap(), s.selection.restore();\n },\n refreshOnShow: function a(e, t) {\n var n = s.selection.blocks();\n\n if (n.length) {\n var r = l(n[0]);\n t.find(\".fr-command\").each(function () {\n var e = l(this).data(\"param1\"),\n t = r.hasClass(e);\n l(this).toggleClass(\"fr-active\", t).attr(\"aria-selected\", t);\n });\n }\n }\n };\n }, xt.RegisterCommand(\"paragraphStyle\", {\n type: \"dropdown\",\n html: function html() {\n var e = '\";\n },\n title: \"Paragraph Style\",\n callback: function callback(e, t) {\n this.paragraphStyle.apply(t);\n },\n refreshOnShow: function refreshOnShow(e, t) {\n this.paragraphStyle.refreshOnShow(e, t);\n },\n plugin: \"paragraphStyle\"\n }), xt.DefineIcon(\"paragraphStyle\", {\n NAME: \"magic\",\n SVG_KEY: \"paragraphStyle\"\n }), Object.assign(xt.DEFAULTS, {\n html2pdf: window.html2pdf\n }), xt.PLUGINS.print = function (l) {\n return {\n run: function e() {\n !function s(e) {\n var t = l.html.get(),\n n = null;\n l.shared.print_iframe ? n = l.shared.print_iframe : ((n = document.createElement(\"iframe\")).name = \"fr-print\", n.style.position = \"fixed\", n.style.top = \"0\", n.style.left = \"-9999px\", n.style.height = \"100%\", n.style.width = \"0\", n.style.overflow = \"hidden\", n.style[\"z-index\"] = \"2147483647\", n.style.tabIndex = \"-1\", l.events.on(\"shared.destroy\", function () {\n n.remove();\n }), l.shared.print_iframe = n);\n\n try {\n document.body.removeChild(n);\n } catch (i) {}\n\n document.body.appendChild(n);\n\n var r = function r() {\n e(), n.removeEventListener(\"load\", r);\n };\n\n n.addEventListener(\"load\", r);\n var a = n.contentWindow;\n a.document.open(), a.document.write(\"\" + document.title + \"\"), Array.prototype.forEach.call(document.querySelectorAll(\"style\"), function (e) {\n e = e.cloneNode(!0), a.document.write(e.outerHTML);\n });\n var o = document.querySelectorAll(\"link[rel=stylesheet]\");\n Array.prototype.forEach.call(o, function (e) {\n var t = document.createElement(\"link\");\n t.rel = e.rel, t.href = e.href, t.media = \"print\", t.type = \"text/css\", t.media = \"all\", a.document.write(t.outerHTML);\n }), a.document.write('
    '), a.document.write(t), a.document.write(\"
    \"), a.document.close();\n }(function () {\n setTimeout(function () {\n l.events.disableBlur(), window.frames[\"fr-print\"].focus(), window.frames[\"fr-print\"].print(), l.$win.get(0).focus(), l.events.disableBlur(), l.events.focus();\n }, 0);\n });\n },\n toPDF: function t() {\n l.opts.html2pdf && (l.$el.css(\"text-align\", \"left\"), l.opts.html2pdf().set({\n margin: [10, 20],\n html2canvas: {\n useCORS: !0\n }\n }).from(l.el).save(), setTimeout(function () {\n l.$el.css(\"text-align\", \"\");\n }, 100));\n }\n };\n }, xt.DefineIcon(\"print\", {\n NAME: \"print\",\n SVG_KEY: \"print\"\n }), xt.RegisterCommand(\"print\", {\n title: \"Print\",\n undo: !1,\n focus: !1,\n plugin: \"print\",\n callback: function callback() {\n this.print.run();\n }\n }), xt.DefineIcon(\"getPDF\", {\n NAME: \"file-pdf-o\",\n FA5NAME: \"file-pdf\",\n SVG_KEY: \"pdfExport\"\n }), xt.RegisterCommand(\"getPDF\", {\n title: \"Download PDF\",\n type: \"button\",\n focus: !1,\n undo: !1,\n callback: function callback() {\n this.print.toPDF();\n }\n }), Object.assign(xt.DEFAULTS, {\n quickInsertButtons: [\"image\", \"video\", \"embedly\", \"table\", \"ul\", \"ol\", \"hr\"],\n quickInsertTags: [\"p\", \"div\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"pre\", \"blockquote\"],\n quickInsertEnabled: !0\n }), xt.QUICK_INSERT_BUTTONS = {}, xt.DefineIcon(\"quickInsert\", {\n SVG_KEY: \"add\",\n template: \"svg\"\n }), xt.RegisterQuickInsertButton = function (e, t) {\n xt.QUICK_INSERT_BUTTONS[e] = Object.assign({\n undo: !0\n }, t);\n }, xt.RegisterQuickInsertButton(\"image\", {\n icon: \"insertImage\",\n requiredPlugin: \"image\",\n title: \"Insert Image\",\n undo: !1,\n callback: function callback() {\n var e = this,\n t = e.$;\n e.shared.$qi_image_input || (e.shared.$qi_image_input = t(document.createElement(\"input\")).attr(\"accept\", \"image/\" + e.opts.imageAllowedTypes.join(\", image/\").toLowerCase()).attr(\"name\", \"quickInsertImage\".concat(this.id)).attr(\"style\", \"display: none;\").attr(\"type\", \"file\"), t(\"body\").first().append(e.shared.$qi_image_input), e.events.$on(e.shared.$qi_image_input, \"change\", function () {\n var e = t(this).data(\"inst\");\n this.files && (e.quickInsert.hide(), e.image.upload(this.files)), t(this).val(\"\");\n }, !0)), e.$qi_image_input = e.shared.$qi_image_input, e.helpers.isMobile() && e.selection.save(), e.events.disableBlur(), e.$qi_image_input.data(\"inst\", e)[0].click();\n }\n }), xt.RegisterQuickInsertButton(\"video\", {\n icon: \"insertVideo\",\n requiredPlugin: \"video\",\n title: \"Insert Video\",\n undo: !1,\n callback: function callback() {\n var e = prompt(this.language.translate(\"Paste the URL of the video you want to insert.\"));\n e && this.video.insertByURL(e);\n }\n }), xt.RegisterQuickInsertButton(\"embedly\", {\n icon: \"embedly\",\n requiredPlugin: \"embedly\",\n title: \"Embed URL\",\n undo: !1,\n callback: function callback() {\n var e = prompt(this.language.translate(\"Paste the URL of any web content you want to insert.\"));\n e && this.embedly.add(e);\n }\n }), xt.RegisterQuickInsertButton(\"table\", {\n icon: \"insertTable\",\n requiredPlugin: \"table\",\n title: \"Insert Table\",\n callback: function callback() {\n this.table.insert(2, 2);\n }\n }), xt.RegisterQuickInsertButton(\"ol\", {\n icon: \"formatOL\",\n requiredPlugin: \"lists\",\n title: \"Ordered List\",\n callback: function callback() {\n this.lists.format(\"OL\");\n }\n }), xt.RegisterQuickInsertButton(\"ul\", {\n icon: \"formatUL\",\n requiredPlugin: \"lists\",\n title: \"Unordered List\",\n callback: function callback() {\n this.lists.format(\"UL\");\n }\n }), xt.RegisterQuickInsertButton(\"hr\", {\n icon: \"insertHR\",\n title: \"Insert Horizontal Line\",\n callback: function callback() {\n this.commands.insertHR();\n }\n }), xt.PLUGINS.quickInsert = function (i) {\n var s,\n l,\n c = i.$,\n d = !1;\n\n function n(e) {\n var t, n, r;\n (t = e.offset().top - i.$box.offset().top, n = (i.$iframe && i.$iframe.offset().left || 0) + e.offset().left - e.position().left - 4 < s.outerWidth() ? e.offset().left + s.outerWidth() : 0 - s.outerWidth(), i.opts.enter != xt.ENTER_BR) ? r = (s.outerHeight() - e.outerHeight()) / 2 : (c(document.createElement(\"span\")).html(xt.INVISIBLE_SPACE).insertAfter(e), r = (s.outerHeight() - e.next().outerHeight()) / 2, e.next().remove());\n\n if (i.opts.iframe) {\n var a = i.helpers.getPX(i.$wp.find(\".fr-iframe\").css(\"padding-top\"));\n t += i.$iframe.offset().top + a;\n }\n\n s.hasClass(\"fr-on\") && 0 <= t && l.css(\"top\", t - r), 0 <= t && t - Math.abs(r) <= i.$box.outerHeight() - e.outerHeight() ? (s.hasClass(\"fr-hidden\") && (s.hasClass(\"fr-on\") && f(), s.removeClass(\"fr-hidden\")), s.css(\"top\", t - r)) : s.hasClass(\"fr-visible\") && !i.opts.toolbarInline && (s.addClass(\"fr-hidden\"), p()), s.css(\"left\", n);\n }\n\n function a(e) {\n s || function t() {\n i.shared.$quick_insert || (i.shared.$quick_insert = c(document.createElement(\"div\")).attr(\"class\", \"fr-quick-insert\").html('').concat(i.icon.create(\"quickInsert\"), \"\")));\n s = i.shared.$quick_insert, i.tooltip.bind(i.$box, \".fr-quick-insert > a.fr-floating-btn\"), i.events.on(\"destroy\", function () {\n c(\"body\").first().append(s.removeClass(\"fr-on\")), l && (p(), c(\"body\").first().append(l.css(\"left\", -9999).css(\"top\", -9999)));\n }, !0), i.events.on(\"shared.destroy\", function () {\n s.html(\"\").removeData().remove(), s = null, l && (l.html(\"\").removeData().remove(), l = null);\n }, !0), i.events.on(\"commands.before\", o), i.events.on(\"commands.after\", function () {\n i.popups.areVisible() || r();\n }), i.events.bindClick(i.$box, \".fr-quick-insert > a\", f), i.events.bindClick(i.$box, \".fr-qi-helper > a.fr-btn\", function (e) {\n var t = c(e.currentTarget).data(\"cmd\");\n if (!1 === i.events.trigger(\"quickInsert.commands.before\", [t])) return !1;\n xt.QUICK_INSERT_BUTTONS[t].callback.apply(i, [e.currentTarget]), xt.QUICK_INSERT_BUTTONS[t].undo && i.undo.saveStep(), i.events.trigger(\"quickInsert.commands.after\", [t]), i.quickInsert.hide();\n }), i.events.$on(i.$wp, \"scroll\", u), i.events.$on(i.$tb, \"transitionend\", \".fr-more-toolbar\", u);\n }(), s.hasClass(\"fr-on\") && p(), i.$box.append(s), n(e), s.data(\"tag\", e), s.addClass(\"fr-visible\");\n }\n\n function r() {\n if (i.core.hasFocus()) {\n var e = i.selection.element();\n\n if (i.opts.enter == xt.ENTER_BR || i.node.isBlock(e) || (e = i.node.blockParent(e)), i.opts.enter == xt.ENTER_BR && !i.node.isBlock(e)) {\n var t = i.node.deepestParent(e);\n t && (e = t);\n }\n\n var n = function n() {\n return i.opts.enter != xt.ENTER_BR && i.node.isEmpty(e) && 0 <= i.opts.quickInsertTags.indexOf(e.tagName.toLowerCase());\n },\n r = function r() {\n return i.opts.enter == xt.ENTER_BR && (\"BR\" == e.tagName && (!e.previousSibling || \"BR\" == e.previousSibling.tagName || i.node.isBlock(e.previousSibling)) || i.node.isEmpty(e) && (!e.previousSibling || \"BR\" == e.previousSibling.tagName || i.node.isBlock(e.previousSibling)) && (!e.nextSibling || \"BR\" == e.nextSibling.tagName || i.node.isBlock(e.nextSibling)));\n };\n\n e && (n() || r()) ? s && s.data(\"tag\").is(c(e)) && s.hasClass(\"fr-on\") ? p() : i.selection.isCollapsed() && a(c(e)) : o();\n }\n }\n\n function o() {\n s && !d && (s.hasClass(\"fr-on\") && p(), s.removeClass(\"fr-visible fr-on\"), s.css(\"left\", -9999).css(\"top\", -9999));\n }\n\n function f(e) {\n if (e && e.preventDefault(), s.hasClass(\"fr-on\") && !s.hasClass(\"fr-hidden\")) p();else {\n if (!i.shared.$qi_helper) {\n for (var t = i.opts.quickInsertButtons, n = '
    ', r = 0, a = 0; a < t.length; a++) {\n var o = xt.QUICK_INSERT_BUTTONS[t[a]];\n o && (!o.requiredPlugin || xt.PLUGINS[o.requiredPlugin] && 0 <= i.opts.pluginsEnabled.indexOf(o.requiredPlugin)) && (n += '').concat(i.icon.create(o.icon), \"\"));\n }\n\n n += \"
    \", i.shared.$qi_helper = c(n), i.tooltip.bind(i.shared.$qi_helper, \"a.fr-btn\"), i.events.$on(i.shared.$qi_helper, \"mousedown\", function (e) {\n e.preventDefault();\n }, !0);\n }\n\n l = i.shared.$qi_helper, i.$box.append(l), d = !0, setTimeout(function () {\n d = !1, l.css(\"top\", parseFloat(s.css(\"top\"))), l.css(\"left\", parseFloat(s.css(\"left\")) + s.outerWidth()), l.find(\"a\").addClass(\"fr-size-1\"), s.addClass(\"fr-on\");\n }, 10);\n }\n }\n\n function p() {\n var n = i.$box.find(\".fr-qi-helper\");\n n.length && function () {\n for (var t = n.find(\"a\"), e = 0; e < t.length; e++) {\n !function (e) {\n setTimeout(function () {\n n.children().eq(t.length - 1 - e).removeClass(\"fr-size-1\");\n }, 25 * e);\n }(e);\n }\n\n setTimeout(function () {\n n.css(\"left\", -9999), s && !s.hasClass(\"fr-hidden\") && s.removeClass(\"fr-on\");\n }, 25 * e);\n }();\n }\n\n function u() {\n s.hasClass(\"fr-visible\") && n(s.data(\"tag\"));\n }\n\n return {\n _init: function e() {\n if (!i.$wp || !i.opts.quickInsertEnabled) return !1;\n i.popups.onShow(\"image.edit\", o), i.events.on(\"mouseup\", r), i.helpers.isMobile() && i.events.$on(c(i.o_doc), \"selectionchange\", r), i.events.on(\"blur\", o), i.events.on(\"keyup\", r), i.events.on(\"keydown\", function () {\n setTimeout(function () {\n r();\n }, 0);\n });\n },\n hide: o\n };\n }, xt.PLUGINS.quote = function (a) {\n var o = a.$;\n\n function i(e) {\n for (; e.parentNode && e.parentNode != a.el;) {\n e = e.parentNode;\n }\n\n return e;\n }\n\n return {\n apply: function t(e) {\n a.selection.save(), a.html.wrap(!0, !0, !0, !0), a.selection.restore(), \"increase\" == e ? function r() {\n var e,\n t = a.selection.blocks();\n\n for (e = 0; e < t.length; e++) {\n t[e] = i(t[e]);\n }\n\n a.selection.save();\n var n = o(document.createElement(\"blockquote\"));\n\n for (n.insertBefore(t[0]), e = 0; e < t.length; e++) {\n n.append(t[e]);\n }\n\n a.html.unwrap(), a.selection.restore();\n }() : \"decrease\" == e && function n() {\n var e,\n t = a.selection.blocks();\n\n for (e = 0; e < t.length; e++) {\n \"BLOCKQUOTE\" != t[e].tagName && (t[e] = o(t[e]).parentsUntil(a.$el, \"BLOCKQUOTE\").get(0));\n }\n\n for (a.selection.save(), e = 0; e < t.length; e++) {\n t[e] && o(t[e]).replaceWith(t[e].innerHTML);\n }\n\n a.html.unwrap(), a.selection.restore();\n }();\n }\n };\n }, xt.RegisterShortcut(xt.KEYCODE.SINGLE_QUOTE, \"quote\", \"increase\", \"'\"), xt.RegisterShortcut(xt.KEYCODE.SINGLE_QUOTE, \"quote\", \"decrease\", \"'\", !0), xt.RegisterCommand(\"quote\", {\n title: \"Quote\",\n type: \"dropdown\",\n html: function html() {\n var e = '\";\n },\n callback: function callback(e, t) {\n this.quote.apply(t);\n },\n plugin: \"quote\"\n }), xt.DefineIcon(\"quote\", {\n NAME: \"quote-left\",\n SVG_KEY: \"blockquote\"\n }), Object.assign(xt.DEFAULTS, {\n saveInterval: 1e4,\n saveURL: null,\n saveParams: {},\n saveParam: \"body\",\n saveMethod: \"POST\"\n }), xt.PLUGINS.save = function (s) {\n var l = s.$,\n r = null,\n c = null,\n t = !1,\n d = 1,\n f = 2,\n n = {};\n\n function p(e, t) {\n s.events.trigger(\"save.error\", [{\n code: e,\n message: n[e]\n }, t]);\n }\n\n function a(e) {\n void 0 === e && (e = s.html.get());\n var r = e,\n t = s.events.trigger(\"save.before\", [e]);\n if (!1 === t) return !1;\n\n if (\"string\" == typeof t && (e = t), s.opts.saveURL) {\n var n = {};\n\n for (var a in s.opts.saveParams) {\n if (s.opts.saveParams.hasOwnProperty(a)) {\n var o = s.opts.saveParams[a];\n n[a] = \"function\" == typeof o ? o.call(this) : o;\n }\n }\n\n var i = {};\n i[s.opts.saveParam] = e, l(this).ajax({\n method: s.opts.saveMethod,\n url: s.opts.saveURL,\n data: Object.assign(i, n),\n crossDomain: s.opts.requestWithCORS,\n withCredentials: s.opts.requestWithCredentials,\n headers: s.opts.requestHeaders,\n done: function done(e, t, n) {\n c = r, s.events.trigger(\"save.after\", [e]);\n },\n fail: function fail(e) {\n p(f, e.response || e.responseText);\n }\n });\n } else p(d);\n }\n\n function o() {\n clearTimeout(r), r = setTimeout(function () {\n var e = s.html.get();\n (c != e || t) && (t = !1, a(c = e));\n }, 0);\n }\n\n return n[d] = \"Missing saveURL option.\", n[f] = \"Something went wrong during save.\", {\n _init: function i() {\n if (s.opts.letteringClass) for (var e = s.opts.letteringClass, t = s.$el.find(\".\".concat(e)).length, n = 0; n < t; n++) {\n s.$el.find(\".\".concat(e))[n].innerHTML = s.$el.find(\".\".concat(e))[n].innerText.replace(/([\\w'-]+|[?.\",])/g, \"$1\");\n }\n s.opts.saveInterval && (c = s.html.get(), s.events.on(\"contentChanged\", function () {\n setTimeout(o, s.opts.saveInterval);\n }), s.events.on(\"keydown destroy\", function () {\n clearTimeout(r);\n }));\n },\n save: a,\n reset: function e() {\n o(), t = !1;\n },\n force: function u() {\n t = !0;\n }\n };\n }, xt.DefineIcon(\"save\", {\n NAME: \"floppy-o\",\n FA5NAME: \"save\"\n }), xt.RegisterCommand(\"save\", {\n title: \"Save\",\n undo: !1,\n focus: !1,\n refreshAfterCallback: !1,\n callback: function callback() {\n this.save.save();\n },\n plugin: \"save\"\n }), Object.assign(xt.DEFAULTS, {\n specialCharactersSets: [{\n title: \"Latin\",\n \"char\": \"¡\",\n list: [{\n \"char\": \"¡\",\n desc: \"INVERTED EXCLAMATION MARK\"\n }, {\n \"char\": \"¢\",\n desc: \"CENT SIGN\"\n }, {\n \"char\": \"£\",\n desc: \"POUND SIGN\"\n }, {\n \"char\": \"¤\",\n desc: \"CURRENCY SIGN\"\n }, {\n \"char\": \"¥\",\n desc: \"YEN SIGN\"\n }, {\n \"char\": \"¦\",\n desc: \"BROKEN BAR\"\n }, {\n \"char\": \"§\",\n desc: \"SECTION SIGN\"\n }, {\n \"char\": \"¨\",\n desc: \"DIAERESIS\"\n }, {\n \"char\": \"©\",\n desc: \"COPYRIGHT SIGN\"\n }, {\n \"char\": \"™\",\n desc: \"TRADEMARK SIGN\"\n }, {\n \"char\": \"ª\",\n desc: \"FEMININE ORDINAL INDICATOR\"\n }, {\n \"char\": \"«\",\n desc: \"LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\"\n }, {\n \"char\": \"¬\",\n desc: \"NOT SIGN\"\n }, {\n \"char\": \"®\",\n desc: \"REGISTERED SIGN\"\n }, {\n \"char\": \"¯\",\n desc: \"MACRON\"\n }, {\n \"char\": \"°\",\n desc: \"DEGREE SIGN\"\n }, {\n \"char\": \"±\",\n desc: \"PLUS-MINUS SIGN\"\n }, {\n \"char\": \"²\",\n desc: \"SUPERSCRIPT TWO\"\n }, {\n \"char\": \"³\",\n desc: \"SUPERSCRIPT THREE\"\n }, {\n \"char\": \"´\",\n desc: \"ACUTE ACCENT\"\n }, {\n \"char\": \"µ\",\n desc: \"MICRO SIGN\"\n }, {\n \"char\": \"¶\",\n desc: \"PILCROW SIGN\"\n }, {\n \"char\": \"·\",\n desc: \"MIDDLE DOT\"\n }, {\n \"char\": \"¸\",\n desc: \"CEDILLA\"\n }, {\n \"char\": \"¹\",\n desc: \"SUPERSCRIPT ONE\"\n }, {\n \"char\": \"º\",\n desc: \"MASCULINE ORDINAL INDICATOR\"\n }, {\n \"char\": \"»\",\n desc: \"RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\"\n }, {\n \"char\": \"¼\",\n desc: \"VULGAR FRACTION ONE QUARTER\"\n }, {\n \"char\": \"½\",\n desc: \"VULGAR FRACTION ONE HALF\"\n }, {\n \"char\": \"¾\",\n desc: \"VULGAR FRACTION THREE QUARTERS\"\n }, {\n \"char\": \"¿\",\n desc: \"INVERTED QUESTION MARK\"\n }, {\n \"char\": \"À\",\n desc: \"LATIN CAPITAL LETTER A WITH GRAVE\"\n }, {\n \"char\": \"Á\",\n desc: \"LATIN CAPITAL LETTER A WITH ACUTE\"\n }, {\n \"char\": \"Â\",\n desc: \"LATIN CAPITAL LETTER A WITH CIRCUMFLEX\"\n }, {\n \"char\": \"Ã\",\n desc: \"LATIN CAPITAL LETTER A WITH TILDE\"\n }, {\n \"char\": \"Ä\",\n desc: \"LATIN CAPITAL LETTER A WITH DIAERESIS \"\n }, {\n \"char\": \"Å\",\n desc: \"LATIN CAPITAL LETTER A WITH RING ABOVE\"\n }, {\n \"char\": \"Æ\",\n desc: \"LATIN CAPITAL LETTER AE\"\n }, {\n \"char\": \"Ç\",\n desc: \"LATIN CAPITAL LETTER C WITH CEDILLA\"\n }, {\n \"char\": \"È\",\n desc: \"LATIN CAPITAL LETTER E WITH GRAVE\"\n }, {\n \"char\": \"É\",\n desc: \"LATIN CAPITAL LETTER E WITH ACUTE\"\n }, {\n \"char\": \"Ê\",\n desc: \"LATIN CAPITAL LETTER E WITH CIRCUMFLEX\"\n }, {\n \"char\": \"Ë\",\n desc: \"LATIN CAPITAL LETTER E WITH DIAERESIS\"\n }, {\n \"char\": \"Ì\",\n desc: \"LATIN CAPITAL LETTER I WITH GRAVE\"\n }, {\n \"char\": \"Í\",\n desc: \"LATIN CAPITAL LETTER I WITH ACUTE\"\n }, {\n \"char\": \"Î\",\n desc: \"LATIN CAPITAL LETTER I WITH CIRCUMFLEX\"\n }, {\n \"char\": \"Ï\",\n desc: \"LATIN CAPITAL LETTER I WITH DIAERESIS\"\n }, {\n \"char\": \"Ð\",\n desc: \"LATIN CAPITAL LETTER ETH\"\n }, {\n \"char\": \"Ñ\",\n desc: \"LATIN CAPITAL LETTER N WITH TILDE\"\n }, {\n \"char\": \"Ò\",\n desc: \"LATIN CAPITAL LETTER O WITH GRAVE\"\n }, {\n \"char\": \"Ó\",\n desc: \"LATIN CAPITAL LETTER O WITH ACUTE\"\n }, {\n \"char\": \"Ô\",\n desc: \"LATIN CAPITAL LETTER O WITH CIRCUMFLEX\"\n }, {\n \"char\": \"Õ\",\n desc: \"LATIN CAPITAL LETTER O WITH TILDE\"\n }, {\n \"char\": \"Ö\",\n desc: \"LATIN CAPITAL LETTER O WITH DIAERESIS\"\n }, {\n \"char\": \"×\",\n desc: \"MULTIPLICATION SIGN\"\n }, {\n \"char\": \"Ø\",\n desc: \"LATIN CAPITAL LETTER O WITH STROKE\"\n }, {\n \"char\": \"Ù\",\n desc: \"LATIN CAPITAL LETTER U WITH GRAVE\"\n }, {\n \"char\": \"Ú\",\n desc: \"LATIN CAPITAL LETTER U WITH ACUTE\"\n }, {\n \"char\": \"Û\",\n desc: \"LATIN CAPITAL LETTER U WITH CIRCUMFLEX\"\n }, {\n \"char\": \"Ü\",\n desc: \"LATIN CAPITAL LETTER U WITH DIAERESIS\"\n }, {\n \"char\": \"Ý\",\n desc: \"LATIN CAPITAL LETTER Y WITH ACUTE\"\n }, {\n \"char\": \"Þ\",\n desc: \"LATIN CAPITAL LETTER THORN\"\n }, {\n \"char\": \"ß\",\n desc: \"LATIN SMALL LETTER SHARP S\"\n }, {\n \"char\": \"à\",\n desc: \"LATIN SMALL LETTER A WITH GRAVE\"\n }, {\n \"char\": \"á\",\n desc: \"LATIN SMALL LETTER A WITH ACUTE \"\n }, {\n \"char\": \"â\",\n desc: \"LATIN SMALL LETTER A WITH CIRCUMFLEX\"\n }, {\n \"char\": \"ã\",\n desc: \"LATIN SMALL LETTER A WITH TILDE\"\n }, {\n \"char\": \"ä\",\n desc: \"LATIN SMALL LETTER A WITH DIAERESIS\"\n }, {\n \"char\": \"å\",\n desc: \"LATIN SMALL LETTER A WITH RING ABOVE\"\n }, {\n \"char\": \"æ\",\n desc: \"LATIN SMALL LETTER AE\"\n }, {\n \"char\": \"ç\",\n desc: \"LATIN SMALL LETTER C WITH CEDILLA\"\n }, {\n \"char\": \"è\",\n desc: \"LATIN SMALL LETTER E WITH GRAVE\"\n }, {\n \"char\": \"é\",\n desc: \"LATIN SMALL LETTER E WITH ACUTE\"\n }, {\n \"char\": \"ê\",\n desc: \"LATIN SMALL LETTER E WITH CIRCUMFLEX\"\n }, {\n \"char\": \"ë\",\n desc: \"LATIN SMALL LETTER E WITH DIAERESIS\"\n }, {\n \"char\": \"ì\",\n desc: \"LATIN SMALL LETTER I WITH GRAVE\"\n }, {\n \"char\": \"í\",\n desc: \"LATIN SMALL LETTER I WITH ACUTE\"\n }, {\n \"char\": \"î\",\n desc: \"LATIN SMALL LETTER I WITH CIRCUMFLEX\"\n }, {\n \"char\": \"ï\",\n desc: \"LATIN SMALL LETTER I WITH DIAERESIS\"\n }, {\n \"char\": \"ð\",\n desc: \"LATIN SMALL LETTER ETH\"\n }, {\n \"char\": \"ñ\",\n desc: \"LATIN SMALL LETTER N WITH TILDE\"\n }, {\n \"char\": \"ò\",\n desc: \"LATIN SMALL LETTER O WITH GRAVE\"\n }, {\n \"char\": \"ó\",\n desc: \"LATIN SMALL LETTER O WITH ACUTE\"\n }, {\n \"char\": \"ô\",\n desc: \"LATIN SMALL LETTER O WITH CIRCUMFLEX\"\n }, {\n \"char\": \"õ\",\n desc: \"LATIN SMALL LETTER O WITH TILDE\"\n }, {\n \"char\": \"ö\",\n desc: \"LATIN SMALL LETTER O WITH DIAERESIS\"\n }, {\n \"char\": \"÷\",\n desc: \"DIVISION SIGN\"\n }, {\n \"char\": \"ø\",\n desc: \"LATIN SMALL LETTER O WITH STROKE\"\n }, {\n \"char\": \"ù\",\n desc: \"LATIN SMALL LETTER U WITH GRAVE\"\n }, {\n \"char\": \"ú\",\n desc: \"LATIN SMALL LETTER U WITH ACUTE\"\n }, {\n \"char\": \"û\",\n desc: \"LATIN SMALL LETTER U WITH CIRCUMFLEX\"\n }, {\n \"char\": \"ü\",\n desc: \"LATIN SMALL LETTER U WITH DIAERESIS\"\n }, {\n \"char\": \"ý\",\n desc: \"LATIN SMALL LETTER Y WITH ACUTE\"\n }, {\n \"char\": \"þ\",\n desc: \"LATIN SMALL LETTER THORN\"\n }, {\n \"char\": \"ÿ\",\n desc: \"LATIN SMALL LETTER Y WITH DIAERESIS\"\n }]\n }, {\n title: \"Greek\",\n \"char\": \"Α\",\n list: [{\n \"char\": \"Α\",\n desc: \"GREEK CAPITAL LETTER ALPHA\"\n }, {\n \"char\": \"Β\",\n desc: \"GREEK CAPITAL LETTER BETA\"\n }, {\n \"char\": \"Γ\",\n desc: \"GREEK CAPITAL LETTER GAMMA\"\n }, {\n \"char\": \"Δ\",\n desc: \"GREEK CAPITAL LETTER DELTA\"\n }, {\n \"char\": \"Ε\",\n desc: \"GREEK CAPITAL LETTER EPSILON\"\n }, {\n \"char\": \"Ζ\",\n desc: \"GREEK CAPITAL LETTER ZETA\"\n }, {\n \"char\": \"Η\",\n desc: \"GREEK CAPITAL LETTER ETA\"\n }, {\n \"char\": \"Θ\",\n desc: \"GREEK CAPITAL LETTER THETA\"\n }, {\n \"char\": \"Ι\",\n desc: \"GREEK CAPITAL LETTER IOTA\"\n }, {\n \"char\": \"Κ\",\n desc: \"GREEK CAPITAL LETTER KAPPA\"\n }, {\n \"char\": \"Λ\",\n desc: \"GREEK CAPITAL LETTER LAMBDA\"\n }, {\n \"char\": \"Μ\",\n desc: \"GREEK CAPITAL LETTER MU\"\n }, {\n \"char\": \"Ν\",\n desc: \"GREEK CAPITAL LETTER NU\"\n }, {\n \"char\": \"Ξ\",\n desc: \"GREEK CAPITAL LETTER XI\"\n }, {\n \"char\": \"Ο\",\n desc: \"GREEK CAPITAL LETTER OMICRON\"\n }, {\n \"char\": \"Π\",\n desc: \"GREEK CAPITAL LETTER PI\"\n }, {\n \"char\": \"Ρ\",\n desc: \"GREEK CAPITAL LETTER RHO\"\n }, {\n \"char\": \"Σ\",\n desc: \"GREEK CAPITAL LETTER SIGMA\"\n }, {\n \"char\": \"Τ\",\n desc: \"GREEK CAPITAL LETTER TAU\"\n }, {\n \"char\": \"Υ\",\n desc: \"GREEK CAPITAL LETTER UPSILON\"\n }, {\n \"char\": \"Φ\",\n desc: \"GREEK CAPITAL LETTER PHI\"\n }, {\n \"char\": \"Χ\",\n desc: \"GREEK CAPITAL LETTER CHI\"\n }, {\n \"char\": \"Ψ\",\n desc: \"GREEK CAPITAL LETTER PSI\"\n }, {\n \"char\": \"Ω\",\n desc: \"GREEK CAPITAL LETTER OMEGA\"\n }, {\n \"char\": \"α\",\n desc: \"GREEK SMALL LETTER ALPHA\"\n }, {\n \"char\": \"β\",\n desc: \"GREEK SMALL LETTER BETA\"\n }, {\n \"char\": \"γ\",\n desc: \"GREEK SMALL LETTER GAMMA\"\n }, {\n \"char\": \"δ\",\n desc: \"GREEK SMALL LETTER DELTA\"\n }, {\n \"char\": \"ε\",\n desc: \"GREEK SMALL LETTER EPSILON\"\n }, {\n \"char\": \"ζ\",\n desc: \"GREEK SMALL LETTER ZETA\"\n }, {\n \"char\": \"η\",\n desc: \"GREEK SMALL LETTER ETA\"\n }, {\n \"char\": \"θ\",\n desc: \"GREEK SMALL LETTER THETA\"\n }, {\n \"char\": \"ι\",\n desc: \"GREEK SMALL LETTER IOTA\"\n }, {\n \"char\": \"κ\",\n desc: \"GREEK SMALL LETTER KAPPA\"\n }, {\n \"char\": \"λ\",\n desc: \"GREEK SMALL LETTER LAMBDA\"\n }, {\n \"char\": \"μ\",\n desc: \"GREEK SMALL LETTER MU\"\n }, {\n \"char\": \"ν\",\n desc: \"GREEK SMALL LETTER NU\"\n }, {\n \"char\": \"ξ\",\n desc: \"GREEK SMALL LETTER XI\"\n }, {\n \"char\": \"ο\",\n desc: \"GREEK SMALL LETTER OMICRON\"\n }, {\n \"char\": \"π\",\n desc: \"GREEK SMALL LETTER PI\"\n }, {\n \"char\": \"ρ\",\n desc: \"GREEK SMALL LETTER RHO\"\n }, {\n \"char\": \"ς\",\n desc: \"GREEK SMALL LETTER FINAL SIGMA\"\n }, {\n \"char\": \"σ\",\n desc: \"GREEK SMALL LETTER SIGMA\"\n }, {\n \"char\": \"τ\",\n desc: \"GREEK SMALL LETTER TAU\"\n }, {\n \"char\": \"υ\",\n desc: \"GREEK SMALL LETTER UPSILON\"\n }, {\n \"char\": \"φ\",\n desc: \"GREEK SMALL LETTER PHI\"\n }, {\n \"char\": \"χ\",\n desc: \"GREEK SMALL LETTER CHI\"\n }, {\n \"char\": \"ψ\",\n desc: \"GREEK SMALL LETTER PSI\"\n }, {\n \"char\": \"ω\",\n desc: \"GREEK SMALL LETTER OMEGA\"\n }, {\n \"char\": \"ϑ\",\n desc: \"GREEK THETA SYMBOL\"\n }, {\n \"char\": \"ϒ\",\n desc: \"GREEK UPSILON WITH HOOK SYMBOL\"\n }, {\n \"char\": \"ϕ\",\n desc: \"GREEK PHI SYMBOL\"\n }, {\n \"char\": \"ϖ\",\n desc: \"GREEK PI SYMBOL\"\n }, {\n \"char\": \"Ϝ\",\n desc: \"GREEK LETTER DIGAMMA\"\n }, {\n \"char\": \"ϝ\",\n desc: \"GREEK SMALL LETTER DIGAMMA\"\n }, {\n \"char\": \"ϰ\",\n desc: \"GREEK KAPPA SYMBOL\"\n }, {\n \"char\": \"ϱ\",\n desc: \"GREEK RHO SYMBOL\"\n }, {\n \"char\": \"ϵ\",\n desc: \"GREEK LUNATE EPSILON SYMBOL\"\n }, {\n \"char\": \"϶\",\n desc: \"GREEK REVERSED LUNATE EPSILON SYMBOL\"\n }]\n }, {\n title: \"Cyrillic\",\n \"char\": \"Ѐ\",\n list: [{\n \"char\": \"Ѐ\",\n desc: \"CYRILLIC CAPITAL LETTER IE WITH GRAVE\"\n }, {\n \"char\": \"Ё\",\n desc: \"CYRILLIC CAPITAL LETTER IO\"\n }, {\n \"char\": \"Ђ\",\n desc: \"CYRILLIC CAPITAL LETTER DJE\"\n }, {\n \"char\": \"Ѓ\",\n desc: \"CYRILLIC CAPITAL LETTER GJE\"\n }, {\n \"char\": \"Є\",\n desc: \"CYRILLIC CAPITAL LETTER UKRAINIAN IE\"\n }, {\n \"char\": \"Ѕ\",\n desc: \"CYRILLIC CAPITAL LETTER DZE\"\n }, {\n \"char\": \"І\",\n desc: \"CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I\"\n }, {\n \"char\": \"Ї\",\n desc: \"CYRILLIC CAPITAL LETTER YI\"\n }, {\n \"char\": \"Ј\",\n desc: \"CYRILLIC CAPITAL LETTER JE\"\n }, {\n \"char\": \"Љ\",\n desc: \"CYRILLIC CAPITAL LETTER LJE\"\n }, {\n \"char\": \"Њ\",\n desc: \"CYRILLIC CAPITAL LETTER NJE\"\n }, {\n \"char\": \"Ћ\",\n desc: \"CYRILLIC CAPITAL LETTER TSHE\"\n }, {\n \"char\": \"Ќ\",\n desc: \"CYRILLIC CAPITAL LETTER KJE\"\n }, {\n \"char\": \"Ѝ\",\n desc: \"CYRILLIC CAPITAL LETTER I WITH GRAVE\"\n }, {\n \"char\": \"Ў\",\n desc: \"CYRILLIC CAPITAL LETTER SHORT U\"\n }, {\n \"char\": \"Џ\",\n desc: \"CYRILLIC CAPITAL LETTER DZHE\"\n }, {\n \"char\": \"А\",\n desc: \"CYRILLIC CAPITAL LETTER A\"\n }, {\n \"char\": \"Б\",\n desc: \"CYRILLIC CAPITAL LETTER BE\"\n }, {\n \"char\": \"В\",\n desc: \"CYRILLIC CAPITAL LETTER VE\"\n }, {\n \"char\": \"Г\",\n desc: \"CYRILLIC CAPITAL LETTER GHE\"\n }, {\n \"char\": \"Д\",\n desc: \"CYRILLIC CAPITAL LETTER DE\"\n }, {\n \"char\": \"Е\",\n desc: \"CYRILLIC CAPITAL LETTER IE\"\n }, {\n \"char\": \"Ж\",\n desc: \"CYRILLIC CAPITAL LETTER ZHE\"\n }, {\n \"char\": \"З\",\n desc: \"CYRILLIC CAPITAL LETTER ZE\"\n }, {\n \"char\": \"И\",\n desc: \"CYRILLIC CAPITAL LETTER I\"\n }, {\n \"char\": \"Й\",\n desc: \"CYRILLIC CAPITAL LETTER SHORT I\"\n }, {\n \"char\": \"К\",\n desc: \"CYRILLIC CAPITAL LETTER KA\"\n }, {\n \"char\": \"Л\",\n desc: \"CYRILLIC CAPITAL LETTER EL\"\n }, {\n \"char\": \"М\",\n desc: \"CYRILLIC CAPITAL LETTER EM\"\n }, {\n \"char\": \"Н\",\n desc: \"CYRILLIC CAPITAL LETTER EN\"\n }, {\n \"char\": \"О\",\n desc: \"CYRILLIC CAPITAL LETTER O\"\n }, {\n \"char\": \"П\",\n desc: \"CYRILLIC CAPITAL LETTER PE\"\n }, {\n \"char\": \"Р\",\n desc: \"CYRILLIC CAPITAL LETTER ER\"\n }, {\n \"char\": \"С\",\n desc: \"CYRILLIC CAPITAL LETTER ES\"\n }, {\n \"char\": \"Т\",\n desc: \"CYRILLIC CAPITAL LETTER TE\"\n }, {\n \"char\": \"У\",\n desc: \"CYRILLIC CAPITAL LETTER U\"\n }, {\n \"char\": \"Ф\",\n desc: \"CYRILLIC CAPITAL LETTER EF\"\n }, {\n \"char\": \"Х\",\n desc: \"CYRILLIC CAPITAL LETTER HA\"\n }, {\n \"char\": \"Ц\",\n desc: \"CYRILLIC CAPITAL LETTER TSE\"\n }, {\n \"char\": \"Ч\",\n desc: \"CYRILLIC CAPITAL LETTER CHE\"\n }, {\n \"char\": \"Ш\",\n desc: \"CYRILLIC CAPITAL LETTER SHA\"\n }, {\n \"char\": \"Щ\",\n desc: \"CYRILLIC CAPITAL LETTER SHCHA\"\n }, {\n \"char\": \"Ъ\",\n desc: \"CYRILLIC CAPITAL LETTER HARD SIGN\"\n }, {\n \"char\": \"Ы\",\n desc: \"CYRILLIC CAPITAL LETTER YERU\"\n }, {\n \"char\": \"Ь\",\n desc: \"CYRILLIC CAPITAL LETTER SOFT SIGN\"\n }, {\n \"char\": \"Э\",\n desc: \"CYRILLIC CAPITAL LETTER E\"\n }, {\n \"char\": \"Ю\",\n desc: \"CYRILLIC CAPITAL LETTER YU\"\n }, {\n \"char\": \"Я\",\n desc: \"CYRILLIC CAPITAL LETTER YA\"\n }, {\n \"char\": \"а\",\n desc: \"CYRILLIC SMALL LETTER A\"\n }, {\n \"char\": \"б\",\n desc: \"CYRILLIC SMALL LETTER BE\"\n }, {\n \"char\": \"в\",\n desc: \"CYRILLIC SMALL LETTER VE\"\n }, {\n \"char\": \"г\",\n desc: \"CYRILLIC SMALL LETTER GHE\"\n }, {\n \"char\": \"д\",\n desc: \"CYRILLIC SMALL LETTER DE\"\n }, {\n \"char\": \"е\",\n desc: \"CYRILLIC SMALL LETTER IE\"\n }, {\n \"char\": \"ж\",\n desc: \"CYRILLIC SMALL LETTER ZHE\"\n }, {\n \"char\": \"з\",\n desc: \"CYRILLIC SMALL LETTER ZE\"\n }, {\n \"char\": \"и\",\n desc: \"CYRILLIC SMALL LETTER I\"\n }, {\n \"char\": \"й\",\n desc: \"CYRILLIC SMALL LETTER SHORT I\"\n }, {\n \"char\": \"к\",\n desc: \"CYRILLIC SMALL LETTER KA\"\n }, {\n \"char\": \"л\",\n desc: \"CYRILLIC SMALL LETTER EL\"\n }, {\n \"char\": \"м\",\n desc: \"CYRILLIC SMALL LETTER EM\"\n }, {\n \"char\": \"н\",\n desc: \"CYRILLIC SMALL LETTER EN\"\n }, {\n \"char\": \"о\",\n desc: \"CYRILLIC SMALL LETTER O\"\n }, {\n \"char\": \"п\",\n desc: \"CYRILLIC SMALL LETTER PE\"\n }, {\n \"char\": \"р\",\n desc: \"CYRILLIC SMALL LETTER ER\"\n }, {\n \"char\": \"с\",\n desc: \"CYRILLIC SMALL LETTER ES\"\n }, {\n \"char\": \"т\",\n desc: \"CYRILLIC SMALL LETTER TE\"\n }, {\n \"char\": \"у\",\n desc: \"CYRILLIC SMALL LETTER U\"\n }, {\n \"char\": \"ф\",\n desc: \"CYRILLIC SMALL LETTER EF\"\n }, {\n \"char\": \"х\",\n desc: \"CYRILLIC SMALL LETTER HA\"\n }, {\n \"char\": \"ц\",\n desc: \"CYRILLIC SMALL LETTER TSE\"\n }, {\n \"char\": \"ч\",\n desc: \"CYRILLIC SMALL LETTER CHE\"\n }, {\n \"char\": \"ш\",\n desc: \"CYRILLIC SMALL LETTER SHA\"\n }, {\n \"char\": \"щ\",\n desc: \"CYRILLIC SMALL LETTER SHCHA\"\n }, {\n \"char\": \"ъ\",\n desc: \"CYRILLIC SMALL LETTER HARD SIGN\"\n }, {\n \"char\": \"ы\",\n desc: \"CYRILLIC SMALL LETTER YERU\"\n }, {\n \"char\": \"ь\",\n desc: \"CYRILLIC SMALL LETTER SOFT SIGN\"\n }, {\n \"char\": \"э\",\n desc: \"CYRILLIC SMALL LETTER E\"\n }, {\n \"char\": \"ю\",\n desc: \"CYRILLIC SMALL LETTER YU\"\n }, {\n \"char\": \"я\",\n desc: \"CYRILLIC SMALL LETTER YA\"\n }, {\n \"char\": \"ѐ\",\n desc: \"CYRILLIC SMALL LETTER IE WITH GRAVE\"\n }, {\n \"char\": \"ё\",\n desc: \"CYRILLIC SMALL LETTER IO\"\n }, {\n \"char\": \"ђ\",\n desc: \"CYRILLIC SMALL LETTER DJE\"\n }, {\n \"char\": \"ѓ\",\n desc: \"CYRILLIC SMALL LETTER GJE\"\n }, {\n \"char\": \"є\",\n desc: \"CYRILLIC SMALL LETTER UKRAINIAN IE\"\n }, {\n \"char\": \"ѕ\",\n desc: \"CYRILLIC SMALL LETTER DZE\"\n }, {\n \"char\": \"і\",\n desc: \"CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I\"\n }, {\n \"char\": \"ї\",\n desc: \"CYRILLIC SMALL LETTER YI\"\n }, {\n \"char\": \"ј\",\n desc: \"CYRILLIC SMALL LETTER JE\"\n }, {\n \"char\": \"љ\",\n desc: \"CYRILLIC SMALL LETTER LJE\"\n }, {\n \"char\": \"њ\",\n desc: \"CYRILLIC SMALL LETTER NJE\"\n }, {\n \"char\": \"ћ\",\n desc: \"CYRILLIC SMALL LETTER TSHE\"\n }, {\n \"char\": \"ќ\",\n desc: \"CYRILLIC SMALL LETTER KJE\"\n }, {\n \"char\": \"ѝ\",\n desc: \"CYRILLIC SMALL LETTER I WITH GRAVE\"\n }, {\n \"char\": \"ў\",\n desc: \"CYRILLIC SMALL LETTER SHORT U\"\n }, {\n \"char\": \"џ\",\n desc: \"CYRILLIC SMALL LETTER DZHE\"\n }]\n }, {\n title: \"Punctuation\",\n \"char\": \"–\",\n list: [{\n \"char\": \"–\",\n desc: \"EN DASH\"\n }, {\n \"char\": \"—\",\n desc: \"EM DASH\"\n }, {\n \"char\": \"‘\",\n desc: \"LEFT SINGLE QUOTATION MARK\"\n }, {\n \"char\": \"’\",\n desc: \"RIGHT SINGLE QUOTATION MARK\"\n }, {\n \"char\": \"‚\",\n desc: \"SINGLE LOW-9 QUOTATION MARK\"\n }, {\n \"char\": \"“\",\n desc: \"LEFT DOUBLE QUOTATION MARK\"\n }, {\n \"char\": \"”\",\n desc: \"RIGHT DOUBLE QUOTATION MARK\"\n }, {\n \"char\": \"„\",\n desc: \"DOUBLE LOW-9 QUOTATION MARK\"\n }, {\n \"char\": \"†\",\n desc: \"DAGGER\"\n }, {\n \"char\": \"‡\",\n desc: \"DOUBLE DAGGER\"\n }, {\n \"char\": \"•\",\n desc: \"BULLET\"\n }, {\n \"char\": \"…\",\n desc: \"HORIZONTAL ELLIPSIS\"\n }, {\n \"char\": \"‰\",\n desc: \"PER MILLE SIGN\"\n }, {\n \"char\": \"′\",\n desc: \"PRIME\"\n }, {\n \"char\": \"″\",\n desc: \"DOUBLE PRIME\"\n }, {\n \"char\": \"‹\",\n desc: \"SINGLE LEFT-POINTING ANGLE QUOTATION MARK\"\n }, {\n \"char\": \"›\",\n desc: \"SINGLE RIGHT-POINTING ANGLE QUOTATION MARK\"\n }, {\n \"char\": \"‾\",\n desc: \"OVERLINE\"\n }, {\n \"char\": \"⁄\",\n desc: \"FRACTION SLASH\"\n }]\n }, {\n title: \"Currency\",\n \"char\": \"₠\",\n list: [{\n \"char\": \"₠\",\n desc: \"EURO-CURRENCY SIGN\"\n }, {\n \"char\": \"₡\",\n desc: \"COLON SIGN\"\n }, {\n \"char\": \"₢\",\n desc: \"CRUZEIRO SIGN\"\n }, {\n \"char\": \"₣\",\n desc: \"FRENCH FRANC SIGN\"\n }, {\n \"char\": \"₤\",\n desc: \"LIRA SIGN\"\n }, {\n \"char\": \"₥\",\n desc: \"MILL SIGN\"\n }, {\n \"char\": \"₦\",\n desc: \"NAIRA SIGN\"\n }, {\n \"char\": \"₧\",\n desc: \"PESETA SIGN\"\n }, {\n \"char\": \"₨\",\n desc: \"RUPEE SIGN\"\n }, {\n \"char\": \"₩\",\n desc: \"WON SIGN\"\n }, {\n \"char\": \"₪\",\n desc: \"NEW SHEQEL SIGN\"\n }, {\n \"char\": \"₫\",\n desc: \"DONG SIGN\"\n }, {\n \"char\": \"€\",\n desc: \"EURO SIGN\"\n }, {\n \"char\": \"₭\",\n desc: \"KIP SIGN\"\n }, {\n \"char\": \"₮\",\n desc: \"TUGRIK SIGN\"\n }, {\n \"char\": \"₯\",\n desc: \"DRACHMA SIGN\"\n }, {\n \"char\": \"₰\",\n desc: \"GERMAN PENNY SYMBOL\"\n }, {\n \"char\": \"₱\",\n desc: \"PESO SIGN\"\n }, {\n \"char\": \"₲\",\n desc: \"GUARANI SIGN\"\n }, {\n \"char\": \"₳\",\n desc: \"AUSTRAL SIGN\"\n }, {\n \"char\": \"₴\",\n desc: \"HRYVNIA SIGN\"\n }, {\n \"char\": \"₵\",\n desc: \"CEDI SIGN\"\n }, {\n \"char\": \"₶\",\n desc: \"LIVRE TOURNOIS SIGN\"\n }, {\n \"char\": \"₷\",\n desc: \"SPESMILO SIGN\"\n }, {\n \"char\": \"₸\",\n desc: \"TENGE SIGN\"\n }, {\n \"char\": \"₹\",\n desc: \"INDIAN RUPEE SIGN\"\n }]\n }, {\n title: \"Arrows\",\n \"char\": \"←\",\n list: [{\n \"char\": \"←\",\n desc: \"LEFTWARDS ARROW\"\n }, {\n \"char\": \"↑\",\n desc: \"UPWARDS ARROW\"\n }, {\n \"char\": \"→\",\n desc: \"RIGHTWARDS ARROW\"\n }, {\n \"char\": \"↓\",\n desc: \"DOWNWARDS ARROW\"\n }, {\n \"char\": \"↔\",\n desc: \"LEFT RIGHT ARROW\"\n }, {\n \"char\": \"↕\",\n desc: \"UP DOWN ARROW\"\n }, {\n \"char\": \"↖\",\n desc: \"NORTH WEST ARROW\"\n }, {\n \"char\": \"↗\",\n desc: \"NORTH EAST ARROW\"\n }, {\n \"char\": \"↘\",\n desc: \"SOUTH EAST ARROW\"\n }, {\n \"char\": \"↙\",\n desc: \"SOUTH WEST ARROW\"\n }, {\n \"char\": \"↚\",\n desc: \"LEFTWARDS ARROW WITH STROKE\"\n }, {\n \"char\": \"↛\",\n desc: \"RIGHTWARDS ARROW WITH STROKE\"\n }, {\n \"char\": \"↜\",\n desc: \"LEFTWARDS WAVE ARROW\"\n }, {\n \"char\": \"↝\",\n desc: \"RIGHTWARDS WAVE ARROW\"\n }, {\n \"char\": \"↞\",\n desc: \"LEFTWARDS TWO HEADED ARROW\"\n }, {\n \"char\": \"↟\",\n desc: \"UPWARDS TWO HEADED ARROW\"\n }, {\n \"char\": \"↠\",\n desc: \"RIGHTWARDS TWO HEADED ARROW\"\n }, {\n \"char\": \"↡\",\n desc: \"DOWNWARDS TWO HEADED ARROW\"\n }, {\n \"char\": \"↢\",\n desc: \"LEFTWARDS ARROW WITH TAIL\"\n }, {\n \"char\": \"↣\",\n desc: \"RIGHTWARDS ARROW WITH TAIL\"\n }, {\n \"char\": \"↤\",\n desc: \"LEFTWARDS ARROW FROM BAR\"\n }, {\n \"char\": \"↥\",\n desc: \"UPWARDS ARROW FROM BAR\"\n }, {\n \"char\": \"↦\",\n desc: \"RIGHTWARDS ARROW FROM BAR\"\n }, {\n \"char\": \"↧\",\n desc: \"DOWNWARDS ARROW FROM BAR\"\n }, {\n \"char\": \"↨\",\n desc: \"UP DOWN ARROW WITH BASE\"\n }, {\n \"char\": \"↩\",\n desc: \"LEFTWARDS ARROW WITH HOOK\"\n }, {\n \"char\": \"↪\",\n desc: \"RIGHTWARDS ARROW WITH HOOK\"\n }, {\n \"char\": \"↫\",\n desc: \"LEFTWARDS ARROW WITH LOOP\"\n }, {\n \"char\": \"↬\",\n desc: \"RIGHTWARDS ARROW WITH LOOP\"\n }, {\n \"char\": \"↭\",\n desc: \"LEFT RIGHT WAVE ARROW\"\n }, {\n \"char\": \"↮\",\n desc: \"LEFT RIGHT ARROW WITH STROKE\"\n }, {\n \"char\": \"↯\",\n desc: \"DOWNWARDS ZIGZAG ARROW\"\n }, {\n \"char\": \"↰\",\n desc: \"UPWARDS ARROW WITH TIP LEFTWARDS\"\n }, {\n \"char\": \"↱\",\n desc: \"UPWARDS ARROW WITH TIP RIGHTWARDS\"\n }, {\n \"char\": \"↲\",\n desc: \"DOWNWARDS ARROW WITH TIP LEFTWARDS\"\n }, {\n \"char\": \"↳\",\n desc: \"DOWNWARDS ARROW WITH TIP RIGHTWARDS\"\n }, {\n \"char\": \"↴\",\n desc: \"RIGHTWARDS ARROW WITH CORNER DOWNWARDS\"\n }, {\n \"char\": \"↵\",\n desc: \"DOWNWARDS ARROW WITH CORNER LEFTWARDS\"\n }, {\n \"char\": \"↶\",\n desc: \"ANTICLOCKWISE TOP SEMICIRCLE ARROW\"\n }, {\n \"char\": \"↷\",\n desc: \"CLOCKWISE TOP SEMICIRCLE ARROW\"\n }, {\n \"char\": \"↸\",\n desc: \"NORTH WEST ARROW TO LONG BAR\"\n }, {\n \"char\": \"↹\",\n desc: \"LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR\"\n }, {\n \"char\": \"↺\",\n desc: \"ANTICLOCKWISE OPEN CIRCLE ARROW\"\n }, {\n \"char\": \"↻\",\n desc: \"CLOCKWISE OPEN CIRCLE ARROW\"\n }, {\n \"char\": \"↼\",\n desc: \"LEFTWARDS HARPOON WITH BARB UPWARDS\"\n }, {\n \"char\": \"↽\",\n desc: \"LEFTWARDS HARPOON WITH BARB DOWNWARDS\"\n }, {\n \"char\": \"↾\",\n desc: \"UPWARDS HARPOON WITH BARB RIGHTWARDS\"\n }, {\n \"char\": \"↿\",\n desc: \"UPWARDS HARPOON WITH BARB LEFTWARDS\"\n }, {\n \"char\": \"⇀\",\n desc: \"RIGHTWARDS HARPOON WITH BARB UPWARDS\"\n }, {\n \"char\": \"⇁\",\n desc: \"RIGHTWARDS HARPOON WITH BARB DOWNWARDS\"\n }, {\n \"char\": \"⇂\",\n desc: \"DOWNWARDS HARPOON WITH BARB RIGHTWARDS\"\n }, {\n \"char\": \"⇃\",\n desc: \"DOWNWARDS HARPOON WITH BARB LEFTWARDS\"\n }, {\n \"char\": \"⇄\",\n desc: \"RIGHTWARDS ARROW OVER LEFTWARDS ARROW\"\n }, {\n \"char\": \"⇅\",\n desc: \"UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW\"\n }, {\n \"char\": \"⇆\",\n desc: \"LEFTWARDS ARROW OVER RIGHTWARDS ARROW\"\n }, {\n \"char\": \"⇇\",\n desc: \"LEFTWARDS PAIRED ARROWS\"\n }, {\n \"char\": \"⇈\",\n desc: \"UPWARDS PAIRED ARROWS\"\n }, {\n \"char\": \"⇉\",\n desc: \"RIGHTWARDS PAIRED ARROWS\"\n }, {\n \"char\": \"⇊\",\n desc: \"DOWNWARDS PAIRED ARROWS\"\n }, {\n \"char\": \"⇋\",\n desc: \"LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON\"\n }, {\n \"char\": \"⇌\",\n desc: \"RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON\"\n }, {\n \"char\": \"⇍\",\n desc: \"LEFTWARDS DOUBLE ARROW WITH STROKE\"\n }, {\n \"char\": \"⇎\",\n desc: \"LEFT RIGHT DOUBLE ARROW WITH STROKE\"\n }, {\n \"char\": \"⇏\",\n desc: \"RIGHTWARDS DOUBLE ARROW WITH STROKE\"\n }, {\n \"char\": \"⇐\",\n desc: \"LEFTWARDS DOUBLE ARROW\"\n }, {\n \"char\": \"⇑\",\n desc: \"UPWARDS DOUBLE ARROW\"\n }, {\n \"char\": \"⇒\",\n desc: \"RIGHTWARDS DOUBLE ARROW\"\n }, {\n \"char\": \"⇓\",\n desc: \"DOWNWARDS DOUBLE ARROW\"\n }, {\n \"char\": \"⇔\",\n desc: \"LEFT RIGHT DOUBLE ARROW\"\n }, {\n \"char\": \"⇕\",\n desc: \"UP DOWN DOUBLE ARROW\"\n }, {\n \"char\": \"⇖\",\n desc: \"NORTH WEST DOUBLE ARROW\"\n }, {\n \"char\": \"⇗\",\n desc: \"NORTH EAST DOUBLE ARROW\"\n }, {\n \"char\": \"⇘\",\n desc: \"SOUTH EAST DOUBLE ARROW\"\n }, {\n \"char\": \"⇙\",\n desc: \"SOUTH WEST DOUBLE ARROW\"\n }, {\n \"char\": \"⇚\",\n desc: \"LEFTWARDS TRIPLE ARROW\"\n }, {\n \"char\": \"⇛\",\n desc: \"RIGHTWARDS TRIPLE ARROW\"\n }, {\n \"char\": \"⇜\",\n desc: \"LEFTWARDS SQUIGGLE ARROW\"\n }, {\n \"char\": \"⇝\",\n desc: \"RIGHTWARDS SQUIGGLE ARROW\"\n }, {\n \"char\": \"⇞\",\n desc: \"UPWARDS ARROW WITH DOUBLE STROKE\"\n }, {\n \"char\": \"⇟\",\n desc: \"DOWNWARDS ARROW WITH DOUBLE STROKE\"\n }, {\n \"char\": \"⇠\",\n desc: \"LEFTWARDS DASHED ARROW\"\n }, {\n \"char\": \"⇡\",\n desc: \"UPWARDS DASHED ARROW\"\n }, {\n \"char\": \"⇢\",\n desc: \"RIGHTWARDS DASHED ARROW\"\n }, {\n \"char\": \"⇣\",\n desc: \"DOWNWARDS DASHED ARROW\"\n }, {\n \"char\": \"⇤\",\n desc: \"LEFTWARDS ARROW TO BAR\"\n }, {\n \"char\": \"⇥\",\n desc: \"RIGHTWARDS ARROW TO BAR\"\n }, {\n \"char\": \"⇦\",\n desc: \"LEFTWARDS WHITE ARROW\"\n }, {\n \"char\": \"⇧\",\n desc: \"UPWARDS WHITE ARROW\"\n }, {\n \"char\": \"⇨\",\n desc: \"RIGHTWARDS WHITE ARROW\"\n }, {\n \"char\": \"⇩\",\n desc: \"DOWNWARDS WHITE ARROW\"\n }, {\n \"char\": \"⇪\",\n desc: \"UPWARDS WHITE ARROW FROM BAR\"\n }, {\n \"char\": \"⇫\",\n desc: \"UPWARDS WHITE ARROW ON PEDESTAL\"\n }, {\n \"char\": \"⇬\",\n desc: \"UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR\"\n }, {\n \"char\": \"⇭\",\n desc: \"UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR\"\n }, {\n \"char\": \"⇮\",\n desc: \"UPWARDS WHITE DOUBLE ARROW\"\n }, {\n \"char\": \"⇯\",\n desc: \"UPWARDS WHITE DOUBLE ARROW ON PEDESTAL\"\n }, {\n \"char\": \"⇰\",\n desc: \"RIGHTWARDS WHITE ARROW FROM WALL\"\n }, {\n \"char\": \"⇱\",\n desc: \"NORTH WEST ARROW TO CORNER\"\n }, {\n \"char\": \"⇲\",\n desc: \"SOUTH EAST ARROW TO CORNER\"\n }, {\n \"char\": \"⇳\",\n desc: \"UP DOWN WHITE ARROW\"\n }, {\n \"char\": \"⇴\",\n desc: \"RIGHT ARROW WITH SMALL CIRCLE\"\n }, {\n \"char\": \"⇵\",\n desc: \"DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW\"\n }, {\n \"char\": \"⇶\",\n desc: \"THREE RIGHTWARDS ARROWS\"\n }, {\n \"char\": \"⇷\",\n desc: \"LEFTWARDS ARROW WITH VERTICAL STROKE\"\n }, {\n \"char\": \"⇸\",\n desc: \"RIGHTWARDS ARROW WITH VERTICAL STROKE\"\n }, {\n \"char\": \"⇹\",\n desc: \"LEFT RIGHT ARROW WITH VERTICAL STROKE\"\n }, {\n \"char\": \"⇺\",\n desc: \"LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE\"\n }, {\n \"char\": \"⇻\",\n desc: \"RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE\"\n }, {\n \"char\": \"⇼\",\n desc: \"LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE\"\n }, {\n \"char\": \"⇽\",\n desc: \"LEFTWARDS OPEN-HEADED ARROW\"\n }, {\n \"char\": \"⇾\",\n desc: \"RIGHTWARDS OPEN-HEADED ARROW\"\n }, {\n \"char\": \"⇿\",\n desc: \"LEFT RIGHT OPEN-HEADED ARROW\"\n }]\n }, {\n title: \"Math\",\n \"char\": \"∀\",\n list: [{\n \"char\": \"∀\",\n desc: \"FOR ALL\"\n }, {\n \"char\": \"∂\",\n desc: \"PARTIAL DIFFERENTIAL\"\n }, {\n \"char\": \"∃\",\n desc: \"THERE EXISTS\"\n }, {\n \"char\": \"∅\",\n desc: \"EMPTY SET\"\n }, {\n \"char\": \"∇\",\n desc: \"NABLA\"\n }, {\n \"char\": \"∈\",\n desc: \"ELEMENT OF\"\n }, {\n \"char\": \"∉\",\n desc: \"NOT AN ELEMENT OF\"\n }, {\n \"char\": \"∋\",\n desc: \"CONTAINS AS MEMBER\"\n }, {\n \"char\": \"∏\",\n desc: \"N-ARY PRODUCT\"\n }, {\n \"char\": \"∑\",\n desc: \"N-ARY SUMMATION\"\n }, {\n \"char\": \"−\",\n desc: \"MINUS SIGN\"\n }, {\n \"char\": \"∗\",\n desc: \"ASTERISK OPERATOR\"\n }, {\n \"char\": \"√\",\n desc: \"SQUARE ROOT\"\n }, {\n \"char\": \"∝\",\n desc: \"PROPORTIONAL TO\"\n }, {\n \"char\": \"∞\",\n desc: \"INFINITY\"\n }, {\n \"char\": \"∠\",\n desc: \"ANGLE\"\n }, {\n \"char\": \"∧\",\n desc: \"LOGICAL AND\"\n }, {\n \"char\": \"∨\",\n desc: \"LOGICAL OR\"\n }, {\n \"char\": \"∩\",\n desc: \"INTERSECTION\"\n }, {\n \"char\": \"∪\",\n desc: \"UNION\"\n }, {\n \"char\": \"∫\",\n desc: \"INTEGRAL\"\n }, {\n \"char\": \"∴\",\n desc: \"THEREFORE\"\n }, {\n \"char\": \"∼\",\n desc: \"TILDE OPERATOR\"\n }, {\n \"char\": \"≅\",\n desc: \"APPROXIMATELY EQUAL TO\"\n }, {\n \"char\": \"≈\",\n desc: \"ALMOST EQUAL TO\"\n }, {\n \"char\": \"≠\",\n desc: \"NOT EQUAL TO\"\n }, {\n \"char\": \"≡\",\n desc: \"IDENTICAL TO\"\n }, {\n \"char\": \"≤\",\n desc: \"LESS-THAN OR EQUAL TO\"\n }, {\n \"char\": \"≥\",\n desc: \"GREATER-THAN OR EQUAL TO\"\n }, {\n \"char\": \"⊂\",\n desc: \"SUBSET OF\"\n }, {\n \"char\": \"⊃\",\n desc: \"SUPERSET OF\"\n }, {\n \"char\": \"⊄\",\n desc: \"NOT A SUBSET OF\"\n }, {\n \"char\": \"⊆\",\n desc: \"SUBSET OF OR EQUAL TO\"\n }, {\n \"char\": \"⊇\",\n desc: \"SUPERSET OF OR EQUAL TO\"\n }, {\n \"char\": \"⊕\",\n desc: \"CIRCLED PLUS\"\n }, {\n \"char\": \"⊗\",\n desc: \"CIRCLED TIMES\"\n }, {\n \"char\": \"⊥\",\n desc: \"UP TACK\"\n }]\n }, {\n title: \"Misc\",\n \"char\": \"♠\",\n list: [{\n \"char\": \"♠\",\n desc: \"BLACK SPADE SUIT\"\n }, {\n \"char\": \"♣\",\n desc: \"BLACK CLUB SUIT\"\n }, {\n \"char\": \"♥\",\n desc: \"BLACK HEART SUIT\"\n }, {\n \"char\": \"♦\",\n desc: \"BLACK DIAMOND SUIT\"\n }, {\n \"char\": \"♩\",\n desc: \"QUARTER NOTE\"\n }, {\n \"char\": \"♪\",\n desc: \"EIGHTH NOTE\"\n }, {\n \"char\": \"♫\",\n desc: \"BEAMED EIGHTH NOTES\"\n }, {\n \"char\": \"♬\",\n desc: \"BEAMED SIXTEENTH NOTES\"\n }, {\n \"char\": \"♭\",\n desc: \"MUSIC FLAT SIGN\"\n }, {\n \"char\": \"♮\",\n desc: \"MUSIC NATURAL SIGN\"\n }, {\n \"char\": \"☀\",\n desc: \"BLACK SUN WITH RAYS\"\n }, {\n \"char\": \"☁\",\n desc: \"CLOUD\"\n }, {\n \"char\": \"☂\",\n desc: \"UMBRELLA\"\n }, {\n \"char\": \"☃\",\n desc: \"SNOWMAN\"\n }, {\n \"char\": \"☕\",\n desc: \"HOT BEVERAGE\"\n }, {\n \"char\": \"☘\",\n desc: \"SHAMROCK\"\n }, {\n \"char\": \"☯\",\n desc: \"YIN YANG\"\n }, {\n \"char\": \"✔\",\n desc: \"HEAVY CHECK MARK\"\n }, {\n \"char\": \"✖\",\n desc: \"HEAVY MULTIPLICATION X\"\n }, {\n \"char\": \"❄\",\n desc: \"SNOWFLAKE\"\n }, {\n \"char\": \"❛\",\n desc: \"HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT\"\n }, {\n \"char\": \"❜\",\n desc: \"HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT\"\n }, {\n \"char\": \"❝\",\n desc: \"HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT\"\n }, {\n \"char\": \"❞\",\n desc: \"HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT\"\n }, {\n \"char\": \"❤\",\n desc: \"HEAVY BLACK HEART\"\n }]\n }],\n specialCharButtons: [\"specialCharBack\", \"|\"]\n }), Object.assign(xt.POPUP_TEMPLATES, {\n specialCharacters: \"[_BUTTONS_][_CUSTOM_LAYER_]\"\n }), xt.PLUGINS.specialCharacters = function (g) {\n var m = g.$,\n n = g.opts.specialCharactersSets[0],\n a = g.opts.specialCharactersSets,\n i = \"\";\n\n function s() {\n return '\\n
    \\n '.concat(function t(e, n) {\n var r = \"\";\n return e.forEach(function (e) {\n var t = {\n elementClass: e.title === n.title ? \"fr-active fr-active-tab\" : \"\",\n title: e.title,\n dataParam1: e.title,\n desc: e[\"char\"]\n };\n r += '\");\n }), r;\n }(a, n), '\\n
    \\n
    \\n ').concat(function r(e) {\n var n = \"\";\n return e.list.forEach(function (e) {\n var t = {\n dataParam1: e[\"char\"],\n title: e.desc,\n splCharValue: e[\"char\"]\n };\n n += '').concat(t.splCharValue, \"\");\n }), n;\n }(n), \"\\n
    \");\n }\n\n return {\n setSpecialCharacterCategory: function r(t) {\n n = a.filter(function (e) {\n return e.title === t;\n })[0], function e() {\n g.popups.get(\"specialCharacters\").html(i + s());\n }();\n },\n showSpecialCharsPopup: function l() {\n var e = g.popups.get(\"specialCharacters\");\n\n if (e || (e = function o() {\n g.opts.toolbarInline && 0 < g.opts.specialCharButtons.length && (i = '
    '.concat(g.button.buildList(g.opts.specialCharButtons), \"
    \"));\n var e = {\n buttons: i,\n custom_layer: s()\n },\n t = g.popups.create(\"specialCharacters\", e);\n return function n(h) {\n g.events.on(\"popup.tab\", function (e) {\n var t = m(e.currentTarget);\n if (!g.popups.isVisible(\"specialCharacters\") || !t.is(\"span, a\")) return !0;\n var n,\n r,\n a,\n o = e.which;\n\n if (xt.KEYCODE.TAB == o) {\n if (t.is(\"span.fr-icon\") && e.shiftKey || t.is(\"a\") && !e.shiftKey) {\n var i = h.find(\".fr-buttons\");\n n = !g.accessibility.focusToolbar(i, !!e.shiftKey);\n }\n\n if (!1 !== n) {\n var s = h.find(\"span.fr-icon:focus\").first().concat(h.findVisible(\" span.fr-icon\").first().concat(h.find(\"a\")));\n t.is(\"span.fr-icon\") && (s = s.not(\"span.fr-icon:not(:focus)\")), r = s.index(t), r = e.shiftKey ? ((r - 1) % s.length + s.length) % s.length : (r + 1) % s.length, a = s.get(r), g.events.disableBlur(), a.focus(), n = !1;\n }\n } else if (xt.KEYCODE.ARROW_UP == o || xt.KEYCODE.ARROW_DOWN == o || xt.KEYCODE.ARROW_LEFT == o || xt.KEYCODE.ARROW_RIGHT == o) {\n if (t.is(\"span.fr-icon\")) {\n var l = t.parent().find(\"span.fr-icon\");\n r = l.index(t);\n var c = Math.floor(l.length / 11),\n d = r % 11,\n f = Math.floor(r / 11),\n p = 11 * f + d,\n u = 11 * c;\n xt.KEYCODE.ARROW_UP == o ? p = ((p - 11) % u + u) % u : xt.KEYCODE.ARROW_DOWN == o ? p = (p + 11) % u : xt.KEYCODE.ARROW_LEFT == o ? p = ((p - 1) % u + u) % u : xt.KEYCODE.ARROW_RIGHT == o && (p = (p + 1) % u), a = m(l.get(p)), g.events.disableBlur(), a.focus(), n = !1;\n }\n } else xt.KEYCODE.ENTER == o && (t.is(\"a\") ? t[0].click() : g.button.exec(t), n = !1);\n\n return !1 === n && (e.preventDefault(), e.stopPropagation()), n;\n }, !0);\n }(t), t;\n }()), !e.hasClass(\"fr-active\")) {\n g.popups.refresh(\"specialCharacters\"), g.popups.setContainer(\"specialCharacters\", g.$tb);\n var t = g.$tb.find('.fr-command[data-cmd=\"specialCharacters\"]'),\n n = g.button.getPosition(t),\n r = n.left,\n a = n.top;\n g.popups.show(\"specialCharacters\", r, a, outerHeight);\n }\n },\n back: function e() {\n g.popups.hide(\"specialCharacters\"), g.toolbar.showInline();\n }\n };\n }, xt.DefineIcon(\"specialCharacters\", {\n NAME: \"dollar-sign\",\n SVG_KEY: \"symbols\"\n }), xt.RegisterCommand(\"specialCharacters\", {\n title: \"Special Characters\",\n icon: \"specialCharacters\",\n undo: !1,\n focus: !1,\n popup: !0,\n refreshAfterCallback: !1,\n plugin: \"specialCharacters\",\n showOnMobile: !0,\n callback: function callback() {\n this.popups.isVisible(\"specialCharacters\") ? (this.$el.find(\".fr-marker\") && (this.events.disableBlur(), this.selection.restore()), this.popups.hide(\"specialCharacters\")) : this.specialCharacters.showSpecialCharsPopup();\n }\n }), xt.RegisterCommand(\"insertSpecialCharacter\", {\n callback: function callback(e, t) {\n this.undo.saveStep(), this.html.insert(t), this.undo.saveStep(), this.popups.hide(\"specialCharacters\");\n }\n }), xt.RegisterCommand(\"setSpecialCharacterCategory\", {\n undo: !1,\n focus: !1,\n callback: function callback(e, t) {\n this.specialCharacters.setSpecialCharacterCategory(t);\n }\n }), xt.DefineIcon(\"specialCharBack\", {\n NAME: \"arrow-left\",\n SVG_KEY: \"back\"\n }), xt.RegisterCommand(\"specialCharBack\", {\n title: \"Back\",\n undo: !1,\n focus: !1,\n back: !0,\n refreshAfterCallback: !1,\n callback: function callback() {\n this.specialCharacters.back();\n }\n }), Object.assign(xt.POPUP_TEMPLATES, {\n \"table.insert\": \"[_BUTTONS_][_ROWS_COLUMNS_]\",\n \"table.edit\": \"[_BUTTONS_]\",\n \"table.colors\": \"[_BUTTONS_][_COLORS_][_CUSTOM_COLOR_]\"\n }), Object.assign(xt.DEFAULTS, {\n tableInsertMaxSize: 10,\n tableEditButtons: [\"tableHeader\", \"tableRemove\", \"tableRows\", \"tableColumns\", \"tableStyle\", \"-\", \"tableCells\", \"tableCellBackground\", \"tableCellVerticalAlign\", \"tableCellHorizontalAlign\", \"tableCellStyle\"],\n tableInsertButtons: [\"tableBack\", \"|\"],\n tableResizer: !0,\n tableDefaultWidth: \"100%\",\n tableResizerOffset: 5,\n tableResizingLimit: 30,\n tableColorsButtons: [\"tableBack\", \"|\"],\n tableColors: [\"#61BD6D\", \"#1ABC9C\", \"#54ACD2\", \"#2C82C9\", \"#9365B8\", \"#475577\", \"#CCCCCC\", \"#41A85F\", \"#00A885\", \"#3D8EB9\", \"#2969B0\", \"#553982\", \"#28324E\", \"#000000\", \"#F7DA64\", \"#FBA026\", \"#EB6B56\", \"#E25041\", \"#A38F84\", \"#EFEFEF\", \"#FFFFFF\", \"#FAC51C\", \"#F37934\", \"#D14841\", \"#B8312F\", \"#7C706B\", \"#D1D5D8\", \"REMOVE\"],\n tableColorsStep: 7,\n tableCellStyles: {\n \"fr-highlighted\": \"Highlighted\",\n \"fr-thick\": \"Thick\"\n },\n tableStyles: {\n \"fr-dashed-borders\": \"Dashed Borders\",\n \"fr-alternate-rows\": \"Alternate Rows\"\n },\n tableCellMultipleStyles: !0,\n tableMultipleStyles: !0,\n tableInsertHelper: !0,\n tableInsertHelperOffset: 15\n }), xt.PLUGINS.table = function (T) {\n var A,\n c,\n a,\n o,\n r,\n i,\n L,\n S = T.$;\n\n function u() {\n var e = w();\n\n if (e) {\n var t = T.popups.get(\"table.edit\");\n\n if (t || (t = p()), t) {\n T.popups.setContainer(\"table.edit\", T.$sc);\n var n = O(e),\n r = n.left + (n.right - n.left) / 2,\n a = n.bottom;\n T.popups.show(\"table.edit\", r, a, n.bottom - n.top, !0), T.edit.isDisabled() && (1 < Q().length && T.toolbar.disable(), T.$el.removeClass(\"fr-no-selection\"), T.edit.on(), T.button.bulkRefresh(), T.selection.setAtEnd(T.$el.find(\".fr-selected-cell\").last().get(0)), T.selection.restore());\n }\n }\n }\n\n function s() {\n var e = w();\n\n if (e) {\n var t = T.popups.get(\"table.colors\");\n t || (t = function i() {\n var e = \"\";\n 0 < T.opts.tableColorsButtons.length && (e = '
    '.concat(T.button.buildList(T.opts.tableColorsButtons), \"
    \"));\n var t = \"\";\n T.opts.colorsHEXInput && (t = '
    \"));\n var n = {\n buttons: e,\n colors: function a() {\n for (var e = '
    ', t = 0; t < T.opts.tableColors.length; t++) {\n 0 !== t && t % T.opts.tableColorsStep == 0 && (e += \"
    \"), \"REMOVE\" != T.opts.tableColors[t] ? e += '').concat(T.language.translate(\"Color\"), \" \").concat(T.opts.tableColors[t], \"   \") : e += '').concat(T.icon.create(\"tableColorRemove\"), '').concat(T.language.translate(\"Clear Formatting\"), \"\");\n }\n\n return e += \"
    \";\n }(),\n custom_color: t\n },\n r = T.popups.create(\"table.colors\", n);\n return T.events.$on(T.$wp, \"scroll.table-colors\", function () {\n T.popups.isVisible(\"table.colors\") && s();\n }), function o(h) {\n T.events.on(\"popup.tab\", function (e) {\n var t = S(e.currentTarget);\n if (!T.popups.isVisible(\"table.colors\") || !t.is(\"span\")) return !0;\n var n = e.which,\n r = !0;\n\n if (xt.KEYCODE.TAB == n) {\n var a = h.find(\".fr-buttons\");\n r = !T.accessibility.focusToolbar(a, !!e.shiftKey);\n } else if (xt.KEYCODE.ARROW_UP == n || xt.KEYCODE.ARROW_DOWN == n || xt.KEYCODE.ARROW_LEFT == n || xt.KEYCODE.ARROW_RIGHT == n) {\n var o = t.parent().find(\"span.fr-command\"),\n i = o.index(t),\n s = T.opts.colorsStep,\n l = Math.floor(o.length / s),\n c = i % s,\n d = Math.floor(i / s),\n f = d * s + c,\n p = l * s;\n xt.KEYCODE.ARROW_UP == n ? f = ((f - s) % p + p) % p : xt.KEYCODE.ARROW_DOWN == n ? f = (f + s) % p : xt.KEYCODE.ARROW_LEFT == n ? f = ((f - 1) % p + p) % p : xt.KEYCODE.ARROW_RIGHT == n && (f = (f + 1) % p);\n var u = S(o.get(f));\n T.events.disableBlur(), u.focus(), r = !1;\n } else xt.KEYCODE.ENTER == n && (T.button.exec(t), r = !1);\n\n return !1 === r && (e.preventDefault(), e.stopPropagation()), r;\n }, !0);\n }(r), r;\n }()), T.popups.setContainer(\"table.colors\", T.$sc);\n var n = O(e),\n r = (n.left + n.right) / 2,\n a = n.bottom;\n !function o() {\n var e = T.popups.get(\"table.colors\"),\n t = T.$el.find(\".fr-selected-cell\").first(),\n n = T.helpers.RGBToHex(t.css(\"background-color\")),\n r = e.find(\".fr-table-colors-hex-layer input\");\n e.find(\".fr-selected-color\").removeClass(\"fr-selected-color fr-active-item\"), e.find('span[data-param1=\"'.concat(n, '\"]')).addClass(\"fr-selected-color fr-active-item\"), r.val(n).trigger(\"change\");\n }(), T.popups.show(\"table.colors\", r, a, n.bottom - n.top, !0);\n }\n }\n\n function l() {\n 0 === Q().length && T.toolbar.enable();\n }\n\n function d(e) {\n if (e) return T.popups.onHide(\"table.insert\", function () {\n T.popups.get(\"table.insert\").find('.fr-table-size .fr-select-table-size > span[data-row=\"1\"][data-col=\"1\"]').trigger(\"mouseover\");\n }), !0;\n var t = \"\";\n 0 < T.opts.tableInsertButtons.length && (t = '
    '.concat(T.button.buildList(T.opts.tableInsertButtons), \"
    \"));\n var n = {\n buttons: t,\n rows_columns: function o() {\n for (var e = '
    1 × 1
    ', t = 1; t <= T.opts.tableInsertMaxSize; t++) {\n for (var n = 1; n <= T.opts.tableInsertMaxSize; n++) {\n var r = \"inline-block\";\n 2 < t && !T.helpers.isMobile() && (r = \"none\");\n var a = \"fr-table-cell \";\n 1 == t && 1 == n && (a += \" hover\"), e += '').concat(t, \" × \").concat(n, \"   \");\n }\n\n e += '
    ';\n }\n\n return e += \"
    \";\n }()\n },\n r = T.popups.create(\"table.insert\", n);\n return T.events.$on(r, \"mouseover\", \".fr-table-size .fr-select-table-size .fr-table-cell\", function (e) {\n f(S(e.currentTarget));\n }, !0), function a(e) {\n T.events.$on(e, \"focus\", \"[tabIndex]\", function (e) {\n var t = S(e.currentTarget);\n f(t);\n }), T.events.on(\"popup.tab\", function (e) {\n var t = S(e.currentTarget);\n if (!T.popups.isVisible(\"table.insert\") || !t.is(\"span, a\")) return !0;\n var n,\n r = e.which;\n\n if (xt.KEYCODE.ARROW_UP == r || xt.KEYCODE.ARROW_DOWN == r || xt.KEYCODE.ARROW_LEFT == r || xt.KEYCODE.ARROW_RIGHT == r) {\n if (t.is(\"span.fr-table-cell\")) {\n var a = t.parent().find(\"span.fr-table-cell\"),\n o = a.index(t),\n i = T.opts.tableInsertMaxSize,\n s = o % i,\n l = Math.floor(o / i);\n xt.KEYCODE.ARROW_UP == r ? l = Math.max(0, l - 1) : xt.KEYCODE.ARROW_DOWN == r ? l = Math.min(T.opts.tableInsertMaxSize - 1, l + 1) : xt.KEYCODE.ARROW_LEFT == r ? s = Math.max(0, s - 1) : xt.KEYCODE.ARROW_RIGHT == r && (s = Math.min(T.opts.tableInsertMaxSize - 1, s + 1));\n var c = l * i + s,\n d = S(a.get(c));\n f(d), T.events.disableBlur(), d.focus(), n = !1;\n }\n } else xt.KEYCODE.ENTER == r && (T.button.exec(t), n = !1);\n\n return !1 === n && (e.preventDefault(), e.stopPropagation()), n;\n }, !0);\n }(r), r;\n }\n\n function f(e) {\n var t = e.data(\"row\");\n null !== t && (t = parseInt(t));\n var n = e.data(\"col\");\n null !== n && (n = parseInt(n));\n var r = e.parent();\n r.siblings(\".fr-table-size-info\").html(\"\".concat(t, \" × \").concat(n)), r.find(\"> span\").removeClass(\"hover fr-active-item\");\n\n for (var a = 1; a <= T.opts.tableInsertMaxSize; a++) {\n for (var o = 0; o <= T.opts.tableInsertMaxSize; o++) {\n var i = r.find('> span[data-row=\"'.concat(a, '\"][data-col=\"').concat(o, '\"]'));\n a <= t && o <= n ? i.addClass(\"hover\") : a <= t + 1 || a <= 2 && !T.helpers.isMobile() ? i.css(\"display\", \"inline-block\") : 2 < a && !T.helpers.isMobile() && i.css(\"display\", \"none\");\n }\n }\n\n e.addClass(\"fr-active-item\");\n }\n\n function p(e) {\n if (e) return T.popups.onHide(\"table.edit\", l), !0;\n\n if (0 < T.opts.tableEditButtons.length) {\n var t = {\n buttons: '
    '.concat(T.button.buildList(T.opts.tableEditButtons), \"
    \")\n },\n n = T.popups.create(\"table.edit\", t);\n return T.events.$on(T.$wp, \"scroll.table-edit\", function () {\n T.popups.isVisible(\"table.edit\") && u();\n }), n;\n }\n\n return !1;\n }\n\n function h() {\n if (0 < Q().length) {\n var e = J();\n T.selection.setBefore(e.get(0)) || T.selection.setAfter(e.get(0)), T.selection.restore(), T.popups.hide(\"table.edit\"), e.remove(), T.toolbar.enable();\n }\n }\n\n function g(e) {\n var t = J();\n\n if (0 < t.length) {\n if (0 < T.$el.find(\"th.fr-selected-cell\").length && \"above\" == e) return;\n var n,\n r,\n a,\n o = w(),\n i = M(o);\n if (null == i) return;\n r = \"above\" == e ? i.min_i : i.max_i;\n var s = \"\";\n\n for (n = 0; n < o[r].length; n++) {\n if (\"below\" == e && r < o.length - 1 && o[r][n] == o[r + 1][n] || \"above\" == e && 0 < r && o[r][n] == o[r - 1][n]) {\n if (0 === n || 0 < n && o[r][n] != o[r][n - 1]) {\n var l = S(o[r][n]);\n l.attr(\"rowspan\", parseInt(l.attr(\"rowspan\"), 10) + 1);\n }\n } else s += '
    ';\n }\n\n s += \"\", a = 0 < T.$el.find(\"th.fr-selected-cell\").length && \"below\" == e ? S(t.find(\"tbody\").not(t.find(\"> table tbody\"))) : S(t.find(\"tr\").not(t.find(\"> table tr\")).get(r)), \"below\" == e ? \"TBODY\" == a.attr(\"tagName\") ? a.prepend(s) : a[0].parentNode && a[0].insertAdjacentHTML(\"afterend\", s) : \"above\" == e && (a.before(s), T.popups.isVisible(\"table.edit\") && u());\n }\n }\n\n function m(e, t, n) {\n var r,\n a,\n o,\n i,\n s,\n l = 0,\n c = w(n);\n if (e < (t = Math.min(t, c[0].length - 1))) for (a = e; a <= t; a++) {\n if (!(e < a && c[0][a] == c[0][a - 1]) && 1 < (i = Math.min(parseInt(c[0][a].getAttribute(\"colspan\"), 10) || 1, t - e + 1)) && c[0][a] == c[0][a + 1]) for (l = i - 1, r = 1; r < c.length; r++) {\n if (c[r][a] != c[r - 1][a]) {\n for (o = a; o < a + i; o++) {\n if (1 < (s = parseInt(c[r][o].getAttribute(\"colspan\"), 10) || 1) && c[r][o] == c[r][o + 1]) o += l = Math.min(l, s - 1);else if (!(l = Math.max(0, l - 1))) break;\n }\n\n if (!l) break;\n }\n }\n }\n l && b(c, l, \"colspan\", 0, c.length - 1, e, t);\n }\n\n function v(e, t, n) {\n var r,\n a,\n o,\n i,\n s,\n l = 0,\n c = w(n);\n if (e < (t = Math.min(t, c.length - 1))) for (r = e; r <= t; r++) {\n if (!(e < r && c[r][0] == c[r - 1][0]) && c[r][0] !== undefined && 1 < (i = Math.min(parseInt(c[r][0].getAttribute(\"rowspan\"), 10) || 1, t - e + 1)) && c[r][0] == c[r + 1][0]) for (l = i - 1, a = 1; a < c[0].length; a++) {\n if (c[r][a] != c[r][a - 1]) {\n for (o = r; o < r + i; o++) {\n if (1 < (s = parseInt(c[o][a].getAttribute(\"rowspan\"), 10) || 1) && c[o][a] == c[o + 1][a]) o += l = Math.min(l, s - 1);else if (!(l = Math.max(0, l - 1))) break;\n }\n\n if (!l) break;\n }\n }\n }\n l && b(c, l, \"rowspan\", e, t, 0, c[0].length - 1);\n }\n\n function b(e, t, n, r, a, o, i) {\n var s, l, c;\n\n for (s = r; s <= a; s++) {\n for (l = o; l <= i; l++) {\n r < s && e[s][l] == e[s - 1][l] || o < l && e[s][l] == e[s][l - 1] || e[s][l] !== undefined && 1 < (c = parseInt(e[s][l].getAttribute(n), 10) || 1) && (1 < c - t ? e[s][l].setAttribute(n, c - t) : e[s][l].removeAttribute(n));\n }\n }\n }\n\n function C(e, t, n, r, a) {\n v(e, t, a), m(n, r, a);\n }\n\n function t(e) {\n var t = T.$el.find(\".fr-selected-cell\");\n \"REMOVE\" != e ? t.css(\"background-color\", T.helpers.HEXtoRGB(e)) : t.css(\"background-color\", \"\"), u();\n }\n\n function w(e) {\n var c = [];\n\n if (null == (e = e || null) && 0 < Q().length && (e = J()), e) {\n for (var t = e.find(\"tr:empty\"), n = t.length - 1; 0 <= n; n--) {\n S(t[n]).remove();\n }\n\n e.findVisible(\"tr\").not(e.find(\"> table tr\")).each(function (s, e) {\n var t = S(e),\n l = 0;\n t.find(\"> th, > td\").each(function (e, t) {\n for (var n = S(t), r = parseInt(n.attr(\"colspan\"), 10) || 1, a = parseInt(n.attr(\"rowspan\"), 10) || 1, o = s; o < s + a; o++) {\n for (var i = l; i < l + r; i++) {\n c[o] || (c[o] = []), c[o][i] ? l++ : c[o][i] = t;\n }\n }\n\n l += r;\n });\n });\n }\n\n return c;\n }\n\n function R(e, t) {\n for (var n = 0; n < t.length; n++) {\n for (var r = 0; r < t[n].length; r++) {\n if (t[n][r] == e) return {\n row: n,\n col: r\n };\n }\n }\n }\n\n function _(e, t, n) {\n for (var r = e + 1, a = t + 1; r < n.length;) {\n if (n[r][t] != n[e][t]) {\n r--;\n break;\n }\n\n r++;\n }\n\n for (r == n.length && r--; a < n[e].length;) {\n if (n[e][a] != n[e][t]) {\n a--;\n break;\n }\n\n a++;\n }\n\n return a == n[e].length && a--, {\n row: r,\n col: a\n };\n }\n\n function E() {\n T.el.querySelector(\".fr-cell-fixed\") && T.el.querySelector(\".fr-cell-fixed\").classList.remove(\"fr-cell-fixed\"), T.el.querySelector(\".fr-cell-handler\") && T.el.querySelector(\".fr-cell-handler\").classList.remove(\"fr-cell-handler\");\n }\n\n function y() {\n var e = T.$el.find(\".fr-selected-cell\");\n 0 < e.length && e.each(function () {\n var e = S(this);\n e.removeClass(\"fr-selected-cell\"), \"\" === e.attr(\"class\") && e.removeAttr(\"class\");\n }), E();\n }\n\n function x() {\n T.events.disableBlur(), T.selection.clear(), T.$el.addClass(\"fr-no-selection\"), T.$el.blur(), T.events.enableBlur();\n }\n\n function M(e) {\n var t = T.$el.find(\".fr-selected-cell\");\n\n if (0 < t.length) {\n var n,\n r = e.length,\n a = 0,\n o = e[0].length,\n i = 0;\n\n for (n = 0; n < t.length; n++) {\n var s = R(t[n], e),\n l = _(s.row, s.col, e);\n\n r = Math.min(s.row, r), a = Math.max(l.row, a), o = Math.min(s.col, o), i = Math.max(l.col, i);\n }\n\n return {\n min_i: r,\n max_i: a,\n min_j: o,\n max_j: i\n };\n }\n\n return null;\n }\n\n function O(e) {\n var t = M(e);\n\n if (null != t) {\n var n = S(e[t.min_i][t.min_j]),\n r = S(e[t.min_i][t.max_j]),\n a = S(e[t.max_i][t.min_j]);\n return {\n left: n.length && n.offset().left,\n right: r.length && r.offset().left + r.outerWidth(),\n top: n.length && n.offset().top,\n bottom: a.length && a.offset().top + a.outerHeight()\n };\n }\n }\n\n function N(e, t) {\n if (S(e).is(t)) y(), S(e).addClass(\"fr-selected-cell\");else {\n x(), T.edit.off();\n\n var n = w(),\n r = R(e, n),\n a = R(t, n),\n o = function u(e, t, n, r, a) {\n var o,\n i,\n s,\n l,\n c = e,\n d = t,\n f = n,\n p = r;\n\n for (o = c; o <= d; o++) {\n (1 < (parseInt(S(a[o][f]).attr(\"rowspan\"), 10) || 1) || 1 < (parseInt(S(a[o][f]).attr(\"colspan\"), 10) || 1)) && (l = _((s = R(a[o][f], a)).row, s.col, a), c = Math.min(s.row, c), d = Math.max(l.row, d), f = Math.min(s.col, f), p = Math.max(l.col, p)), (1 < (parseInt(S(a[o][p]).attr(\"rowspan\"), 10) || 1) || 1 < (parseInt(S(a[o][p]).attr(\"colspan\"), 10) || 1)) && (l = _((s = R(a[o][p], a)).row, s.col, a), c = Math.min(s.row, c), d = Math.max(l.row, d), f = Math.min(s.col, f), p = Math.max(l.col, p));\n }\n\n for (i = f; i <= p; i++) {\n (1 < (parseInt(S(a[c][i]).attr(\"rowspan\"), 10) || 1) || 1 < (parseInt(S(a[c][i]).attr(\"colspan\"), 10) || 1)) && (l = _((s = R(a[c][i], a)).row, s.col, a), c = Math.min(s.row, c), d = Math.max(l.row, d), f = Math.min(s.col, f), p = Math.max(l.col, p)), (1 < (parseInt(S(a[d][i]).attr(\"rowspan\"), 10) || 1) || 1 < (parseInt(S(a[d][i]).attr(\"colspan\"), 10) || 1)) && (l = _((s = R(a[d][i], a)).row, s.col, a), c = Math.min(s.row, c), d = Math.max(l.row, d), f = Math.min(s.col, f), p = Math.max(l.col, p));\n }\n\n return c == e && d == t && f == n && p == r ? {\n min_i: e,\n max_i: t,\n min_j: n,\n max_j: r\n } : u(c, d, f, p, a);\n }(Math.min(r.row, a.row), Math.max(r.row, a.row), Math.min(r.col, a.col), Math.max(r.col, a.col), n);\n\n y(), e.classList.add(\"fr-cell-fixed\"), t.classList.add(\"fr-cell-handler\");\n\n for (var i = o.min_i; i <= o.max_i; i++) {\n for (var s = o.min_j; s <= o.max_j; s++) {\n S(e).closest(\"table\").is(S(n[i][s]).closest(\"table\")) && S(n[i][s]).addClass(\"fr-selected-cell\");\n }\n }\n }\n }\n\n function k(e) {\n var t = null,\n n = S(e.target);\n return \"TD\" == e.target.tagName || \"TH\" == e.target.tagName ? t = e.target : 0 < n.closest(\"th\", n.closest(\"thead\")[0]).length ? t = n.closest(\"th\", n.closest(\"thead\")[0]).get(0) : 0 < n.closest(\"td\", n.closest(\"tr\")[0]).length && (t = n.closest(\"td\", n.closest(\"tr\")[0]).get(0)), -1 === T.$el.html.toString().search(t) ? null : t;\n }\n\n function I() {\n y(), T.popups.hide(\"table.edit\");\n }\n\n function e(e) {\n var t = k(e);\n if (\"false\" == S(t).parents(\"[contenteditable]\").not(\".fr-element\").not(\".fr-img-caption\").not(\"body\").first().attr(\"contenteditable\")) return !0;\n if (0 < Q().length && !t && I(), !T.edit.isDisabled() || T.popups.isVisible(\"table.edit\")) if (1 != e.which || 1 == e.which && T.helpers.isMac() && e.ctrlKey) (3 == e.which || 1 == e.which && T.helpers.isMac() && e.ctrlKey) && t && I();else if (o = !0, t) {\n 0 < Q().length && !e.shiftKey && I(), e.stopPropagation(), T.events.trigger(\"image.hideResizer\"), T.events.trigger(\"video.hideResizer\"), a = !0;\n var n = t.tagName.toLowerCase();\n e.shiftKey && 0 < T.$el.find(\"\".concat(n, \".fr-selected-cell\")).length ? S(T.$el.find(\"\".concat(n, \".fr-selected-cell\")).closest(\"table\")).is(S(t).closest(\"table\")) ? N(r, t) : x() : ((T.keys.ctrlKey(e) || e.shiftKey) && (1 < Q().length || 0 === S(t).find(T.selection.element()).length && !S(t).is(T.selection.element())) && x(), r = t, 0 < T.opts.tableEditButtons.length && N(r, r));\n }\n }\n\n function n(e) {\n if (!T.edit.isDisabled() && T.popups.areVisible()) return !0;\n\n if (a || T.$tb.is(e.target) || T.$tb.is(S(e.target).closest(\".fr-toolbar\")) || (0 < Q().length && T.toolbar.enable(), y()), !(1 != e.which || 1 == e.which && T.helpers.isMac() && e.ctrlKey)) {\n if (o = !1, a) a = !1, k(e) || 1 != Q().length ? 0 < Q().length ? T.selection.isCollapsed() ? u() : (y(), T.edit.on()) : Q().length || (T.$el.removeClass(\"fr-no-selection\"), T.edit.on()) : y();\n\n if (L) {\n L = !1, A.removeClass(\"fr-moving\"), T.$el.removeClass(\"fr-no-selection\"), T.edit.on();\n var t = parseFloat(A.css(\"left\")) + T.opts.tableResizerOffset + T.$wp.offset().left;\n T.opts.iframe && (t -= T.$iframe.offset().left), A.data(\"release-position\", t), A.removeData(\"max-left\"), A.removeData(\"max-right\"), function E() {\n var e = A.data(\"origin\"),\n t = A.data(\"release-position\");\n\n if (e !== t) {\n var n = A.data(\"first\"),\n r = A.data(\"second\"),\n a = A.data(\"table\"),\n o = a.outerWidth();\n\n if (T.undo.canDo() || T.undo.saveStep(), null != n && null != r) {\n var i,\n s,\n l,\n c = w(a),\n d = [],\n f = [],\n p = [],\n u = [];\n\n for (i = 0; i < c.length; i++) {\n s = S(c[i][n]), l = S(c[i][r]), d[i] = s.outerWidth(), p[i] = l.outerWidth(), f[i] = d[i] / o * 100, u[i] = p[i] / o * 100;\n }\n\n for (i = 0; i < c.length; i++) {\n if (s = S(c[i][n]), l = S(c[i][r]), c[i][n] != c[i][r]) {\n var h = (f[i] * (d[i] + t - e) / d[i]).toFixed(4);\n s.css(\"width\", h + \"%\"), l.css(\"width\", (f[i] + u[i] - h).toFixed(4) + \"%\");\n }\n }\n } else {\n var g,\n m = a.parent(),\n v = o / m.width() * 100,\n b = (parseInt(a.css(\"margin-left\"), 10) || 0) / m.width() * 100,\n C = (parseInt(a.css(\"margin-right\"), 10) || 0) / m.width() * 100;\n \"rtl\" == T.opts.direction && 0 === r || \"rtl\" != T.opts.direction && 0 !== r ? (g = (o + t - e) / o * v, a.css(\"margin-right\", \"calc(100% - \".concat(Math.round(g).toFixed(4), \"% - \").concat(Math.round(b).toFixed(4), \"%)\"))) : (\"rtl\" == T.opts.direction && 0 !== r || \"rtl\" != T.opts.direction && 0 === r) && (g = (o - t + e) / o * v, a.css(\"margin-left\", \"calc(100% - \".concat(Math.round(g).toFixed(4), \"% - \").concat(Math.round(C).toFixed(4), \"%)\"))), a.css(\"width\", \"\".concat(Math.round(g).toFixed(4), \"%\"));\n }\n\n T.selection.restore(), T.undo.saveStep(), T.events.trigger(\"table.resized\", [a.get(0)]);\n }\n\n A.removeData(\"origin\"), A.removeData(\"release-position\"), A.removeData(\"first\"), A.removeData(\"second\"), A.removeData(\"table\");\n }(), P();\n }\n }\n }\n\n function D(e) {\n if (!(S(e.currentTarget).is(S(e.originalEvent.relatedTarget)) || e.currentTarget.contains(e.originalEvent.relatedTarget) || e.originalEvent.relatedTarget && e.originalEvent.relatedTarget.contains(e.currentTarget)) && (T.events.$on(S(\"input\"), \"click\", ee), !0 === a && 0 < T.opts.tableEditButtons.length)) {\n if (S(e.currentTarget).closest(\"table\").is(J())) {\n if (\"TD\" == e.currentTarget.tagName && 0 === T.$el.find(\"th.fr-selected-cell\").length) return void N(r, e.currentTarget);\n if (\"TH\" == e.currentTarget.tagName && 0 === T.$el.find(\"td.fr-selected-cell\").length) return void N(r, e.currentTarget);\n }\n\n x();\n }\n }\n\n function B(e, t, n, r) {\n for (var a, o = t; o != T.el && \"TD\" != o.tagName && \"TH\" != o.tagName && (\"up\" == r ? a = o.previousElementSibling : \"down\" == r && (a = o.nextElementSibling), !a);) {\n o = o.parentNode;\n }\n\n \"TD\" == o.tagName || \"TH\" == o.tagName ? function i(e, t) {\n for (var n = e; n && \"TABLE\" != n.tagName && n.parentNode != T.el;) {\n n = n.parentNode;\n }\n\n if (n && \"TABLE\" == n.tagName) {\n var r = w(S(n));\n \"up\" == t ? F(R(e, r), n, r) : \"down\" == t && $(R(e, r), n, r);\n }\n }(o, r) : a && (\"up\" == r && T.selection.setAtEnd(a), \"down\" == r && T.selection.setAtStart(a));\n }\n\n function F(e, t, n) {\n 0 < S(\".tribute-container\").length && \"none\" != S(\".tribute-container\").css(\"display\") || (0 < e.row ? T.selection.setAtEnd(n[e.row - 1][e.col]) : B(0, t, 0, \"up\"));\n }\n\n function $(e, t, n) {\n if (!(0 < S(\".tribute-container\").length && \"none\" != S(\".tribute-container\").css(\"display\"))) {\n var r = parseInt(n[e.row][e.col].getAttribute(\"rowspan\"), 10) || 1;\n e.row < n.length - r ? T.selection.setAtStart(n[e.row + r][e.col]) : B(0, t, 0, \"down\");\n }\n }\n\n function P() {\n A && (A.find(\"div\").css(\"opacity\", 0), A.css(\"top\", 0), A.css(\"left\", 0), A.css(\"height\", 0), A.find(\"div\").css(\"height\", 0), A.hide());\n }\n\n function H() {\n c && c.removeClass(\"fr-visible\").css(\"left\", \"-9999px\");\n }\n\n function U(e, t) {\n var n = S(t),\n r = n.closest(\"table\"),\n a = r.parent();\n if (t && \"TD\" != t.tagName && \"TH\" != t.tagName && (0 < n.closest(\"td\").length ? t = n.closest(\"td\") : 0 < n.closest(\"th\").length && (t = n.closest(\"th\"))), !t || \"TD\" != t.tagName && \"TH\" != t.tagName) A && n.get(0) != A.get(0) && n.parent().get(0) != A.get(0) && T.core.sameInstance(A) && P();else {\n if (n = S(t), 0 === T.$el.find(n).length) return !1;\n var o = n.offset().left - 1,\n i = o + n.outerWidth();\n\n if (Math.abs(e.pageX - o) <= T.opts.tableResizerOffset || Math.abs(i - e.pageX) <= T.opts.tableResizerOffset) {\n var s,\n l,\n c,\n d,\n f,\n p = w(r),\n u = R(t, p),\n h = _(u.row, u.col, p),\n g = r.offset().top,\n m = r.outerHeight() - 1;\n\n \"rtl\" != T.opts.direction ? e.pageX - o <= T.opts.tableResizerOffset ? (c = o, 0 < u.col ? (d = o - G(u.col - 1, p) + T.opts.tableResizingLimit, f = o + G(u.col, p) - T.opts.tableResizingLimit, s = u.col - 1, l = u.col) : (s = null, l = 0, d = r.offset().left - 1 - parseInt(r.css(\"margin-left\"), 10), f = r.offset().left - 1 + r.width() - p[0].length * T.opts.tableResizingLimit)) : i - e.pageX <= T.opts.tableResizerOffset && (c = i, h.col < p[h.row].length && p[h.row][h.col + 1] ? (d = i - G(h.col, p) + T.opts.tableResizingLimit, f = i + G(h.col + 1, p) - T.opts.tableResizingLimit, s = h.col, l = h.col + 1) : (s = h.col, l = null, d = r.offset().left - 1 + p[0].length * T.opts.tableResizingLimit, f = a.offset().left - 1 + a.width() + parseFloat(a.css(\"padding-left\")))) : i - e.pageX <= T.opts.tableResizerOffset ? (c = i, 0 < u.col ? (d = i - G(u.col, p) + T.opts.tableResizingLimit, f = i + G(u.col - 1, p) - T.opts.tableResizingLimit, s = u.col, l = u.col - 1) : (s = null, l = 0, d = r.offset().left + p[0].length * T.opts.tableResizingLimit, f = a.offset().left - 1 + a.width() + parseFloat(a.css(\"padding-left\")))) : e.pageX - o <= T.opts.tableResizerOffset && (c = o, h.col < p[h.row].length && p[h.row][h.col + 1] ? (d = o - G(h.col + 1, p) + T.opts.tableResizingLimit, f = o + G(h.col, p) - T.opts.tableResizingLimit, s = h.col + 1, l = h.col) : (s = h.col, l = null, d = a.offset().left + parseFloat(a.css(\"padding-left\")), f = r.offset().left - 1 + r.width() - p[0].length * T.opts.tableResizingLimit)), A || function y() {\n T.shared.$table_resizer || (T.shared.$table_resizer = S(document.createElement(\"div\")).attr(\"class\", \"fr-table-resizer\").html(\"
    \")), A = T.shared.$table_resizer, T.events.$on(A, \"mousedown\", function (e) {\n return !T.core.sameInstance(A) || (0 < Q().length && I(), 1 == e.which ? (T.selection.save(), L = !0, A.addClass(\"fr-moving\"), x(), T.edit.off(), A.find(\"div\").css(\"opacity\", 1), !1) : void 0);\n }), T.events.$on(A, \"mousemove\", function (e) {\n if (!T.core.sameInstance(A)) return !0;\n L && (T.opts.iframe && (e.pageX -= T.$iframe.offset().left), j(e));\n }), T.events.on(\"shared.destroy\", function () {\n A.html(\"\").removeData().remove(), A = null;\n }, !0), T.events.on(\"destroy\", function () {\n T.$el.find(\".fr-selected-cell\").removeClass(\"fr-selected-cell\"), S(\"body\").first().append(A.hide());\n }, !0);\n }(), A.data(\"table\", r), A.data(\"first\", s), A.data(\"second\", l), A.data(\"instance\", T), T.$wp.append(A);\n var v = c - T.win.pageXOffset - T.opts.tableResizerOffset - T.$wp.offset().left,\n b = g - T.$wp.offset().top + T.$wp.scrollTop();\n\n if (T.opts.iframe) {\n var C = T.helpers.getPX(T.$wp.find(\".fr-iframe\").css(\"padding-top\")),\n E = T.helpers.getPX(T.$wp.find(\".fr-iframe\").css(\"padding-left\"));\n v += T.$iframe.offset().left + E, b += T.$iframe.offset().top + C, d += T.$iframe.offset().left, f += T.$iframe.offset().left;\n }\n\n A.data(\"max-left\", d), A.data(\"max-right\", f), A.data(\"origin\", c - T.win.pageXOffset), A.css(\"top\", b), A.css(\"left\", v), A.css(\"height\", m), A.find(\"div\").css(\"height\", m), A.css(\"padding-left\", T.opts.tableResizerOffset), A.css(\"padding-right\", T.opts.tableResizerOffset), A.show();\n } else T.core.sameInstance(A) && P();\n }\n }\n\n function K(e, t) {\n if (T.$box.find(\".fr-line-breaker\").isVisible()) return !1;\n c || X(), T.$box.append(c), c.data(\"instance\", T);\n var n,\n r = S(t).find(\"tr\").first(),\n a = e.pageX,\n o = 0,\n i = 0;\n\n if (T.opts.iframe) {\n var s = T.helpers.getPX(T.$wp.find(\".fr-iframe\").css(\"padding-top\")),\n l = T.helpers.getPX(T.$wp.find(\".fr-iframe\").css(\"padding-left\"));\n o += T.$iframe.offset().left - T.helpers.scrollLeft() + l, i += T.$iframe.offset().top - T.helpers.scrollTop() + s;\n }\n\n r.find(\"th, td\").each(function () {\n var e = S(this);\n return e.offset().left <= a && a < e.offset().left + e.outerWidth() / 2 ? (n = parseInt(c.find(\"a\").css(\"width\"), 10), c.css(\"top\", i + e.offset().top - T.$box.offset().top - n - 5), c.css(\"left\", o + e.offset().left - T.$box.offset().left - n / 2), c.data(\"selected-cell\", e), c.data(\"position\", \"before\"), c.addClass(\"fr-visible\"), !1) : e.offset().left + e.outerWidth() / 2 <= a && a < e.offset().left + e.outerWidth() ? (n = parseInt(c.find(\"a\").css(\"width\"), 10), c.css(\"top\", i + e.offset().top - T.$box.offset().top - n - 5), c.css(\"left\", o + e.offset().left - T.$box.offset().left + e.outerWidth() - n / 2), c.data(\"selected-cell\", e), c.data(\"position\", \"after\"), c.addClass(\"fr-visible\"), !1) : void 0;\n });\n }\n\n function z(e, t) {\n if (T.$box.find(\".fr-line-breaker\").isVisible()) return !1;\n c || X(), T.$box.append(c), c.data(\"instance\", T);\n var n,\n r = S(t),\n a = e.pageY,\n o = 0,\n i = 0;\n\n if (T.opts.iframe) {\n var s = T.helpers.getPX(T.$wp.find(\".fr-iframe\").css(\"padding-top\")),\n l = T.helpers.getPX(T.$wp.find(\".fr-iframe\").css(\"padding-left\"));\n o += T.$iframe.offset().left - T.helpers.scrollLeft() + l, i += T.$iframe.offset().top - T.helpers.scrollTop() + s;\n }\n\n r.find(\"tr\").each(function () {\n var e = S(this);\n n = parseInt(c.find(\"a\").css(\"width\"), 10);\n var t = o + e.offset().left - T.$box.offset().left;\n return t = 0 !== T.$box.offset().left ? t - n - 5 : t + n - 5, e.offset().top <= a && a < e.offset().top + e.outerHeight() / 2 ? (c.css(\"top\", i + e.offset().top - T.$box.offset().top - n / 2), c.css(\"left\", t), c.data(\"selected-cell\", e.find(\"td\").first()), c.data(\"position\", \"above\"), c.addClass(\"fr-visible\"), !1) : e.offset().top + e.outerHeight() / 2 <= a && a < e.offset().top + e.outerHeight() ? (c.css(\"top\", i + e.offset().top - T.$box.offset().top + e.outerHeight() - n / 2), c.css(\"left\", t), c.data(\"selected-cell\", e.find(\"td\").first()), c.data(\"position\", \"below\"), c.addClass(\"fr-visible\"), !1) : void 0;\n });\n }\n\n function W(e) {\n i = null;\n var t = T.doc.elementFromPoint(e.pageX - T.win.pageXOffset, e.pageY - T.win.pageYOffset);\n T.opts.tableResizer && (!T.popups.areVisible() || T.popups.areVisible() && T.popups.isVisible(\"table.edit\")) && U(e, t), !T.opts.tableInsertHelper || T.popups.areVisible() || T.$tb.hasClass(\"fr-inline\") && T.$tb.isVisible() || function o(e, t) {\n if (0 === Q().length) {\n var n, r, a;\n if (t && (\"HTML\" == t.tagName || \"BODY\" == t.tagName || T.node.isElement(t))) for (n = 1; n <= T.opts.tableInsertHelperOffset; n++) {\n if (r = T.doc.elementFromPoint(e.pageX - T.win.pageXOffset, e.pageY - T.win.pageYOffset + n), S(r).hasClass(\"fr-tooltip\")) return !0;\n if (r && (\"TH\" == r.tagName || \"TD\" == r.tagName || \"TABLE\" == r.tagName) && (S(r).parents(\".fr-wrapper\").length || T.opts.iframe) && \"false\" != S(r).closest(\"table\").attr(\"contenteditable\")) return K(e, S(r).closest(\"table\")), !0;\n if (a = T.doc.elementFromPoint(e.pageX - T.win.pageXOffset + n, e.pageY - T.win.pageYOffset), S(a).hasClass(\"fr-tooltip\")) return !0;\n if (a && (\"TH\" == a.tagName || \"TD\" == a.tagName || \"TABLE\" == a.tagName) && (S(a).parents(\".fr-wrapper\").length || T.opts.iframe) && \"false\" != S(a).closest(\"table\").attr(\"contenteditable\")) return z(e, S(a).closest(\"table\")), !0;\n }\n T.core.sameInstance(c) && H();\n }\n }(e, t);\n }\n\n function V() {\n if (L) {\n var e = A.data(\"table\").offset().top - T.win.pageYOffset;\n\n if (T.opts.iframe) {\n var t = T.helpers.getPX(T.$wp.find(\".fr-iframe\").css(\"padding-top\"));\n e += T.$iframe.offset().top - T.helpers.scrollTop() + t;\n }\n\n A.css(\"top\", e);\n }\n }\n\n function G(e, t) {\n var n,\n r = S(t[0][e]).outerWidth();\n\n for (n = 1; n < t.length; n++) {\n r = Math.min(r, S(t[n][e]).outerWidth());\n }\n\n return r;\n }\n\n function Y(e, t, n) {\n var r,\n a = 0;\n\n for (r = e; r <= t; r++) {\n a += G(r, n);\n }\n\n return a;\n }\n\n function j(e) {\n if (1 < Q().length && o && x(), !1 === o && !1 === a && !1 === L) i && clearTimeout(i), T.edit.isDisabled() && !T.popups.isVisible(\"table.edit\") || (i = setTimeout(W, 30, e));else if (L) {\n var t = e.pageX - T.win.pageXOffset;\n T.opts.iframe && (t += T.$iframe.offset().left);\n var n = A.data(\"max-left\"),\n r = A.data(\"max-right\");\n n <= t && t <= r ? A.css(\"left\", t - T.opts.tableResizerOffset - T.$wp.offset().left) : t < n && parseFloat(A.css(\"left\"), 10) > n - T.opts.tableResizerOffset ? A.css(\"left\", n - T.opts.tableResizerOffset - T.$wp.offset().left) : r < t && parseFloat(A.css(\"left\"), 10) < r - T.opts.tableResizerOffset && A.css(\"left\", r - T.opts.tableResizerOffset - T.$wp.offset().left);\n } else o && H();\n }\n\n function q(e) {\n T.node.isEmpty(e.get(0)) ? e.prepend(xt.MARKERS) : e.prepend(xt.START_MARKER).append(xt.END_MARKER);\n }\n\n function X() {\n T.shared.$ti_helper || (T.shared.$ti_helper = S(document.createElement(\"div\")).attr(\"class\", \"fr-insert-helper\").html('')), T.events.bindClick(T.shared.$ti_helper, \"a\", function () {\n var e = c.data(\"selected-cell\"),\n t = c.data(\"position\"),\n n = c.data(\"instance\") || T;\n \"before\" == t ? (T.undo.saveStep(), e.addClass(\"fr-selected-cell\"), n.table.insertColumn(t), e.removeClass(\"fr-selected-cell\"), T.undo.saveStep()) : \"after\" == t ? (T.undo.saveStep(), e.addClass(\"fr-selected-cell\"), n.table.insertColumn(t), e.removeClass(\"fr-selected-cell\"), T.undo.saveStep()) : \"above\" == t ? (T.undo.saveStep(), e.addClass(\"fr-selected-cell\"), n.table.insertRow(t), e.removeClass(\"fr-selected-cell\"), T.undo.saveStep()) : \"below\" == t && (T.undo.saveStep(), e.addClass(\"fr-selected-cell\"), n.table.insertRow(t), e.removeClass(\"fr-selected-cell\"), T.undo.saveStep()), H();\n }), T.events.on(\"shared.destroy\", function () {\n T.shared.$ti_helper.html(\"\").removeData().remove(), T.shared.$ti_helper = null;\n }, !0), T.events.$on(T.shared.$ti_helper, \"mousemove\", function (e) {\n e.stopPropagation();\n }, !0), T.events.$on(S(T.o_win), \"scroll\", function () {\n H();\n }, !0), T.events.$on(T.$wp, \"scroll\", function () {\n H();\n }, !0)), c = T.shared.$ti_helper, T.events.on(\"destroy\", function () {\n c = null;\n }), T.tooltip.bind(T.$box, \".fr-insert-helper > a.fr-floating-btn\");\n }\n\n function Z() {\n r = null, clearTimeout(i);\n }\n\n function Q() {\n return T.el.querySelectorAll(\".fr-selected-cell\");\n }\n\n function J() {\n var e = Q();\n\n if (e.length) {\n for (var t = e[0]; t && \"TABLE\" != t.tagName && t.parentNode != T.el;) {\n t = t.parentNode;\n }\n\n return t && \"TABLE\" == t.tagName ? S(t) : S([]);\n }\n\n return S([]);\n }\n\n function ee(e) {\n a = !1;\n }\n\n return {\n _init: function te() {\n if (!T.$wp) return !1;\n\n if (T.helpers.isMobile() && (T.events.$on(T.$el, \"mousedown\", e), T.events.$on(T.$win, \"mouseup\", n)), !T.helpers.isMobile()) {\n L = a = o = !1, T.events.$on(T.$el, \"mousedown\", e), T.popups.onShow(\"image.edit\", function () {\n y(), a = o = !1;\n }), T.popups.onShow(\"link.edit\", function () {\n y(), a = o = !1;\n }), T.events.on(\"commands.mousedown\", function (e) {\n 0 < e.parents(\".fr-toolbar\").length && y();\n }), T.events.$on(T.$el, \"mouseover\", \"th, td\", D), T.events.$on(T.$win, \"mouseup\", n), T.opts.iframe && T.events.$on(S(T.o_win), \"mouseup\", n), T.events.$on(T.$win, \"mousemove\", j), T.events.$on(S(T.o_win), \"scroll\", V), T.events.on(\"contentChanged\", function () {\n 0 < Q().length && (u(), T.$el.find(\"img\").on(\"load.selected-cells\", function () {\n S(this).off(\"load.selected-cells\"), 0 < Q().length && u();\n }));\n }), T.events.$on(S(T.o_win), \"resize\", function () {\n y();\n }), T.events.on(\"toolbar.esc\", function () {\n if (0 < Q().length) return T.events.disableBlur(), T.events.focus(), !1;\n }, !0), T.events.$on(S(T.o_win), \"keydown\", function () {\n o && a && (a = o = !1, T.$el.removeClass(\"fr-no-selection\"), T.edit.on(), T.selection.setAtEnd(T.$el.find(\".fr-selected-cell\").last().get(0)), T.selection.restore(), y());\n }), T.events.$on(T.$el, \"keydown\", function (e) {\n e.shiftKey ? !1 === function i(e) {\n var t = Q();\n\n if (null != t && 0 < t.length) {\n var n,\n r = w(),\n a = e.which,\n o = R(1 == t.length ? n = t[0] : (n = T.el.querySelector(\".fr-cell-fixed\"), T.el.querySelector(\".fr-cell-handler\")), r);\n\n if (xt.KEYCODE.ARROW_RIGHT == a) {\n if (o.col < r[0].length - 1) return N(n, r[o.row][o.col + 1]), !1;\n } else if (xt.KEYCODE.ARROW_DOWN == a) {\n if (o.row < r.length - 1) return N(n, r[o.row + 1][o.col]), !1;\n } else if (xt.KEYCODE.ARROW_LEFT == a) {\n if (0 < o.col) return N(n, r[o.row][o.col - 1]), !1;\n } else if (xt.KEYCODE.ARROW_UP == a && 0 < o.row) return N(n, r[o.row - 1][o.col]), !1;\n }\n }(e) && setTimeout(function () {\n u();\n }, 0) : function s(e) {\n var t = e.which,\n n = T.selection.blocks();\n\n if (n.length && (\"TD\" == (n = n[0]).tagName || \"TH\" == n.tagName)) {\n for (var r = n; r && \"TABLE\" != r.tagName && r.parentNode != T.el;) {\n r = r.parentNode;\n }\n\n if (r && \"TABLE\" == r.tagName && (xt.KEYCODE.ARROW_LEFT == t || xt.KEYCODE.ARROW_UP == t || xt.KEYCODE.ARROW_RIGHT == t || xt.KEYCODE.ARROW_DOWN == t) && (0 < Q().length && I(), T.browser.webkit && (xt.KEYCODE.ARROW_UP == t || xt.KEYCODE.ARROW_DOWN == t))) {\n var a = T.selection.ranges(0).startContainer;\n if (a.nodeType == Node.TEXT_NODE && (xt.KEYCODE.ARROW_UP == t && (a.previousSibling && \"BR\" !== a.previousSibling.tagName || a.previousSibling && \"BR\" === a.previousSibling.tagName && a.previousSibling.previousSibling) || xt.KEYCODE.ARROW_DOWN == t && (a.nextSibling && \"BR\" !== a.nextSibling.tagName || a.nextSibling && \"BR\" === a.nextSibling.tagName && a.nextSibling.nextSibling))) return;\n e.preventDefault(), e.stopPropagation();\n var o = w(S(r)),\n i = R(n, o);\n return xt.KEYCODE.ARROW_UP == t ? F(i, r, o) : xt.KEYCODE.ARROW_DOWN == t && $(i, r, o), T.selection.restore(), !1;\n }\n }\n }(e);\n }), T.events.on(\"keydown\", function (e) {\n if (!1 === function r(e) {\n if (e.which == xt.KEYCODE.TAB) {\n var t;\n if (0 < Q().length) t = T.$el.find(\".fr-selected-cell\").last();else {\n var n = T.selection.element();\n \"TD\" == n.tagName || \"TH\" == n.tagName ? t = S(n) : n != T.el && (0 < S(n).parentsUntil(T.$el, \"td\").length ? t = S(n).parents(\"td\").first() : 0 < S(n).parentsUntil(T.$el, \"th\").length && (t = S(n).parents(\"th\").first()));\n }\n if (t) return e.preventDefault(), !!(0 === T.selection.get().focusOffset && 0 < S(T.selection.element()).parentsUntil(T.$el, \"ol, ul\").length && (0 < S(T.selection.element()).closest(\"li\").prev().length || S(T.selection.element()).is(\"li\") && 0 < S(T.selection.element()).prev().length)) || (I(), e.shiftKey ? 0 < t.prev().length ? q(t.prev()) : 0 < t.closest(\"tr\").length && 0 < t.closest(\"tr\").prev().length ? q(t.closest(\"tr\").prev().find(\"td\").last()) : 0 < t.closest(\"tbody\").length && 0 < t.closest(\"table\").find(\"thead tr\").length && q(t.closest(\"table\").find(\"thead tr th\").last()) : 0 < t.next().length ? q(t.next()) : 0 < t.closest(\"tr\").length && 0 < t.closest(\"tr\").next().length ? q(t.closest(\"tr\").next().find(\"td\").first()) : 0 < t.closest(\"thead\").length && 0 < t.closest(\"table\").find(\"tbody tr\").length ? q(t.closest(\"table\").find(\"tbody tr td\").first()) : (t.addClass(\"fr-selected-cell\"), g(\"below\"), y(), q(t.closest(\"tr\").next().find(\"td\").first())), T.selection.restore(), !1);\n }\n }(e)) return !1;\n var t = Q();\n\n if (0 < t.length) {\n if (0 < t.length && T.keys.ctrlKey(e) && e.which == xt.KEYCODE.A) return y(), T.popups.isVisible(\"table.edit\") && T.popups.hide(\"table.edit\"), t = [], !0;\n if (e.which == xt.KEYCODE.ESC && T.popups.isVisible(\"table.edit\")) return y(), T.popups.hide(\"table.edit\"), e.preventDefault(), e.stopPropagation(), e.stopImmediatePropagation(), !(t = []);\n\n if (1 < t.length && (e.which == xt.KEYCODE.BACKSPACE || e.which == xt.KEYCODE.DELETE)) {\n T.undo.saveStep();\n\n for (var n = 0; n < t.length; n++) {\n S(t[n]).html(\"
    \"), n == t.length - 1 && S(t[n]).prepend(xt.MARKERS);\n }\n\n return T.selection.restore(), T.undo.saveStep(), !(t = []);\n }\n\n if (1 < t.length && e.which != xt.KEYCODE.F10 && !T.keys.isBrowserAction(e)) return e.preventDefault(), !(t = []);\n } else if (!(t = []) === function a(e) {\n if (e.altKey && e.which == xt.KEYCODE.SPACE) {\n var t,\n n = T.selection.element();\n if (\"TD\" == n.tagName || \"TH\" == n.tagName ? t = n : 0 < S(n).closest(\"td\").length ? t = S(n).closest(\"td\").get(0) : 0 < S(n).closest(\"th\").length && (t = S(n).closest(\"th\").get(0)), t) return e.preventDefault(), N(t, t), u(), !1;\n }\n }(e)) return !1;\n }, !0);\n var t = [];\n T.events.on(\"html.beforeGet\", function () {\n t = Q();\n\n for (var e = 0; e < t.length; e++) {\n t[e].className = (t[e].className || \"\").replace(/fr-selected-cell/g, \"\");\n }\n }), T.events.on(\"html.afterGet\", function () {\n for (var e = 0; e < t.length; e++) {\n t[e].className = (t[e].className ? t[e].className.trim() + \" \" : \"\") + \"fr-selected-cell\";\n }\n\n t = [];\n }), d(!0), p(!0);\n }\n\n T.events.on(\"destroy\", Z);\n },\n insert: function ne(e, t) {\n var n,\n r,\n a = \"',\n o = 100 / t;\n\n for (n = 0; n < e; n++) {\n for (a += \"\", r = 0; r < t; r++) {\n a += \"\", 0 === n && 0 === r && (a += xt.MARKERS), a += \"
    \";\n }\n\n a += \"
    \";\n }\n\n a += \"
    \", T.html.insert(a), T.selection.restore();\n var i = T.$el.find(\".fr-inserted-table\");\n i.removeClass(\"fr-inserted-table\"), T.events.trigger(\"table.inserted\", [i.get(0)]);\n },\n remove: h,\n insertRow: g,\n deleteRow: function re() {\n var e = J();\n\n if (0 < e.length) {\n var t,\n n,\n r,\n a = w(),\n o = M(a);\n if (null == o) return;\n if (0 === o.min_i && o.max_i == a.length - 1) h();else {\n for (t = o.max_i; t >= o.min_i; t--) {\n for (r = S(e.find(\"tr\").not(e.find(\"> table tr\")).get(t)), n = 0; n < a[t].length; n++) {\n if (0 === n || a[t][n] != a[t][n - 1]) {\n var i = S(a[t][n]);\n\n if (1 < parseInt(i.attr(\"rowspan\"), 10)) {\n var s = parseInt(i.attr(\"rowspan\"), 10) - 1;\n 1 == s ? i.removeAttr(\"rowspan\") : i.attr(\"rowspan\", s);\n }\n\n if (t < a.length - 1 && a[t][n] == a[t + 1][n] && (0 === t || a[t][n] != a[t - 1][n])) {\n for (var l = a[t][n], c = n; 0 < c && a[t][c] == a[t][c - 1];) {\n c--;\n }\n\n 0 === c ? S(e.find(\"tr\").not(e.find(\"> table tr\")).get(t + 1)).prepend(l) : S(a[t + 1][c - 1])[0].parentNode && S(a[t + 1][c - 1])[0].insertAdjacentElement(\"afterend\", l);\n }\n }\n }\n\n var d = r.parent();\n r.remove(), 0 === d.find(\"tr\").length && d.remove(), a = w(e);\n }\n\n C(0, a.length - 1, 0, a[0].length - 1, e), 0 < o.min_i ? T.selection.setAtEnd(a[o.min_i - 1][0]) : T.selection.setAtEnd(a[0][0]), T.selection.restore(), T.popups.hide(\"table.edit\");\n }\n }\n },\n insertColumn: function ae(l) {\n var e = J();\n\n if (0 < e.length) {\n var c,\n d = w(),\n t = M(d);\n c = \"before\" == l ? t.min_j : t.max_j;\n var n,\n f = 100 / d[0].length,\n p = 100 / (d[0].length + 1);\n e.find(\"th, td\").each(function () {\n (n = S(this)).data(\"old-width\", n.outerWidth() / e.outerWidth() * 100);\n }), e.find(\"tr\").not(e.find(\"> table tr\")).each(function (e) {\n for (var t, n = S(this), r = 0, a = 0; r - 1 < c;) {\n if (!(t = n.find(\"> th, > td\").get(a))) {\n t = null;\n break;\n }\n\n t == d[e][r] ? (r += parseInt(S(t).attr(\"colspan\"), 10) || 1, a++) : (r += parseInt(S(d[e][r]).attr(\"colspan\"), 10) || 1, \"after\" == l && (t = 0 === a ? -1 : n.find(\"> th, > td\").get(a - 1)));\n }\n\n var o,\n i = S(t);\n\n if (\"after\" == l && c < r - 1 || \"before\" == l && 0 < c && d[e][c] == d[e][c - 1]) {\n if (0 === e || 0 < e && d[e][c] != d[e - 1][c]) {\n var s = parseInt(i.attr(\"colspan\"), 10) + 1;\n i.attr(\"colspan\", s), i.css(\"width\", (i.data(\"old-width\") * p / f + p).toFixed(4) + \"%\"), i.removeData(\"old-width\");\n }\n } else o = 0 < n.find(\"th\").length ? '
    ') : '
    '), -1 == t ? n.prepend(o) : null == t ? n.append(o) : \"before\" == l ? i.before(o) : \"after\" == l && i[0].parentNode && i[0].insertAdjacentHTML(\"afterend\", o);\n }), e.find(\"th, td\").each(function () {\n (n = S(this)).data(\"old-width\") && (n.css(\"width\", (n.data(\"old-width\") * p / f).toFixed(4) + \"%\"), n.removeData(\"old-width\"));\n }), T.popups.isVisible(\"table.edit\") && u();\n }\n },\n deleteColumn: function oe() {\n var e = J();\n\n if (0 < e.length) {\n var t,\n n,\n r,\n a = w(),\n o = M(a);\n if (null == o) return;\n if (0 === o.min_j && o.max_j == a[0].length - 1) h();else {\n var i = 0;\n\n for (t = 0; t < a.length; t++) {\n for (n = 0; n < a[0].length; n++) {\n (r = S(a[t][n])).hasClass(\"fr-selected-cell\") || (r.data(\"old-width\", r.outerWidth() / e.outerWidth() * 100), (n < o.min_j || n > o.max_j) && (i += r.outerWidth() / e.outerWidth() * 100));\n }\n }\n\n for (i /= a.length, n = o.max_j; n >= o.min_j; n--) {\n for (t = 0; t < a.length; t++) {\n if (0 === t || a[t][n] != a[t - 1][n]) if (r = S(a[t][n]), 1 < (parseInt(r.attr(\"colspan\"), 10) || 1)) {\n var s = parseInt(r.attr(\"colspan\"), 10) - 1;\n 1 == s ? r.removeAttr(\"colspan\") : r.attr(\"colspan\", s), r.css(\"width\", (100 * (r.data(\"old-width\") - G(n, a)) / i).toFixed(4) + \"%\"), r.removeData(\"old-width\");\n } else {\n var l = S(r.parent().get(0));\n r.remove(), 0 === l.find(\"> th, > td\").length && (0 === l.prev().length || 0 === l.next().length || l.prev().find(\"> th[rowspan], > td[rowspan]\").length < l.prev().find(\"> th, > td\").length) && l.remove();\n }\n }\n }\n\n C(0, a.length - 1, 0, a[0].length - 1, e), 0 < o.min_j ? T.selection.setAtEnd(a[o.min_i][o.min_j - 1]) : T.selection.setAtEnd(a[o.min_i][0]), T.selection.restore(), T.popups.hide(\"table.edit\"), e.find(\"th, td\").each(function () {\n (r = S(this)).data(\"old-width\") && (r.css(\"width\", (100 * r.data(\"old-width\") / i).toFixed(4) + \"%\"), r.removeData(\"old-width\"));\n });\n }\n }\n },\n mergeCells: function ie() {\n if (1 < Q().length && (0 === T.$el.find(\"th.fr-selected-cell\").length || 0 === T.$el.find(\"td.fr-selected-cell\").length)) {\n E();\n var e,\n t,\n n = M(w());\n if (null == n) return;\n var r = T.$el.find(\".fr-selected-cell\"),\n a = S(r[0]),\n o = a.parent().find(\".fr-selected-cell\"),\n i = a.closest(\"table\"),\n s = a.html(),\n l = 0;\n\n for (e = 0; e < o.length; e++) {\n l += S(o[e]).outerWidth();\n }\n\n for (a.css(\"width\", Math.min(100, l / i.outerWidth() * 100).toFixed(4) + \"%\"), n.min_j < n.max_j && a.attr(\"colspan\", n.max_j - n.min_j + 1), n.min_i < n.max_i && a.attr(\"rowspan\", n.max_i - n.min_i + 1), e = 1; e < r.length; e++) {\n \"
    \" != (t = S(r[e])).html() && \"\" !== t.html() && (s += \"
    \".concat(t.html())), t.remove();\n }\n\n a.html(s), T.selection.setAtEnd(a.get(0)), T.selection.restore(), T.toolbar.enable(), v(n.min_i, n.max_i, i);\n var c = i.find(\"tr:empty\");\n\n for (e = c.length - 1; 0 <= e; e--) {\n S(c[e]).remove();\n }\n\n m(n.min_j, n.max_j, i), u();\n }\n },\n splitCellVertically: function se() {\n if (1 == Q().length) {\n var e = T.$el.find(\".fr-selected-cell\"),\n t = parseInt(e.attr(\"colspan\"), 10) || 1,\n n = e.parent().outerWidth(),\n r = e.outerWidth(),\n a = e.clone().html(\"
    \"),\n o = w(),\n i = R(e.get(0), o);\n\n if (1 < t) {\n var s = Math.ceil(t / 2);\n r = Y(i.col, i.col + s - 1, o) / n * 100;\n var l = Y(i.col + s, i.col + t - 1, o) / n * 100;\n 1 < s ? e.attr(\"colspan\", s) : e.removeAttr(\"colspan\"), 1 < t - s ? a.attr(\"colspan\", t - s) : a.removeAttr(\"colspan\"), e.css(\"width\", r.toFixed(4) + \"%\"), a.css(\"width\", l.toFixed(4) + \"%\");\n } else {\n var c;\n\n for (c = 0; c < o.length; c++) {\n if (0 === c || o[c][i.col] != o[c - 1][i.col]) {\n var d = S(o[c][i.col]);\n\n if (!d.is(e)) {\n var f = (parseInt(d.attr(\"colspan\"), 10) || 1) + 1;\n d.attr(\"colspan\", f);\n }\n }\n }\n\n r = r / n * 100 / 2, e.css(\"width\", \"\".concat(r.toFixed(4), \"%\")), a.css(\"width\", \"\".concat(r.toFixed(4), \"%\"));\n }\n\n e[0].parentNode && e[0].insertAdjacentElement(\"afterend\", a[0]), y(), T.popups.hide(\"table.edit\");\n }\n },\n splitCellHorizontally: function le() {\n if (1 == Q().length) {\n var e = T.$el.find(\".fr-selected-cell\"),\n t = e.parent(),\n n = e.closest(\"table\"),\n r = parseInt(e.attr(\"rowspan\"), 10),\n a = w(),\n o = R(e.get(0), a),\n i = e.clone().html(\"
    \");\n\n if (1 < r) {\n var s = Math.ceil(r / 2);\n 1 < s ? e.attr(\"rowspan\", s) : e.removeAttr(\"rowspan\"), 1 < r - s ? i.attr(\"rowspan\", r - s) : i.removeAttr(\"rowspan\");\n\n for (var l = o.row + s, c = 0 === o.col ? o.col : o.col - 1; 0 <= c && (a[l][c] == a[l][c - 1] || 0 < l && a[l][c] == a[l - 1][c]);) {\n c--;\n }\n\n -1 == c ? S(n.find(\"tr\").not(n.find(\"> table tr\")).get(l)).prepend(i) : S(a[l][c])[0].parentNode && S(a[l][c])[0].insertAdjacentElement(\"afterend\", i[0]);\n } else {\n var d,\n f = S(document.createElement(\"tr\")).append(i);\n\n for (d = 0; d < a[0].length; d++) {\n if (0 === d || a[o.row][d] != a[o.row][d - 1]) {\n var p = S(a[o.row][d]);\n p.is(e) || p.attr(\"rowspan\", (parseInt(p.attr(\"rowspan\"), 10) || 1) + 1);\n }\n }\n\n t[0].parentNode && t[0].insertAdjacentElement(\"afterend\", f[0]);\n }\n\n y(), T.popups.hide(\"table.edit\");\n }\n },\n addHeader: function ce() {\n var e = J();\n\n if (0 < e.length && 0 === e.find(\"th\").length) {\n var t,\n n = \"\",\n r = 0;\n\n for (e.find(\"tr\").first().find(\"> td\").each(function () {\n var e = S(this);\n r += parseInt(e.attr(\"colspan\"), 10) || 1;\n }), t = 0; t < r; t++) {\n n += \"
    \";\n }\n\n n += \"\", e.prepend(n), u();\n }\n },\n removeHeader: function de() {\n var e = J(),\n t = e.find(\"thead\");\n if (0 < t.length) if (0 === e.find(\"tbody tr\").length) h();else if (t.remove(), 0 < Q().length) u();else {\n T.popups.hide(\"table.edit\");\n var n = e.find(\"tbody tr\").first().find(\"td\").first().get(0);\n n && (T.selection.setAtEnd(n), T.selection.restore());\n }\n },\n setBackground: t,\n showInsertPopup: function fe() {\n var e = T.$tb.find('.fr-command[data-cmd=\"insertTable\"]'),\n t = T.popups.get(\"table.insert\");\n\n if (t || (t = d()), !t.hasClass(\"fr-active\")) {\n T.popups.refresh(\"table.insert\"), T.popups.setContainer(\"table.insert\", T.$tb);\n var n = T.button.getPosition(e),\n r = n.left,\n a = n.top;\n T.popups.show(\"table.insert\", r, a, e.outerHeight());\n }\n },\n showEditPopup: u,\n showColorsPopup: s,\n back: function pe() {\n 0 < Q().length ? u() : (T.popups.hide(\"table.insert\"), T.toolbar.showInline());\n },\n verticalAlign: function ue(e) {\n T.$el.find(\".fr-selected-cell\").css(\"vertical-align\", e);\n },\n horizontalAlign: function he(e) {\n T.$el.find(\".fr-selected-cell\").css(\"text-align\", e);\n },\n applyStyle: function ge(e, t, n, r) {\n if (0 < t.length) {\n if (!n) {\n var a = Object.keys(r);\n a.splice(a.indexOf(e), 1), t.removeClass(a.join(\" \"));\n }\n\n t.toggleClass(e);\n }\n },\n selectedTable: J,\n selectedCells: Q,\n customColor: function me() {\n var e = T.popups.get(\"table.colors\").find(\".fr-table-colors-hex-layer input\");\n e.length && t(e.val());\n },\n selectCells: N\n };\n }, xt.DefineIcon(\"insertTable\", {\n NAME: \"table\",\n SVG_KEY: \"insertTable\"\n }), xt.RegisterCommand(\"insertTable\", {\n title: \"Insert Table\",\n undo: !1,\n focus: !0,\n refreshOnCallback: !1,\n popup: !0,\n callback: function callback() {\n this.popups.isVisible(\"table.insert\") ? (this.$el.find(\".fr-marker\").length && (this.events.disableBlur(), this.selection.restore()), this.popups.hide(\"table.insert\")) : this.table.showInsertPopup();\n },\n plugin: \"table\"\n }), xt.RegisterCommand(\"tableInsert\", {\n callback: function callback(e, t, n) {\n this.table.insert(t, n), this.popups.hide(\"table.insert\");\n }\n }), xt.DefineIcon(\"tableHeader\", {\n NAME: \"header\",\n FA5NAME: \"heading\",\n SVG_KEY: \"tableHeader\"\n }), xt.RegisterCommand(\"tableHeader\", {\n title: \"Table Header\",\n focus: !1,\n toggle: !0,\n callback: function callback() {\n this.popups.get(\"table.edit\").find('.fr-command[data-cmd=\"tableHeader\"]').hasClass(\"fr-active\") ? this.table.removeHeader() : this.table.addHeader();\n },\n refresh: function refresh(e) {\n var t = this.table.selectedTable();\n 0 < t.length && (0 === t.find(\"th\").length ? e.removeClass(\"fr-active\").attr(\"aria-pressed\", !1) : e.addClass(\"fr-active\").attr(\"aria-pressed\", !0));\n }\n }), xt.DefineIcon(\"tableRows\", {\n NAME: \"bars\",\n SVG_KEY: \"row\"\n }), xt.RegisterCommand(\"tableRows\", {\n type: \"dropdown\",\n focus: !1,\n title: \"Row\",\n options: {\n above: \"Insert row above\",\n below: \"Insert row below\",\n \"delete\": \"Delete row\"\n },\n html: function html() {\n var e = '\";\n },\n callback: function callback(e, t) {\n \"above\" == t || \"below\" == t ? this.table.insertRow(t) : this.table.deleteRow();\n }\n }), xt.DefineIcon(\"tableColumns\", {\n NAME: \"bars fa-rotate-90\",\n SVG_KEY: \"columns\"\n }), xt.RegisterCommand(\"tableColumns\", {\n type: \"dropdown\",\n focus: !1,\n title: \"Column\",\n options: {\n before: \"Insert column before\",\n after: \"Insert column after\",\n \"delete\": \"Delete column\"\n },\n html: function html() {\n var e = '\";\n },\n callback: function callback(e, t) {\n \"before\" == t || \"after\" == t ? this.table.insertColumn(t) : this.table.deleteColumn();\n }\n }), xt.DefineIcon(\"tableCells\", {\n NAME: \"square-o\",\n FA5NAME: \"square\",\n SVG_KEY: \"cellOptions\"\n }), xt.RegisterCommand(\"tableCells\", {\n type: \"dropdown\",\n focus: !1,\n title: \"Cell\",\n options: {\n merge: \"Merge cells\",\n \"vertical-split\": \"Vertical split\",\n \"horizontal-split\": \"Horizontal split\"\n },\n html: function html() {\n var e = '\";\n },\n callback: function callback(e, t) {\n \"merge\" == t ? this.table.mergeCells() : \"vertical-split\" == t ? this.table.splitCellVertically() : this.table.splitCellHorizontally();\n },\n refreshOnShow: function refreshOnShow(e, t) {\n 1 < this.$el.find(\".fr-selected-cell\").length ? (t.find('a[data-param1=\"vertical-split\"]').addClass(\"fr-disabled\").attr(\"aria-disabled\", !0), t.find('a[data-param1=\"horizontal-split\"]').addClass(\"fr-disabled\").attr(\"aria-disabled\", !0), t.find('a[data-param1=\"merge\"]').removeClass(\"fr-disabled\").attr(\"aria-disabled\", !1)) : (t.find('a[data-param1=\"merge\"]').addClass(\"fr-disabled\").attr(\"aria-disabled\", !0), t.find('a[data-param1=\"vertical-split\"]').removeClass(\"fr-disabled\").attr(\"aria-disabled\", !1), t.find('a[data-param1=\"horizontal-split\"]').removeClass(\"fr-disabled\").attr(\"aria-disabled\", !1));\n }\n }), xt.DefineIcon(\"tableRemove\", {\n NAME: \"trash\",\n SVG_KEY: \"removeTable\"\n }), xt.RegisterCommand(\"tableRemove\", {\n title: \"Remove Table\",\n focus: !1,\n callback: function callback() {\n this.table.remove();\n }\n }), xt.DefineIcon(\"tableStyle\", {\n NAME: \"paint-brush\",\n SVG_KEY: \"tableStyle\"\n }), xt.RegisterCommand(\"tableStyle\", {\n title: \"Table Style\",\n type: \"dropdown\",\n focus: !1,\n html: function html() {\n var e = '\";\n },\n callback: function callback(e, t) {\n this.table.applyStyle(t, this.$el.find(\".fr-selected-cell\").closest(\"table\"), this.opts.tableMultipleStyles, this.opts.tableStyles);\n },\n refreshOnShow: function refreshOnShow(e, t) {\n var n = this.$,\n r = this.$el.find(\".fr-selected-cell\").closest(\"table\");\n r && t.find(\".fr-command\").each(function () {\n var e = n(this).data(\"param1\"),\n t = r.hasClass(e);\n n(this).toggleClass(\"fr-active\", t).attr(\"aria-selected\", t);\n });\n }\n }), xt.DefineIcon(\"tableCellBackground\", {\n NAME: \"tint\",\n SVG_KEY: \"cellBackground\"\n }), xt.RegisterCommand(\"tableCellBackground\", {\n title: \"Cell Background\",\n focus: !1,\n popup: !0,\n callback: function callback() {\n this.table.showColorsPopup();\n }\n }), xt.RegisterCommand(\"tableCellBackgroundColor\", {\n undo: !0,\n focus: !1,\n callback: function callback(e, t) {\n this.table.setBackground(t);\n }\n }), xt.DefineIcon(\"tableBack\", {\n NAME: \"arrow-left\",\n SVG_KEY: \"back\"\n }), xt.RegisterCommand(\"tableBack\", {\n title: \"Back\",\n undo: !1,\n focus: !1,\n back: !0,\n callback: function callback() {\n this.table.back();\n },\n refresh: function refresh(e) {\n 0 !== this.table.selectedCells().length || this.opts.toolbarInline ? (e.removeClass(\"fr-hidden\"), e.next(\".fr-separator\").removeClass(\"fr-hidden\")) : (e.addClass(\"fr-hidden\"), e.next(\".fr-separator\").addClass(\"fr-hidden\"));\n }\n }), xt.DefineIcon(\"tableCellVerticalAlign\", {\n NAME: \"arrows-v\",\n FA5NAME: \"arrows-alt-v\",\n SVG_KEY: \"verticalAlignMiddle\"\n }), xt.RegisterCommand(\"tableCellVerticalAlign\", {\n type: \"dropdown\",\n focus: !1,\n title: \"Vertical Align\",\n options: {\n Top: \"Align Top\",\n Middle: \"Align Middle\",\n Bottom: \"Align Bottom\"\n },\n html: function html() {\n var e = '\";\n },\n callback: function callback(e, t) {\n this.table.verticalAlign(t);\n },\n refreshOnShow: function refreshOnShow(e, t) {\n t.find('.fr-command[data-param1=\"' + this.$el.find(\".fr-selected-cell\").css(\"vertical-align\") + '\"]').addClass(\"fr-active\").attr(\"aria-selected\", !0);\n }\n }), xt.DefineIcon(\"tableCellHorizontalAlign\", {\n NAME: \"align-left\",\n SVG_KEY: \"alignLeft\"\n }), xt.DefineIcon(\"align-left\", {\n NAME: \"align-left\",\n SVG_KEY: \"alignLeft\"\n }), xt.DefineIcon(\"align-right\", {\n NAME: \"align-right\",\n SVG_KEY: \"alignRight\"\n }), xt.DefineIcon(\"align-center\", {\n NAME: \"align-center\",\n SVG_KEY: \"alignCenter\"\n }), xt.DefineIcon(\"align-justify\", {\n NAME: \"align-justify\",\n SVG_KEY: \"alignJustify\"\n }), xt.RegisterCommand(\"tableCellHorizontalAlign\", {\n type: \"dropdown\",\n focus: !1,\n title: \"Horizontal Align\",\n options: {\n left: \"Align Left\",\n center: \"Align Center\",\n right: \"Align Right\",\n justify: \"Align Justify\"\n },\n html: function html() {\n var e = '\";\n },\n callback: function callback(e, t) {\n this.table.horizontalAlign(t);\n },\n refresh: function refresh(e) {\n var t = this.table.selectedCells(),\n n = this.$;\n t.length && e.find(\"> *\").first().replaceWith(this.icon.create(\"align-\".concat(this.helpers.getAlignment(n(t[0])))));\n },\n refreshOnShow: function refreshOnShow(e, t) {\n t.find('.fr-command[data-param1=\"' + this.helpers.getAlignment(this.$el.find(\".fr-selected-cell\").first()) + '\"]').addClass(\"fr-active\").attr(\"aria-selected\", !0);\n }\n }), xt.DefineIcon(\"tableCellStyle\", {\n NAME: \"magic\",\n SVG_KEY: \"cellStyle\"\n }), xt.RegisterCommand(\"tableCellStyle\", {\n title: \"Cell Style\",\n type: \"dropdown\",\n focus: !1,\n html: function html() {\n var e = '\";\n },\n callback: function callback(e, t) {\n this.table.applyStyle(t, this.$el.find(\".fr-selected-cell\"), this.opts.tableCellMultipleStyles, this.opts.tableCellStyles);\n },\n refreshOnShow: function refreshOnShow(e, t) {\n var n = this.$,\n r = this.$el.find(\".fr-selected-cell\").first();\n r && t.find(\".fr-command\").each(function () {\n var e = n(this).data(\"param1\"),\n t = r.hasClass(e);\n n(this).toggleClass(\"fr-active\", t).attr(\"aria-selected\", t);\n });\n }\n }), xt.RegisterCommand(\"tableCellBackgroundCustomColor\", {\n title: \"OK\",\n undo: !0,\n callback: function callback() {\n this.table.customColor();\n }\n }), xt.DefineIcon(\"tableColorRemove\", {\n NAME: \"eraser\",\n SVG_KEY: \"remove\"\n }), xt.URLRegEx = \"(^| |\\\\u00A0)(\".concat(xt.LinkRegEx, \"|([a-z0-9+-_.]{1,}@[a-z0-9+-_.]{1,}\\\\.[a-z0-9+-_]{1,}))$\"), xt.PLUGINS.url = function (i) {\n var s = i.$,\n o = null;\n\n function t(e, t, n) {\n for (var r = \"\"; n.length && \".\" == n[n.length - 1];) {\n r += \".\", n = n.substring(0, n.length - 1);\n }\n\n var a = n;\n if (i.opts.linkConvertEmailAddress) i.helpers.isEmail(a) && !/^mailto:.*/i.test(a) && (a = \"mailto:\".concat(a));else if (i.helpers.isEmail(a)) return t + n;\n return /^((http|https|ftp|ftps|mailto|tel|sms|notes|data)\\:)/i.test(a) || (a = \"//\".concat(a)), (t || \"\") + \"').concat(n.replace(/&/g, \"&\").replace(/&/g, \"&\").replace(//g, \">\"), \"\").concat(r);\n }\n\n var l = function l() {\n return new RegExp(xt.URLRegEx, \"gi\");\n };\n\n function c(e) {\n return i.opts.linkAlwaysNoFollow && (o = \"nofollow\"), i.opts.linkAlwaysBlank && (i.opts.linkNoOpener && (o ? o += \" noopener\" : o = \"noopener\"), i.opts.linkNoReferrer && (o ? o += \" noreferrer\" : o = \"noreferrer\")), e.replace(l(), t);\n }\n\n function d(e) {\n var t = e.split(\" \");\n return t[t.length - 1];\n }\n\n function n() {\n var e = i.selection.ranges(0),\n t = e.startContainer;\n if (!t || t.nodeType !== Node.TEXT_NODE || e.startOffset !== (t.textContent || \"\").length) return !1;\n if (function o(e) {\n return !!e && (\"A\" === e.tagName || !(!e.parentNode || e.parentNode == i.el) && o(e.parentNode));\n }(t)) return !1;\n\n if (l().test(d(t.textContent))) {\n s(t).before(c(t.textContent));\n var n = s(t.parentNode).find(\"a[data-fr-linked]\");\n n.removeAttr(\"data-fr-linked\"), t.parentNode.removeChild(t), i.events.trigger(\"url.linked\", [n.get(0)]);\n } else if (t.textContent.split(\" \").length <= 2 && t.previousSibling && \"A\" === t.previousSibling.tagName) {\n var r = t.previousSibling.innerText + t.textContent;\n\n if (l().test(d(r))) {\n var a = new DOMParser().parseFromString(c(r), \"text/html\").body.childNodes;\n t.parentNode.replaceChild(a[0], t.previousSibling), a.length && s(t).before(a[0]), t.parentNode.removeChild(t);\n }\n }\n }\n\n return {\n _init: function e() {\n i.events.on(\"keypress\", function (e) {\n !i.selection.isCollapsed() || \")\" != e.key && \"(\" != e.key || n();\n }, !0), i.events.on(\"keydown\", function (e) {\n var t = e.which;\n !i.selection.isCollapsed() || t != xt.KEYCODE.ENTER && t != xt.KEYCODE.SPACE || n();\n }, !0), i.events.on(\"paste.beforeCleanup\", function (e) {\n if (i.helpers.isURL(e)) {\n var t = null;\n return i.opts.linkAlwaysBlank && (i.opts.linkNoOpener && (t ? t += \" noopener\" : t = \"noopener\"), i.opts.linkNoReferrer && (t ? t += \" noreferrer\" : t = \"noreferrer\")), \"').concat(e, \"\");\n }\n });\n }\n };\n }, Object.assign(xt.POPUP_TEMPLATES, {\n \"video.insert\": \"[_BUTTONS_][_BY_URL_LAYER_][_EMBED_LAYER_][_UPLOAD_LAYER_][_PROGRESS_BAR_]\",\n \"video.edit\": \"[_BUTTONS_]\",\n \"video.size\": \"[_BUTTONS_][_SIZE_LAYER_]\"\n }), Object.assign(xt.DEFAULTS, {\n videoAllowedTypes: [\"mp4\", \"webm\", \"ogg\", \"mp3\", \"mpeg\", \"url\"],\n videoAllowedProviders: [\".*\"],\n videoDefaultAlign: \"center\",\n videoDefaultDisplay: \"block\",\n videoDefaultWidth: 600,\n videoEditButtons: [\"videoReplace\", \"videoRemove\", \"videoDisplay\", \"videoAlign\", \"videoSize\", \"autoplay\"],\n videoInsertButtons: [\"videoBack\", \"|\", \"videoByURL\", \"videoEmbed\", \"videoUpload\"],\n videoMaxSize: 52428800,\n videoMove: !0,\n videoResize: !0,\n videoResponsive: !1,\n videoSizeButtons: [\"videoBack\", \"|\"],\n videoSplitHTML: !1,\n videoTextNear: !0,\n videoUpload: !0,\n videoUploadMethod: \"POST\",\n videoUploadParam: \"file\",\n videoUploadParams: {},\n videoUploadToS3: !1,\n videoUploadToAzure: !1,\n videoUploadURL: null\n }), xt.VIDEO_PROVIDERS = [{\n test_regex: /^.*((youtu.be)|(youtube.com))\\/((v\\/)|(\\/u\\/\\w\\/)|(embed\\/)|(watch\\?))?\\??v?=?([^#\\&\\?]*).*/,\n url_regex: /(?:https?:\\/\\/)?(?:www\\.)?(?:m\\.)?(?:youtube\\.com|youtu\\.be)\\/(?:watch\\?v=|embed\\/)?([0-9a-zA-Z_\\-]+)(.+)?/g,\n url_text: \"https://www.youtube.com/embed/$1?$2\",\n html: '',\n provider: \"youtube\"\n }, {\n test_regex: /^.*(?:vimeo.com)\\/(?:channels(\\/\\w+\\/)?|groups\\/*\\/videos\\/\\u200b\\d+\\/|video\\/|)(\\d+)(?:$|\\/|\\?)/,\n url_regex: /(?:https?:\\/\\/)?(?:www\\.|player\\.)?vimeo.com\\/(?:channels\\/(?:\\w+\\/)?|groups\\/(?:[^\\/]*)\\/videos\\/|album\\/(?:\\d+)\\/video\\/|video\\/|)(\\d+)(?:[a-zA-Z0-9_\\-]+)?(\\/[a-zA-Z0-9_\\-]+)?/i,\n url_text: \"https://player.vimeo.com/video/$1\",\n html: '',\n provider: \"vimeo\"\n }, {\n test_regex: /^.+(dailymotion.com|dai.ly)\\/(video|hub)?\\/?([^_]+)[^#]*(#video=([^_&]+))?/,\n url_regex: /(?:https?:\\/\\/)?(?:www\\.)?(?:dailymotion\\.com|dai\\.ly)\\/(?:video|hub)?\\/?(.+)/g,\n url_text: \"https://www.dailymotion.com/embed/video/$1\",\n html: '',\n provider: \"dailymotion\"\n }, {\n test_regex: /^.+(screen.yahoo.com)\\/[^_&]+/,\n url_regex: \"\",\n url_text: \"\",\n html: '',\n provider: \"yahoo\"\n }, {\n test_regex: /^.+(rutube.ru)\\/[^_&]+/,\n url_regex: /(?:https?:\\/\\/)?(?:www\\.)?(?:rutube\\.ru)\\/(?:video)?\\/?(.+)/g,\n url_text: \"https://rutube.ru/play/embed/$1\",\n html: '',\n provider: \"rutube\"\n }, {\n test_regex: /^(?:.+)vidyard.com\\/(?:watch)?\\/?([^.&/]+)\\/?(?:[^_.&]+)?/,\n url_regex: /^(?:.+)vidyard.com\\/(?:watch)?\\/?([^.&/]+)\\/?(?:[^_.&]+)?/g,\n url_text: \"https://play.vidyard.com/$1\",\n html: '',\n provider: \"vidyard\"\n }], xt.VIDEO_EMBED_REGEX = /^\\W*(((\\s|\\n)*<\\/iframe>)|())\\W*$/i, xt.PLUGINS.video = function (E) {\n var s,\n d,\n f,\n y,\n r,\n n,\n T = E.$,\n A = \"https://i.froala.com/upload\",\n p = 2,\n u = 3,\n h = 4,\n L = 5,\n S = 6,\n a = {};\n\n function g() {\n var e = E.popups.get(\"video.insert\");\n e.find(\".fr-video-by-url-layer input\").val(\"\").trigger(\"change\");\n var t = e.find(\".fr-video-embed-layer textarea\");\n t.val(\"\").trigger(\"change\"), (t = e.find(\".fr-video-upload-layer input\")).val(\"\").trigger(\"change\");\n }\n\n function o() {\n var e = E.popups.get(\"video.edit\");\n\n if (e || (e = function i() {\n var e = \"\";\n\n if (0 < E.opts.videoEditButtons.length) {\n E.opts.videoResponsive && (-1 < E.opts.videoEditButtons.indexOf(\"videoSize\") && E.opts.videoEditButtons.splice(E.opts.videoEditButtons.indexOf(\"videoSize\"), 1), -1 < E.opts.videoEditButtons.indexOf(\"videoDisplay\") && E.opts.videoEditButtons.splice(E.opts.videoEditButtons.indexOf(\"videoDisplay\"), 1), -1 < E.opts.videoEditButtons.indexOf(\"videoAlign\") && E.opts.videoEditButtons.splice(E.opts.videoEditButtons.indexOf(\"videoAlign\"), 1));\n var t = {\n buttons: e += '
    \\n '.concat(E.button.buildList(E.opts.videoEditButtons), \" \\n
    \")\n },\n n = E.popups.create(\"video.edit\", t);\n return E.events.$on(E.$wp, \"scroll.video-edit\", function () {\n y && E.popups.isVisible(\"video.edit\") && (E.events.disableBlur(), C(y));\n }), n;\n }\n\n return !1;\n }()), e) {\n E.popups.setContainer(\"video.edit\", E.$sc), E.popups.refresh(\"video.edit\");\n var t = y.find(\"iframe, embed, \".concat(y.find(\"iframe, embed, audio\").get(0) ? \"audio\" : \"video\")),\n n = t.offset().left + t.outerWidth() / 2,\n r = t.offset().top + t.outerHeight(),\n a = t.get(0).src ? t.get(0).src : t.get(0).currentSrc,\n o = !(!(a = (a = a.split(\".\"))[a.length - 1]).includes(\"pdf\") && !a.includes(\"txt\"));\n t.hasClass(\"fr-file\") || o || y.find(\"audio\").get(0) ? (document.getElementById(\"autoplay-\".concat(E.id)) && (document.getElementById(\"autoplay-\".concat(E.id)).style.display = \"none\"), document.getElementById(\"videoReplace-\".concat(E.id)) && (document.getElementById(\"videoReplace-\".concat(E.id)).style.display = \"none\")) : (document.getElementById(\"autoplay-\".concat(E.id)) && (document.getElementById(\"autoplay-\".concat(E.id)).style.display = \"\"), document.getElementById(\"videoReplace-\".concat(E.id)) && (document.getElementById(\"videoReplace-\".concat(E.id)).style.display = \"\")), E.popups.show(\"video.edit\", n, r, t.outerHeight(), !0);\n }\n }\n\n function i(e) {\n if (e) return E.popups.onRefresh(\"video.insert\", g), E.popups.onHide(\"video.insert\", X), !0;\n var t = \"\";\n E.opts.videoUpload || -1 === E.opts.videoInsertButtons.indexOf(\"videoUpload\") || E.opts.videoInsertButtons.splice(E.opts.videoInsertButtons.indexOf(\"videoUpload\"), 1);\n var n = E.button.buildList(E.opts.videoInsertButtons);\n \"\" !== n && (t = '
    ' + n + \"
    \");\n var r,\n a = \"\",\n o = E.opts.videoInsertButtons.indexOf(\"videoUpload\"),\n i = E.opts.videoInsertButtons.indexOf(\"videoByURL\"),\n s = E.opts.videoInsertButtons.indexOf(\"videoEmbed\");\n\n if (0 <= i) {\n r = \" fr-active\", (o < i && 0 <= o || s < i && 0 <= s) && (r = \"\");\n a = '
    ').concat('', '
    \");\n }\n\n var l = \"\";\n 0 <= s && (r = \" fr-active\", (o < s && 0 <= o || i < s && 0 <= i) && (r = \"\"), l = '
    \"));\n var c = \"\";\n 0 <= o && (r = \" fr-active\", (s < o && 0 <= s || i < o && 0 <= i) && (r = \"\"), c = '
    ').concat(E.language.translate(\"Drop video\"), \"
    (\").concat(E.language.translate(\"or click\"), ')
    '));\n var d = {\n buttons: t,\n by_url_layer: a,\n embed_layer: l,\n upload_layer: c,\n progress_bar: '

    Uploading

    '\n },\n f = E.popups.create(\"video.insert\", d);\n return function p(r) {\n E.events.$on(r, \"dragover dragenter\", \".fr-video-upload-layer\", function () {\n return T(this).addClass(\"fr-drop\"), !1;\n }, !0), E.events.$on(r, \"dragleave dragend\", \".fr-video-upload-layer\", function () {\n return T(this).removeClass(\"fr-drop\"), !1;\n }, !0), E.events.$on(r, \"drop\", \".fr-video-upload-layer\", function (e) {\n e.preventDefault(), e.stopPropagation(), T(this).removeClass(\"fr-drop\");\n var t = e.originalEvent.dataTransfer;\n\n if (t && t.files) {\n var n = r.data(\"instance\") || E;\n n.events.disableBlur(), n.video.upload(t.files), n.events.enableBlur();\n }\n }, !0), E.helpers.isIOS() && E.events.$on(r, \"touchstart\", '.fr-video-upload-layer input[type=\"file\"]', function () {\n T(this).trigger(\"click\");\n }, !0);\n E.events.$on(r, \"change\", '.fr-video-upload-layer input[type=\"file\"]', function () {\n if (this.files) {\n var e = r.data(\"instance\") || E;\n e.events.disableBlur(), r.find(\"input:focus\").blur(), e.events.enableBlur(), e.video.upload(this.files);\n }\n\n T(this).val(\"\");\n }, !0);\n }(f), f;\n }\n\n function l(e) {\n E.events.focus(!0), E.selection.restore();\n var t = !1;\n y && (q(), t = !0), E.html.insert(''.concat(e, \"\"), !1, E.opts.videoSplitHTML), E.popups.hide(\"video.insert\");\n var n = E.$el.find(\".fr-jiv\");\n n.removeClass(\"fr-jiv\"), n.toggleClass(\"fr-rv\", E.opts.videoResponsive), Z(n, E.opts.videoDefaultDisplay, E.opts.videoDefaultAlign), n.toggleClass(\"fr-draggable\", E.opts.videoMove), E.events.trigger(t ? \"video.replaced\" : \"video.inserted\", [n]);\n }\n\n function m() {\n var e = T(this);\n E.popups.hide(\"video.insert\"), e.removeClass(\"fr-uploading\"), e.parent().next().is(\"br\") && e.parent().next().remove(), C(e.parent()), E.events.trigger(\"video.loaded\", [e.parent()]);\n }\n\n function w(s, e, c, d, f) {\n E.edit.off(), v(\"Loading video\"), e && (s = E.helpers.sanitizeURL(s));\n\n var p = function p() {\n var e, t;\n\n if (d) {\n E.undo.canDo() || d.find(\"video\").hasClass(\"fr-uploading\") || E.undo.saveStep();\n var n = d.find(\"video\").data(\"fr-old-src\"),\n r = d.data(\"fr-replaced\");\n d.data(\"fr-replaced\", !1), E.$wp ? ((e = d.clone(!0)).find(\"video\").removeData(\"fr-old-src\").removeClass(\"fr-uploading\"), e.find(\"video\").off(\"canplay\"), n && d.find(\"video\").attr(\"src\", n), d.replaceWith(e)) : e = d;\n\n for (var a = e.find(\"video\").get(0).attributes, o = 0; o < a.length; o++) {\n var i = a[o];\n 0 === i.nodeName.indexOf(\"data-\") && e.find(\"video\").removeAttr(i.nodeName);\n }\n\n if (void 0 !== c) for (t in c) {\n c.hasOwnProperty(t) && \"link\" != t && e.find(\"video\").attr(\"data-\".concat(t), c[t]);\n }\n e.find(\"video\").on(\"canplay\", m), e.find(\"video\").attr(\"src\", s), E.edit.on(), F(), E.undo.saveStep(), E.$el.blur(), E.events.trigger(r ? \"video.replaced\" : \"video.inserted\", [e, f]);\n } else e = function l(e, t, n) {\n var r,\n a = \"\";\n if (t && void 0 !== t) for (r in t) {\n t.hasOwnProperty(r) && \"link\" != r && (a += \" data-\".concat(r, '=\"').concat(t[r], '\"'));\n }\n var o = E.opts.videoDefaultWidth;\n o && \"auto\" != o && (o = \"\".concat(o, \"px\"));\n var i = T(document.createElement(\"span\")).attr(\"contenteditable\", \"false\").attr(\"draggable\", \"true\").attr(\"class\", \"fr-video fr-dv\" + E.opts.videoDefaultDisplay[0] + (\"center\" != E.opts.videoDefaultAlign ? \" fr-fv\" + E.opts.videoDefaultAlign[0] : \"\")).html('\");\n i.toggleClass(\"fr-draggable\", E.opts.videoMove), E.edit.on(), E.events.focus(!0), E.selection.restore(), E.undo.saveStep(), E.opts.videoSplitHTML ? E.markers.split() : E.markers.insert();\n E.html.wrap();\n var s = E.$el.find(\".fr-marker\");\n E.node.isLastSibling(s) && s.parent().hasClass(\"fr-deletable\") && s.insertAfter(s.parent());\n s.replaceWith(i), E.selection.clear(), i.find(\"video\").get(0).readyState > i.find(\"video\").get(0).HAVE_FUTURE_DATA || E.helpers.isIOS() ? n.call(i.find(\"video\").get(0)) : i.find(\"video\").on(\"canplaythrough load\", n);\n return i;\n }(s, c, m), F(), E.undo.saveStep(), E.events.trigger(\"video.inserted\", [e, f]);\n };\n\n R(\"Loading video\"), p();\n }\n\n function R(e) {\n var t = E.popups.get(\"video.insert\");\n\n if (t || (t = i()), t.find(\".fr-layer.fr-active\").removeClass(\"fr-active\").addClass(\"fr-pactive\"), t.find(\".fr-video-progress-bar-layer\").addClass(\"fr-active\"), t.find(\".fr-buttons\").hide(), y) {\n var n = y.find(\"iframe, embed, \".concat(y.find(\"iframe, embed, audio\").get(0) ? \"audio\" : \"video\"));\n E.popups.setContainer(\"video.insert\", E.$sc);\n var r = n.offset().left,\n a = n.offset().top + n.height();\n E.popups.show(\"video.insert\", r, a, n.outerHeight());\n }\n\n void 0 === e && v(E.language.translate(\"Uploading\"), 0);\n }\n\n function c(e) {\n var t = E.popups.get(\"video.insert\");\n\n if (t && (t.find(\".fr-layer.fr-pactive\").addClass(\"fr-active\").removeClass(\"fr-pactive\"), t.find(\".fr-video-progress-bar-layer\").removeClass(\"fr-active\"), t.find(\".fr-buttons\").show(), e || E.$el.find(\"video.fr-error\").length)) {\n if (E.events.focus(), E.$el.find(\"video.fr-error\").length && (E.$el.find(\"video.fr-error\").parent().remove(), E.undo.saveStep(), E.undo.run(), E.undo.dropRedo()), !E.$wp && y) {\n var n = y;\n P(!0), E.selection.setAfter(n.find(\"video\").get(0)), E.selection.restore();\n }\n\n E.popups.hide(\"video.insert\");\n }\n }\n\n function v(e, t) {\n var n = E.popups.get(\"video.insert\");\n\n if (n) {\n var r = n.find(\".fr-video-progress-bar-layer\");\n r.find(\"h3\").text(e + (t ? \" \".concat(t, \"%\") : \"\")), r.removeClass(\"fr-error\"), t ? (r.find(\"div\").removeClass(\"fr-indeterminate\"), r.find(\"div > span\").css(\"width\", \"\".concat(t, \"%\"))) : r.find(\"div\").addClass(\"fr-indeterminate\");\n }\n }\n\n function b(e) {\n R();\n var t = E.popups.get(\"video.insert\").find(\".fr-video-progress-bar-layer\");\n t.addClass(\"fr-error\");\n var n = t.find(\"h3\");\n n.text(e), E.events.disableBlur(), n.focus();\n }\n\n function C(e) {\n t.call(e.get(0));\n }\n\n function _(e, t, n) {\n v(\"Loading video\");\n var r = this.status,\n a = this.response,\n o = this.responseXML,\n i = this.responseText;\n\n try {\n if (E.opts.videoUploadToS3 || E.opts.videoUploadToAzure) {\n if (201 == r) {\n var s;\n\n if (E.opts.videoUploadToAzure) {\n if (!1 === E.events.trigger(\"video.uploadedToAzure\", [this.responseURL, n, a], !0)) return E.edit.on(), !1;\n s = t;\n } else s = function c(e) {\n try {\n var t = T(e).find(\"Location\").text(),\n n = T(e).find(\"Key\").text();\n return !1 === E.events.trigger(\"video.uploadedToS3\", [t, n, e], !0) ? (E.edit.on(), !1) : t;\n } catch (r) {\n return W(h, e), !1;\n }\n }(o);\n\n s && w(s, !1, [], e, a || o);\n } else W(h, a || o);\n } else if (200 <= r && r < 300) {\n var l = function d(e) {\n try {\n if (!1 === E.events.trigger(\"video.uploaded\", [e], !0)) return E.edit.on(), !1;\n var t = JSON.parse(e);\n return t.link ? t : (W(p, e), !1);\n } catch (n) {\n return W(h, e), !1;\n }\n }(i);\n\n l && w(l.link, !1, l, e, a || i);\n } else W(u, a || i);\n } catch (f) {\n W(h, a || i);\n }\n }\n\n function x() {\n W(h, this.response || this.responseText || this.responseXML);\n }\n\n function M(e) {\n if (e.lengthComputable) {\n var t = e.loaded / e.total * 100 | 0;\n v(E.language.translate(\"Uploading\"), t);\n }\n }\n\n function O() {\n E.edit.on(), c(!0);\n }\n\n function N(e) {\n if (!E.core.sameInstance(f)) return !0;\n e.preventDefault(), e.stopPropagation();\n var t = e.pageX || (e.originalEvent.touches ? e.originalEvent.touches[0].pageX : null),\n n = e.pageY || (e.originalEvent.touches ? e.originalEvent.touches[0].pageY : null);\n if (!t || !n) return !1;\n\n if (\"mousedown\" == e.type) {\n var r = E.$oel.get(0).ownerDocument,\n a = r.defaultView || r.parentWindow,\n o = !1;\n\n try {\n o = a.location != a.parent.location && !(a.$ && a.$.FE);\n } catch (i) {}\n\n o && a.frameElement && (t += E.helpers.getPX(T(a.frameElement).offset().left) + a.frameElement.clientLeft, n = e.clientY + E.helpers.getPX(T(a.frameElement).offset().top) + a.frameElement.clientTop);\n }\n\n E.undo.canDo() || E.undo.saveStep(), (d = T(this)).data(\"start-x\", t), d.data(\"start-y\", n), s.show(), E.popups.hideAll(), U();\n }\n\n function k(e) {\n if (!E.core.sameInstance(f)) return !0;\n\n if (d) {\n e.preventDefault();\n var t = e.pageX || (e.originalEvent.touches ? e.originalEvent.touches[0].pageX : null),\n n = e.pageY || (e.originalEvent.touches ? e.originalEvent.touches[0].pageY : null);\n if (!t || !n) return !1;\n var r = d.data(\"start-x\"),\n a = d.data(\"start-y\");\n d.data(\"start-x\", t), d.data(\"start-y\", n);\n var o = t - r,\n i = n - a,\n s = y.find(\"iframe, embed, \".concat(y.find(\"iframe, embed, audio\").get(0) ? \"audio\" : \"video\")),\n l = s.width(),\n c = s.height();\n (d.hasClass(\"fr-hnw\") || d.hasClass(\"fr-hsw\")) && (o = 0 - o), (d.hasClass(\"fr-hnw\") || d.hasClass(\"fr-hne\")) && (i = 0 - i), s.css(\"width\", l + o), s.css(\"height\", c + i), s.removeAttr(\"width\"), s.removeAttr(\"height\"), $();\n }\n }\n\n function I(e) {\n if (!E.core.sameInstance(f)) return !0;\n d && y && (e && e.stopPropagation(), d = null, s.hide(), $(), o(), E.undo.saveStep());\n }\n\n function D(e) {\n return '
    ');\n }\n\n function B(e, t, n, r) {\n return e.pageX = t, e.pageY = t, N.call(this, e), e.pageX = e.pageX + n * Math.floor(Math.pow(1.1, r)), e.pageY = e.pageY + n * Math.floor(Math.pow(1.1, r)), k.call(this, e), I.call(this, e), ++r;\n }\n\n function F() {\n var e,\n t = Array.prototype.slice.call(E.el.querySelectorAll(\"video, .fr-video > *\")),\n n = [];\n\n for (e = 0; e < t.length; e++) {\n n.push(t[e].getAttribute(\"src\")), T(t[e]).toggleClass(\"fr-draggable\", E.opts.videoMove), \"\" === t[e].getAttribute(\"class\") && t[e].removeAttribute(\"class\"), \"\" === t[e].getAttribute(\"style\") && t[e].removeAttribute(\"style\");\n }\n\n if (r) for (e = 0; e < r.length; e++) {\n n.indexOf(r[e].getAttribute(\"src\")) < 0 && E.events.trigger(\"video.removed\", [T(r[e])]);\n }\n r = t;\n }\n\n function $() {\n f || function i() {\n var e;\n\n if (E.shared.$video_resizer ? (f = E.shared.$video_resizer, s = E.shared.$vid_overlay, E.events.on(\"destroy\", function () {\n T(\"body\").first().append(f.removeClass(\"fr-active\"));\n }, !0)) : (E.shared.$video_resizer = T(document.createElement(\"div\")).attr(\"class\", \"fr-video-resizer\"), f = E.shared.$video_resizer, E.events.$on(f, \"mousedown\", function (e) {\n e.stopPropagation();\n }, !0), E.opts.videoResize && (f.append(D(\"nw\") + D(\"ne\") + D(\"sw\") + D(\"se\")), E.shared.$vid_overlay = T(document.createElement(\"div\")).attr(\"class\", \"fr-video-overlay\"), s = E.shared.$vid_overlay, e = f.get(0).ownerDocument, T(e).find(\"body\").first().append(s))), E.events.on(\"shared.destroy\", function () {\n f.html(\"\").removeData().remove(), f = null, E.opts.videoResize && (s.remove(), s = null);\n }, !0), E.helpers.isMobile() || E.events.$on(T(E.o_win), \"resize.video\", function () {\n P(!0);\n }), E.opts.videoResize) {\n e = f.get(0).ownerDocument, E.events.$on(f, E._mousedown, \".fr-handler\", N), E.events.$on(T(e), E._mousemove, k), E.events.$on(T(e.defaultView || e.parentWindow), E._mouseup, I), E.events.$on(s, \"mouseleave\", I);\n var r = 1,\n a = null,\n o = 0;\n E.events.on(\"keydown\", function (e) {\n if (y) {\n var t = -1 != navigator.userAgent.indexOf(\"Mac OS X\") ? e.metaKey : e.ctrlKey,\n n = e.which;\n (n !== a || 200 < e.timeStamp - o) && (r = 1), (n == xt.KEYCODE.EQUALS || E.browser.mozilla && n == xt.KEYCODE.FF_EQUALS) && t && !e.altKey ? r = B.call(this, e, 1, 1, r) : (n == xt.KEYCODE.HYPHEN || E.browser.mozilla && n == xt.KEYCODE.FF_HYPHEN) && t && !e.altKey && (r = B.call(this, e, 2, -1, r)), a = n, o = e.timeStamp;\n }\n }), E.events.on(\"keyup\", function () {\n r = 1;\n });\n }\n }(), (E.$wp || E.$sc).append(f), f.data(\"instance\", E);\n var e = y.find(\"iframe, embed, \".concat(y.find(\"iframe, embed, audio\").get(0) ? \"audio\" : \"video\")),\n t = 0,\n n = 0;\n E.opts.iframe && (n = E.helpers.getPX(E.$wp.find(\".fr-iframe\").css(\"padding-top\")), t = E.helpers.getPX(E.$wp.find(\".fr-iframe\").css(\"padding-left\"))), f.css(\"top\", (E.opts.iframe ? e.offset().top + n - 1 : e.offset().top - E.$wp.offset().top - 1) + E.$wp.scrollTop()).css(\"left\", (E.opts.iframe ? e.offset().left + t - 1 : e.offset().left - E.$wp.offset().left - 1) + E.$wp.scrollLeft()).css(\"width\", e.get(0).getBoundingClientRect().width).css(\"height\", e.get(0).getBoundingClientRect().height).addClass(\"fr-active\");\n }\n\n function t(e) {\n if (e && \"touchend\" == e.type && n) return !0;\n if (e && E.edit.isDisabled()) return e.stopPropagation(), e.preventDefault(), !1;\n if (E.edit.isDisabled()) return !1;\n\n for (var t = 0; t < xt.INSTANCES.length; t++) {\n xt.INSTANCES[t] != E && xt.INSTANCES[t].events.trigger(\"video.hideResizer\");\n }\n\n E.toolbar.disable(), E.helpers.isMobile() && (E.events.disableBlur(), E.$el.blur(), E.events.enableBlur()), E.$el.find(\".fr-video.fr-active\").removeClass(\"fr-active\"), (y = T(this)).addClass(\"fr-active\"), E.opts.iframe && E.size.syncIframe(), ee(), $(), o(), E.selection.clear(), E.button.bulkRefresh(), E.events.trigger(\"image.hideResizer\");\n }\n\n function P(e) {\n y && (function t() {\n return E.shared.vid_exit_flag;\n }() || !0 === e) && (f.removeClass(\"fr-active\"), E.toolbar.enable(), y.removeClass(\"fr-active\"), y = null, U());\n }\n\n function H() {\n E.shared.vid_exit_flag = !0;\n }\n\n function U() {\n E.shared.vid_exit_flag = !1;\n }\n\n function K(e) {\n var t = e.originalEvent.dataTransfer;\n\n if (t && t.files && t.files.length) {\n var n = t.files[0];\n\n if (n && n.type && -1 !== n.type.indexOf(\"video\")) {\n if (!E.opts.videoUpload) return e.preventDefault(), e.stopPropagation(), !1;\n E.markers.remove(), E.markers.insertAtPoint(e.originalEvent), E.$el.find(\".fr-marker\").replaceWith(xt.MARKERS), E.popups.hideAll();\n var r = E.popups.get(\"video.insert\");\n return r || (r = i()), E.popups.setContainer(\"video.insert\", E.$sc), E.popups.show(\"video.insert\", e.originalEvent.pageX, e.originalEvent.pageY), R(), 0 <= E.opts.videoAllowedTypes.indexOf(n.type.replace(/video\\//g, \"\")) ? z(t.files) : W(S), e.preventDefault(), e.stopPropagation(), !1;\n }\n }\n }\n\n function z(e) {\n if (void 0 !== e && 0 < e.length) {\n if (!1 === E.events.trigger(\"video.beforeUpload\", [e])) return !1;\n var t,\n n = e[0];\n if (!(null !== E.opts.videoUploadURL && E.opts.videoUploadURL != A || E.opts.videoUploadToS3 || E.opts.videoUploadToAzure)) return function C(r) {\n y && y.find(\"iframe\") && y.find(\"iframe\").length && q();\n var a = new FileReader();\n a.onload = function () {\n a.result;\n\n for (var e = atob(a.result.split(\",\")[1]), t = [], n = 0; n < e.length; n++) {\n t.push(e.charCodeAt(n));\n }\n\n w(window.URL.createObjectURL(new Blob([new Uint8Array(t)], {\n type: r.type\n })), !1, null, y);\n }, R(), a.readAsDataURL(r);\n }(n), !1;\n if (n.size > E.opts.videoMaxSize) return W(L), !1;\n if (E.opts.videoAllowedTypes.indexOf(n.type.replace(/video\\//g, \"\")) < 0) return W(S), !1;\n\n if (E.drag_support.formdata && (t = E.drag_support.formdata ? new FormData() : null), t) {\n var r;\n if (!1 !== E.opts.videoUploadToS3) for (r in t.append(\"key\", E.opts.videoUploadToS3.keyStart + new Date().getTime() + \"-\" + (n.name || \"untitled\")), t.append(\"success_action_status\", \"201\"), t.append(\"X-Requested-With\", \"xhr\"), t.append(\"Content-Type\", n.type), E.opts.videoUploadToS3.params) {\n E.opts.videoUploadToS3.params.hasOwnProperty(r) && t.append(r, E.opts.videoUploadToS3.params[r]);\n }\n\n for (r in E.opts.videoUploadParams) {\n E.opts.videoUploadParams.hasOwnProperty(r) && t.append(r, E.opts.videoUploadParams[r]);\n }\n\n t.append(E.opts.videoUploadParam, n);\n var a,\n o,\n i = E.opts.videoUploadURL;\n E.opts.videoUploadToS3 && (i = E.opts.videoUploadToS3.uploadURL ? E.opts.videoUploadToS3.uploadURL : \"https://\".concat(E.opts.videoUploadToS3.region, \".amazonaws.com/\").concat(E.opts.videoUploadToS3.bucket));\n var s = E.opts.videoUploadMethod;\n E.opts.videoUploadToAzure && (i = E.opts.videoUploadToAzure.uploadURL ? \"\".concat(E.opts.videoUploadToAzure.uploadURL, \"/\").concat(n.name) : encodeURI(\"https://\".concat(E.opts.videoUploadToAzure.account, \".blob.core.windows.net/\").concat(E.opts.videoUploadToAzure.container, \"/\").concat(n.name)), a = i, E.opts.videoUploadToAzure.SASToken && (i += E.opts.videoUploadToAzure.SASToken), s = \"PUT\");\n var l = E.core.getXHR(i, s);\n\n if (E.opts.videoUploadToAzure) {\n var c = new Date().toUTCString();\n\n if (!E.opts.videoUploadToAzure.SASToken && E.opts.videoUploadToAzure.accessKey) {\n var d = E.opts.videoUploadToAzure.account,\n f = E.opts.videoUploadToAzure.container;\n\n if (E.opts.videoUploadToAzure.uploadURL) {\n var p = E.opts.videoUploadToAzure.uploadURL.split(\"/\");\n f = p.pop(), d = p.pop().split(\".\")[0];\n }\n\n var u = \"x-ms-blob-type:BlockBlob\\nx-ms-date:\".concat(c, \"\\nx-ms-version:2019-07-07\"),\n h = encodeURI(\"/\" + d + \"/\" + f + \"/\" + n.name),\n g = s + \"\\n\\n\\n\" + n.size + \"\\n\\n\" + n.type + \"\\n\\n\\n\\n\\n\\n\\n\" + u + \"\\n\" + h,\n m = E.cryptoJSPlugin.cryptoJS.HmacSHA256(g, E.cryptoJSPlugin.cryptoJS.enc.Base64.parse(E.opts.videoUploadToAzure.accessKey)).toString(E.cryptoJSPlugin.cryptoJS.enc.Base64),\n v = \"SharedKey \" + d + \":\" + m;\n o = m, l.setRequestHeader(\"Authorization\", v);\n }\n\n for (r in l.setRequestHeader(\"x-ms-version\", \"2019-07-07\"), l.setRequestHeader(\"x-ms-date\", c), l.setRequestHeader(\"Content-Type\", n.type), l.setRequestHeader(\"x-ms-blob-type\", \"BlockBlob\"), E.opts.videoUploadParams) {\n E.opts.videoUploadParams.hasOwnProperty(r) && l.setRequestHeader(r, E.opts.videoUploadParams[r]);\n }\n\n for (r in E.opts.videoUploadToAzure.params) {\n E.opts.videoUploadToAzure.params.hasOwnProperty(r) && l.setRequestHeader(r, E.opts.videoUploadToAzure.params[r]);\n }\n }\n\n l.onload = function () {\n _.call(l, y, a, o);\n }, l.onerror = x, l.upload.onprogress = M, l.onabort = O, R(), E.events.disableBlur(), E.edit.off(), E.events.enableBlur();\n var b = E.popups.get(\"video.insert\");\n b && T(b.off(\"abortUpload\")).on(\"abortUpload\", function () {\n 4 != l.readyState && l.abort();\n }), l.send(E.opts.videoUploadToAzure ? n : t);\n }\n }\n }\n\n function W(e, t) {\n E.edit.on(), y && y.find(\"video\").addClass(\"fr-error\"), b(E.language.translate(\"Something went wrong. Please try again.\")), E.events.trigger(\"video.error\", [{\n code: e,\n message: a[e]\n }, t]);\n }\n\n function V() {\n if (y) {\n var e = E.popups.get(\"video.size\"),\n t = y.find(\"iframe, embed, \".concat(y.find(\"iframe, embed, audio\").get(0) ? \"audio\" : \"video\"));\n e.find('input[name=\"width\"]').val(t.get(0).style.width || t.attr(\"width\")).trigger(\"change\"), e.find('input[name=\"height\"]').val(t.get(0).style.height || t.attr(\"height\")).trigger(\"change\");\n }\n }\n\n function G(e) {\n if (e) return E.popups.onRefresh(\"video.size\", V), !0;\n var t = {\n buttons: '
    '.concat(E.button.buildList(E.opts.videoSizeButtons), \"
    \"),\n size_layer: '
    \")\n },\n n = E.popups.create(\"video.size\", t);\n return E.events.$on(E.$wp, \"scroll\", function () {\n y && E.popups.isVisible(\"video.size\") && (E.events.disableBlur(), C(y));\n }), n;\n }\n\n function Y(e) {\n if (void 0 === e && (e = y), e) {\n if (e.hasClass(\"fr-fvl\")) return \"left\";\n if (e.hasClass(\"fr-fvr\")) return \"right\";\n if (e.hasClass(\"fr-dvb\") || e.hasClass(\"fr-dvi\")) return \"center\";\n\n if (\"block\" == e.css(\"display\")) {\n if (\"left\" == e.css(\"text-algin\")) return \"left\";\n if (\"right\" == e.css(\"text-align\")) return \"right\";\n } else {\n if (\"left\" == e.css(\"float\")) return \"left\";\n if (\"right\" == e.css(\"float\")) return \"right\";\n }\n }\n\n return \"center\";\n }\n\n function j(e) {\n void 0 === e && (e = y);\n var t = e.css(\"float\");\n return e.css(\"float\", \"none\"), \"block\" == e.css(\"display\") ? (e.css(\"float\", \"\"), e.css(\"float\") != t && e.css(\"float\", t), \"block\") : (e.css(\"float\", \"\"), e.css(\"float\") != t && e.css(\"float\", t), \"inline\");\n }\n\n function q() {\n if (y && !1 !== E.events.trigger(\"video.beforeRemove\", [y])) {\n var e = y;\n E.popups.hideAll(), P(!0), E.selection.setBefore(e.get(0)) || E.selection.setAfter(e.get(0)), e.remove(), E.selection.restore(), E.html.fillEmptyBlocks();\n }\n }\n\n function X() {\n c();\n }\n\n function Z(e, t, n) {\n !E.opts.htmlUntouched && E.opts.useClasses ? (e.removeClass(\"fr-fvl fr-fvr fr-dvb fr-dvi\"), e.addClass(\"fr-fv\".concat(n[0], \" fr-dv\").concat(t[0]))) : \"inline\" == t ? (e.css({\n display: \"inline-block\"\n }), \"center\" == n ? e.css({\n \"float\": \"none\"\n }) : \"left\" == n ? e.css({\n \"float\": \"left\"\n }) : e.css({\n \"float\": \"right\"\n })) : (e.css({\n display: \"block\",\n clear: \"both\"\n }), \"left\" == n ? e.css({\n textAlign: \"left\"\n }) : \"right\" == n ? e.css({\n textAlign: \"right\"\n }) : e.css({\n textAlign: \"center\"\n }));\n }\n\n function Q() {\n var e = E.$el.find(\"video\").filter(function () {\n return 0 === T(this).parents(\"span.fr-video\").length;\n });\n\n if (0 != e.length) {\n e.wrap(T(document.createElement(\"span\")).attr(\"class\", \"fr-video fr-deletable\").attr(\"contenteditable\", \"false\")), E.$el.find(\"embed, iframe\").filter(function () {\n if (E.browser.safari && this.getAttribute(\"src\") && this.setAttribute(\"src\", this.src), 0 < T(this).parents(\"span.fr-video\").length) return !1;\n\n for (var e = T(this).attr(\"src\"), t = 0; t < xt.VIDEO_PROVIDERS.length; t++) {\n var n = xt.VIDEO_PROVIDERS[t];\n if (n.test_regex.test(e) && new RegExp(E.opts.videoAllowedProviders.join(\"|\")).test(n.provider)) return !0;\n }\n\n return !1;\n }).map(function () {\n return 0 === T(this).parents(\"object\").length ? this : T(this).parents(\"object\").get(0);\n }).wrap(T(document.createElement(\"span\")).attr(\"class\", \"fr-video\").attr(\"contenteditable\", \"false\"));\n\n for (var t, n, r, a, o = E.$el.find(\"span.fr-video, video\"), i = 0; i < o.length; i++) {\n var s = T(o[i]);\n !E.opts.htmlUntouched && E.opts.useClasses ? ((a = s).hasClass(\"fr-dvi\") || a.hasClass(\"fr-dvb\") || (a.addClass(\"fr-fv\".concat(Y(a)[0])), a.addClass(\"fr-dv\".concat(j(a)[0]))), E.opts.videoTextNear || s.removeClass(\"fr-dvi\").addClass(\"fr-dvb\")) : E.opts.htmlUntouched || E.opts.useClasses || (void 0, n = (t = s).hasClass(\"fr-dvb\") ? \"block\" : t.hasClass(\"fr-dvi\") ? \"inline\" : null, r = t.hasClass(\"fr-fvl\") ? \"left\" : t.hasClass(\"fr-fvr\") ? \"right\" : Y(t), Z(t, n, r), t.removeClass(\"fr-dvb fr-dvi fr-fvr fr-fvl\"));\n }\n\n o.toggleClass(\"fr-draggable\", E.opts.videoMove);\n }\n }\n\n function J(e) {\n document.getElementById(\"autoplay-\".concat(E.id)).style.cssText = \"background:\".concat(e);\n }\n\n function ee() {\n if (y) {\n E.selection.clear();\n var e = E.doc.createRange();\n e.selectNode(y.get(0)), E.selection.get().addRange(e);\n }\n }\n\n return a[1] = \"Video cannot be loaded from the passed link.\", a[p] = \"No link in upload response.\", a[u] = \"Error during file upload.\", a[h] = \"Parsing response failed.\", a[L] = \"File is too large.\", a[S] = \"Video file type is invalid.\", a[7] = \"Files can be uploaded only to same domain in IE 8 and IE 9.\", E.shared.vid_exit_flag = !1, {\n _init: function te() {\n E.opts.videoResponsive && (E.opts.videoResize = !1), function e() {\n E.events.on(\"drop\", K, !0), E.events.on(\"mousedown window.mousedown\", H), E.events.on(\"window.touchmove\", U), E.events.on(\"mouseup window.mouseup\", P), E.events.on(\"commands.mousedown\", function (e) {\n 0 < e.parents(\".fr-toolbar\").length && P();\n }), E.events.on(\"video.hideResizer commands.undo commands.redo element.dropped\", function () {\n P(!0);\n });\n }(), E.helpers.isMobile() && (E.events.$on(E.$el, \"touchstart\", \"span.fr-video\", function () {\n n = !1;\n }), E.events.$on(E.$el, \"touchmove\", function () {\n n = !0;\n })), E.events.on(\"html.set\", Q), Q(), E.events.$on(E.$el, \"mousedown\", \"span.fr-video\", function (e) {\n e.stopPropagation(), (E.browser.msie || E.browser.edge) && (e.target.innerText || (e.target.dragDrop(), t.call(this, e)));\n }), E.events.$on(E.$el, \"click touchend\", \"span.fr-video\", function (e) {\n if (e.target.innerText.length || \"false\" == T(this).parents(\"[contenteditable]\").not(\".fr-element\").not(\".fr-img-caption\").not(\"body\").first().attr(\"contenteditable\")) return !0;\n t.call(this, e);\n }), E.events.on(\"keydown\", function (e) {\n var t = e.which;\n return !y || t != xt.KEYCODE.BACKSPACE && t != xt.KEYCODE.DELETE ? y && t == xt.KEYCODE.ESC ? (P(!0), e.preventDefault(), !1) : y && t != xt.KEYCODE.F10 && !E.keys.isBrowserAction(e) ? (e.preventDefault(), !1) : void 0 : (e.preventDefault(), q(), E.undo.saveStep(), !1);\n }, !0), E.events.on(\"toolbar.esc\", function () {\n if (y) return E.events.disableBlur(), E.events.focus(), !1;\n }, !0), E.events.on(\"toolbar.focusEditor\", function () {\n if (y) return !1;\n }, !0), E.events.on(\"keydown\", function () {\n E.$el.find(\"span.fr-video:empty\").remove();\n }), E.$wp && (F(), E.events.on(\"contentChanged\", F)), i(!0), G(!0);\n },\n showInsertPopup: function ne() {\n var e = E.$tb.find('.fr-command[data-cmd=\"insertVideo\"]'),\n t = E.popups.get(\"video.insert\");\n if (t || (t = i()), c(), !t.hasClass(\"fr-active\")) if (E.popups.refresh(\"video.insert\"), E.popups.setContainer(\"video.insert\", E.$tb), e.isVisible()) {\n var n = E.button.getPosition(e),\n r = n.left,\n a = n.top;\n E.popups.show(\"video.insert\", r, a, e.outerHeight());\n } else E.position.forSelection(t), E.popups.show(\"video.insert\");\n },\n showLayer: function re(e) {\n var t,\n n,\n r = E.popups.get(\"video.insert\");\n\n if (!y && !E.opts.toolbarInline) {\n var a = E.$tb.find('.fr-command[data-cmd=\"insertVideo\"]');\n t = a.offset().left, n = a.offset().top + (E.opts.toolbarBottom ? 10 : a.outerHeight() - 10);\n }\n\n E.opts.toolbarInline && (n = r.offset().top - E.helpers.getPX(r.css(\"margin-top\")), r.hasClass(\"fr-above\") && (n += r.outerHeight())), r.find(\".fr-layer\").removeClass(\"fr-active\"), r.find(\".fr-\".concat(e, \"-layer\")).addClass(\"fr-active\"), E.popups.show(\"video.insert\", t, n, 0), E.accessibility.focusPopup(r);\n },\n refreshByURLButton: function ae(e) {\n var t = E.popups.get(\"video.insert\");\n t && t.find(\".fr-video-by-url-layer\").hasClass(\"fr-active\") && e.addClass(\"fr-active\").attr(\"aria-pressed\", !0);\n },\n refreshEmbedButton: function oe(e) {\n var t = E.popups.get(\"video.insert\");\n t && t.find(\".fr-video-embed-layer\").hasClass(\"fr-active\") && e.addClass(\"fr-active\").attr(\"aria-pressed\", !0);\n },\n refreshUploadButton: function ie(e) {\n var t = E.popups.get(\"video.insert\");\n t && t.find(\".fr-video-upload-layer\").hasClass(\"fr-active\") && e.addClass(\"fr-active\").attr(\"aria-pressed\", !0);\n },\n upload: z,\n insertByURL: function se(e) {\n var t = !!document.getElementById(\"videoPluginAutoplay\") && document.getElementById(\"videoPluginAutoplay\").checked;\n void 0 === e && (e = (E.popups.get(\"video.insert\").find('.fr-video-by-url-layer input[type=\"text\"]').val() || \"\").trim());\n var n = null;\n if (/^http/.test(e) || (e = \"https://\".concat(e)), E.helpers.isURL(e)) for (var r = 0; r < xt.VIDEO_PROVIDERS.length; r++) {\n var a = xt.VIDEO_PROVIDERS[r],\n o = \"autoplay=1\";\n if (a.html.includes(\"autoplay=1\") && document.getElementById(\"videoPluginAutoplay\").checked) a.html = a.html, document.getElementById(\"videoPluginAutoplay\").checked = !1;else if (t) {\n var i = a.html.indexOf(\"{url}\") + 5;\n a.html = [a.html.slice(0, i), o, a.html.slice(i)].join(\"\"), t = !1, document.getElementById(\"videoPluginAutoplay\").checked = !1;\n } else (a = xt.VIDEO_PROVIDERS[r]).html = a.html.replace(o, \"\");\n\n if (a.test_regex.test(e) && new RegExp(E.opts.videoAllowedProviders.join(\"|\")).test(a.provider)) {\n n = e.replace(a.url_regex, a.url_text), n = a.html.replace(/\\{url\\}/, n);\n break;\n }\n }\n n ? l(n) : (b(E.language.translate(\"Something went wrong. Please try again.\")), E.events.trigger(\"video.linkError\", [e]));\n },\n insertEmbed: function le(e) {\n void 0 === e && (e = E.popups.get(\"video.insert\").find(\".fr-video-embed-layer textarea\").val() || \"\"), 0 !== e.length && xt.VIDEO_EMBED_REGEX.test(e) ? l(e) : (b(E.language.translate(\"Something went wrong. Please try again.\")), E.events.trigger(\"video.codeError\", [e]));\n },\n insert: l,\n align: function ce(e) {\n y.removeClass(\"fr-fvr fr-fvl\"), !E.opts.htmlUntouched && E.opts.useClasses ? \"left\" == e ? y.addClass(\"fr-fvl\") : \"right\" == e && y.addClass(\"fr-fvr\") : Z(y, j(), e), ee(), $(), o(), E.selection.clear();\n },\n refreshAlign: function de(e) {\n if (!y) return !1;\n e.find(\">*\").first().replaceWith(E.icon.create(\"video-align-\".concat(Y())));\n },\n refreshAlignOnShow: function fe(e, t) {\n y && t.find('.fr-command[data-param1=\"'.concat(Y(), '\"]')).addClass(\"fr-active\").attr(\"aria-selected\", !0);\n },\n display: function pe(e) {\n y.removeClass(\"fr-dvi fr-dvb\"), !E.opts.htmlUntouched && E.opts.useClasses ? \"inline\" == e ? y.addClass(\"fr-dvi\") : \"block\" == e && y.addClass(\"fr-dvb\") : Z(y, e, Y()), ee(), $(), o(), E.selection.clear();\n },\n refreshDisplayOnShow: function ue(e, t) {\n y && t.find('.fr-command[data-param1=\"'.concat(j(), '\"]')).addClass(\"fr-active\").attr(\"aria-selected\", !0);\n },\n remove: q,\n hideProgressBar: c,\n showSizePopup: function he() {\n var e = E.popups.get(\"video.size\");\n e || (e = G()), c(), E.popups.refresh(\"video.size\"), E.popups.setContainer(\"video.size\", E.$sc);\n var t = y.find(\"iframe, embed, \".concat(y.find(\"iframe, embed, audio\").get(0) ? \"audio\" : \"video\")),\n n = t.offset().left + t.outerWidth() / 2,\n r = t.offset().top + t.height();\n E.popups.show(\"video.size\", n, r, t.height(), !0);\n },\n replace: function ge() {\n var e = E.popups.get(\"video.insert\");\n e || (e = i()), E.popups.isVisible(\"video.insert\") || (c(), E.popups.refresh(\"video.insert\"), E.popups.setContainer(\"video.insert\", E.$sc));\n var t = y.offset().left + y.outerWidth() / 2,\n n = y.offset().top + y.height();\n E.popups.show(\"video.insert\", t, n, y.outerHeight(), !0);\n },\n back: function e() {\n y ? (E.events.disableBlur(), y[0].click()) : (E.events.disableBlur(), E.selection.restore(), E.events.enableBlur(), E.popups.hide(\"video.insert\"), E.toolbar.showInline());\n },\n setSize: function me(e, t) {\n if (y) {\n var n = E.popups.get(\"video.size\"),\n r = y.find(\"iframe, embed, \".concat(y.find(\"iframe, embed, audio\").get(0) ? \"audio\" : \"video\"));\n r.css(\"width\", e || n.find('input[name=\"width\"]').val()), r.css(\"height\", t || n.find('input[name=\"height\"]').val()), r.get(0).style.width && r.removeAttr(\"width\"), r.get(0).style.height && r.removeAttr(\"height\"), n.find(\"input:focus\").blur(), setTimeout(function () {\n y.trigger(\"click\");\n }, E.helpers.isAndroid() ? 50 : 0);\n }\n },\n get: function ve() {\n return y;\n },\n showProgressBar: R,\n _editVideo: C,\n setAutoplay: function be() {\n var e;\n if (y.find(\"iframe, embed, audio\").get(0)) (e = y.find(\"iframe, embed, audio\")).get(0).src.includes(\"autoplay=1\") ? (J(\"#FFFFFF\"), e.get(0).src = e.get(0).src.replace(\"&autoplay=1\", \"\")) : (J(\"#D6D6D6\"), e.get(0).src = e.get(0).src + \"&autoplay=1\");else if ((e = y.find(\"iframe, embed, video\")).get(0).outerHTML.includes(\"autoplay\")) J(\"#FFFFFF\"), e.get(0).outerHTML = e.get(0).outerHTML.replace(\"autoplay\", \"\");else {\n J(\"#D6D6D6\");\n var t = e.get(0).outerHTML.indexOf(\"class\") - 1;\n e.get(0).outerHTML = [e.get(0).outerHTML.slice(0, t), \"autoplay\", e.get(0).outerHTML.slice(t)].join(\"\");\n }\n }\n };\n }, xt.RegisterCommand(\"insertVideo\", {\n title: \"Insert Video\",\n undo: !1,\n focus: !0,\n refreshAfterCallback: !1,\n popup: !0,\n callback: function callback() {\n this.popups.isVisible(\"video.insert\") ? (this.$el.find(\".fr-marker\").length && (this.events.disableBlur(), this.selection.restore()), this.popups.hide(\"video.insert\")) : this.video.showInsertPopup();\n },\n plugin: \"video\"\n }), xt.DefineIcon(\"insertVideo\", {\n NAME: \"video-camera\",\n FA5NAME: \"camera\",\n SVG_KEY: \"insertVideo\"\n }), xt.DefineIcon(\"videoByURL\", {\n NAME: \"link\",\n SVG_KEY: \"insertLink\"\n }), xt.RegisterCommand(\"videoByURL\", {\n title: \"By URL\",\n undo: !1,\n focus: !1,\n toggle: !0,\n callback: function callback() {\n this.video.showLayer(\"video-by-url\");\n },\n refresh: function refresh(e) {\n this.video.refreshByURLButton(e);\n }\n }), xt.DefineIcon(\"videoEmbed\", {\n NAME: \"code\",\n SVG_KEY: \"codeView\"\n }), xt.RegisterCommand(\"videoEmbed\", {\n title: \"Embedded Code\",\n undo: !1,\n focus: !1,\n toggle: !0,\n callback: function callback() {\n this.video.showLayer(\"video-embed\");\n },\n refresh: function refresh(e) {\n this.video.refreshEmbedButton(e);\n }\n }), xt.DefineIcon(\"videoUpload\", {\n NAME: \"upload\",\n SVG_KEY: \"upload\"\n }), xt.RegisterCommand(\"videoUpload\", {\n title: \"Upload Video\",\n undo: !1,\n focus: !1,\n toggle: !0,\n callback: function callback() {\n this.video.showLayer(\"video-upload\");\n },\n refresh: function refresh(e) {\n this.video.refreshUploadButton(e);\n }\n }), xt.RegisterCommand(\"videoInsertByURL\", {\n undo: !0,\n focus: !0,\n callback: function callback() {\n this.video.insertByURL();\n }\n }), xt.RegisterCommand(\"videoInsertEmbed\", {\n undo: !0,\n focus: !0,\n callback: function callback() {\n this.video.insertEmbed();\n }\n }), xt.DefineIcon(\"videoDisplay\", {\n NAME: \"star\",\n SVG_KEY: \"star\"\n }), xt.RegisterCommand(\"videoDisplay\", {\n title: \"Display\",\n type: \"dropdown\",\n options: {\n inline: \"Inline\",\n block: \"Break Text\"\n },\n callback: function callback(e, t) {\n this.video.display(t);\n },\n refresh: function refresh(e) {\n this.opts.videoTextNear || e.addClass(\"fr-hidden\");\n },\n refreshOnShow: function refreshOnShow(e, t) {\n this.video.refreshDisplayOnShow(e, t);\n }\n }), xt.DefineIcon(\"video-align\", {\n NAME: \"align-left\",\n SVG_KEY: \"align Left\"\n }), xt.DefineIcon(\"video-align-left\", {\n NAME: \"align-left\",\n SVG_KEY: \"alignLeft\"\n }), xt.DefineIcon(\"video-align-right\", {\n NAME: \"align-right\",\n SVG_KEY: \"alignRight\"\n }), xt.DefineIcon(\"video-align-center\", {\n NAME: \"align-justify\",\n SVG_KEY: \"alignJustify\"\n }), xt.DefineIcon(\"videoAlign\", {\n NAME: \"align-center\",\n SVG_KEY: \"alignCenter\"\n }), xt.RegisterCommand(\"videoAlign\", {\n type: \"dropdown\",\n title: \"Align\",\n options: {\n left: \"Align Left\",\n center: \"None\",\n right: \"Align Right\"\n },\n html: function html() {\n var e = '\";\n },\n callback: function callback(e, t) {\n this.video.align(t);\n },\n refresh: function refresh(e) {\n this.video.refreshAlign(e);\n },\n refreshOnShow: function refreshOnShow(e, t) {\n this.video.refreshAlignOnShow(e, t);\n }\n }), xt.DefineIcon(\"videoReplace\", {\n NAME: \"exchange\",\n FA5NAME: \"exchange-alt\",\n SVG_KEY: \"replaceImage\"\n }), xt.RegisterCommand(\"videoReplace\", {\n title: \"Replace\",\n undo: !1,\n focus: !1,\n popup: !0,\n refreshAfterCallback: !1,\n callback: function callback() {\n this.video.replace();\n }\n }), xt.DefineIcon(\"videoRemove\", {\n NAME: \"trash\",\n SVG_KEY: \"remove\"\n }), xt.RegisterCommand(\"videoRemove\", {\n title: \"Remove\",\n callback: function callback() {\n this.video.remove();\n }\n }), xt.DefineIcon(\"autoplay\", {\n NAME: \"autoplay\",\n SVG_KEY: \"autoplay\"\n }), xt.RegisterCommand(\"autoplay\", {\n undo: !1,\n focus: !1,\n popup: !0,\n title: \"Autoplay\",\n callback: function callback() {\n this.video.setAutoplay();\n }\n }), xt.DefineIcon(\"videoSize\", {\n NAME: \"arrows-alt\",\n SVG_KEY: \"imageSize\"\n }), xt.RegisterCommand(\"videoSize\", {\n undo: !1,\n focus: !1,\n popup: !0,\n title: \"Change Size\",\n callback: function callback() {\n this.video.showSizePopup();\n }\n }), xt.DefineIcon(\"videoBack\", {\n NAME: \"arrow-left\",\n SVG_KEY: \"back\"\n }), xt.RegisterCommand(\"videoBack\", {\n title: \"Back\",\n undo: !1,\n focus: !1,\n back: !0,\n callback: function callback() {\n this.video.back();\n },\n refresh: function refresh(e) {\n this.video.get() || this.opts.toolbarInline ? (e.removeClass(\"fr-hidden\"), e.next(\".fr-separator\").removeClass(\"fr-hidden\")) : (e.addClass(\"fr-hidden\"), e.next(\".fr-separator\").addClass(\"fr-hidden\"));\n }\n }), xt.RegisterCommand(\"videoDismissError\", {\n title: \"OK\",\n undo: !1,\n callback: function callback() {\n this.video.hideProgressBar(!0);\n }\n }), xt.RegisterCommand(\"videoSetSize\", {\n undo: !0,\n focus: !1,\n title: \"Update\",\n refreshAfterCallback: !1,\n callback: function callback() {\n this.video.setSize();\n }\n }), Object.assign(xt.DEFAULTS, {\n wordDeniedTags: [],\n wordDeniedAttrs: [],\n wordAllowedStyleProps: [\"font-family\", \"font-size\", \"background\", \"color\", \"width\", \"text-align\", \"vertical-align\", \"background-color\", \"padding\", \"margin\", \"height\", \"margin-top\", \"margin-left\", \"margin-right\", \"margin-bottom\", \"text-decoration\", \"font-weight\", \"font-style\", \"text-indent\", \"border\", \"border-.*\", \"line-height\", \"list-style-type\"],\n wordPasteModal: !0,\n wordPasteKeepFormatting: !0\n }), xt.PLUGINS.wordPaste = function (y) {\n var i,\n a,\n c = y.$,\n s = \"word_paste\",\n p = {};\n\n function t(e) {\n var t = y.opts.wordAllowedStyleProps;\n e || (y.opts.wordAllowedStyleProps = []), 0 === a.indexOf(\"\") && (a = \"\" + a + \"
    \"), a = o(a = a.replace(/([\\r\\n\\u00a0 ]*)<\\/span>/g, function (e, t) {\n for (var n = \"\", r = 0; r++ < t.length;) {\n n += \" \";\n }\n\n return n;\n }), y.paste.getRtfClipboard());\n var n = y.doc.createElement(\"DIV\");\n n.innerHTML = a, y.html.cleanBlankSpaces(n), a = n.innerHTML, a = (a = y.paste.cleanEmptyTagsAndDivs(a)).replace(/\\u200b/g, \"\"), function r() {\n y.modals.hide(s);\n }(), y.paste.clean(a, !0, !0), y.opts.wordAllowedStyleProps = t;\n }\n\n function T(e) {\n e.parentNode && e.parentNode.removeChild(e);\n }\n\n function u(e, t) {\n if (t(e)) for (var n = e.firstChild; n;) {\n var r = n,\n a = n.previousSibling;\n n = n.nextSibling, u(r, t), r.previousSibling || r.nextSibling || r.parentNode || !n || a === n.previousSibling || !n.parentNode ? r.previousSibling || r.nextSibling || r.parentNode || !n || n.previousSibling || n.nextSibling || n.parentNode || (a ? n = a.nextSibling ? a.nextSibling.nextSibling : null : e.firstChild && (n = e.firstChild.nextSibling)) : n = a ? a.nextSibling : e.firstChild;\n }\n }\n\n function M(e) {\n if (!e.getAttribute(\"style\") || !/mso-list:[\\s]*l/gi.test(e.getAttribute(\"style\").replace(/\\n/gi, \"\"))) return !1;\n\n try {\n if (!e.querySelector('[style=\"mso-list:Ignore\"]')) return !!(e.outerHTML && 0 <= e.outerHTML.indexOf(\"\\x3c!--[if !supportLists]--\\x3e\"));\n } catch (t) {\n return !1;\n }\n\n return !0;\n }\n\n function O(e) {\n return e.getAttribute(\"style\").replace(/\\n/gi, \"\").replace(/.*level([0-9]+?).*/gi, \"$1\");\n }\n\n function N(e, r) {\n var t = e.cloneNode(!0);\n\n if (-1 !== [\"H1\", \"H2\", \"H3\", \"H4\", \"H5\", \"H6\"].indexOf(e.tagName)) {\n var n = document.createElement(e.tagName.toLowerCase());\n n.setAttribute(\"style\", e.getAttribute(\"style\")), n.innerHTML = t.innerHTML, t.innerHTML = n.outerHTML;\n }\n\n u(t, function (e) {\n if (e.nodeType == Node.COMMENT_NODE && (y.browser.msie || y.browser.safari || y.browser.edge)) try {\n if (\"[if !supportLists]\" === e.data) {\n for (e = e.nextSibling; e && e.nodeType !== Node.COMMENT_NODE;) {\n var t = e.nextSibling;\n e.parentNode.removeChild(e), e = t;\n }\n\n e && e.nodeType == Node.COMMENT_NODE && e.parentNode.removeChild(e);\n }\n } catch (n) {}\n return e.nodeType === Node.ELEMENT_NODE && (\"mso-list:\\nIgnore\" === e.getAttribute(\"style\") && e.setAttribute(\"style\", \"mso-list:Ignore\"), \"mso-list:Ignore\" === e.getAttribute(\"style\") && e.parentNode.removeChild(e), e.setAttribute(\"style\", function a(e) {\n var n = \"\",\n r = e.getAttribute(\"style\");\n r && [\"line-height\", \"font-family\", \"font-size\", \"color\", \"background\"].forEach(function (e) {\n var t = r.match(new RegExp(e + \":.*(;|)\"));\n t && (n += t[0] + \";\");\n });\n return n;\n }(e)), m(e, r)), !0;\n });\n var a = t.innerHTML;\n return a = a.replace(//gi, \"\");\n }\n\n function C(e, t) {\n for (var n = document.createElement(t), r = 0; r < e.attributes.length; r++) {\n var a = e.attributes[r].name;\n n.setAttribute(a, e.getAttribute(a));\n }\n\n return n.innerHTML = e.innerHTML, e.parentNode.replaceChild(n, e), n;\n }\n\n function A(e) {\n var t = e.getAttribute(\"align\");\n t && (e.style[\"text-align\"] = t, e.removeAttribute(\"align\"));\n }\n\n function L(e) {\n return e.replace(/\\n|\\r|\\n\\r|"/g, \"\");\n }\n\n function S(e, t, n) {\n if (t) {\n var r = e.getAttribute(\"style\");\n r && \";\" !== r.slice(-1) && (r += \";\"), t && \";\" !== t.slice(-1) && (t += \";\"), t = t.replace(/\\n/gi, \"\");\n var a = null;\n a = n ? (r || \"\") + t : t + (r || \"\"), e.setAttribute(\"style\", a);\n }\n }\n\n var h = null;\n\n function d(e, t, n) {\n for (var r = e.split(n), a = 1; a < r.length; a++) {\n var o = r[a];\n\n if (1 < (o = o.split(\"shplid\")).length) {\n o = o[1];\n\n for (var i = \"\", s = 0; s < o.length && \"\\\\\" !== o[s] && \"{\" !== o[s] && \" \" !== o[s] && \"\\r\" !== o[s] && \"\\n\" !== o[s];) {\n i += o[s], s++;\n }\n\n var l = o.split(\"bliptag\");\n if (l && l.length < 2) continue;\n var c = null;\n if (-1 !== l[0].indexOf(\"pngblip\") ? c = \"image/png\" : -1 !== l[0].indexOf(\"jpegblip\") && (c = \"image/jpeg\"), !c) continue;\n var d = l[1].split(\"}\");\n if (d && d.length < 2) continue;\n var f = void 0;\n if (2 < d.length && -1 !== d[0].indexOf(\"blipuid\")) f = d[1].split(\" \");else {\n if ((f = d[0].split(\" \")) && f.length < 2) continue;\n f.shift();\n }\n var p = f.join(\"\");\n h[t + i] = {\n image_hex: p,\n image_type: c\n };\n }\n }\n }\n\n function g(e, t) {\n if (t) {\n var n;\n\n if (\"IMG\" === e.tagName) {\n var r = e.getAttribute(\"src\");\n if (!r || -1 === r.indexOf(\"file://\")) return;\n if (0 === r.indexOf(\"file://\") && y.helpers.isURL(e.getAttribute(\"alt\"))) return void e.setAttribute(\"src\", e.getAttribute(\"alt\"));\n (n = p[e.getAttribute(\"v:shapes\")]) || (n = e.getAttribute(\"v:shapes\"), e.parentNode && e.parentNode.parentNode && 0 <= e.parentNode.parentNode.innerHTML.indexOf(\"msEquation\") && (n = null));\n } else n = e.parentNode.getAttribute(\"o:spid\");\n\n if (e.removeAttribute(\"height\"), n) {\n !function s(e) {\n h = {}, d(e, \"i\", \"\\\\shppict\"), d(e, \"s\", \"\\\\shp{\");\n }(t);\n var a = h[n.substring(7)];\n\n if (a) {\n var o = function l(e) {\n for (var t = e.match(/[0-9a-f]{2}/gi), n = [], r = 0; r < t.length; r++) {\n n.push(String.fromCharCode(parseInt(t[r], 16)));\n }\n\n var a = n.join(\"\");\n return btoa(a);\n }(a.image_hex),\n i = \"data:\" + a.image_type + \";base64,\" + o;\n\n \"IMG\" === e.tagName ? (e.src = i, e.setAttribute(\"data-fr-image-pasted\", !0)) : c(e.parentNode).before('').remove();\n }\n }\n }\n }\n\n function m(e, t) {\n var n = e.tagName,\n r = n.toLowerCase();\n e.firstElementChild && (\"I\" === e.firstElementChild.tagName ? C(e.firstElementChild, \"em\") : \"B\" === e.firstElementChild.tagName && C(e.firstElementChild, \"strong\"));\n if (-1 !== [\"SCRIPT\", \"APPLET\", \"EMBED\", \"NOFRAMES\", \"NOSCRIPT\"].indexOf(n)) return T(e), !1;\n\n for (var a = [\"META\", \"LINK\", \"XML\", \"ST1:\", \"O:\", \"W:\", \"FONT\"], o = 0; o < a.length; o++) {\n if (-1 !== n.indexOf(a[o])) return e.innerHTML && (e.outerHTML = e.innerHTML), T(e), !1;\n }\n\n if (\"TD\" !== n) {\n var i = e.getAttribute(\"class\") || \"MsoNormal\";\n\n if (t && i) {\n for (var s = (i = L(i)).split(\" \"), l = 0; l < s.length; l++) {\n var c = [],\n d = \".\" + s[l];\n c.push(d), d = r + d, c.push(d);\n\n for (var f = 0; f < c.length; f++) {\n t[c[f]] && S(e, t[c[f]]);\n }\n }\n\n e.removeAttribute(\"class\");\n }\n\n t && t[r] && S(e, t[r]);\n }\n\n if (-1 !== [\"P\", \"H1\", \"H2\", \"H3\", \"H4\", \"H5\", \"H6\", \"PRE\"].indexOf(n)) {\n var p = e.getAttribute(\"class\");\n\n if (p && (t && t[n.toLowerCase() + \".\" + p] && S(e, t[n.toLowerCase() + \".\" + p]), -1 !== p.toLowerCase().indexOf(\"mso\"))) {\n var u = L(p);\n (u = u.replace(/[0-9a-z-_]*mso[0-9a-z-_]*/gi, \"\")) ? e.setAttribute(\"class\", u) : e.removeAttribute(\"class\");\n }\n\n var h = e.getAttribute(\"style\");\n\n if (h) {\n var g = h.match(/text-align:.+?[; \"]{1,1}/gi);\n g && g[g.length - 1].replace(/(text-align:.+?[; \"]{1,1})/gi, \"$1\");\n }\n\n A(e);\n }\n\n if (\"TR\" === n && function E(e, t) {\n y.node.clearAttributes(e);\n\n for (var n = e.firstElementChild, r = 0, a = !1, o = null; n;) {\n n.firstElementChild && -1 !== n.firstElementChild.tagName.indexOf(\"W:\") && (n.innerHTML = n.firstElementChild.innerHTML), (o = n.getAttribute(\"width\")) || a || (a = !0), r += parseInt(o, 10), (!n.firstChild || n.firstChild && n.firstChild.data === xt.UNICODE_NBSP) && (n.firstChild && T(n.firstChild), n.innerHTML = \"
    \");\n\n for (var i = n.firstElementChild, s = 1 === n.children.length; i;) {\n \"P\" !== i.tagName || M(i) || s && A(i), i = i.nextElementSibling;\n }\n\n if (t) {\n var l = n.getAttribute(\"class\");\n\n if (l) {\n var c = (l = L(l)).match(/xl[0-9]+/gi);\n\n if (c) {\n var d = \".\" + c[0];\n t[d] && S(n, t[d]);\n }\n }\n\n t.td && S(n, t.td);\n }\n\n var f = n.getAttribute(\"style\");\n f && (f = L(f)) && \";\" !== f.slice(-1) && (f += \";\");\n var p = n.getAttribute(\"valign\");\n\n if (!p && f) {\n var u = f.match(/vertical-align:.+?[; \"]{1,1}/gi);\n u && (p = u[u.length - 1].replace(/vertical-align:(.+?)[; \"]{1,1}/gi, \"$1\"));\n }\n\n var h = null;\n\n if (f) {\n var g = f.match(/text-align:.+?[; \"]{1,1}/gi);\n g && (h = g[g.length - 1].replace(/text-align:(.+?)[; \"]{1,1}/gi, \"$1\")), \"general\" === h && (h = null);\n }\n\n var m = null;\n\n if (f) {\n var v = f.match(/background:.+?[; \"]{1,1}/gi);\n v && (m = v[v.length - 1].replace(/background:(.+?)[; \"]{1,1}/gi, \"$1\"));\n }\n\n var b = n.getAttribute(\"colspan\"),\n C = n.getAttribute(\"rowspan\");\n b && n.setAttribute(\"colspan\", b), C && n.setAttribute(\"rowspan\", C), p && (n.style[\"vertical-align\"] = p), h && (n.style[\"text-align\"] = h), m && (n.style[\"background-color\"] = m), o && n.setAttribute(\"width\", o), n = n.nextElementSibling;\n }\n\n for (n = e.firstElementChild; n;) {\n o = n.getAttribute(\"width\"), a ? n.removeAttribute(\"width\") : n.setAttribute(\"width\", 100 * parseInt(o, 10) / r + \"%\"), n = n.nextElementSibling;\n }\n }(e, t), \"A\" !== n || e.attributes.getNamedItem(\"href\") || e.attributes.getNamedItem(\"name\") || !e.innerHTML || (e.outerHTML = e.innerHTML), \"A\" == n && e.getAttribute(\"href\") && e.querySelector(\"img\")) for (var m = e.querySelectorAll(\"span\"), v = 0; v < m.length; v++) {\n m[v].innerText || (m[v].outerHTML = m[v].innerHTML);\n }\n\n if (\"TD\" !== n && \"TH\" !== n || e.innerHTML || (e.innerHTML = \"
    \"), \"TABLE\" === n && (e.style.width = e.style.width), e.getAttribute(\"lang\") && e.removeAttribute(\"lang\"), e.getAttribute(\"style\") && -1 !== e.getAttribute(\"style\").toLowerCase().indexOf(\"mso\")) {\n var b = L(e.getAttribute(\"style\"));\n (b = b.replace(/[0-9a-z-_]*mso[0-9a-z-_]*:.+?(;{1,1}|$)/gi, \"\")) ? e.setAttribute(\"style\", b) : e.removeAttribute(\"style\");\n }\n\n return !0;\n }\n\n function o(e, t) {\n 0 <= e.indexOf(\"]*(]*>[.\\s\\S\\w\\W<>]*<\\/html>)[.\\s\\S\\w\\W<>]*/i, \"$1\")), function d(e) {\n for (var t = e.split(\"v:shape\"), n = 1; n < t.length; n++) {\n var r = t[n],\n a = r.split(' id=\"')[1];\n\n if (a && 1 < a.length) {\n a = a.split('\"')[0];\n var o = r.split(' o:spid=\"')[1];\n o && 1 < o.length && (o = o.split('\"')[0], p[a] = o);\n }\n }\n }(e);\n\n var n = new DOMParser().parseFromString(e, \"text/html\"),\n r = n.head,\n a = n.body,\n s = function f(e) {\n var t = {},\n n = e.getElementsByTagName(\"style\");\n\n if (n.length) {\n var r = n[0].innerHTML.match(/[\\S ]+\\s+{[\\s\\S]+?}/gi);\n if (r) for (var a = 0; a < r.length; a++) {\n var o = r[a],\n i = o.replace(/([\\S ]+\\s+){[\\s\\S]+?}/gi, \"$1\"),\n s = o.replace(/[\\S ]+\\s+{([\\s\\S]+?)}/gi, \"$1\");\n i = i.replace(/^[\\s]|[\\s]$/gm, \"\"), s = s.replace(/^[\\s]|[\\s]$/gm, \"\"), i = i.replace(/\\n|\\r|\\n\\r/g, \"\"), s = s.replace(/\\n|\\r|\\n\\r/g, \"\");\n\n for (var l = i.split(\", \"), c = 0; c < l.length; c++) {\n t[l[c]] = s;\n }\n }\n }\n\n return t;\n }(r);\n\n u(a, function (e) {\n if (e.nodeType === Node.TEXT_NODE && /\\n|\\u00a0|\\r/.test(e.data)) {\n if (!/\\S| /.test(e.data) && !/[\\u00a0]+/.test(e.data)) return e.data === xt.UNICODE_NBSP ? (e.data = \"\\u200B\", !0) : 1 === e.data.length && 10 === e.data.charCodeAt(0) ? (e.data = \" \", !0) : (T(e), !1);\n e.data = e.data.replace(/\\n|\\r/gi, \" \");\n }\n\n return !0;\n }), u(a, function (e) {\n return e.nodeType !== Node.ELEMENT_NODE || \"V:IMAGEDATA\" !== e.tagName && \"IMG\" !== e.tagName || g(e, t), !0;\n });\n\n for (var o = a.querySelectorAll(\"ul > ul, ul > ol, ol > ul, ol > ol\"), i = o.length - 1; 0 <= i; i--) {\n o[i].previousElementSibling && \"LI\" === o[i].previousElementSibling.tagName && o[i].previousElementSibling.appendChild(o[i]);\n }\n\n u(a, function (e) {\n if (e.nodeType === Node.TEXT_NODE) return e.data = e.data.replace(/
    (\\n|\\r)/gi, \"
    \"), !1;\n\n if (e.nodeType === Node.ELEMENT_NODE) {\n if (M(e)) {\n var t = e.parentNode,\n n = e.previousSibling,\n r = function x(e, t, n, r) {\n var a,\n o,\n i = /[0-9a-zA-Z]./gi,\n s = !1,\n l = navigator.userAgent.toLowerCase();\n -1 != l.indexOf(\"safari\") && (l = -1 < l.indexOf(\"chrome\") ? 1 : \"safari\"), e.innerHTML.includes(\"mso-list:\\nIgnore\") && (e.innerHTML = e.innerHTML.replace(/mso-list:\\nIgnore/gi, \"mso-list:Ignore\"));\n var c,\n d,\n f,\n p,\n u = e.querySelector('span[style=\"mso-list:Ignore\"]');\n null == u && \"safari\" == l && (u = e.querySelector('span[lang=\"PT-BR\"]'));\n var h;\n u && (s = s || i.test(u.textContent)), null !== u && (h = u.textContent.trim().split(\".\")[0]), f = 1 == s ? (\"1\" == (h = u.textContent.trim().split(\".\")[0]) ? p = \"decimal;\" : \"i\" == h ? p = \"lower-roman;\" : \"I\" == h ? p = \"upper-roman;\" : \"o\" == h ? p = \"circle;\" : h.match(/^v$/) || (h.match(/^[a-z]$/) || h.match(/^[a-z]\\)$/) ? p = \"lower-alpha;\" : (h.match(/^[A-Z]$/) || h.match(/^[A-Z]\\)$/)) && (p = \"upper-alpha;\")), p = \"list-style-type: \" + p, \"ol\") : (null != u && (h = u.textContent.trim().split(\".\")[0]), \"\\xa7\" == h ? p = \"square;\" : \"\\xb7\" == h && (p = \"disc;\"), p = \"list-style-type: \" + p, \"ul\");\n var g,\n m = \"\";\n u == undefined || u.textContent == undefined || isNaN(parseInt(u.textContent.trim().split(\".\")[1], 10)) || (m = ' class=\"decimal_type\" ');\n var v,\n b = O(e),\n C = e.style.marginLeft;\n if (C.includes(\"in\") ? (v = \"in\", C = parseFloat(C) - .5) : C.includes(\"pt\") && (v = \"px\", C = parseFloat(C) - 10), 1 == b) {\n if (g = p ? \"<\" + f + ' style = \"' + p + \"; margin-left:\" + C + v + ';\">' : \"<\" + f + ' style=\"margin-left:' + C + v + ';\">', \"list-style-type: upper-alpha;\" == p) {\n var E = h.charCodeAt(0) - 64;\n g = p ? \"<\" + f + m + ' start=\"' + E + '\" style = \"' + p + \" margin-left:\" + C + v + ';\">' : \"<\" + f + \">\";\n } else if (\"list-style-type: lower-alpha;\" == p) {\n var y = h.charCodeAt(0) - 96;\n g = p ? \"<\" + f + m + ' start=\"' + y + '\" style = \"' + p + \"margin-left:\" + C + v + ';\">' : \"<\" + f + \">\";\n } else g = p ? \"<\" + f + m + ' style = \"' + p + \";margin-left:\" + C + v + ';\">' : \"<\" + f + ' style=\"margin-left:' + C + v + ';\">';\n } else if (\"list-style-type: upper-alpha;\" == p) {\n var T = h.charCodeAt(0) - 64;\n g = p ? \"<\" + f + m + ' style = \"' + p + ' start=\"' + T + '\">' : \"<\" + f + \">\";\n } else if (\"list-style-type: lower-alpha;\" == p) {\n var A = h.charCodeAt(0) - 96;\n g = p ? \"<\" + f + m + ' style = \"' + p + ' start=\"' + A + '\">' : \"<\" + f + \">\";\n } else g = p ? \"<\" + f + m + ' style = \"' + p + '\">' : \"<\" + f + \">\";\n\n for (var L = !1; e;) {\n if (!M(e)) {\n if (e.outerHTML && 0 < e.outerHTML.indexOf(\"mso-bookmark\") && 0 == (e.textContent || \"\").length) {\n e = e.nextElementSibling;\n continue;\n }\n\n break;\n }\n\n var S = O(e);\n if ((n = n || S) < S) g += (d = x(e, t, S, e.style.marginLeft)).el.outerHTML, e = d.currentNode;else {\n if (S < n) break;\n e.firstElementChild && e.firstElementChild.firstElementChild && e.firstElementChild.firstElementChild.firstChild && (i.lastIndex = 0), o && o.firstElementChild && o.firstElementChild.firstElementChild && o.firstElementChild.firstElementChild.firstChild && (i.lastIndex = 0, a = i.test(o.firstElementChild.firstElementChild.firstChild.data || o.firstElementChild.firstElementChild.firstChild.firstChild && o.firstElementChild.firstElementChild.firstChild.firstChild.data || \"\"));\n var w = !1;\n (!r && !e.style.marginLeft || r && e.style.marginLeft && r === e.style.marginLeft) && (w = !0), r = e.style.marginLeft, w || a === undefined ? (c = N(e, t), e.nextSibling.innerText == undefined || e.nextSibling.innerText == undefined || g.includes('class=\"decimal_type\"') || isNaN(parseInt(e.nextSibling.innerText.trim().split(\".\")[1], 10)) || (g = g.substring(3, 0) + ' class=\"decimal_type\"' + g.substring(3, g.length)), g += \"
  • \" + c + \"
  • \") : (1 == S && (g += \"\", L = !0, o = null), g += (d = x(e, t, S, e.style.marginLeft)).el.outerHTML, e = d.currentNode);\n var R = e && e.nextElementSibling;\n\n if (R && (o = R.previousElementSibling), e && !M(e)) {\n if (e.outerHTML && 0 < e.outerHTML.indexOf(\"mso-bookmark\") && 0 == (e.textContent || \"\").length) {\n e = e.nextElementSibling;\n continue;\n }\n\n break;\n }\n\n e && e.parentNode && e.parentNode.removeChild(e), e = R;\n }\n }\n\n L || (g += \"\");\n\n var _ = document.createElement(\"div\");\n\n return _.innerHTML = g, {\n el: _,\n currentNode: e\n };\n }(e, s).el,\n a = null;\n\n return (a = n ? n.nextSibling : t.firstChild) ? t.insertBefore(r, a) : t.appendChild(r), !1;\n }\n\n return \"FONT\" === e.tagName && s[\".\" + e.getAttribute(\"class\")] && (e = C(e, \"span\")), m(e, s);\n }\n\n if (e.nodeType !== Node.COMMENT_NODE) return !0;\n if (-1 < e.data.indexOf(\"[if !supportLineBreakNewLine]\")) for (var o = e.nextSibling; o;) {\n (o = e.nextSibling) && T(o), o.data && -1 < o.data.indexOf(\"[endif]\") && (o = null);\n }\n\n if (-1 < e.data.indexOf(\"[if supportFields]\") && -1 < e.data.indexOf(\"FORMCHECKBOX\")) {\n var i = document.createElement(\"input\");\n i.type = \"checkbox\", e.parentNode.insertBefore(i, e.nextSibling);\n }\n\n return T(e), !1;\n }), u(a, function (e) {\n if (e.nodeType === Node.ELEMENT_NODE) {\n var t = e.tagName;\n\n if (!e.innerHTML && -1 === [\"BR\", \"IMG\", \"INPUT\"].indexOf(t)) {\n for (var n = e.parentNode; n && (T(e), !(e = n).innerHTML) && \"TD\" !== e.parentNode.tagName;) {\n n = e.parentNode;\n }\n\n return !1;\n }\n\n !function d(e) {\n var t = e.getAttribute(\"style\");\n\n if (t) {\n (t = L(t)) && \";\" !== t.slice(-1) && (t += \";\");\n var n = t.match(/(^|\\S+?):.+?;{1,1}/gi);\n\n if (n) {\n for (var r = {}, a = 0; a < n.length; a++) {\n var o = n[a].split(\":\");\n 2 === o.length && (\"text-align\" === o[0] && \"SPAN\" === e.tagName || (r[o[0]] = o[1]));\n }\n\n var i = \"\";\n\n for (var s in r) {\n if (r.hasOwnProperty(s)) {\n if (\"font-size\" === s && \"pt;\" === r[s].slice(-3)) {\n var l = null;\n\n try {\n l = parseFloat(r[s].slice(0, -3), 10);\n } catch (c) {\n l = null;\n }\n\n l && (l = Math.round(1.33 * l), r[s] = l + \"px;\");\n }\n\n i += s + \":\" + r[s];\n }\n }\n\n i && e.setAttribute(\"style\", i);\n }\n }\n }(e);\n }\n\n return !0;\n }), u(a, function (e) {\n if (e && \"A\" === e.nodeName && \"\" === e.href) {\n for (var t = document.createDocumentFragment(); e.firstChild;) {\n t.appendChild(e.firstChild);\n }\n\n e.parentNode.replaceChild(t, e);\n }\n\n return !0;\n });\n var l = a.outerHTML,\n c = y.opts.htmlAllowedStyleProps;\n return y.opts.htmlAllowedStyleProps = y.opts.wordAllowedStyleProps, l = y.clean.html(l, y.opts.wordDeniedTags, y.opts.wordDeniedAttrs, !1), y.opts.htmlAllowedStyleProps = c, l;\n }\n\n return {\n _init: function e() {\n y.events.on(\"paste.wordPaste\", function (e) {\n return a = e, y.opts.wordPasteModal ? function o() {\n if (!i) {\n var e = '

    ' + y.language.translate(\"Word Paste Detected\") + \"

    \",\n t = function a() {\n var e = '
    ';\n return e += '

    ' + y.language.translate(\"The pasted content is coming from a Microsoft Word document. Do you want to keep the format or clean it up?\") + \"

    \", e += '
    \", e += \"
    \";\n }(),\n n = y.modals.create(s, e, t),\n r = n.$body;\n\n i = n.$modal, n.$modal.addClass(\"fr-middle\"), y.events.bindClick(r, \"button.fr-remove-word\", function () {\n var e = i.data(\"instance\") || y;\n e.wordPaste.clean();\n }), y.events.bindClick(r, \"button.fr-keep-word\", function () {\n var e = i.data(\"instance\") || y;\n e.wordPaste.clean(!0);\n }), y.events.$on(c(y.o_win), \"resize\", function () {\n y.modals.resize(s);\n });\n }\n\n y.modals.show(s), y.modals.resize(s);\n }() : t(y.opts.wordPasteKeepFormatting), !1;\n });\n },\n clean: t,\n _wordClean: o\n };\n }, xt;\n});","// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n\nrequire('jquery')\nrequire(\"@rails/ujs\").start()\nrequire(\"turbolinks\").start()\nrequire(\"@rails/activestorage\").start()\nrequire(\"channels\")\n\n\n\nimport '../stylesheets/application'\n\nrequire('navbar-burger')\n\nimport FroalaEditor from 'froala-editor/js/froala_editor.pkgd.min'\nwindow.FroalaEditor = FroalaEditor //unless FroalaEditor is assigned to window, it does not persist? wtf\n\n//require('froala-editor/js/plugins.min')\n\n\ndocument.addEventListener('turbolinks:load', () => {\n\n // Get all \"navbar-burger\" elements\n const $navbarBurgers = Array.prototype.slice.call(document.querySelectorAll('.navbar-burger'), 0);\n\n // Check if there are any navbar burgers\n if ($navbarBurgers.length > 0) {\n\n // Add a click event on each of them\n $navbarBurgers.forEach( el => {\n el.addEventListener('click', () => {\n\n // Get the target from the \"data-target\" attribute\n const target = el.dataset.target;\n const $target = document.getElementById(target);\n\n // Toggle the \"is-active\" class on both the \"navbar-burger\" and the \"navbar-menu\"\n el.classList.toggle('is-active');\n $target.classList.toggle('is-active');\n\n });\n });\n }\n\n});\n\n\n\n\n\n\n// Uncomment to copy all static images under ../images to the output folder and reference\n// them with the image_pack_tag helper in views (e.g <%= image_pack_tag 'rails.png' %>)\n// or the `imagePath` JavaScript helper below.\n//\n// const images = require.context('../images', true)\n// const imagePath = (name) => images(name, true)\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*!\n * jQuery JavaScript Library v3.6.0\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2021-03-02T17:08Z\n */\n(function (global, factory) {\n \"use strict\";\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && _typeof(module.exports) === \"object\") {\n // For CommonJS and CommonJS-like environments where a proper `window`\n // is present, execute the factory and get jQuery.\n // For environments that do not have a `window` with a `document`\n // (such as Node.js), expose a factory as module.exports.\n // This accentuates the need for the creation of a real `window`.\n // e.g. var jQuery = require(\"jquery\")(window);\n // See ticket #14549 for more info.\n module.exports = global.document ? factory(global, true) : function (w) {\n if (!w.document) {\n throw new Error(\"jQuery requires a window with a document\");\n }\n\n return factory(w);\n };\n } else {\n factory(global);\n } // Pass this if window is not defined yet\n\n})(typeof window !== \"undefined\" ? window : this, function (window, noGlobal) {\n // Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n // throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n // arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n // enough that all such attempts are guarded in a try block.\n \"use strict\";\n\n var arr = [];\n var getProto = Object.getPrototypeOf;\n var _slice = arr.slice;\n var flat = arr.flat ? function (array) {\n return arr.flat.call(array);\n } : function (array) {\n return arr.concat.apply([], array);\n };\n var push = arr.push;\n var indexOf = arr.indexOf;\n var class2type = {};\n var toString = class2type.toString;\n var hasOwn = class2type.hasOwnProperty;\n var fnToString = hasOwn.toString;\n var ObjectFunctionString = fnToString.call(Object);\n var support = {};\n\n var isFunction = function isFunction(obj) {\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n // Plus for old WebKit, typeof returns \"function\" for HTML collections\n // (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\" && typeof obj.item !== \"function\";\n };\n\n var isWindow = function isWindow(obj) {\n return obj != null && obj === obj.window;\n };\n\n var document = window.document;\n var preservedScriptAttributes = {\n type: true,\n src: true,\n nonce: true,\n noModule: true\n };\n\n function DOMEval(code, node, doc) {\n doc = doc || document;\n var i,\n val,\n script = doc.createElement(\"script\");\n script.text = code;\n\n if (node) {\n for (i in preservedScriptAttributes) {\n // Support: Firefox 64+, Edge 18+\n // Some browsers don't support the \"nonce\" property on scripts.\n // On the other hand, just using `getAttribute` is not enough as\n // the `nonce` attribute is reset to an empty string whenever it\n // becomes browsing-context connected.\n // See https://github.com/whatwg/html/issues/2369\n // See https://html.spec.whatwg.org/#nonce-attributes\n // The `node.getAttribute` check was added for the sake of\n // `jQuery.globalEval` so that it can fake a nonce-containing node\n // via an object.\n val = node[i] || node.getAttribute && node.getAttribute(i);\n\n if (val) {\n script.setAttribute(i, val);\n }\n }\n }\n\n doc.head.appendChild(script).parentNode.removeChild(script);\n }\n\n function toType(obj) {\n if (obj == null) {\n return obj + \"\";\n } // Support: Android <=2.3 only (functionish RegExp)\n\n\n return _typeof(obj) === \"object\" || typeof obj === \"function\" ? class2type[toString.call(obj)] || \"object\" : _typeof(obj);\n }\n /* global Symbol */\n // Defining this global in .eslintrc.json would create a danger of using the global\n // unguarded in another place, it seems safer to define global only for this module\n\n\n var version = \"3.6.0\",\n // Define a local copy of jQuery\n jQuery = function jQuery(selector, context) {\n // The jQuery object is actually just the init constructor 'enhanced'\n // Need init if jQuery is called (just allow error to be thrown if not included)\n return new jQuery.fn.init(selector, context);\n };\n\n jQuery.fn = jQuery.prototype = {\n // The current version of jQuery being used\n jquery: version,\n constructor: jQuery,\n // The default length of a jQuery object is 0\n length: 0,\n toArray: function toArray() {\n return _slice.call(this);\n },\n // Get the Nth element in the matched element set OR\n // Get the whole matched element set as a clean array\n get: function get(num) {\n // Return all the elements in a clean array\n if (num == null) {\n return _slice.call(this);\n } // Return just the one element from the set\n\n\n return num < 0 ? this[num + this.length] : this[num];\n },\n // Take an array of elements and push it onto the stack\n // (returning the new matched element set)\n pushStack: function pushStack(elems) {\n // Build a new jQuery matched element set\n var ret = jQuery.merge(this.constructor(), elems); // Add the old object onto the stack (as a reference)\n\n ret.prevObject = this; // Return the newly-formed element set\n\n return ret;\n },\n // Execute a callback for every element in the matched set.\n each: function each(callback) {\n return jQuery.each(this, callback);\n },\n map: function map(callback) {\n return this.pushStack(jQuery.map(this, function (elem, i) {\n return callback.call(elem, i, elem);\n }));\n },\n slice: function slice() {\n return this.pushStack(_slice.apply(this, arguments));\n },\n first: function first() {\n return this.eq(0);\n },\n last: function last() {\n return this.eq(-1);\n },\n even: function even() {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return (i + 1) % 2;\n }));\n },\n odd: function odd() {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return i % 2;\n }));\n },\n eq: function eq(i) {\n var len = this.length,\n j = +i + (i < 0 ? len : 0);\n return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\n },\n end: function end() {\n return this.prevObject || this.constructor();\n },\n // For internal use only.\n // Behaves like an Array's method, not like a jQuery method.\n push: push,\n sort: arr.sort,\n splice: arr.splice\n };\n\n jQuery.extend = jQuery.fn.extend = function () {\n var options,\n name,\n src,\n copy,\n copyIsArray,\n clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false; // Handle a deep copy situation\n\n if (typeof target === \"boolean\") {\n deep = target; // Skip the boolean and the target\n\n target = arguments[i] || {};\n i++;\n } // Handle case when target is a string or something (possible in deep copy)\n\n\n if (_typeof(target) !== \"object\" && !isFunction(target)) {\n target = {};\n } // Extend jQuery itself if only one argument is passed\n\n\n if (i === length) {\n target = this;\n i--;\n }\n\n for (; i < length; i++) {\n // Only deal with non-null/undefined values\n if ((options = arguments[i]) != null) {\n // Extend the base object\n for (name in options) {\n copy = options[name]; // Prevent Object.prototype pollution\n // Prevent never-ending loop\n\n if (name === \"__proto__\" || target === copy) {\n continue;\n } // Recurse if we're merging plain objects or arrays\n\n\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n src = target[name]; // Ensure proper type for the source value\n\n if (copyIsArray && !Array.isArray(src)) {\n clone = [];\n } else if (!copyIsArray && !jQuery.isPlainObject(src)) {\n clone = {};\n } else {\n clone = src;\n }\n\n copyIsArray = false; // Never move original objects, clone them\n\n target[name] = jQuery.extend(deep, clone, copy); // Don't bring in undefined values\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n } // Return the modified object\n\n\n return target;\n };\n\n jQuery.extend({\n // Unique for each copy of jQuery on the page\n expando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\n // Assume jQuery is ready without the ready module\n isReady: true,\n error: function error(msg) {\n throw new Error(msg);\n },\n noop: function noop() {},\n isPlainObject: function isPlainObject(obj) {\n var proto, Ctor; // Detect obvious negatives\n // Use toString instead of jQuery.type to catch host objects\n\n if (!obj || toString.call(obj) !== \"[object Object]\") {\n return false;\n }\n\n proto = getProto(obj); // Objects with no prototype (e.g., `Object.create( null )`) are plain\n\n if (!proto) {\n return true;\n } // Objects with prototype are plain iff they were constructed by a global Object function\n\n\n Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n },\n isEmptyObject: function isEmptyObject(obj) {\n var name;\n\n for (name in obj) {\n return false;\n }\n\n return true;\n },\n // Evaluates a script in a provided context; falls back to the global one\n // if not specified.\n globalEval: function globalEval(code, options, doc) {\n DOMEval(code, {\n nonce: options && options.nonce\n }, doc);\n },\n each: function each(obj, callback) {\n var length,\n i = 0;\n\n if (isArrayLike(obj)) {\n length = obj.length;\n\n for (; i < length; i++) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n }\n\n return obj;\n },\n // results is for internal usage only\n makeArray: function makeArray(arr, results) {\n var ret = results || [];\n\n if (arr != null) {\n if (isArrayLike(Object(arr))) {\n jQuery.merge(ret, typeof arr === \"string\" ? [arr] : arr);\n } else {\n push.call(ret, arr);\n }\n }\n\n return ret;\n },\n inArray: function inArray(elem, arr, i) {\n return arr == null ? -1 : indexOf.call(arr, elem, i);\n },\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n merge: function merge(first, second) {\n var len = +second.length,\n j = 0,\n i = first.length;\n\n for (; j < len; j++) {\n first[i++] = second[j];\n }\n\n first.length = i;\n return first;\n },\n grep: function grep(elems, callback, invert) {\n var callbackInverse,\n matches = [],\n i = 0,\n length = elems.length,\n callbackExpect = !invert; // Go through the array, only saving the items\n // that pass the validator function\n\n for (; i < length; i++) {\n callbackInverse = !callback(elems[i], i);\n\n if (callbackInverse !== callbackExpect) {\n matches.push(elems[i]);\n }\n }\n\n return matches;\n },\n // arg is for internal usage only\n map: function map(elems, callback, arg) {\n var length,\n value,\n i = 0,\n ret = []; // Go through the array, translating each of the items to their new values\n\n if (isArrayLike(elems)) {\n length = elems.length;\n\n for (; i < length; i++) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n } // Go through every key on the object,\n\n } else {\n for (i in elems) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n }\n } // Flatten any nested arrays\n\n\n return flat(ret);\n },\n // A global GUID counter for objects\n guid: 1,\n // jQuery.support is not used in Core but other projects attach their\n // properties to it so it needs to exist.\n support: support\n });\n\n if (typeof Symbol === \"function\") {\n jQuery.fn[Symbol.iterator] = arr[Symbol.iterator];\n } // Populate the class2type map\n\n\n jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (_i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n\n function isArrayLike(obj) {\n // Support: real iOS 8.2 only (not reproducible in simulator)\n // `in` check used to prevent JIT error (gh-2145)\n // hasOwn isn't used here due to false negatives\n // regarding Nodelist length in IE\n var length = !!obj && \"length\" in obj && obj.length,\n type = toType(obj);\n\n if (isFunction(obj) || isWindow(obj)) {\n return false;\n }\n\n return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\n\n var Sizzle =\n /*!\n * Sizzle CSS Selector Engine v2.3.6\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2021-02-16\n */\n function (window) {\n var i,\n support,\n Expr,\n getText,\n isXML,\n tokenize,\n compile,\n select,\n outermostContext,\n sortInput,\n hasDuplicate,\n // Local document vars\n setDocument,\n document,\n docElem,\n documentIsHTML,\n rbuggyQSA,\n rbuggyMatches,\n matches,\n contains,\n // Instance-specific data\n expando = \"sizzle\" + 1 * new Date(),\n preferredDoc = window.document,\n dirruns = 0,\n done = 0,\n classCache = createCache(),\n tokenCache = createCache(),\n compilerCache = createCache(),\n nonnativeSelectorCache = createCache(),\n sortOrder = function sortOrder(a, b) {\n if (a === b) {\n hasDuplicate = true;\n }\n\n return 0;\n },\n // Instance methods\n hasOwn = {}.hasOwnProperty,\n arr = [],\n pop = arr.pop,\n pushNative = arr.push,\n push = arr.push,\n slice = arr.slice,\n // Use a stripped-down indexOf as it's faster than native\n // https://jsperf.com/thor-indexof-vs-for/5\n indexOf = function indexOf(list, elem) {\n var i = 0,\n len = list.length;\n\n for (; i < len; i++) {\n if (list[i] === elem) {\n return i;\n }\n }\n\n return -1;\n },\n booleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" + \"ismap|loop|multiple|open|readonly|required|scoped\",\n // Regular expressions\n // http://www.w3.org/TR/css3-selectors/#whitespace\n whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n identifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n attributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace + // Operator (capture 2)\n \"*([*^$|!~]?=)\" + whitespace + // \"Attribute values must be CSS identifiers [capture 5]\n // or strings [capture 3 or capture 4]\"\n \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace + \"*\\\\]\",\n pseudos = \":(\" + identifier + \")(?:\\\\((\" + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n // 1. quoted (capture 3; capture 4 or capture 5)\n \"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" + // 2. simple (capture 6)\n \"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" + // 3. anything else (capture 2)\n \".*\" + \")\\\\)|)\",\n // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n rwhitespace = new RegExp(whitespace + \"+\", \"g\"),\n rtrim = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\"),\n rcomma = new RegExp(\"^\" + whitespace + \"*,\" + whitespace + \"*\"),\n rcombinators = new RegExp(\"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\"),\n rdescend = new RegExp(whitespace + \"|>\"),\n rpseudo = new RegExp(pseudos),\n ridentifier = new RegExp(\"^\" + identifier + \"$\"),\n matchExpr = {\n \"ID\": new RegExp(\"^#(\" + identifier + \")\"),\n \"CLASS\": new RegExp(\"^\\\\.(\" + identifier + \")\"),\n \"TAG\": new RegExp(\"^(\" + identifier + \"|[*])\"),\n \"ATTR\": new RegExp(\"^\" + attributes),\n \"PSEUDO\": new RegExp(\"^\" + pseudos),\n \"CHILD\": new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\"),\n \"bool\": new RegExp(\"^(?:\" + booleans + \")$\", \"i\"),\n // For use in libraries implementing .is()\n // We use this for POS matching in `select`\n \"needsContext\": new RegExp(\"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\")\n },\n rhtml = /HTML$/i,\n rinputs = /^(?:input|select|textarea|button)$/i,\n rheader = /^h\\d$/i,\n rnative = /^[^{]+\\{\\s*\\[native \\w/,\n // Easily-parseable/retrievable ID or TAG or CLASS selectors\n rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n rsibling = /[+~]/,\n // CSS escapes\n // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n runescape = new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\"),\n funescape = function funescape(escape, nonHex) {\n var high = \"0x\" + escape.slice(1) - 0x10000;\n return nonHex ? // Strip the backslash prefix from a non-hex escape sequence\n nonHex : // Replace a hexadecimal escape sequence with the encoded Unicode code point\n // Support: IE <=11+\n // For values outside the Basic Multilingual Plane (BMP), manually construct a\n // surrogate pair\n high < 0 ? String.fromCharCode(high + 0x10000) : String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);\n },\n // CSS string/identifier serialization\n // https://drafts.csswg.org/cssom/#common-serializing-idioms\n rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n fcssescape = function fcssescape(ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === \"\\0\") {\n return \"\\uFFFD\";\n } // Control characters and (dependent upon position) numbers get escaped as code points\n\n\n return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\n } // Other potentially-special ASCII characters get backslash-escaped\n\n\n return \"\\\\\" + ch;\n },\n // Used for iframes\n // See setDocument()\n // Removing the function wrapper causes a \"Permission Denied\"\n // error in IE\n unloadHandler = function unloadHandler() {\n setDocument();\n },\n inDisabledFieldset = addCombinator(function (elem) {\n return elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n }, {\n dir: \"parentNode\",\n next: \"legend\"\n }); // Optimize for push.apply( _, NodeList )\n\n\n try {\n push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes); // Support: Android<4.0\n // Detect silently failing push.apply\n // eslint-disable-next-line no-unused-expressions\n\n arr[preferredDoc.childNodes.length].nodeType;\n } catch (e) {\n push = {\n apply: arr.length ? // Leverage slice if possible\n function (target, els) {\n pushNative.apply(target, slice.call(els));\n } : // Support: IE<9\n // Otherwise append directly\n function (target, els) {\n var j = target.length,\n i = 0; // Can't trust NodeList.length\n\n while (target[j++] = els[i++]) {}\n\n target.length = j - 1;\n }\n };\n }\n\n function Sizzle(selector, context, results, seed) {\n var m,\n i,\n elem,\n nid,\n match,\n groups,\n newSelector,\n newContext = context && context.ownerDocument,\n // nodeType defaults to 9, since context defaults to document\n nodeType = context ? context.nodeType : 9;\n results = results || []; // Return early from calls with invalid selector or context\n\n if (typeof selector !== \"string\" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) {\n return results;\n } // Try to shortcut find operations (as opposed to filters) in HTML documents\n\n\n if (!seed) {\n setDocument(context);\n context = context || document;\n\n if (documentIsHTML) {\n // If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n // (excepting DocumentFragment context, where the methods don't exist)\n if (nodeType !== 11 && (match = rquickExpr.exec(selector))) {\n // ID selector\n if (m = match[1]) {\n // Document context\n if (nodeType === 9) {\n if (elem = context.getElementById(m)) {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (elem.id === m) {\n results.push(elem);\n return results;\n }\n } else {\n return results;\n } // Element context\n\n } else {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (newContext && (elem = newContext.getElementById(m)) && contains(context, elem) && elem.id === m) {\n results.push(elem);\n return results;\n }\n } // Type selector\n\n } else if (match[2]) {\n push.apply(results, context.getElementsByTagName(selector));\n return results; // Class selector\n } else if ((m = match[3]) && support.getElementsByClassName && context.getElementsByClassName) {\n push.apply(results, context.getElementsByClassName(m));\n return results;\n }\n } // Take advantage of querySelectorAll\n\n\n if (support.qsa && !nonnativeSelectorCache[selector + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(selector)) && ( // Support: IE 8 only\n // Exclude object elements\n nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\")) {\n newSelector = selector;\n newContext = context; // qSA considers elements outside a scoping root when evaluating child or\n // descendant combinators, which is not what we want.\n // In such cases, we work around the behavior by prefixing every selector in the\n // list with an ID selector referencing the scope context.\n // The technique has to be used as well when a leading combinator is used\n // as such selectors are not recognized by querySelectorAll.\n // Thanks to Andrew Dupont for this technique.\n\n if (nodeType === 1 && (rdescend.test(selector) || rcombinators.test(selector))) {\n // Expand context for sibling selectors\n newContext = rsibling.test(selector) && testContext(context.parentNode) || context; // We can use :scope instead of the ID hack if the browser\n // supports it & if we're not changing the context.\n\n if (newContext !== context || !support.scope) {\n // Capture the context ID, setting it first if necessary\n if (nid = context.getAttribute(\"id\")) {\n nid = nid.replace(rcssescape, fcssescape);\n } else {\n context.setAttribute(\"id\", nid = expando);\n }\n } // Prefix every selector in the list\n\n\n groups = tokenize(selector);\n i = groups.length;\n\n while (i--) {\n groups[i] = (nid ? \"#\" + nid : \":scope\") + \" \" + toSelector(groups[i]);\n }\n\n newSelector = groups.join(\",\");\n }\n\n try {\n push.apply(results, newContext.querySelectorAll(newSelector));\n return results;\n } catch (qsaError) {\n nonnativeSelectorCache(selector, true);\n } finally {\n if (nid === expando) {\n context.removeAttribute(\"id\");\n }\n }\n }\n }\n } // All others\n\n\n return select(selector.replace(rtrim, \"$1\"), context, results, seed);\n }\n /**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\n\n\n function createCache() {\n var keys = [];\n\n function cache(key, value) {\n // Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n if (keys.push(key + \" \") > Expr.cacheLength) {\n // Only keep the most recent entries\n delete cache[keys.shift()];\n }\n\n return cache[key + \" \"] = value;\n }\n\n return cache;\n }\n /**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\n\n\n function markFunction(fn) {\n fn[expando] = true;\n return fn;\n }\n /**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\n\n\n function assert(fn) {\n var el = document.createElement(\"fieldset\");\n\n try {\n return !!fn(el);\n } catch (e) {\n return false;\n } finally {\n // Remove from its parent by default\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n } // release memory in IE\n\n\n el = null;\n }\n }\n /**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\n\n\n function addHandle(attrs, handler) {\n var arr = attrs.split(\"|\"),\n i = arr.length;\n\n while (i--) {\n Expr.attrHandle[arr[i]] = handler;\n }\n }\n /**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\n\n\n function siblingCheck(a, b) {\n var cur = b && a,\n diff = cur && a.nodeType === 1 && b.nodeType === 1 && a.sourceIndex - b.sourceIndex; // Use IE sourceIndex if available on both nodes\n\n if (diff) {\n return diff;\n } // Check if b follows a\n\n\n if (cur) {\n while (cur = cur.nextSibling) {\n if (cur === b) {\n return -1;\n }\n }\n }\n\n return a ? 1 : -1;\n }\n /**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\n\n\n function createInputPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\n\n\n function createButtonPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return (name === \"input\" || name === \"button\") && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\n\n\n function createDisabledPseudo(disabled) {\n // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n return function (elem) {\n // Only certain elements can match :enabled or :disabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n if (\"form\" in elem) {\n // Check for inherited disabledness on relevant non-disabled elements:\n // * listed form-associated elements in a disabled fieldset\n // https://html.spec.whatwg.org/multipage/forms.html#category-listed\n // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n // * option elements in a disabled optgroup\n // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n // All such elements have a \"form\" property.\n if (elem.parentNode && elem.disabled === false) {\n // Option elements defer to a parent optgroup if present\n if (\"label\" in elem) {\n if (\"label\" in elem.parentNode) {\n return elem.parentNode.disabled === disabled;\n } else {\n return elem.disabled === disabled;\n }\n } // Support: IE 6 - 11\n // Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\n\n return elem.isDisabled === disabled || // Where there is no isDisabled, check manually\n\n /* jshint -W018 */\n elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled;\n }\n\n return elem.disabled === disabled; // Try to winnow out elements that can't be disabled before trusting the disabled property.\n // Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n // even exist on them, let alone have a boolean value.\n } else if (\"label\" in elem) {\n return elem.disabled === disabled;\n } // Remaining elements are neither :enabled nor :disabled\n\n\n return false;\n };\n }\n /**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\n\n\n function createPositionalPseudo(fn) {\n return markFunction(function (argument) {\n argument = +argument;\n return markFunction(function (seed, matches) {\n var j,\n matchIndexes = fn([], seed.length, argument),\n i = matchIndexes.length; // Match elements found at the specified indexes\n\n while (i--) {\n if (seed[j = matchIndexes[i]]) {\n seed[j] = !(matches[j] = seed[j]);\n }\n }\n });\n });\n }\n /**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\n\n\n function testContext(context) {\n return context && typeof context.getElementsByTagName !== \"undefined\" && context;\n } // Expose support vars for convenience\n\n\n support = Sizzle.support = {};\n /**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\n\n isXML = Sizzle.isXML = function (elem) {\n var namespace = elem && elem.namespaceURI,\n docElem = elem && (elem.ownerDocument || elem).documentElement; // Support: IE <=8\n // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n // https://bugs.jquery.com/ticket/4833\n\n return !rhtml.test(namespace || docElem && docElem.nodeName || \"HTML\");\n };\n /**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\n\n\n setDocument = Sizzle.setDocument = function (node) {\n var hasCompare,\n subWindow,\n doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (doc == document || doc.nodeType !== 9 || !doc.documentElement) {\n return document;\n } // Update global variables\n\n\n document = doc;\n docElem = document.documentElement;\n documentIsHTML = !isXML(document); // Support: IE 9 - 11+, Edge 12 - 18+\n // Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (preferredDoc != document && (subWindow = document.defaultView) && subWindow.top !== subWindow) {\n // Support: IE 11, Edge\n if (subWindow.addEventListener) {\n subWindow.addEventListener(\"unload\", unloadHandler, false); // Support: IE 9 - 10 only\n } else if (subWindow.attachEvent) {\n subWindow.attachEvent(\"onunload\", unloadHandler);\n }\n } // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n // Safari 4 - 5 only, Opera <=11.6 - 12.x only\n // IE/Edge & older browsers don't support the :scope pseudo-class.\n // Support: Safari 6.0 only\n // Safari 6.0 supports :scope but it's an alias of :root there.\n\n\n support.scope = assert(function (el) {\n docElem.appendChild(el).appendChild(document.createElement(\"div\"));\n return typeof el.querySelectorAll !== \"undefined\" && !el.querySelectorAll(\":scope fieldset div\").length;\n });\n /* Attributes\n ---------------------------------------------------------------------- */\n // Support: IE<8\n // Verify that getAttribute really returns attributes and not properties\n // (excepting IE8 booleans)\n\n support.attributes = assert(function (el) {\n el.className = \"i\";\n return !el.getAttribute(\"className\");\n });\n /* getElement(s)By*\n ---------------------------------------------------------------------- */\n // Check if getElementsByTagName(\"*\") returns only elements\n\n support.getElementsByTagName = assert(function (el) {\n el.appendChild(document.createComment(\"\"));\n return !el.getElementsByTagName(\"*\").length;\n }); // Support: IE<9\n\n support.getElementsByClassName = rnative.test(document.getElementsByClassName); // Support: IE<10\n // Check if getElementById returns elements by name\n // The broken getElementById methods don't pick up programmatically-set names,\n // so use a roundabout getElementsByName test\n\n support.getById = assert(function (el) {\n docElem.appendChild(el).id = expando;\n return !document.getElementsByName || !document.getElementsByName(expando).length;\n }); // ID filter and find\n\n if (support.getById) {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n return elem.getAttribute(\"id\") === attrId;\n };\n };\n\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var elem = context.getElementById(id);\n return elem ? [elem] : [];\n }\n };\n } else {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n var node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n return node && node.value === attrId;\n };\n }; // Support: IE 6 - 7 only\n // getElementById is not reliable as a find shortcut\n\n\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var node,\n i,\n elems,\n elem = context.getElementById(id);\n\n if (elem) {\n // Verify the id attribute\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n } // Fall back on getElementsByName\n\n\n elems = context.getElementsByName(id);\n i = 0;\n\n while (elem = elems[i++]) {\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n }\n }\n }\n\n return [];\n }\n };\n } // Tag\n\n\n Expr.find[\"TAG\"] = support.getElementsByTagName ? function (tag, context) {\n if (typeof context.getElementsByTagName !== \"undefined\") {\n return context.getElementsByTagName(tag); // DocumentFragment nodes don't have gEBTN\n } else if (support.qsa) {\n return context.querySelectorAll(tag);\n }\n } : function (tag, context) {\n var elem,\n tmp = [],\n i = 0,\n // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n results = context.getElementsByTagName(tag); // Filter out possible comments\n\n if (tag === \"*\") {\n while (elem = results[i++]) {\n if (elem.nodeType === 1) {\n tmp.push(elem);\n }\n }\n\n return tmp;\n }\n\n return results;\n }; // Class\n\n Expr.find[\"CLASS\"] = support.getElementsByClassName && function (className, context) {\n if (typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML) {\n return context.getElementsByClassName(className);\n }\n };\n /* QSA/matchesSelector\n ---------------------------------------------------------------------- */\n // QSA and matchesSelector support\n // matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\n\n rbuggyMatches = []; // qSa(:focus) reports false when true (Chrome 21)\n // We allow this because of a bug in IE8/9 that throws an error\n // whenever `document.activeElement` is accessed on an iframe\n // So, we allow :focus to pass through QSA all the time to avoid the IE error\n // See https://bugs.jquery.com/ticket/13378\n\n rbuggyQSA = [];\n\n if (support.qsa = rnative.test(document.querySelectorAll)) {\n // Build QSA regex\n // Regex strategy adopted from Diego Perini\n assert(function (el) {\n var input; // Select is set to empty string on purpose\n // This is to test IE's treatment of not explicitly\n // setting a boolean content attribute,\n // since its presence should be enough\n // https://bugs.jquery.com/ticket/12359\n\n docElem.appendChild(el).innerHTML = \"\" + \"\"; // Support: IE8, Opera 11-12.16\n // Nothing should be selected when empty strings follow ^= or $= or *=\n // The test attribute must be unknown in Opera but \"safe\" for WinRT\n // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\n if (el.querySelectorAll(\"[msallowcapture^='']\").length) {\n rbuggyQSA.push(\"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Support: IE8\n // Boolean attributes and \"value\" are not treated correctly\n\n\n if (!el.querySelectorAll(\"[selected]\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\n } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\n\n if (!el.querySelectorAll(\"[id~=\" + expando + \"-]\").length) {\n rbuggyQSA.push(\"~=\");\n } // Support: IE 11+, Edge 15 - 18+\n // IE 11/Edge don't find elements on a `[name='']` query in some cases.\n // Adding a temporary attribute to the document before the selection works\n // around the issue.\n // Interestingly, IE 10 & older don't seem to have the issue.\n\n\n input = document.createElement(\"input\");\n input.setAttribute(\"name\", \"\");\n el.appendChild(input);\n\n if (!el.querySelectorAll(\"[name='']\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Webkit/Opera - :checked should return selected option elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n // IE8 throws error here and will not see later tests\n\n\n if (!el.querySelectorAll(\":checked\").length) {\n rbuggyQSA.push(\":checked\");\n } // Support: Safari 8+, iOS 8+\n // https://bugs.webkit.org/show_bug.cgi?id=136851\n // In-page `selector#id sibling-combinator selector` fails\n\n\n if (!el.querySelectorAll(\"a#\" + expando + \"+*\").length) {\n rbuggyQSA.push(\".#.+[+~]\");\n } // Support: Firefox <=3.6 - 5 only\n // Old Firefox doesn't throw on a badly-escaped identifier.\n\n\n el.querySelectorAll(\"\\\\\\f\");\n rbuggyQSA.push(\"[\\\\r\\\\n\\\\f]\");\n });\n assert(function (el) {\n el.innerHTML = \"\" + \"\"; // Support: Windows 8 Native Apps\n // The type and name attributes are restricted during .innerHTML assignment\n\n var input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"hidden\");\n el.appendChild(input).setAttribute(\"name\", \"D\"); // Support: IE8\n // Enforce case-sensitivity of name attribute\n\n if (el.querySelectorAll(\"[name=d]\").length) {\n rbuggyQSA.push(\"name\" + whitespace + \"*[*^$|!~]?=\");\n } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n // IE8 throws error here and will not see later tests\n\n\n if (el.querySelectorAll(\":enabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: IE9-11+\n // IE's :disabled selector does not pick up the children of disabled fieldsets\n\n\n docElem.appendChild(el).disabled = true;\n\n if (el.querySelectorAll(\":disabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: Opera 10 - 11 only\n // Opera 10-11 does not throw on post-comma invalid pseudos\n\n\n el.querySelectorAll(\"*,:x\");\n rbuggyQSA.push(\",.*:\");\n });\n }\n\n if (support.matchesSelector = rnative.test(matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector)) {\n assert(function (el) {\n // Check to see if it's possible to do matchesSelector\n // on a disconnected node (IE 9)\n support.disconnectedMatch = matches.call(el, \"*\"); // This should fail with an exception\n // Gecko does not error, returns false instead\n\n matches.call(el, \"[s!='']:x\");\n rbuggyMatches.push(\"!=\", pseudos);\n });\n }\n\n rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\n rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join(\"|\"));\n /* Contains\n ---------------------------------------------------------------------- */\n\n hasCompare = rnative.test(docElem.compareDocumentPosition); // Element contains another\n // Purposefully self-exclusive\n // As in, an element does not contain itself\n\n contains = hasCompare || rnative.test(docElem.contains) ? function (a, b) {\n var adown = a.nodeType === 9 ? a.documentElement : a,\n bup = b && b.parentNode;\n return a === bup || !!(bup && bup.nodeType === 1 && (adown.contains ? adown.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16));\n } : function (a, b) {\n if (b) {\n while (b = b.parentNode) {\n if (b === a) {\n return true;\n }\n }\n }\n\n return false;\n };\n /* Sorting\n ---------------------------------------------------------------------- */\n // Document order sorting\n\n sortOrder = hasCompare ? function (a, b) {\n // Flag for duplicate removal\n if (a === b) {\n hasDuplicate = true;\n return 0;\n } // Sort on method existence if only one input has compareDocumentPosition\n\n\n var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\n if (compare) {\n return compare;\n } // Calculate position if both inputs belong to the same document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n\n compare = (a.ownerDocument || a) == (b.ownerDocument || b) ? a.compareDocumentPosition(b) : // Otherwise we know they are disconnected\n 1; // Disconnected nodes\n\n if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) {\n // Choose the first element that is related to our preferred document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (a == document || a.ownerDocument == preferredDoc && contains(preferredDoc, a)) {\n return -1;\n } // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n\n if (b == document || b.ownerDocument == preferredDoc && contains(preferredDoc, b)) {\n return 1;\n } // Maintain original order\n\n\n return sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0;\n }\n\n return compare & 4 ? -1 : 1;\n } : function (a, b) {\n // Exit early if the nodes are identical\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n\n var cur,\n i = 0,\n aup = a.parentNode,\n bup = b.parentNode,\n ap = [a],\n bp = [b]; // Parentless nodes are either documents or disconnected\n\n if (!aup || !bup) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n\n /* eslint-disable eqeqeq */\n return a == document ? -1 : b == document ? 1 :\n /* eslint-enable eqeqeq */\n aup ? -1 : bup ? 1 : sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0; // If the nodes are siblings, we can do a quick check\n } else if (aup === bup) {\n return siblingCheck(a, b);\n } // Otherwise we need full lists of their ancestors for comparison\n\n\n cur = a;\n\n while (cur = cur.parentNode) {\n ap.unshift(cur);\n }\n\n cur = b;\n\n while (cur = cur.parentNode) {\n bp.unshift(cur);\n } // Walk down the tree looking for a discrepancy\n\n\n while (ap[i] === bp[i]) {\n i++;\n }\n\n return i ? // Do a sibling check if the nodes have a common ancestor\n siblingCheck(ap[i], bp[i]) : // Otherwise nodes in our document sort first\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n\n /* eslint-disable eqeqeq */\n ap[i] == preferredDoc ? -1 : bp[i] == preferredDoc ? 1 :\n /* eslint-enable eqeqeq */\n 0;\n };\n return document;\n };\n\n Sizzle.matches = function (expr, elements) {\n return Sizzle(expr, null, null, elements);\n };\n\n Sizzle.matchesSelector = function (elem, expr) {\n setDocument(elem);\n\n if (support.matchesSelector && documentIsHTML && !nonnativeSelectorCache[expr + \" \"] && (!rbuggyMatches || !rbuggyMatches.test(expr)) && (!rbuggyQSA || !rbuggyQSA.test(expr))) {\n try {\n var ret = matches.call(elem, expr); // IE 9's matchesSelector returns false on disconnected nodes\n\n if (ret || support.disconnectedMatch || // As well, disconnected nodes are said to be in a document\n // fragment in IE 9\n elem.document && elem.document.nodeType !== 11) {\n return ret;\n }\n } catch (e) {\n nonnativeSelectorCache(expr, true);\n }\n }\n\n return Sizzle(expr, document, null, [elem]).length > 0;\n };\n\n Sizzle.contains = function (context, elem) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((context.ownerDocument || context) != document) {\n setDocument(context);\n }\n\n return contains(context, elem);\n };\n\n Sizzle.attr = function (elem, name) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((elem.ownerDocument || elem) != document) {\n setDocument(elem);\n }\n\n var fn = Expr.attrHandle[name.toLowerCase()],\n // Don't get fooled by Object.prototype properties (jQuery #13807)\n val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined;\n return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute(name) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n };\n\n Sizzle.escape = function (sel) {\n return (sel + \"\").replace(rcssescape, fcssescape);\n };\n\n Sizzle.error = function (msg) {\n throw new Error(\"Syntax error, unrecognized expression: \" + msg);\n };\n /**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\n\n\n Sizzle.uniqueSort = function (results) {\n var elem,\n duplicates = [],\n j = 0,\n i = 0; // Unless we *know* we can detect duplicates, assume their presence\n\n hasDuplicate = !support.detectDuplicates;\n sortInput = !support.sortStable && results.slice(0);\n results.sort(sortOrder);\n\n if (hasDuplicate) {\n while (elem = results[i++]) {\n if (elem === results[i]) {\n j = duplicates.push(i);\n }\n }\n\n while (j--) {\n results.splice(duplicates[j], 1);\n }\n } // Clear input after sorting to release objects\n // See https://github.com/jquery/sizzle/pull/225\n\n\n sortInput = null;\n return results;\n };\n /**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\n\n\n getText = Sizzle.getText = function (elem) {\n var node,\n ret = \"\",\n i = 0,\n nodeType = elem.nodeType;\n\n if (!nodeType) {\n // If no nodeType, this is expected to be an array\n while (node = elem[i++]) {\n // Do not traverse comment nodes\n ret += getText(node);\n }\n } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) {\n // Use textContent for elements\n // innerText usage removed for consistency of new lines (jQuery #11153)\n if (typeof elem.textContent === \"string\") {\n return elem.textContent;\n } else {\n // Traverse its children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n ret += getText(elem);\n }\n }\n } else if (nodeType === 3 || nodeType === 4) {\n return elem.nodeValue;\n } // Do not include comment or processing instruction nodes\n\n\n return ret;\n };\n\n Expr = Sizzle.selectors = {\n // Can be adjusted by the user\n cacheLength: 50,\n createPseudo: markFunction,\n match: matchExpr,\n attrHandle: {},\n find: {},\n relative: {\n \">\": {\n dir: \"parentNode\",\n first: true\n },\n \" \": {\n dir: \"parentNode\"\n },\n \"+\": {\n dir: \"previousSibling\",\n first: true\n },\n \"~\": {\n dir: \"previousSibling\"\n }\n },\n preFilter: {\n \"ATTR\": function ATTR(match) {\n match[1] = match[1].replace(runescape, funescape); // Move the given value to match[3] whether quoted or unquoted\n\n match[3] = (match[3] || match[4] || match[5] || \"\").replace(runescape, funescape);\n\n if (match[2] === \"~=\") {\n match[3] = \" \" + match[3] + \" \";\n }\n\n return match.slice(0, 4);\n },\n \"CHILD\": function CHILD(match) {\n /* matches from matchExpr[\"CHILD\"]\n \t1 type (only|nth|...)\n \t2 what (child|of-type)\n \t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n \t4 xn-component of xn+y argument ([+-]?\\d*n|)\n \t5 sign of xn-component\n \t6 x of xn-component\n \t7 sign of y-component\n \t8 y of y-component\n */\n match[1] = match[1].toLowerCase();\n\n if (match[1].slice(0, 3) === \"nth\") {\n // nth-* requires argument\n if (!match[3]) {\n Sizzle.error(match[0]);\n } // numeric x and y parameters for Expr.filter.CHILD\n // remember that false/true cast respectively to 0/1\n\n\n match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === \"even\" || match[3] === \"odd\"));\n match[5] = +(match[7] + match[8] || match[3] === \"odd\"); // other types prohibit arguments\n } else if (match[3]) {\n Sizzle.error(match[0]);\n }\n\n return match;\n },\n \"PSEUDO\": function PSEUDO(match) {\n var excess,\n unquoted = !match[6] && match[2];\n\n if (matchExpr[\"CHILD\"].test(match[0])) {\n return null;\n } // Accept quoted arguments as-is\n\n\n if (match[3]) {\n match[2] = match[4] || match[5] || \"\"; // Strip excess characters from unquoted arguments\n } else if (unquoted && rpseudo.test(unquoted) && ( // Get excess from tokenize (recursively)\n excess = tokenize(unquoted, true)) && ( // advance to the next closing parenthesis\n excess = unquoted.indexOf(\")\", unquoted.length - excess) - unquoted.length)) {\n // excess is a negative index\n match[0] = match[0].slice(0, excess);\n match[2] = unquoted.slice(0, excess);\n } // Return only captures needed by the pseudo filter method (type and argument)\n\n\n return match.slice(0, 3);\n }\n },\n filter: {\n \"TAG\": function TAG(nodeNameSelector) {\n var nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\n return nodeNameSelector === \"*\" ? function () {\n return true;\n } : function (elem) {\n return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n };\n },\n \"CLASS\": function CLASS(className) {\n var pattern = classCache[className + \" \"];\n return pattern || (pattern = new RegExp(\"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\")) && classCache(className, function (elem) {\n return pattern.test(typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\");\n });\n },\n \"ATTR\": function ATTR(name, operator, check) {\n return function (elem) {\n var result = Sizzle.attr(elem, name);\n\n if (result == null) {\n return operator === \"!=\";\n }\n\n if (!operator) {\n return true;\n }\n\n result += \"\";\n /* eslint-disable max-len */\n\n return operator === \"=\" ? result === check : operator === \"!=\" ? result !== check : operator === \"^=\" ? check && result.indexOf(check) === 0 : operator === \"*=\" ? check && result.indexOf(check) > -1 : operator === \"$=\" ? check && result.slice(-check.length) === check : operator === \"~=\" ? (\" \" + result.replace(rwhitespace, \" \") + \" \").indexOf(check) > -1 : operator === \"|=\" ? result === check || result.slice(0, check.length + 1) === check + \"-\" : false;\n /* eslint-enable max-len */\n };\n },\n \"CHILD\": function CHILD(type, what, _argument, first, last) {\n var simple = type.slice(0, 3) !== \"nth\",\n forward = type.slice(-4) !== \"last\",\n ofType = what === \"of-type\";\n return first === 1 && last === 0 ? // Shortcut for :nth-*(n)\n function (elem) {\n return !!elem.parentNode;\n } : function (elem, _context, xml) {\n var cache,\n uniqueCache,\n outerCache,\n node,\n nodeIndex,\n start,\n dir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n parent = elem.parentNode,\n name = ofType && elem.nodeName.toLowerCase(),\n useCache = !xml && !ofType,\n diff = false;\n\n if (parent) {\n // :(first|last|only)-(child|of-type)\n if (simple) {\n while (dir) {\n node = elem;\n\n while (node = node[dir]) {\n if (ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) {\n return false;\n }\n } // Reverse direction for :only-* (if we haven't yet done so)\n\n\n start = dir = type === \"only\" && !start && \"nextSibling\";\n }\n\n return true;\n }\n\n start = [forward ? parent.firstChild : parent.lastChild]; // non-xml :nth-child(...) stores cache data on `parent`\n\n if (forward && useCache) {\n // Seek `elem` from a previously-cached index\n // ...in a gzip-friendly way\n node = parent;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex && cache[2];\n node = nodeIndex && parent.childNodes[nodeIndex];\n\n while (node = ++nodeIndex && node && node[dir] || ( // Fallback to seeking `elem` from the start\n diff = nodeIndex = 0) || start.pop()) {\n // When found, cache indexes on `parent` and break\n if (node.nodeType === 1 && ++diff && node === elem) {\n uniqueCache[type] = [dirruns, nodeIndex, diff];\n break;\n }\n }\n } else {\n // Use previously-cached element index if available\n if (useCache) {\n // ...in a gzip-friendly way\n node = elem;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex;\n } // xml :nth-child(...)\n // or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\n\n if (diff === false) {\n // Use the same loop as above to seek `elem` from the start\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n if ((ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) && ++diff) {\n // Cache the index of each encountered element\n if (useCache) {\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n uniqueCache[type] = [dirruns, diff];\n }\n\n if (node === elem) {\n break;\n }\n }\n }\n }\n } // Incorporate the offset, then check against cycle size\n\n\n diff -= last;\n return diff === first || diff % first === 0 && diff / first >= 0;\n }\n };\n },\n \"PSEUDO\": function PSEUDO(pseudo, argument) {\n // pseudo-class names are case-insensitive\n // http://www.w3.org/TR/selectors/#pseudo-classes\n // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n // Remember that setFilters inherits from pseudos\n var args,\n fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || Sizzle.error(\"unsupported pseudo: \" + pseudo); // The user may use createPseudo to indicate that\n // arguments are needed to create the filter function\n // just as Sizzle does\n\n if (fn[expando]) {\n return fn(argument);\n } // But maintain support for old signatures\n\n\n if (fn.length > 1) {\n args = [pseudo, pseudo, \"\", argument];\n return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) {\n var idx,\n matched = fn(seed, argument),\n i = matched.length;\n\n while (i--) {\n idx = indexOf(seed, matched[i]);\n seed[idx] = !(matches[idx] = matched[i]);\n }\n }) : function (elem) {\n return fn(elem, 0, args);\n };\n }\n\n return fn;\n }\n },\n pseudos: {\n // Potentially complex pseudos\n \"not\": markFunction(function (selector) {\n // Trim the selector passed to compile\n // to avoid treating leading and trailing\n // spaces as combinators\n var input = [],\n results = [],\n matcher = compile(selector.replace(rtrim, \"$1\"));\n return matcher[expando] ? markFunction(function (seed, matches, _context, xml) {\n var elem,\n unmatched = matcher(seed, null, xml, []),\n i = seed.length; // Match elements unmatched by `matcher`\n\n while (i--) {\n if (elem = unmatched[i]) {\n seed[i] = !(matches[i] = elem);\n }\n }\n }) : function (elem, _context, xml) {\n input[0] = elem;\n matcher(input, null, xml, results); // Don't keep the element (issue #299)\n\n input[0] = null;\n return !results.pop();\n };\n }),\n \"has\": markFunction(function (selector) {\n return function (elem) {\n return Sizzle(selector, elem).length > 0;\n };\n }),\n \"contains\": markFunction(function (text) {\n text = text.replace(runescape, funescape);\n return function (elem) {\n return (elem.textContent || getText(elem)).indexOf(text) > -1;\n };\n }),\n // \"Whether an element is represented by a :lang() selector\n // is based solely on the element's language value\n // being equal to the identifier C,\n // or beginning with the identifier C immediately followed by \"-\".\n // The matching of C against the element's language value is performed case-insensitively.\n // The identifier C does not have to be a valid language name.\"\n // http://www.w3.org/TR/selectors/#lang-pseudo\n \"lang\": markFunction(function (lang) {\n // lang value must be a valid identifier\n if (!ridentifier.test(lang || \"\")) {\n Sizzle.error(\"unsupported lang: \" + lang);\n }\n\n lang = lang.replace(runescape, funescape).toLowerCase();\n return function (elem) {\n var elemLang;\n\n do {\n if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) {\n elemLang = elemLang.toLowerCase();\n return elemLang === lang || elemLang.indexOf(lang + \"-\") === 0;\n }\n } while ((elem = elem.parentNode) && elem.nodeType === 1);\n\n return false;\n };\n }),\n // Miscellaneous\n \"target\": function target(elem) {\n var hash = window.location && window.location.hash;\n return hash && hash.slice(1) === elem.id;\n },\n \"root\": function root(elem) {\n return elem === docElem;\n },\n \"focus\": function focus(elem) {\n return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n },\n // Boolean properties\n \"enabled\": createDisabledPseudo(false),\n \"disabled\": createDisabledPseudo(true),\n \"checked\": function checked(elem) {\n // In CSS3, :checked should return both checked and selected elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n var nodeName = elem.nodeName.toLowerCase();\n return nodeName === \"input\" && !!elem.checked || nodeName === \"option\" && !!elem.selected;\n },\n \"selected\": function selected(elem) {\n // Accessing this property makes selected-by-default\n // options in Safari work properly\n if (elem.parentNode) {\n // eslint-disable-next-line no-unused-expressions\n elem.parentNode.selectedIndex;\n }\n\n return elem.selected === true;\n },\n // Contents\n \"empty\": function empty(elem) {\n // http://www.w3.org/TR/selectors/#empty-pseudo\n // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n // but not by others (comment: 8; processing instruction: 7; etc.)\n // nodeType < 6 works because attributes (2) do not appear as children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n if (elem.nodeType < 6) {\n return false;\n }\n }\n\n return true;\n },\n \"parent\": function parent(elem) {\n return !Expr.pseudos[\"empty\"](elem);\n },\n // Element/input types\n \"header\": function header(elem) {\n return rheader.test(elem.nodeName);\n },\n \"input\": function input(elem) {\n return rinputs.test(elem.nodeName);\n },\n \"button\": function button(elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === \"button\" || name === \"button\";\n },\n \"text\": function text(elem) {\n var attr;\n return elem.nodeName.toLowerCase() === \"input\" && elem.type === \"text\" && ( // Support: IE<8\n // New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\");\n },\n // Position-in-collection\n \"first\": createPositionalPseudo(function () {\n return [0];\n }),\n \"last\": createPositionalPseudo(function (_matchIndexes, length) {\n return [length - 1];\n }),\n \"eq\": createPositionalPseudo(function (_matchIndexes, length, argument) {\n return [argument < 0 ? argument + length : argument];\n }),\n \"even\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 0;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"odd\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 1;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"lt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument > length ? length : argument;\n\n for (; --i >= 0;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"gt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n\n for (; ++i < length;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n })\n }\n };\n Expr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"]; // Add button/input type pseudos\n\n for (i in {\n radio: true,\n checkbox: true,\n file: true,\n password: true,\n image: true\n }) {\n Expr.pseudos[i] = createInputPseudo(i);\n }\n\n for (i in {\n submit: true,\n reset: true\n }) {\n Expr.pseudos[i] = createButtonPseudo(i);\n } // Easy API for creating new setFilters\n\n\n function setFilters() {}\n\n setFilters.prototype = Expr.filters = Expr.pseudos;\n Expr.setFilters = new setFilters();\n\n tokenize = Sizzle.tokenize = function (selector, parseOnly) {\n var matched,\n match,\n tokens,\n type,\n soFar,\n groups,\n preFilters,\n cached = tokenCache[selector + \" \"];\n\n if (cached) {\n return parseOnly ? 0 : cached.slice(0);\n }\n\n soFar = selector;\n groups = [];\n preFilters = Expr.preFilter;\n\n while (soFar) {\n // Comma and first run\n if (!matched || (match = rcomma.exec(soFar))) {\n if (match) {\n // Don't consume trailing commas as valid\n soFar = soFar.slice(match[0].length) || soFar;\n }\n\n groups.push(tokens = []);\n }\n\n matched = false; // Combinators\n\n if (match = rcombinators.exec(soFar)) {\n matched = match.shift();\n tokens.push({\n value: matched,\n // Cast descendant combinators to space\n type: match[0].replace(rtrim, \" \")\n });\n soFar = soFar.slice(matched.length);\n } // Filters\n\n\n for (type in Expr.filter) {\n if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) {\n matched = match.shift();\n tokens.push({\n value: matched,\n type: type,\n matches: match\n });\n soFar = soFar.slice(matched.length);\n }\n }\n\n if (!matched) {\n break;\n }\n } // Return the length of the invalid excess\n // if we're just parsing\n // Otherwise, throw an error or return tokens\n\n\n return parseOnly ? soFar.length : soFar ? Sizzle.error(selector) : // Cache the tokens\n tokenCache(selector, groups).slice(0);\n };\n\n function toSelector(tokens) {\n var i = 0,\n len = tokens.length,\n selector = \"\";\n\n for (; i < len; i++) {\n selector += tokens[i].value;\n }\n\n return selector;\n }\n\n function addCombinator(matcher, combinator, base) {\n var dir = combinator.dir,\n skip = combinator.next,\n key = skip || dir,\n checkNonElements = base && key === \"parentNode\",\n doneName = done++;\n return combinator.first ? // Check against closest ancestor/preceding element\n function (elem, context, xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n return matcher(elem, context, xml);\n }\n }\n\n return false;\n } : // Check against all ancestor/preceding elements\n function (elem, context, xml) {\n var oldCache,\n uniqueCache,\n outerCache,\n newCache = [dirruns, doneName]; // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\n if (xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n if (matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n } else {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n outerCache = elem[expando] || (elem[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[elem.uniqueID] || (outerCache[elem.uniqueID] = {});\n\n if (skip && skip === elem.nodeName.toLowerCase()) {\n elem = elem[dir] || elem;\n } else if ((oldCache = uniqueCache[key]) && oldCache[0] === dirruns && oldCache[1] === doneName) {\n // Assign to newCache so results back-propagate to previous elements\n return newCache[2] = oldCache[2];\n } else {\n // Reuse newcache so results back-propagate to previous elements\n uniqueCache[key] = newCache; // A match means we're done; a fail means we have to keep checking\n\n if (newCache[2] = matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n }\n }\n\n return false;\n };\n }\n\n function elementMatcher(matchers) {\n return matchers.length > 1 ? function (elem, context, xml) {\n var i = matchers.length;\n\n while (i--) {\n if (!matchers[i](elem, context, xml)) {\n return false;\n }\n }\n\n return true;\n } : matchers[0];\n }\n\n function multipleContexts(selector, contexts, results) {\n var i = 0,\n len = contexts.length;\n\n for (; i < len; i++) {\n Sizzle(selector, contexts[i], results);\n }\n\n return results;\n }\n\n function condense(unmatched, map, filter, context, xml) {\n var elem,\n newUnmatched = [],\n i = 0,\n len = unmatched.length,\n mapped = map != null;\n\n for (; i < len; i++) {\n if (elem = unmatched[i]) {\n if (!filter || filter(elem, context, xml)) {\n newUnmatched.push(elem);\n\n if (mapped) {\n map.push(i);\n }\n }\n }\n }\n\n return newUnmatched;\n }\n\n function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\n if (postFilter && !postFilter[expando]) {\n postFilter = setMatcher(postFilter);\n }\n\n if (postFinder && !postFinder[expando]) {\n postFinder = setMatcher(postFinder, postSelector);\n }\n\n return markFunction(function (seed, results, context, xml) {\n var temp,\n i,\n elem,\n preMap = [],\n postMap = [],\n preexisting = results.length,\n // Get initial elements from seed or context\n elems = seed || multipleContexts(selector || \"*\", context.nodeType ? [context] : context, []),\n // Prefilter to get matcher input, preserving a map for seed-results synchronization\n matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems,\n matcherOut = matcher ? // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n postFinder || (seed ? preFilter : preexisting || postFilter) ? // ...intermediate processing is necessary\n [] : // ...otherwise use results directly\n results : matcherIn; // Find primary matches\n\n if (matcher) {\n matcher(matcherIn, matcherOut, context, xml);\n } // Apply postFilter\n\n\n if (postFilter) {\n temp = condense(matcherOut, postMap);\n postFilter(temp, [], context, xml); // Un-match failing elements by moving them back to matcherIn\n\n i = temp.length;\n\n while (i--) {\n if (elem = temp[i]) {\n matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\n }\n }\n }\n\n if (seed) {\n if (postFinder || preFilter) {\n if (postFinder) {\n // Get the final matcherOut by condensing this intermediate into postFinder contexts\n temp = [];\n i = matcherOut.length;\n\n while (i--) {\n if (elem = matcherOut[i]) {\n // Restore matcherIn since elem is not yet a final match\n temp.push(matcherIn[i] = elem);\n }\n }\n\n postFinder(null, matcherOut = [], temp, xml);\n } // Move matched elements from seed to results to keep them synchronized\n\n\n i = matcherOut.length;\n\n while (i--) {\n if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf(seed, elem) : preMap[i]) > -1) {\n seed[temp] = !(results[temp] = elem);\n }\n }\n } // Add elements to results, through postFinder if defined\n\n } else {\n matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut);\n\n if (postFinder) {\n postFinder(null, results, matcherOut, xml);\n } else {\n push.apply(results, matcherOut);\n }\n }\n });\n }\n\n function matcherFromTokens(tokens) {\n var checkContext,\n matcher,\n j,\n len = tokens.length,\n leadingRelative = Expr.relative[tokens[0].type],\n implicitRelative = leadingRelative || Expr.relative[\" \"],\n i = leadingRelative ? 1 : 0,\n // The foundational matcher ensures that elements are reachable from top-level context(s)\n matchContext = addCombinator(function (elem) {\n return elem === checkContext;\n }, implicitRelative, true),\n matchAnyContext = addCombinator(function (elem) {\n return indexOf(checkContext, elem) > -1;\n }, implicitRelative, true),\n matchers = [function (elem, context, xml) {\n var ret = !leadingRelative && (xml || context !== outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml)); // Avoid hanging onto element (issue #299)\n\n checkContext = null;\n return ret;\n }];\n\n for (; i < len; i++) {\n if (matcher = Expr.relative[tokens[i].type]) {\n matchers = [addCombinator(elementMatcher(matchers), matcher)];\n } else {\n matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches); // Return special upon seeing a positional matcher\n\n if (matcher[expando]) {\n // Find the next relative operator (if any) for proper handling\n j = ++i;\n\n for (; j < len; j++) {\n if (Expr.relative[tokens[j].type]) {\n break;\n }\n }\n\n return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector( // If the preceding token was a descendant combinator, insert an implicit any-element `*`\n tokens.slice(0, i - 1).concat({\n value: tokens[i - 2].type === \" \" ? \"*\" : \"\"\n })).replace(rtrim, \"$1\"), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens));\n }\n\n matchers.push(matcher);\n }\n }\n\n return elementMatcher(matchers);\n }\n\n function matcherFromGroupMatchers(elementMatchers, setMatchers) {\n var bySet = setMatchers.length > 0,\n byElement = elementMatchers.length > 0,\n superMatcher = function superMatcher(seed, context, xml, results, outermost) {\n var elem,\n j,\n matcher,\n matchedCount = 0,\n i = \"0\",\n unmatched = seed && [],\n setMatched = [],\n contextBackup = outermostContext,\n // We must always have either seed elements or outermost context\n elems = seed || byElement && Expr.find[\"TAG\"](\"*\", outermost),\n // Use integer dirruns iff this is the outermost matcher\n dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1,\n len = elems.length;\n\n if (outermost) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n outermostContext = context == document || context || outermost;\n } // Add elements passing elementMatchers directly to results\n // Support: IE<9, Safari\n // Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\n\n for (; i !== len && (elem = elems[i]) != null; i++) {\n if (byElement && elem) {\n j = 0; // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (!context && elem.ownerDocument != document) {\n setDocument(elem);\n xml = !documentIsHTML;\n }\n\n while (matcher = elementMatchers[j++]) {\n if (matcher(elem, context || document, xml)) {\n results.push(elem);\n break;\n }\n }\n\n if (outermost) {\n dirruns = dirrunsUnique;\n }\n } // Track unmatched elements for set filters\n\n\n if (bySet) {\n // They will have gone through all possible matchers\n if (elem = !matcher && elem) {\n matchedCount--;\n } // Lengthen the array for every element, matched or not\n\n\n if (seed) {\n unmatched.push(elem);\n }\n }\n } // `i` is now the count of elements visited above, and adding it to `matchedCount`\n // makes the latter nonnegative.\n\n\n matchedCount += i; // Apply set filters to unmatched elements\n // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n // equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n // no element matchers and no seed.\n // Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n // case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n // numerically zero.\n\n if (bySet && i !== matchedCount) {\n j = 0;\n\n while (matcher = setMatchers[j++]) {\n matcher(unmatched, setMatched, context, xml);\n }\n\n if (seed) {\n // Reintegrate element matches to eliminate the need for sorting\n if (matchedCount > 0) {\n while (i--) {\n if (!(unmatched[i] || setMatched[i])) {\n setMatched[i] = pop.call(results);\n }\n }\n } // Discard index placeholder values to get only actual matches\n\n\n setMatched = condense(setMatched);\n } // Add matches to results\n\n\n push.apply(results, setMatched); // Seedless set matches succeeding multiple successful matchers stipulate sorting\n\n if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {\n Sizzle.uniqueSort(results);\n }\n } // Override manipulation of globals by nested matchers\n\n\n if (outermost) {\n dirruns = dirrunsUnique;\n outermostContext = contextBackup;\n }\n\n return unmatched;\n };\n\n return bySet ? markFunction(superMatcher) : superMatcher;\n }\n\n compile = Sizzle.compile = function (selector, match\n /* Internal Use Only */\n ) {\n var i,\n setMatchers = [],\n elementMatchers = [],\n cached = compilerCache[selector + \" \"];\n\n if (!cached) {\n // Generate a function of recursive functions that can be used to check each element\n if (!match) {\n match = tokenize(selector);\n }\n\n i = match.length;\n\n while (i--) {\n cached = matcherFromTokens(match[i]);\n\n if (cached[expando]) {\n setMatchers.push(cached);\n } else {\n elementMatchers.push(cached);\n }\n } // Cache the compiled function\n\n\n cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers)); // Save selector and tokenization\n\n cached.selector = selector;\n }\n\n return cached;\n };\n /**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\n\n\n select = Sizzle.select = function (selector, context, results, seed) {\n var i,\n tokens,\n token,\n type,\n find,\n compiled = typeof selector === \"function\" && selector,\n match = !seed && tokenize(selector = compiled.selector || selector);\n results = results || []; // Try to minimize operations if there is only one selector in the list and no seed\n // (the latter of which guarantees us context)\n\n if (match.length === 1) {\n // Reduce context if the leading compound selector is an ID\n tokens = match[0] = match[0].slice(0);\n\n if (tokens.length > 2 && (token = tokens[0]).type === \"ID\" && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {\n context = (Expr.find[\"ID\"](token.matches[0].replace(runescape, funescape), context) || [])[0];\n\n if (!context) {\n return results; // Precompiled matchers will still verify ancestry, so step up a level\n } else if (compiled) {\n context = context.parentNode;\n }\n\n selector = selector.slice(tokens.shift().value.length);\n } // Fetch a seed set for right-to-left matching\n\n\n i = matchExpr[\"needsContext\"].test(selector) ? 0 : tokens.length;\n\n while (i--) {\n token = tokens[i]; // Abort if we hit a combinator\n\n if (Expr.relative[type = token.type]) {\n break;\n }\n\n if (find = Expr.find[type]) {\n // Search, expanding context for leading sibling combinators\n if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) {\n // If seed is empty or no tokens remain, we can return early\n tokens.splice(i, 1);\n selector = seed.length && toSelector(tokens);\n\n if (!selector) {\n push.apply(results, seed);\n return results;\n }\n\n break;\n }\n }\n }\n } // Compile and execute a filtering function if one is not provided\n // Provide `match` to avoid retokenization if we modified the selector above\n\n\n (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, !context || rsibling.test(selector) && testContext(context.parentNode) || context);\n return results;\n }; // One-time assignments\n // Sort stability\n\n\n support.sortStable = expando.split(\"\").sort(sortOrder).join(\"\") === expando; // Support: Chrome 14-35+\n // Always assume duplicates if they aren't passed to the comparison function\n\n support.detectDuplicates = !!hasDuplicate; // Initialize against the default document\n\n setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n // Detached nodes confoundingly follow *each other*\n\n support.sortDetached = assert(function (el) {\n // Should return 1, but returns 4 (following)\n return el.compareDocumentPosition(document.createElement(\"fieldset\")) & 1;\n }); // Support: IE<8\n // Prevent attribute/property \"interpolation\"\n // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\n\n if (!assert(function (el) {\n el.innerHTML = \"\";\n return el.firstChild.getAttribute(\"href\") === \"#\";\n })) {\n addHandle(\"type|href|height|width\", function (elem, name, isXML) {\n if (!isXML) {\n return elem.getAttribute(name, name.toLowerCase() === \"type\" ? 1 : 2);\n }\n });\n } // Support: IE<9\n // Use defaultValue in place of getAttribute(\"value\")\n\n\n if (!support.attributes || !assert(function (el) {\n el.innerHTML = \"\";\n el.firstChild.setAttribute(\"value\", \"\");\n return el.firstChild.getAttribute(\"value\") === \"\";\n })) {\n addHandle(\"value\", function (elem, _name, isXML) {\n if (!isXML && elem.nodeName.toLowerCase() === \"input\") {\n return elem.defaultValue;\n }\n });\n } // Support: IE<9\n // Use getAttributeNode to fetch booleans when getAttribute lies\n\n\n if (!assert(function (el) {\n return el.getAttribute(\"disabled\") == null;\n })) {\n addHandle(booleans, function (elem, name, isXML) {\n var val;\n\n if (!isXML) {\n return elem[name] === true ? name.toLowerCase() : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n }\n });\n }\n\n return Sizzle;\n }(window);\n\n jQuery.find = Sizzle;\n jQuery.expr = Sizzle.selectors; // Deprecated\n\n jQuery.expr[\":\"] = jQuery.expr.pseudos;\n jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\n jQuery.text = Sizzle.getText;\n jQuery.isXMLDoc = Sizzle.isXML;\n jQuery.contains = Sizzle.contains;\n jQuery.escapeSelector = Sizzle.escape;\n\n var dir = function dir(elem, _dir, until) {\n var matched = [],\n truncate = until !== undefined;\n\n while ((elem = elem[_dir]) && elem.nodeType !== 9) {\n if (elem.nodeType === 1) {\n if (truncate && jQuery(elem).is(until)) {\n break;\n }\n\n matched.push(elem);\n }\n }\n\n return matched;\n };\n\n var _siblings = function siblings(n, elem) {\n var matched = [];\n\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== elem) {\n matched.push(n);\n }\n }\n\n return matched;\n };\n\n var rneedsContext = jQuery.expr.match.needsContext;\n\n function nodeName(elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n }\n\n var rsingleTag = /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i; // Implement the identical functionality for filter and not\n\n function winnow(elements, qualifier, not) {\n if (isFunction(qualifier)) {\n return jQuery.grep(elements, function (elem, i) {\n return !!qualifier.call(elem, i, elem) !== not;\n });\n } // Single element\n\n\n if (qualifier.nodeType) {\n return jQuery.grep(elements, function (elem) {\n return elem === qualifier !== not;\n });\n } // Arraylike of elements (jQuery, arguments, Array)\n\n\n if (typeof qualifier !== \"string\") {\n return jQuery.grep(elements, function (elem) {\n return indexOf.call(qualifier, elem) > -1 !== not;\n });\n } // Filtered directly for both simple and complex selectors\n\n\n return jQuery.filter(qualifier, elements, not);\n }\n\n jQuery.filter = function (expr, elems, not) {\n var elem = elems[0];\n\n if (not) {\n expr = \":not(\" + expr + \")\";\n }\n\n if (elems.length === 1 && elem.nodeType === 1) {\n return jQuery.find.matchesSelector(elem, expr) ? [elem] : [];\n }\n\n return jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\n return elem.nodeType === 1;\n }));\n };\n\n jQuery.fn.extend({\n find: function find(selector) {\n var i,\n ret,\n len = this.length,\n self = this;\n\n if (typeof selector !== \"string\") {\n return this.pushStack(jQuery(selector).filter(function () {\n for (i = 0; i < len; i++) {\n if (jQuery.contains(self[i], this)) {\n return true;\n }\n }\n }));\n }\n\n ret = this.pushStack([]);\n\n for (i = 0; i < len; i++) {\n jQuery.find(selector, self[i], ret);\n }\n\n return len > 1 ? jQuery.uniqueSort(ret) : ret;\n },\n filter: function filter(selector) {\n return this.pushStack(winnow(this, selector || [], false));\n },\n not: function not(selector) {\n return this.pushStack(winnow(this, selector || [], true));\n },\n is: function is(selector) {\n return !!winnow(this, // If this is a positional/relative selector, check membership in the returned set\n // so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n typeof selector === \"string\" && rneedsContext.test(selector) ? jQuery(selector) : selector || [], false).length;\n }\n }); // Initialize a jQuery object\n // A central reference to the root jQuery(document)\n\n var rootjQuery,\n // A simple way to check for HTML strings\n // Prioritize #id over to avoid XSS via location.hash (#9521)\n // Strict HTML recognition (#11290: must start with <)\n // Shortcut simple #id case for speed\n rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n init = jQuery.fn.init = function (selector, context, root) {\n var match, elem; // HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\n if (!selector) {\n return this;\n } // Method init() accepts an alternate rootjQuery\n // so migrate can support jQuery.sub (gh-2101)\n\n\n root = root || rootjQuery; // Handle HTML strings\n\n if (typeof selector === \"string\") {\n if (selector[0] === \"<\" && selector[selector.length - 1] === \">\" && selector.length >= 3) {\n // Assume that strings that start and end with <> are HTML and skip the regex check\n match = [null, selector, null];\n } else {\n match = rquickExpr.exec(selector);\n } // Match html or make sure no context is specified for #id\n\n\n if (match && (match[1] || !context)) {\n // HANDLE: $(html) -> $(array)\n if (match[1]) {\n context = context instanceof jQuery ? context[0] : context; // Option to run scripts is true for back-compat\n // Intentionally let the error be thrown if parseHTML is not present\n\n jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true)); // HANDLE: $(html, props)\n\n if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\n for (match in context) {\n // Properties of context are called as methods if possible\n if (isFunction(this[match])) {\n this[match](context[match]); // ...and otherwise set as attributes\n } else {\n this.attr(match, context[match]);\n }\n }\n }\n\n return this; // HANDLE: $(#id)\n } else {\n elem = document.getElementById(match[2]);\n\n if (elem) {\n // Inject the element directly into the jQuery object\n this[0] = elem;\n this.length = 1;\n }\n\n return this;\n } // HANDLE: $(expr, $(...))\n\n } else if (!context || context.jquery) {\n return (context || root).find(selector); // HANDLE: $(expr, context)\n // (which is just equivalent to: $(context).find(expr)\n } else {\n return this.constructor(context).find(selector);\n } // HANDLE: $(DOMElement)\n\n } else if (selector.nodeType) {\n this[0] = selector;\n this.length = 1;\n return this; // HANDLE: $(function)\n // Shortcut for document ready\n } else if (isFunction(selector)) {\n return root.ready !== undefined ? root.ready(selector) : // Execute immediately if ready is not present\n selector(jQuery);\n }\n\n return jQuery.makeArray(selector, this);\n }; // Give the init function the jQuery prototype for later instantiation\n\n\n init.prototype = jQuery.fn; // Initialize central reference\n\n rootjQuery = jQuery(document);\n var rparentsprev = /^(?:parents|prev(?:Until|All))/,\n // Methods guaranteed to produce a unique set when starting from a unique set\n guaranteedUnique = {\n children: true,\n contents: true,\n next: true,\n prev: true\n };\n jQuery.fn.extend({\n has: function has(target) {\n var targets = jQuery(target, this),\n l = targets.length;\n return this.filter(function () {\n var i = 0;\n\n for (; i < l; i++) {\n if (jQuery.contains(this, targets[i])) {\n return true;\n }\n }\n });\n },\n closest: function closest(selectors, context) {\n var cur,\n i = 0,\n l = this.length,\n matched = [],\n targets = typeof selectors !== \"string\" && jQuery(selectors); // Positional selectors never match, since there's no _selection_ context\n\n if (!rneedsContext.test(selectors)) {\n for (; i < l; i++) {\n for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\n // Always skip document fragments\n if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 : // Don't pass non-elements to Sizzle\n cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors))) {\n matched.push(cur);\n break;\n }\n }\n }\n }\n\n return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched);\n },\n // Determine the position of an element within the set\n index: function index(elem) {\n // No argument, return index in parent\n if (!elem) {\n return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n } // Index in selector\n\n\n if (typeof elem === \"string\") {\n return indexOf.call(jQuery(elem), this[0]);\n } // Locate the position of the desired element\n\n\n return indexOf.call(this, // If it receives a jQuery object, the first element is used\n elem.jquery ? elem[0] : elem);\n },\n add: function add(selector, context) {\n return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context))));\n },\n addBack: function addBack(selector) {\n return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));\n }\n });\n\n function sibling(cur, dir) {\n while ((cur = cur[dir]) && cur.nodeType !== 1) {}\n\n return cur;\n }\n\n jQuery.each({\n parent: function parent(elem) {\n var parent = elem.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function parents(elem) {\n return dir(elem, \"parentNode\");\n },\n parentsUntil: function parentsUntil(elem, _i, until) {\n return dir(elem, \"parentNode\", until);\n },\n next: function next(elem) {\n return sibling(elem, \"nextSibling\");\n },\n prev: function prev(elem) {\n return sibling(elem, \"previousSibling\");\n },\n nextAll: function nextAll(elem) {\n return dir(elem, \"nextSibling\");\n },\n prevAll: function prevAll(elem) {\n return dir(elem, \"previousSibling\");\n },\n nextUntil: function nextUntil(elem, _i, until) {\n return dir(elem, \"nextSibling\", until);\n },\n prevUntil: function prevUntil(elem, _i, until) {\n return dir(elem, \"previousSibling\", until);\n },\n siblings: function siblings(elem) {\n return _siblings((elem.parentNode || {}).firstChild, elem);\n },\n children: function children(elem) {\n return _siblings(elem.firstChild);\n },\n contents: function contents(elem) {\n if (elem.contentDocument != null && // Support: IE 11+\n // elements with no `data` attribute has an object\n // `contentDocument` with a `null` prototype.\n getProto(elem.contentDocument)) {\n return elem.contentDocument;\n } // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n // Treat the template element as a regular one in browsers that\n // don't support it.\n\n\n if (nodeName(elem, \"template\")) {\n elem = elem.content || elem;\n }\n\n return jQuery.merge([], elem.childNodes);\n }\n }, function (name, fn) {\n jQuery.fn[name] = function (until, selector) {\n var matched = jQuery.map(this, fn, until);\n\n if (name.slice(-5) !== \"Until\") {\n selector = until;\n }\n\n if (selector && typeof selector === \"string\") {\n matched = jQuery.filter(selector, matched);\n }\n\n if (this.length > 1) {\n // Remove duplicates\n if (!guaranteedUnique[name]) {\n jQuery.uniqueSort(matched);\n } // Reverse order for parents* and prev-derivatives\n\n\n if (rparentsprev.test(name)) {\n matched.reverse();\n }\n }\n\n return this.pushStack(matched);\n };\n });\n var rnothtmlwhite = /[^\\x20\\t\\r\\n\\f]+/g; // Convert String-formatted options into Object-formatted ones\n\n function createOptions(options) {\n var object = {};\n jQuery.each(options.match(rnothtmlwhite) || [], function (_, flag) {\n object[flag] = true;\n });\n return object;\n }\n /*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\n\n\n jQuery.Callbacks = function (options) {\n // Convert options from String-formatted to Object-formatted if needed\n // (we check in cache first)\n options = typeof options === \"string\" ? createOptions(options) : jQuery.extend({}, options);\n\n var // Flag to know if list is currently firing\n firing,\n // Last fire value for non-forgettable lists\n memory,\n // Flag to know if list was already fired\n _fired,\n // Flag to prevent firing\n _locked,\n // Actual callback list\n list = [],\n // Queue of execution data for repeatable lists\n queue = [],\n // Index of currently firing callback (modified by add/remove as needed)\n firingIndex = -1,\n // Fire callbacks\n fire = function fire() {\n // Enforce single-firing\n _locked = _locked || options.once; // Execute callbacks for all pending executions,\n // respecting firingIndex overrides and runtime changes\n\n _fired = firing = true;\n\n for (; queue.length; firingIndex = -1) {\n memory = queue.shift();\n\n while (++firingIndex < list.length) {\n // Run callback and check for early termination\n if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) {\n // Jump to end and forget the data so .add doesn't re-fire\n firingIndex = list.length;\n memory = false;\n }\n }\n } // Forget the data if we're done with it\n\n\n if (!options.memory) {\n memory = false;\n }\n\n firing = false; // Clean up if we're done firing for good\n\n if (_locked) {\n // Keep an empty list if we have data for future add calls\n if (memory) {\n list = []; // Otherwise, this object is spent\n } else {\n list = \"\";\n }\n }\n },\n // Actual Callbacks object\n self = {\n // Add a callback or a collection of callbacks to the list\n add: function add() {\n if (list) {\n // If we have memory from a past run, we should fire after adding\n if (memory && !firing) {\n firingIndex = list.length - 1;\n queue.push(memory);\n }\n\n (function add(args) {\n jQuery.each(args, function (_, arg) {\n if (isFunction(arg)) {\n if (!options.unique || !self.has(arg)) {\n list.push(arg);\n }\n } else if (arg && arg.length && toType(arg) !== \"string\") {\n // Inspect recursively\n add(arg);\n }\n });\n })(arguments);\n\n if (memory && !firing) {\n fire();\n }\n }\n\n return this;\n },\n // Remove a callback from the list\n remove: function remove() {\n jQuery.each(arguments, function (_, arg) {\n var index;\n\n while ((index = jQuery.inArray(arg, list, index)) > -1) {\n list.splice(index, 1); // Handle firing indexes\n\n if (index <= firingIndex) {\n firingIndex--;\n }\n }\n });\n return this;\n },\n // Check if a given callback is in the list.\n // If no argument is given, return whether or not list has callbacks attached.\n has: function has(fn) {\n return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0;\n },\n // Remove all callbacks from the list\n empty: function empty() {\n if (list) {\n list = [];\n }\n\n return this;\n },\n // Disable .fire and .add\n // Abort any current/pending executions\n // Clear all callbacks and values\n disable: function disable() {\n _locked = queue = [];\n list = memory = \"\";\n return this;\n },\n disabled: function disabled() {\n return !list;\n },\n // Disable .fire\n // Also disable .add unless we have memory (since it would have no effect)\n // Abort any pending executions\n lock: function lock() {\n _locked = queue = [];\n\n if (!memory && !firing) {\n list = memory = \"\";\n }\n\n return this;\n },\n locked: function locked() {\n return !!_locked;\n },\n // Call all callbacks with the given context and arguments\n fireWith: function fireWith(context, args) {\n if (!_locked) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n queue.push(args);\n\n if (!firing) {\n fire();\n }\n }\n\n return this;\n },\n // Call all the callbacks with the given arguments\n fire: function fire() {\n self.fireWith(this, arguments);\n return this;\n },\n // To know if the callbacks have already been called at least once\n fired: function fired() {\n return !!_fired;\n }\n };\n\n return self;\n };\n\n function Identity(v) {\n return v;\n }\n\n function Thrower(ex) {\n throw ex;\n }\n\n function adoptValue(value, resolve, reject, noValue) {\n var method;\n\n try {\n // Check for promise aspect first to privilege synchronous behavior\n if (value && isFunction(method = value.promise)) {\n method.call(value).done(resolve).fail(reject); // Other thenables\n } else if (value && isFunction(method = value.then)) {\n method.call(value, resolve, reject); // Other non-thenables\n } else {\n // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n // * false: [ value ].slice( 0 ) => resolve( value )\n // * true: [ value ].slice( 1 ) => resolve()\n resolve.apply(undefined, [value].slice(noValue));\n } // For Promises/A+, convert exceptions into rejections\n // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n // Deferred#then to conditionally suppress rejection.\n\n } catch (value) {\n // Support: Android 4.0 only\n // Strict mode functions invoked without .call/.apply get global-object context\n reject.apply(undefined, [value]);\n }\n }\n\n jQuery.extend({\n Deferred: function Deferred(func) {\n var tuples = [// action, add listener, callbacks,\n // ... .then handlers, argument index, [final state]\n [\"notify\", \"progress\", jQuery.Callbacks(\"memory\"), jQuery.Callbacks(\"memory\"), 2], [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 0, \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 1, \"rejected\"]],\n _state = \"pending\",\n _promise = {\n state: function state() {\n return _state;\n },\n always: function always() {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n \"catch\": function _catch(fn) {\n return _promise.then(null, fn);\n },\n // Keep pipe for back-compat\n pipe: function\n /* fnDone, fnFail, fnProgress */\n pipe() {\n var fns = arguments;\n return jQuery.Deferred(function (newDefer) {\n jQuery.each(tuples, function (_i, tuple) {\n // Map tuples (progress, done, fail) to arguments (done, fail, progress)\n var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]]; // deferred.progress(function() { bind to newDefer or newDefer.notify })\n // deferred.done(function() { bind to newDefer or newDefer.resolve })\n // deferred.fail(function() { bind to newDefer or newDefer.reject })\n\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n\n if (returned && isFunction(returned.promise)) {\n returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);\n } else {\n newDefer[tuple[0] + \"With\"](this, fn ? [returned] : arguments);\n }\n });\n });\n fns = null;\n }).promise();\n },\n then: function then(onFulfilled, onRejected, onProgress) {\n var maxDepth = 0;\n\n function resolve(depth, deferred, handler, special) {\n return function () {\n var that = this,\n args = arguments,\n mightThrow = function mightThrow() {\n var returned, then; // Support: Promises/A+ section 2.3.3.3.3\n // https://promisesaplus.com/#point-59\n // Ignore double-resolution attempts\n\n if (depth < maxDepth) {\n return;\n }\n\n returned = handler.apply(that, args); // Support: Promises/A+ section 2.3.1\n // https://promisesaplus.com/#point-48\n\n if (returned === deferred.promise()) {\n throw new TypeError(\"Thenable self-resolution\");\n } // Support: Promises/A+ sections 2.3.3.1, 3.5\n // https://promisesaplus.com/#point-54\n // https://promisesaplus.com/#point-75\n // Retrieve `then` only once\n\n\n then = returned && ( // Support: Promises/A+ section 2.3.4\n // https://promisesaplus.com/#point-64\n // Only check objects and functions for thenability\n _typeof(returned) === \"object\" || typeof returned === \"function\") && returned.then; // Handle a returned thenable\n\n if (isFunction(then)) {\n // Special processors (notify) just wait for resolution\n if (special) {\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special)); // Normal processors (resolve) also hook into progress\n } else {\n // ...and disregard older resolution values\n maxDepth++;\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special), resolve(maxDepth, deferred, Identity, deferred.notifyWith));\n } // Handle all other returned values\n\n } else {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Identity) {\n that = undefined;\n args = [returned];\n } // Process the value(s)\n // Default process is resolve\n\n\n (special || deferred.resolveWith)(that, args);\n }\n },\n // Only normal processors (resolve) catch and reject exceptions\n process = special ? mightThrow : function () {\n try {\n mightThrow();\n } catch (e) {\n if (jQuery.Deferred.exceptionHook) {\n jQuery.Deferred.exceptionHook(e, process.stackTrace);\n } // Support: Promises/A+ section 2.3.3.3.4.1\n // https://promisesaplus.com/#point-61\n // Ignore post-resolution exceptions\n\n\n if (depth + 1 >= maxDepth) {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Thrower) {\n that = undefined;\n args = [e];\n }\n\n deferred.rejectWith(that, args);\n }\n }\n }; // Support: Promises/A+ section 2.3.3.3.1\n // https://promisesaplus.com/#point-57\n // Re-resolve promises immediately to dodge false rejection from\n // subsequent errors\n\n\n if (depth) {\n process();\n } else {\n // Call an optional hook to record the stack, in case of exception\n // since it's otherwise lost when execution goes async\n if (jQuery.Deferred.getStackHook) {\n process.stackTrace = jQuery.Deferred.getStackHook();\n }\n\n window.setTimeout(process);\n }\n };\n }\n\n return jQuery.Deferred(function (newDefer) {\n // progress_handlers.add( ... )\n tuples[0][3].add(resolve(0, newDefer, isFunction(onProgress) ? onProgress : Identity, newDefer.notifyWith)); // fulfilled_handlers.add( ... )\n\n tuples[1][3].add(resolve(0, newDefer, isFunction(onFulfilled) ? onFulfilled : Identity)); // rejected_handlers.add( ... )\n\n tuples[2][3].add(resolve(0, newDefer, isFunction(onRejected) ? onRejected : Thrower));\n }).promise();\n },\n // Get a promise for this deferred\n // If obj is provided, the promise aspect is added to the object\n promise: function promise(obj) {\n return obj != null ? jQuery.extend(obj, _promise) : _promise;\n }\n },\n deferred = {}; // Add list-specific methods\n\n jQuery.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[5]; // promise.progress = list.add\n // promise.done = list.add\n // promise.fail = list.add\n\n _promise[tuple[1]] = list.add; // Handle state\n\n if (stateString) {\n list.add(function () {\n // state = \"resolved\" (i.e., fulfilled)\n // state = \"rejected\"\n _state = stateString;\n }, // rejected_callbacks.disable\n // fulfilled_callbacks.disable\n tuples[3 - i][2].disable, // rejected_handlers.disable\n // fulfilled_handlers.disable\n tuples[3 - i][3].disable, // progress_callbacks.lock\n tuples[0][2].lock, // progress_handlers.lock\n tuples[0][3].lock);\n } // progress_handlers.fire\n // fulfilled_handlers.fire\n // rejected_handlers.fire\n\n\n list.add(tuple[3].fire); // deferred.notify = function() { deferred.notifyWith(...) }\n // deferred.resolve = function() { deferred.resolveWith(...) }\n // deferred.reject = function() { deferred.rejectWith(...) }\n\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? undefined : this, arguments);\n return this;\n }; // deferred.notifyWith = list.fireWith\n // deferred.resolveWith = list.fireWith\n // deferred.rejectWith = list.fireWith\n\n\n deferred[tuple[0] + \"With\"] = list.fireWith;\n }); // Make the deferred a promise\n\n _promise.promise(deferred); // Call given func if any\n\n\n if (func) {\n func.call(deferred, deferred);\n } // All done!\n\n\n return deferred;\n },\n // Deferred helper\n when: function when(singleValue) {\n var // count of uncompleted subordinates\n remaining = arguments.length,\n // count of unprocessed arguments\n i = remaining,\n // subordinate fulfillment data\n resolveContexts = Array(i),\n resolveValues = _slice.call(arguments),\n // the primary Deferred\n primary = jQuery.Deferred(),\n // subordinate callback factory\n updateFunc = function updateFunc(i) {\n return function (value) {\n resolveContexts[i] = this;\n resolveValues[i] = arguments.length > 1 ? _slice.call(arguments) : value;\n\n if (! --remaining) {\n primary.resolveWith(resolveContexts, resolveValues);\n }\n };\n }; // Single- and empty arguments are adopted like Promise.resolve\n\n\n if (remaining <= 1) {\n adoptValue(singleValue, primary.done(updateFunc(i)).resolve, primary.reject, !remaining); // Use .then() to unwrap secondary thenables (cf. gh-3000)\n\n if (primary.state() === \"pending\" || isFunction(resolveValues[i] && resolveValues[i].then)) {\n return primary.then();\n }\n } // Multiple arguments are aggregated like Promise.all array elements\n\n\n while (i--) {\n adoptValue(resolveValues[i], updateFunc(i), primary.reject);\n }\n\n return primary.promise();\n }\n }); // These usually indicate a programmer mistake during development,\n // warn about them ASAP rather than swallowing them by default.\n\n var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n jQuery.Deferred.exceptionHook = function (error, stack) {\n // Support: IE 8 - 9 only\n // Console exists when dev tools are open, which can happen at any time\n if (window.console && window.console.warn && error && rerrorNames.test(error.name)) {\n window.console.warn(\"jQuery.Deferred exception: \" + error.message, error.stack, stack);\n }\n };\n\n jQuery.readyException = function (error) {\n window.setTimeout(function () {\n throw error;\n });\n }; // The deferred used on DOM ready\n\n\n var readyList = jQuery.Deferred();\n\n jQuery.fn.ready = function (fn) {\n readyList.then(fn) // Wrap jQuery.readyException in a function so that the lookup\n // happens at the time of error handling instead of callback\n // registration.\n .catch(function (error) {\n jQuery.readyException(error);\n });\n return this;\n };\n\n jQuery.extend({\n // Is the DOM ready to be used? Set to true once it occurs.\n isReady: false,\n // A counter to track how many items to wait for before\n // the ready event fires. See #6781\n readyWait: 1,\n // Handle when the DOM is ready\n ready: function ready(wait) {\n // Abort if there are pending holds or we're already ready\n if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\n return;\n } // Remember that the DOM is ready\n\n\n jQuery.isReady = true; // If a normal DOM Ready event fired, decrement, and wait if need be\n\n if (wait !== true && --jQuery.readyWait > 0) {\n return;\n } // If there are functions bound, to execute\n\n\n readyList.resolveWith(document, [jQuery]);\n }\n });\n jQuery.ready.then = readyList.then; // The ready event handler and self cleanup method\n\n function completed() {\n document.removeEventListener(\"DOMContentLoaded\", completed);\n window.removeEventListener(\"load\", completed);\n jQuery.ready();\n } // Catch cases where $(document).ready() is called\n // after the browser event has already occurred.\n // Support: IE <=9 - 10 only\n // Older IE sometimes signals \"interactive\" too soon\n\n\n if (document.readyState === \"complete\" || document.readyState !== \"loading\" && !document.documentElement.doScroll) {\n // Handle it asynchronously to allow scripts the opportunity to delay ready\n window.setTimeout(jQuery.ready);\n } else {\n // Use the handy event callback\n document.addEventListener(\"DOMContentLoaded\", completed); // A fallback to window.onload, that will always work\n\n window.addEventListener(\"load\", completed);\n } // Multifunctional method to get and set values of a collection\n // The value/s can optionally be executed if it's a function\n\n\n var access = function access(elems, fn, key, value, chainable, emptyGet, raw) {\n var i = 0,\n len = elems.length,\n bulk = key == null; // Sets many values\n\n if (toType(key) === \"object\") {\n chainable = true;\n\n for (i in key) {\n access(elems, fn, i, key[i], true, emptyGet, raw);\n } // Sets one value\n\n } else if (value !== undefined) {\n chainable = true;\n\n if (!isFunction(value)) {\n raw = true;\n }\n\n if (bulk) {\n // Bulk operations run against the entire set\n if (raw) {\n fn.call(elems, value);\n fn = null; // ...except when executing function values\n } else {\n bulk = fn;\n\n fn = function fn(elem, _key, value) {\n return bulk.call(jQuery(elem), value);\n };\n }\n }\n\n if (fn) {\n for (; i < len; i++) {\n fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));\n }\n }\n }\n\n if (chainable) {\n return elems;\n } // Gets\n\n\n if (bulk) {\n return fn.call(elems);\n }\n\n return len ? fn(elems[0], key) : emptyGet;\n }; // Matches dashed string for camelizing\n\n\n var rmsPrefix = /^-ms-/,\n rdashAlpha = /-([a-z])/g; // Used by camelCase as callback to replace()\n\n function fcamelCase(_all, letter) {\n return letter.toUpperCase();\n } // Convert dashed to camelCase; used by the css and data modules\n // Support: IE <=9 - 11, Edge 12 - 15\n // Microsoft forgot to hump their vendor prefix (#9572)\n\n\n function camelCase(string) {\n return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n }\n\n var acceptData = function acceptData(owner) {\n // Accepts only:\n // - Node\n // - Node.ELEMENT_NODE\n // - Node.DOCUMENT_NODE\n // - Object\n // - Any\n return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType;\n };\n\n function Data() {\n this.expando = jQuery.expando + Data.uid++;\n }\n\n Data.uid = 1;\n Data.prototype = {\n cache: function cache(owner) {\n // Check if the owner object already has a cache\n var value = owner[this.expando]; // If not, create one\n\n if (!value) {\n value = {}; // We can accept data for non-element nodes in modern browsers,\n // but we should not, see #8335.\n // Always return an empty object.\n\n if (acceptData(owner)) {\n // If it is a node unlikely to be stringify-ed or looped over\n // use plain assignment\n if (owner.nodeType) {\n owner[this.expando] = value; // Otherwise secure it in a non-enumerable property\n // configurable must be true to allow the property to be\n // deleted when data is removed\n } else {\n Object.defineProperty(owner, this.expando, {\n value: value,\n configurable: true\n });\n }\n }\n }\n\n return value;\n },\n set: function set(owner, data, value) {\n var prop,\n cache = this.cache(owner); // Handle: [ owner, key, value ] args\n // Always use camelCase key (gh-2257)\n\n if (typeof data === \"string\") {\n cache[camelCase(data)] = value; // Handle: [ owner, { properties } ] args\n } else {\n // Copy the properties one-by-one to the cache object\n for (prop in data) {\n cache[camelCase(prop)] = data[prop];\n }\n }\n\n return cache;\n },\n get: function get(owner, key) {\n return key === undefined ? this.cache(owner) : // Always use camelCase key (gh-2257)\n owner[this.expando] && owner[this.expando][camelCase(key)];\n },\n access: function access(owner, key, value) {\n // In cases where either:\n //\n // 1. No key was specified\n // 2. A string key was specified, but no value provided\n //\n // Take the \"read\" path and allow the get method to determine\n // which value to return, respectively either:\n //\n // 1. The entire cache object\n // 2. The data stored at the key\n //\n if (key === undefined || key && typeof key === \"string\" && value === undefined) {\n return this.get(owner, key);\n } // When the key is not a string, or both a key and value\n // are specified, set or extend (existing objects) with either:\n //\n // 1. An object of properties\n // 2. A key and value\n //\n\n\n this.set(owner, key, value); // Since the \"set\" path can have two possible entry points\n // return the expected data based on which path was taken[*]\n\n return value !== undefined ? value : key;\n },\n remove: function remove(owner, key) {\n var i,\n cache = owner[this.expando];\n\n if (cache === undefined) {\n return;\n }\n\n if (key !== undefined) {\n // Support array or space separated string of keys\n if (Array.isArray(key)) {\n // If key is an array of keys...\n // We always set camelCase keys, so remove that.\n key = key.map(camelCase);\n } else {\n key = camelCase(key); // If a key with the spaces exists, use it.\n // Otherwise, create an array by matching non-whitespace\n\n key = key in cache ? [key] : key.match(rnothtmlwhite) || [];\n }\n\n i = key.length;\n\n while (i--) {\n delete cache[key[i]];\n }\n } // Remove the expando if there's no more data\n\n\n if (key === undefined || jQuery.isEmptyObject(cache)) {\n // Support: Chrome <=35 - 45\n // Webkit & Blink performance suffers when deleting properties\n // from DOM nodes, so set to undefined instead\n // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n if (owner.nodeType) {\n owner[this.expando] = undefined;\n } else {\n delete owner[this.expando];\n }\n }\n },\n hasData: function hasData(owner) {\n var cache = owner[this.expando];\n return cache !== undefined && !jQuery.isEmptyObject(cache);\n }\n };\n var dataPriv = new Data();\n var dataUser = new Data(); //\tImplementation Summary\n //\n //\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n //\t2. Improve the module's maintainability by reducing the storage\n //\t\tpaths to a single mechanism.\n //\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n //\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n //\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n //\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\n var rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n rmultiDash = /[A-Z]/g;\n\n function getData(data) {\n if (data === \"true\") {\n return true;\n }\n\n if (data === \"false\") {\n return false;\n }\n\n if (data === \"null\") {\n return null;\n } // Only convert to a number if it doesn't change the string\n\n\n if (data === +data + \"\") {\n return +data;\n }\n\n if (rbrace.test(data)) {\n return JSON.parse(data);\n }\n\n return data;\n }\n\n function dataAttr(elem, key, data) {\n var name; // If nothing was found internally, try to fetch any\n // data from the HTML5 data-* attribute\n\n if (data === undefined && elem.nodeType === 1) {\n name = \"data-\" + key.replace(rmultiDash, \"-$&\").toLowerCase();\n data = elem.getAttribute(name);\n\n if (typeof data === \"string\") {\n try {\n data = getData(data);\n } catch (e) {} // Make sure we set the data so it isn't changed later\n\n\n dataUser.set(elem, key, data);\n } else {\n data = undefined;\n }\n }\n\n return data;\n }\n\n jQuery.extend({\n hasData: function hasData(elem) {\n return dataUser.hasData(elem) || dataPriv.hasData(elem);\n },\n data: function data(elem, name, _data) {\n return dataUser.access(elem, name, _data);\n },\n removeData: function removeData(elem, name) {\n dataUser.remove(elem, name);\n },\n // TODO: Now that all calls to _data and _removeData have been replaced\n // with direct calls to dataPriv methods, these can be deprecated.\n _data: function _data(elem, name, data) {\n return dataPriv.access(elem, name, data);\n },\n _removeData: function _removeData(elem, name) {\n dataPriv.remove(elem, name);\n }\n });\n jQuery.fn.extend({\n data: function data(key, value) {\n var i,\n name,\n data,\n elem = this[0],\n attrs = elem && elem.attributes; // Gets all values\n\n if (key === undefined) {\n if (this.length) {\n data = dataUser.get(elem);\n\n if (elem.nodeType === 1 && !dataPriv.get(elem, \"hasDataAttrs\")) {\n i = attrs.length;\n\n while (i--) {\n // Support: IE 11 only\n // The attrs elements can be null (#14894)\n if (attrs[i]) {\n name = attrs[i].name;\n\n if (name.indexOf(\"data-\") === 0) {\n name = camelCase(name.slice(5));\n dataAttr(elem, name, data[name]);\n }\n }\n }\n\n dataPriv.set(elem, \"hasDataAttrs\", true);\n }\n }\n\n return data;\n } // Sets multiple values\n\n\n if (_typeof(key) === \"object\") {\n return this.each(function () {\n dataUser.set(this, key);\n });\n }\n\n return access(this, function (value) {\n var data; // The calling jQuery object (element matches) is not empty\n // (and therefore has an element appears at this[ 0 ]) and the\n // `value` parameter was not undefined. An empty jQuery object\n // will result in `undefined` for elem = this[ 0 ] which will\n // throw an exception if an attempt to read a data cache is made.\n\n if (elem && value === undefined) {\n // Attempt to get data from the cache\n // The key will always be camelCased in Data\n data = dataUser.get(elem, key);\n\n if (data !== undefined) {\n return data;\n } // Attempt to \"discover\" the data in\n // HTML5 custom data-* attrs\n\n\n data = dataAttr(elem, key);\n\n if (data !== undefined) {\n return data;\n } // We tried really hard, but the data doesn't exist.\n\n\n return;\n } // Set the data...\n\n\n this.each(function () {\n // We always store the camelCased key\n dataUser.set(this, key, value);\n });\n }, null, value, arguments.length > 1, null, true);\n },\n removeData: function removeData(key) {\n return this.each(function () {\n dataUser.remove(this, key);\n });\n }\n });\n jQuery.extend({\n queue: function queue(elem, type, data) {\n var queue;\n\n if (elem) {\n type = (type || \"fx\") + \"queue\";\n queue = dataPriv.get(elem, type); // Speed up dequeue by getting out quickly if this is just a lookup\n\n if (data) {\n if (!queue || Array.isArray(data)) {\n queue = dataPriv.access(elem, type, jQuery.makeArray(data));\n } else {\n queue.push(data);\n }\n }\n\n return queue || [];\n }\n },\n dequeue: function dequeue(elem, type) {\n type = type || \"fx\";\n\n var queue = jQuery.queue(elem, type),\n startLength = queue.length,\n fn = queue.shift(),\n hooks = jQuery._queueHooks(elem, type),\n next = function next() {\n jQuery.dequeue(elem, type);\n }; // If the fx queue is dequeued, always remove the progress sentinel\n\n\n if (fn === \"inprogress\") {\n fn = queue.shift();\n startLength--;\n }\n\n if (fn) {\n // Add a progress sentinel to prevent the fx queue from being\n // automatically dequeued\n if (type === \"fx\") {\n queue.unshift(\"inprogress\");\n } // Clear up the last queue stop function\n\n\n delete hooks.stop;\n fn.call(elem, next, hooks);\n }\n\n if (!startLength && hooks) {\n hooks.empty.fire();\n }\n },\n // Not public - generate a queueHooks object, or return the current one\n _queueHooks: function _queueHooks(elem, type) {\n var key = type + \"queueHooks\";\n return dataPriv.get(elem, key) || dataPriv.access(elem, key, {\n empty: jQuery.Callbacks(\"once memory\").add(function () {\n dataPriv.remove(elem, [type + \"queue\", key]);\n })\n });\n }\n });\n jQuery.fn.extend({\n queue: function queue(type, data) {\n var setter = 2;\n\n if (typeof type !== \"string\") {\n data = type;\n type = \"fx\";\n setter--;\n }\n\n if (arguments.length < setter) {\n return jQuery.queue(this[0], type);\n }\n\n return data === undefined ? this : this.each(function () {\n var queue = jQuery.queue(this, type, data); // Ensure a hooks for this queue\n\n jQuery._queueHooks(this, type);\n\n if (type === \"fx\" && queue[0] !== \"inprogress\") {\n jQuery.dequeue(this, type);\n }\n });\n },\n dequeue: function dequeue(type) {\n return this.each(function () {\n jQuery.dequeue(this, type);\n });\n },\n clearQueue: function clearQueue(type) {\n return this.queue(type || \"fx\", []);\n },\n // Get a promise resolved when queues of a certain type\n // are emptied (fx is the type by default)\n promise: function promise(type, obj) {\n var tmp,\n count = 1,\n defer = jQuery.Deferred(),\n elements = this,\n i = this.length,\n resolve = function resolve() {\n if (! --count) {\n defer.resolveWith(elements, [elements]);\n }\n };\n\n if (typeof type !== \"string\") {\n obj = type;\n type = undefined;\n }\n\n type = type || \"fx\";\n\n while (i--) {\n tmp = dataPriv.get(elements[i], type + \"queueHooks\");\n\n if (tmp && tmp.empty) {\n count++;\n tmp.empty.add(resolve);\n }\n }\n\n resolve();\n return defer.promise(obj);\n }\n });\n var pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n var rcssNum = new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\n var cssExpand = [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n var documentElement = document.documentElement;\n\n var isAttached = function isAttached(elem) {\n return jQuery.contains(elem.ownerDocument, elem);\n },\n composed = {\n composed: true\n }; // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n // Check attachment across shadow DOM boundaries when possible (gh-3504)\n // Support: iOS 10.0-10.2 only\n // Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n // leading to errors. We need to check for `getRootNode`.\n\n\n if (documentElement.getRootNode) {\n isAttached = function isAttached(elem) {\n return jQuery.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument;\n };\n }\n\n var isHiddenWithinTree = function isHiddenWithinTree(elem, el) {\n // isHiddenWithinTree might be called from jQuery#filter function;\n // in that case, element will be second argument\n elem = el || elem; // Inline style trumps all\n\n return elem.style.display === \"none\" || elem.style.display === \"\" && // Otherwise, check computed style\n // Support: Firefox <=43 - 45\n // Disconnected elements can have computed display: none, so first confirm that elem is\n // in the document.\n isAttached(elem) && jQuery.css(elem, \"display\") === \"none\";\n };\n\n function adjustCSS(elem, prop, valueParts, tween) {\n var adjusted,\n scale,\n maxIterations = 20,\n currentValue = tween ? function () {\n return tween.cur();\n } : function () {\n return jQuery.css(elem, prop, \"\");\n },\n initial = currentValue(),\n unit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? \"\" : \"px\"),\n // Starting value computation is required for potential unit mismatches\n initialInUnit = elem.nodeType && (jQuery.cssNumber[prop] || unit !== \"px\" && +initial) && rcssNum.exec(jQuery.css(elem, prop));\n\n if (initialInUnit && initialInUnit[3] !== unit) {\n // Support: Firefox <=54\n // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n initial = initial / 2; // Trust units reported by jQuery.css\n\n unit = unit || initialInUnit[3]; // Iteratively approximate from a nonzero starting point\n\n initialInUnit = +initial || 1;\n\n while (maxIterations--) {\n // Evaluate and update our best guess (doubling guesses that zero out).\n // Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n jQuery.style(elem, prop, initialInUnit + unit);\n\n if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) {\n maxIterations = 0;\n }\n\n initialInUnit = initialInUnit / scale;\n }\n\n initialInUnit = initialInUnit * 2;\n jQuery.style(elem, prop, initialInUnit + unit); // Make sure we update the tween properties later on\n\n valueParts = valueParts || [];\n }\n\n if (valueParts) {\n initialInUnit = +initialInUnit || +initial || 0; // Apply relative offset (+=/-=) if specified\n\n adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2];\n\n if (tween) {\n tween.unit = unit;\n tween.start = initialInUnit;\n tween.end = adjusted;\n }\n }\n\n return adjusted;\n }\n\n var defaultDisplayMap = {};\n\n function getDefaultDisplay(elem) {\n var temp,\n doc = elem.ownerDocument,\n nodeName = elem.nodeName,\n display = defaultDisplayMap[nodeName];\n\n if (display) {\n return display;\n }\n\n temp = doc.body.appendChild(doc.createElement(nodeName));\n display = jQuery.css(temp, \"display\");\n temp.parentNode.removeChild(temp);\n\n if (display === \"none\") {\n display = \"block\";\n }\n\n defaultDisplayMap[nodeName] = display;\n return display;\n }\n\n function showHide(elements, show) {\n var display,\n elem,\n values = [],\n index = 0,\n length = elements.length; // Determine new display value for elements that need to change\n\n for (; index < length; index++) {\n elem = elements[index];\n\n if (!elem.style) {\n continue;\n }\n\n display = elem.style.display;\n\n if (show) {\n // Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n // check is required in this first loop unless we have a nonempty display value (either\n // inline or about-to-be-restored)\n if (display === \"none\") {\n values[index] = dataPriv.get(elem, \"display\") || null;\n\n if (!values[index]) {\n elem.style.display = \"\";\n }\n }\n\n if (elem.style.display === \"\" && isHiddenWithinTree(elem)) {\n values[index] = getDefaultDisplay(elem);\n }\n } else {\n if (display !== \"none\") {\n values[index] = \"none\"; // Remember what we're overwriting\n\n dataPriv.set(elem, \"display\", display);\n }\n }\n } // Set the display of the elements in a second loop to avoid constant reflow\n\n\n for (index = 0; index < length; index++) {\n if (values[index] != null) {\n elements[index].style.display = values[index];\n }\n }\n\n return elements;\n }\n\n jQuery.fn.extend({\n show: function show() {\n return showHide(this, true);\n },\n hide: function hide() {\n return showHide(this);\n },\n toggle: function toggle(state) {\n if (typeof state === \"boolean\") {\n return state ? this.show() : this.hide();\n }\n\n return this.each(function () {\n if (isHiddenWithinTree(this)) {\n jQuery(this).show();\n } else {\n jQuery(this).hide();\n }\n });\n }\n });\n var rcheckableType = /^(?:checkbox|radio)$/i;\n var rtagName = /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i;\n var rscriptType = /^$|^module$|\\/(?:java|ecma)script/i;\n\n (function () {\n var fragment = document.createDocumentFragment(),\n div = fragment.appendChild(document.createElement(\"div\")),\n input = document.createElement(\"input\"); // Support: Android 4.0 - 4.3 only\n // Check state lost if the name is set (#11217)\n // Support: Windows Web Apps (WWA)\n // `name` and `type` must use .setAttribute for WWA (#14901)\n\n input.setAttribute(\"type\", \"radio\");\n input.setAttribute(\"checked\", \"checked\");\n input.setAttribute(\"name\", \"t\");\n div.appendChild(input); // Support: Android <=4.1 only\n // Older WebKit doesn't clone checked state correctly in fragments\n\n support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked; // Support: IE <=11 only\n // Make sure textarea (and checkbox) defaultValue is properly cloned\n\n div.innerHTML = \"\";\n support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue; // Support: IE <=9 only\n // IE <=9 replaces \";\n support.option = !!div.lastChild;\n })(); // We have to close these tags to support XHTML (#13200)\n\n\n var wrapMap = {\n // XHTML parsers do not magically insert elements in the\n // same way that tag soup parsers do. So we cannot shorten\n // this by omitting or other required elements.\n thead: [1, \"\", \"
    \"],\n col: [2, \"\", \"
    \"],\n tr: [2, \"\", \"
    \"],\n td: [3, \"\", \"
    \"],\n _default: [0, \"\", \"\"]\n };\n wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n wrapMap.th = wrapMap.td; // Support: IE <=9 only\n\n if (!support.option) {\n wrapMap.optgroup = wrapMap.option = [1, \"\"];\n }\n\n function getAll(context, tag) {\n // Support: IE <=9 - 11 only\n // Use typeof to avoid zero-argument method invocation on host objects (#15151)\n var ret;\n\n if (typeof context.getElementsByTagName !== \"undefined\") {\n ret = context.getElementsByTagName(tag || \"*\");\n } else if (typeof context.querySelectorAll !== \"undefined\") {\n ret = context.querySelectorAll(tag || \"*\");\n } else {\n ret = [];\n }\n\n if (tag === undefined || tag && nodeName(context, tag)) {\n return jQuery.merge([context], ret);\n }\n\n return ret;\n } // Mark scripts as having already been evaluated\n\n\n function setGlobalEval(elems, refElements) {\n var i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n dataPriv.set(elems[i], \"globalEval\", !refElements || dataPriv.get(refElements[i], \"globalEval\"));\n }\n }\n\n var rhtml = /<|&#?\\w+;/;\n\n function buildFragment(elems, context, scripts, selection, ignored) {\n var elem,\n tmp,\n tag,\n wrap,\n attached,\n j,\n fragment = context.createDocumentFragment(),\n nodes = [],\n i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n elem = elems[i];\n\n if (elem || elem === 0) {\n // Add nodes directly\n if (toType(elem) === \"object\") {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(nodes, elem.nodeType ? [elem] : elem); // Convert non-html into a text node\n } else if (!rhtml.test(elem)) {\n nodes.push(context.createTextNode(elem)); // Convert html into DOM nodes\n } else {\n tmp = tmp || fragment.appendChild(context.createElement(\"div\")); // Deserialize a standard representation\n\n tag = (rtagName.exec(elem) || [\"\", \"\"])[1].toLowerCase();\n wrap = wrapMap[tag] || wrapMap._default;\n tmp.innerHTML = wrap[1] + jQuery.htmlPrefilter(elem) + wrap[2]; // Descend through wrappers to the right content\n\n j = wrap[0];\n\n while (j--) {\n tmp = tmp.lastChild;\n } // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n\n\n jQuery.merge(nodes, tmp.childNodes); // Remember the top-level container\n\n tmp = fragment.firstChild; // Ensure the created nodes are orphaned (#12392)\n\n tmp.textContent = \"\";\n }\n }\n } // Remove wrapper from fragment\n\n\n fragment.textContent = \"\";\n i = 0;\n\n while (elem = nodes[i++]) {\n // Skip elements already in the context collection (trac-4087)\n if (selection && jQuery.inArray(elem, selection) > -1) {\n if (ignored) {\n ignored.push(elem);\n }\n\n continue;\n }\n\n attached = isAttached(elem); // Append to fragment\n\n tmp = getAll(fragment.appendChild(elem), \"script\"); // Preserve script evaluation history\n\n if (attached) {\n setGlobalEval(tmp);\n } // Capture executables\n\n\n if (scripts) {\n j = 0;\n\n while (elem = tmp[j++]) {\n if (rscriptType.test(elem.type || \"\")) {\n scripts.push(elem);\n }\n }\n }\n }\n\n return fragment;\n }\n\n var rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\n function returnTrue() {\n return true;\n }\n\n function returnFalse() {\n return false;\n } // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous, except when they are no-op.\n // So expect focus to be synchronous when the element is already active,\n // and blur to be synchronous when the element is not already active.\n // (focus and blur are always synchronous in other supported browsers,\n // this just defines when we can count on it).\n\n\n function expectSync(elem, type) {\n return elem === safeActiveElement() === (type === \"focus\");\n } // Support: IE <=9 only\n // Accessing document.activeElement can throw unexpectedly\n // https://bugs.jquery.com/ticket/13393\n\n\n function safeActiveElement() {\n try {\n return document.activeElement;\n } catch (err) {}\n }\n\n function _on(elem, types, selector, data, fn, one) {\n var origFn, type; // Types can be a map of types/handlers\n\n if (_typeof(types) === \"object\") {\n // ( types-Object, selector, data )\n if (typeof selector !== \"string\") {\n // ( types-Object, data )\n data = data || selector;\n selector = undefined;\n }\n\n for (type in types) {\n _on(elem, type, selector, data, types[type], one);\n }\n\n return elem;\n }\n\n if (data == null && fn == null) {\n // ( types, fn )\n fn = selector;\n data = selector = undefined;\n } else if (fn == null) {\n if (typeof selector === \"string\") {\n // ( types, selector, fn )\n fn = data;\n data = undefined;\n } else {\n // ( types, data, fn )\n fn = data;\n data = selector;\n selector = undefined;\n }\n }\n\n if (fn === false) {\n fn = returnFalse;\n } else if (!fn) {\n return elem;\n }\n\n if (one === 1) {\n origFn = fn;\n\n fn = function fn(event) {\n // Can use an empty set, since event contains the info\n jQuery().off(event);\n return origFn.apply(this, arguments);\n }; // Use same guid so caller can remove using origFn\n\n\n fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n }\n\n return elem.each(function () {\n jQuery.event.add(this, types, fn, data, selector);\n });\n }\n /*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\n\n\n jQuery.event = {\n global: {},\n add: function add(elem, types, handler, data, selector) {\n var handleObjIn,\n eventHandle,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.get(elem); // Only attach events to objects that accept data\n\n if (!acceptData(elem)) {\n return;\n } // Caller can pass in an object of custom data in lieu of the handler\n\n\n if (handler.handler) {\n handleObjIn = handler;\n handler = handleObjIn.handler;\n selector = handleObjIn.selector;\n } // Ensure that invalid selectors throw exceptions at attach time\n // Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\n\n if (selector) {\n jQuery.find.matchesSelector(documentElement, selector);\n } // Make sure that the handler has a unique ID, used to find/remove it later\n\n\n if (!handler.guid) {\n handler.guid = jQuery.guid++;\n } // Init the element's event structure and main handler, if this is the first\n\n\n if (!(events = elemData.events)) {\n events = elemData.events = Object.create(null);\n }\n\n if (!(eventHandle = elemData.handle)) {\n eventHandle = elemData.handle = function (e) {\n // Discard the second event of a jQuery.event.trigger() and\n // when an event is called after a page has unloaded\n return typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply(elem, arguments) : undefined;\n };\n } // Handle multiple events separated by a space\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // There *must* be a type, no attaching namespace-only handlers\n\n if (!type) {\n continue;\n } // If event changes its type, use the special event handlers for the changed type\n\n\n special = jQuery.event.special[type] || {}; // If selector defined, determine special event api type, otherwise given type\n\n type = (selector ? special.delegateType : special.bindType) || type; // Update special based on newly reset type\n\n special = jQuery.event.special[type] || {}; // handleObj is passed to all event handlers\n\n handleObj = jQuery.extend({\n type: type,\n origType: origType,\n data: data,\n handler: handler,\n guid: handler.guid,\n selector: selector,\n needsContext: selector && jQuery.expr.match.needsContext.test(selector),\n namespace: namespaces.join(\".\")\n }, handleObjIn); // Init the event handler queue if we're the first\n\n if (!(handlers = events[type])) {\n handlers = events[type] = [];\n handlers.delegateCount = 0; // Only use addEventListener if the special events handler returns false\n\n if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle);\n }\n }\n }\n\n if (special.add) {\n special.add.call(elem, handleObj);\n\n if (!handleObj.handler.guid) {\n handleObj.handler.guid = handler.guid;\n }\n } // Add to the element's handler list, delegates in front\n\n\n if (selector) {\n handlers.splice(handlers.delegateCount++, 0, handleObj);\n } else {\n handlers.push(handleObj);\n } // Keep track of which events have ever been used, for event optimization\n\n\n jQuery.event.global[type] = true;\n }\n },\n // Detach an event or set of events from an element\n remove: function remove(elem, types, handler, selector, mappedTypes) {\n var j,\n origCount,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.hasData(elem) && dataPriv.get(elem);\n\n if (!elemData || !(events = elemData.events)) {\n return;\n } // Once for each type.namespace in types; type may be omitted\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // Unbind all events (on this namespace, if provided) for the element\n\n if (!type) {\n for (type in events) {\n jQuery.event.remove(elem, type + types[t], handler, selector, true);\n }\n\n continue;\n }\n\n special = jQuery.event.special[type] || {};\n type = (selector ? special.delegateType : special.bindType) || type;\n handlers = events[type] || [];\n tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\"); // Remove matching events\n\n origCount = j = handlers.length;\n\n while (j--) {\n handleObj = handlers[j];\n\n if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector)) {\n handlers.splice(j, 1);\n\n if (handleObj.selector) {\n handlers.delegateCount--;\n }\n\n if (special.remove) {\n special.remove.call(elem, handleObj);\n }\n }\n } // Remove generic event handler if we removed something and no more handlers exist\n // (avoids potential for endless recursion during removal of special event handlers)\n\n\n if (origCount && !handlers.length) {\n if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\n jQuery.removeEvent(elem, type, elemData.handle);\n }\n\n delete events[type];\n }\n } // Remove data and the expando if it's no longer used\n\n\n if (jQuery.isEmptyObject(events)) {\n dataPriv.remove(elem, \"handle events\");\n }\n },\n dispatch: function dispatch(nativeEvent) {\n var i,\n j,\n ret,\n matched,\n handleObj,\n handlerQueue,\n args = new Array(arguments.length),\n // Make a writable jQuery.Event from the native event object\n event = jQuery.event.fix(nativeEvent),\n handlers = (dataPriv.get(this, \"events\") || Object.create(null))[event.type] || [],\n special = jQuery.event.special[event.type] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event\n\n args[0] = event;\n\n for (i = 1; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n\n event.delegateTarget = this; // Call the preDispatch hook for the mapped type, and let it bail if desired\n\n if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n return;\n } // Determine handlers\n\n\n handlerQueue = jQuery.event.handlers.call(this, event, handlers); // Run delegates first; they may want to stop propagation beneath us\n\n i = 0;\n\n while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n event.currentTarget = matched.elem;\n j = 0;\n\n while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\n // If the event is namespaced, then each handler is only invoked if it is\n // specially universal or its namespaces are a superset of the event's.\n if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) {\n event.handleObj = handleObj;\n event.data = handleObj.data;\n ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args);\n\n if (ret !== undefined) {\n if ((event.result = ret) === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n } // Call the postDispatch hook for the mapped type\n\n\n if (special.postDispatch) {\n special.postDispatch.call(this, event);\n }\n\n return event.result;\n },\n handlers: function handlers(event, _handlers) {\n var i,\n handleObj,\n sel,\n matchedHandlers,\n matchedSelectors,\n handlerQueue = [],\n delegateCount = _handlers.delegateCount,\n cur = event.target; // Find delegate handlers\n\n if (delegateCount && // Support: IE <=9\n // Black-hole SVG instance trees (trac-13180)\n cur.nodeType && // Support: Firefox <=42\n // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n // Support: IE 11 only\n // ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n !(event.type === \"click\" && event.button >= 1)) {\n for (; cur !== this; cur = cur.parentNode || this) {\n // Don't check non-elements (#13208)\n // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n if (cur.nodeType === 1 && !(event.type === \"click\" && cur.disabled === true)) {\n matchedHandlers = [];\n matchedSelectors = {};\n\n for (i = 0; i < delegateCount; i++) {\n handleObj = _handlers[i]; // Don't conflict with Object.prototype properties (#13203)\n\n sel = handleObj.selector + \" \";\n\n if (matchedSelectors[sel] === undefined) {\n matchedSelectors[sel] = handleObj.needsContext ? jQuery(sel, this).index(cur) > -1 : jQuery.find(sel, this, null, [cur]).length;\n }\n\n if (matchedSelectors[sel]) {\n matchedHandlers.push(handleObj);\n }\n }\n\n if (matchedHandlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: matchedHandlers\n });\n }\n }\n }\n } // Add the remaining (directly-bound) handlers\n\n\n cur = this;\n\n if (delegateCount < _handlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: _handlers.slice(delegateCount)\n });\n }\n\n return handlerQueue;\n },\n addProp: function addProp(name, hook) {\n Object.defineProperty(jQuery.Event.prototype, name, {\n enumerable: true,\n configurable: true,\n get: isFunction(hook) ? function () {\n if (this.originalEvent) {\n return hook(this.originalEvent);\n }\n } : function () {\n if (this.originalEvent) {\n return this.originalEvent[name];\n }\n },\n set: function set(value) {\n Object.defineProperty(this, name, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: value\n });\n }\n });\n },\n fix: function fix(originalEvent) {\n return originalEvent[jQuery.expando] ? originalEvent : new jQuery.Event(originalEvent);\n },\n special: {\n load: {\n // Prevent triggered image.load events from bubbling to window.load\n noBubble: true\n },\n click: {\n // Utilize native event to ensure correct state for checkable inputs\n setup: function setup(data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Claim the first handler\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n // dataPriv.set( el, \"click\", ... )\n leverageNative(el, \"click\", returnTrue);\n } // Return false to allow normal processing in the caller\n\n\n return false;\n },\n trigger: function trigger(data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Force setup before triggering a click\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n leverageNative(el, \"click\");\n } // Return non-false to allow normal event-path propagation\n\n\n return true;\n },\n // For cross-browser consistency, suppress native .click() on links\n // Also prevent it if we're currently inside a leveraged native-event stack\n _default: function _default(event) {\n var target = event.target;\n return rcheckableType.test(target.type) && target.click && nodeName(target, \"input\") && dataPriv.get(target, \"click\") || nodeName(target, \"a\");\n }\n },\n beforeunload: {\n postDispatch: function postDispatch(event) {\n // Support: Firefox 20+\n // Firefox doesn't alert if the returnValue field is not set.\n if (event.result !== undefined && event.originalEvent) {\n event.originalEvent.returnValue = event.result;\n }\n }\n }\n }\n }; // Ensure the presence of an event listener that handles manually-triggered\n // synthetic events by interrupting progress until reinvoked in response to\n // *native* events that it fires directly, ensuring that state changes have\n // already occurred before other listeners are invoked.\n\n function leverageNative(el, type, expectSync) {\n // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n if (!expectSync) {\n if (dataPriv.get(el, type) === undefined) {\n jQuery.event.add(el, type, returnTrue);\n }\n\n return;\n } // Register the controller as a special universal handler for all event namespaces\n\n\n dataPriv.set(el, type, false);\n jQuery.event.add(el, type, {\n namespace: false,\n handler: function handler(event) {\n var notAsync,\n result,\n saved = dataPriv.get(this, type);\n\n if (event.isTrigger & 1 && this[type]) {\n // Interrupt processing of the outer synthetic .trigger()ed event\n // Saved data should be false in such cases, but might be a leftover capture object\n // from an async native handler (gh-4350)\n if (!saved.length) {\n // Store arguments for use when handling the inner native event\n // There will always be at least one argument (an event object), so this array\n // will not be confused with a leftover capture object.\n saved = _slice.call(arguments);\n dataPriv.set(this, type, saved); // Trigger the native event and capture its result\n // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous\n\n notAsync = expectSync(this, type);\n this[type]();\n result = dataPriv.get(this, type);\n\n if (saved !== result || notAsync) {\n dataPriv.set(this, type, false);\n } else {\n result = {};\n }\n\n if (saved !== result) {\n // Cancel the outer synthetic event\n event.stopImmediatePropagation();\n event.preventDefault(); // Support: Chrome 86+\n // In Chrome, if an element having a focusout handler is blurred by\n // clicking outside of it, it invokes the handler synchronously. If\n // that handler calls `.remove()` on the element, the data is cleared,\n // leaving `result` undefined. We need to guard against this.\n\n return result && result.value;\n } // If this is an inner synthetic event for an event with a bubbling surrogate\n // (focus or blur), assume that the surrogate already propagated from triggering the\n // native event and prevent that from happening again here.\n // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n // bubbling surrogate propagates *after* the non-bubbling base), but that seems\n // less bad than duplication.\n\n } else if ((jQuery.event.special[type] || {}).delegateType) {\n event.stopPropagation();\n } // If this is a native event triggered above, everything is now in order\n // Fire an inner synthetic event with the original arguments\n\n } else if (saved.length) {\n // ...and capture the result\n dataPriv.set(this, type, {\n value: jQuery.event.trigger( // Support: IE <=9 - 11+\n // Extend with the prototype to reset the above stopImmediatePropagation()\n jQuery.extend(saved[0], jQuery.Event.prototype), saved.slice(1), this)\n }); // Abort handling of the native event\n\n event.stopImmediatePropagation();\n }\n }\n });\n }\n\n jQuery.removeEvent = function (elem, type, handle) {\n // This \"if\" is needed for plain objects\n if (elem.removeEventListener) {\n elem.removeEventListener(type, handle);\n }\n };\n\n jQuery.Event = function (src, props) {\n // Allow instantiation without the 'new' keyword\n if (!(this instanceof jQuery.Event)) {\n return new jQuery.Event(src, props);\n } // Event object\n\n\n if (src && src.type) {\n this.originalEvent = src;\n this.type = src.type; // Events bubbling up the document may have been marked as prevented\n // by a handler lower down the tree; reflect the correct value.\n\n this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined && // Support: Android <=2.3 only\n src.returnValue === false ? returnTrue : returnFalse; // Create target properties\n // Support: Safari <=6 - 7 only\n // Target should not be a text node (#504, #13143)\n\n this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target;\n this.currentTarget = src.currentTarget;\n this.relatedTarget = src.relatedTarget; // Event type\n } else {\n this.type = src;\n } // Put explicitly provided properties onto the event object\n\n\n if (props) {\n jQuery.extend(this, props);\n } // Create a timestamp if incoming event doesn't have one\n\n\n this.timeStamp = src && src.timeStamp || Date.now(); // Mark it as fixed\n\n this[jQuery.expando] = true;\n }; // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n // https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\n\n\n jQuery.Event.prototype = {\n constructor: jQuery.Event,\n isDefaultPrevented: returnFalse,\n isPropagationStopped: returnFalse,\n isImmediatePropagationStopped: returnFalse,\n isSimulated: false,\n preventDefault: function preventDefault() {\n var e = this.originalEvent;\n this.isDefaultPrevented = returnTrue;\n\n if (e && !this.isSimulated) {\n e.preventDefault();\n }\n },\n stopPropagation: function stopPropagation() {\n var e = this.originalEvent;\n this.isPropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopPropagation();\n }\n },\n stopImmediatePropagation: function stopImmediatePropagation() {\n var e = this.originalEvent;\n this.isImmediatePropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopImmediatePropagation();\n }\n\n this.stopPropagation();\n }\n }; // Includes all common event props including KeyEvent and MouseEvent specific props\n\n jQuery.each({\n altKey: true,\n bubbles: true,\n cancelable: true,\n changedTouches: true,\n ctrlKey: true,\n detail: true,\n eventPhase: true,\n metaKey: true,\n pageX: true,\n pageY: true,\n shiftKey: true,\n view: true,\n \"char\": true,\n code: true,\n charCode: true,\n key: true,\n keyCode: true,\n button: true,\n buttons: true,\n clientX: true,\n clientY: true,\n offsetX: true,\n offsetY: true,\n pointerId: true,\n pointerType: true,\n screenX: true,\n screenY: true,\n targetTouches: true,\n toElement: true,\n touches: true,\n which: true\n }, jQuery.event.addProp);\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (type, delegateType) {\n jQuery.event.special[type] = {\n // Utilize native event if possible so blur/focus sequence is correct\n setup: function setup() {\n // Claim the first handler\n // dataPriv.set( this, \"focus\", ... )\n // dataPriv.set( this, \"blur\", ... )\n leverageNative(this, type, expectSync); // Return false to allow normal processing in the caller\n\n return false;\n },\n trigger: function trigger() {\n // Force setup before trigger\n leverageNative(this, type); // Return non-false to allow normal event-path propagation\n\n return true;\n },\n // Suppress native focus or blur as it's already being fired\n // in leverageNative.\n _default: function _default() {\n return true;\n },\n delegateType: delegateType\n };\n }); // Create mouseenter/leave events using mouseover/out and event-time checks\n // so that event delegation works in jQuery.\n // Do the same for pointerenter/pointerleave and pointerover/pointerout\n //\n // Support: Safari 7 only\n // Safari sends mouseenter too often; see:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n // for the description of the bug (it existed in older Chrome versions as well).\n\n jQuery.each({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\",\n pointerenter: \"pointerover\",\n pointerleave: \"pointerout\"\n }, function (orig, fix) {\n jQuery.event.special[orig] = {\n delegateType: fix,\n bindType: fix,\n handle: function handle(event) {\n var ret,\n target = this,\n related = event.relatedTarget,\n handleObj = event.handleObj; // For mouseenter/leave call the handler if related is outside the target.\n // NB: No relatedTarget if the mouse left/entered the browser window\n\n if (!related || related !== target && !jQuery.contains(target, related)) {\n event.type = handleObj.origType;\n ret = handleObj.handler.apply(this, arguments);\n event.type = fix;\n }\n\n return ret;\n }\n };\n });\n jQuery.fn.extend({\n on: function on(types, selector, data, fn) {\n return _on(this, types, selector, data, fn);\n },\n one: function one(types, selector, data, fn) {\n return _on(this, types, selector, data, fn, 1);\n },\n off: function off(types, selector, fn) {\n var handleObj, type;\n\n if (types && types.preventDefault && types.handleObj) {\n // ( event ) dispatched jQuery.Event\n handleObj = types.handleObj;\n jQuery(types.delegateTarget).off(handleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler);\n return this;\n }\n\n if (_typeof(types) === \"object\") {\n // ( types-object [, selector] )\n for (type in types) {\n this.off(type, selector, types[type]);\n }\n\n return this;\n }\n\n if (selector === false || typeof selector === \"function\") {\n // ( types [, fn] )\n fn = selector;\n selector = undefined;\n }\n\n if (fn === false) {\n fn = returnFalse;\n }\n\n return this.each(function () {\n jQuery.event.remove(this, types, fn, selector);\n });\n }\n });\n var // Support: IE <=10 - 11, Edge 12 - 13 only\n // In IE/Edge using regex groups here causes severe slowdowns.\n // See https://connect.microsoft.com/IE/feedback/details/1736512/\n rnoInnerhtml = /\\s*$/g; // Prefer a tbody over its parent table for containing new rows\n\n function manipulationTarget(elem, content) {\n if (nodeName(elem, \"table\") && nodeName(content.nodeType !== 11 ? content : content.firstChild, \"tr\")) {\n return jQuery(elem).children(\"tbody\")[0] || elem;\n }\n\n return elem;\n } // Replace/restore the type attribute of script elements for safe DOM manipulation\n\n\n function disableScript(elem) {\n elem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n return elem;\n }\n\n function restoreScript(elem) {\n if ((elem.type || \"\").slice(0, 5) === \"true/\") {\n elem.type = elem.type.slice(5);\n } else {\n elem.removeAttribute(\"type\");\n }\n\n return elem;\n }\n\n function cloneCopyEvent(src, dest) {\n var i, l, type, pdataOld, udataOld, udataCur, events;\n\n if (dest.nodeType !== 1) {\n return;\n } // 1. Copy private data: events, handlers, etc.\n\n\n if (dataPriv.hasData(src)) {\n pdataOld = dataPriv.get(src);\n events = pdataOld.events;\n\n if (events) {\n dataPriv.remove(dest, \"handle events\");\n\n for (type in events) {\n for (i = 0, l = events[type].length; i < l; i++) {\n jQuery.event.add(dest, type, events[type][i]);\n }\n }\n }\n } // 2. Copy user data\n\n\n if (dataUser.hasData(src)) {\n udataOld = dataUser.access(src);\n udataCur = jQuery.extend({}, udataOld);\n dataUser.set(dest, udataCur);\n }\n } // Fix IE bugs, see support tests\n\n\n function fixInput(src, dest) {\n var nodeName = dest.nodeName.toLowerCase(); // Fails to persist the checked state of a cloned checkbox or radio button.\n\n if (nodeName === \"input\" && rcheckableType.test(src.type)) {\n dest.checked = src.checked; // Fails to return the selected option to the default selected state when cloning options\n } else if (nodeName === \"input\" || nodeName === \"textarea\") {\n dest.defaultValue = src.defaultValue;\n }\n }\n\n function domManip(collection, args, callback, ignored) {\n // Flatten any nested arrays\n args = flat(args);\n var fragment,\n first,\n scripts,\n hasScripts,\n node,\n doc,\n i = 0,\n l = collection.length,\n iNoClone = l - 1,\n value = args[0],\n valueIsFunction = isFunction(value); // We can't cloneNode fragments that contain checked, in WebKit\n\n if (valueIsFunction || l > 1 && typeof value === \"string\" && !support.checkClone && rchecked.test(value)) {\n return collection.each(function (index) {\n var self = collection.eq(index);\n\n if (valueIsFunction) {\n args[0] = value.call(this, index, self.html());\n }\n\n domManip(self, args, callback, ignored);\n });\n }\n\n if (l) {\n fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored);\n first = fragment.firstChild;\n\n if (fragment.childNodes.length === 1) {\n fragment = first;\n } // Require either new content or an interest in ignored elements to invoke the callback\n\n\n if (first || ignored) {\n scripts = jQuery.map(getAll(fragment, \"script\"), disableScript);\n hasScripts = scripts.length; // Use the original fragment for the last item\n // instead of the first because it can end up\n // being emptied incorrectly in certain situations (#8070).\n\n for (; i < l; i++) {\n node = fragment;\n\n if (i !== iNoClone) {\n node = jQuery.clone(node, true, true); // Keep references to cloned scripts for later restoration\n\n if (hasScripts) {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(scripts, getAll(node, \"script\"));\n }\n }\n\n callback.call(collection[i], node, i);\n }\n\n if (hasScripts) {\n doc = scripts[scripts.length - 1].ownerDocument; // Reenable scripts\n\n jQuery.map(scripts, restoreScript); // Evaluate executable scripts on first document insertion\n\n for (i = 0; i < hasScripts; i++) {\n node = scripts[i];\n\n if (rscriptType.test(node.type || \"\") && !dataPriv.access(node, \"globalEval\") && jQuery.contains(doc, node)) {\n if (node.src && (node.type || \"\").toLowerCase() !== \"module\") {\n // Optional AJAX dependency, but won't run scripts if not present\n if (jQuery._evalUrl && !node.noModule) {\n jQuery._evalUrl(node.src, {\n nonce: node.nonce || node.getAttribute(\"nonce\")\n }, doc);\n }\n } else {\n DOMEval(node.textContent.replace(rcleanScript, \"\"), node, doc);\n }\n }\n }\n }\n }\n }\n\n return collection;\n }\n\n function _remove(elem, selector, keepData) {\n var node,\n nodes = selector ? jQuery.filter(selector, elem) : elem,\n i = 0;\n\n for (; (node = nodes[i]) != null; i++) {\n if (!keepData && node.nodeType === 1) {\n jQuery.cleanData(getAll(node));\n }\n\n if (node.parentNode) {\n if (keepData && isAttached(node)) {\n setGlobalEval(getAll(node, \"script\"));\n }\n\n node.parentNode.removeChild(node);\n }\n }\n\n return elem;\n }\n\n jQuery.extend({\n htmlPrefilter: function htmlPrefilter(html) {\n return html;\n },\n clone: function clone(elem, dataAndEvents, deepDataAndEvents) {\n var i,\n l,\n srcElements,\n destElements,\n clone = elem.cloneNode(true),\n inPage = isAttached(elem); // Fix IE cloning issues\n\n if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) {\n // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n destElements = getAll(clone);\n srcElements = getAll(elem);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n fixInput(srcElements[i], destElements[i]);\n }\n } // Copy the events from the original to the clone\n\n\n if (dataAndEvents) {\n if (deepDataAndEvents) {\n srcElements = srcElements || getAll(elem);\n destElements = destElements || getAll(clone);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n cloneCopyEvent(srcElements[i], destElements[i]);\n }\n } else {\n cloneCopyEvent(elem, clone);\n }\n } // Preserve script evaluation history\n\n\n destElements = getAll(clone, \"script\");\n\n if (destElements.length > 0) {\n setGlobalEval(destElements, !inPage && getAll(elem, \"script\"));\n } // Return the cloned set\n\n\n return clone;\n },\n cleanData: function cleanData(elems) {\n var data,\n elem,\n type,\n special = jQuery.event.special,\n i = 0;\n\n for (; (elem = elems[i]) !== undefined; i++) {\n if (acceptData(elem)) {\n if (data = elem[dataPriv.expando]) {\n if (data.events) {\n for (type in data.events) {\n if (special[type]) {\n jQuery.event.remove(elem, type); // This is a shortcut to avoid jQuery.event.remove's overhead\n } else {\n jQuery.removeEvent(elem, type, data.handle);\n }\n }\n } // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n\n\n elem[dataPriv.expando] = undefined;\n }\n\n if (elem[dataUser.expando]) {\n // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n elem[dataUser.expando] = undefined;\n }\n }\n }\n }\n });\n jQuery.fn.extend({\n detach: function detach(selector) {\n return _remove(this, selector, true);\n },\n remove: function remove(selector) {\n return _remove(this, selector);\n },\n text: function text(value) {\n return access(this, function (value) {\n return value === undefined ? jQuery.text(this) : this.empty().each(function () {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n this.textContent = value;\n }\n });\n }, null, value, arguments.length);\n },\n append: function append() {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.appendChild(elem);\n }\n });\n },\n prepend: function prepend() {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.insertBefore(elem, target.firstChild);\n }\n });\n },\n before: function before() {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this);\n }\n });\n },\n after: function after() {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this.nextSibling);\n }\n });\n },\n empty: function empty() {\n var elem,\n i = 0;\n\n for (; (elem = this[i]) != null; i++) {\n if (elem.nodeType === 1) {\n // Prevent memory leaks\n jQuery.cleanData(getAll(elem, false)); // Remove any remaining nodes\n\n elem.textContent = \"\";\n }\n }\n\n return this;\n },\n clone: function clone(dataAndEvents, deepDataAndEvents) {\n dataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n return this.map(function () {\n return jQuery.clone(this, dataAndEvents, deepDataAndEvents);\n });\n },\n html: function html(value) {\n return access(this, function (value) {\n var elem = this[0] || {},\n i = 0,\n l = this.length;\n\n if (value === undefined && elem.nodeType === 1) {\n return elem.innerHTML;\n } // See if we can take a shortcut and just use innerHTML\n\n\n if (typeof value === \"string\" && !rnoInnerhtml.test(value) && !wrapMap[(rtagName.exec(value) || [\"\", \"\"])[1].toLowerCase()]) {\n value = jQuery.htmlPrefilter(value);\n\n try {\n for (; i < l; i++) {\n elem = this[i] || {}; // Remove element nodes and prevent memory leaks\n\n if (elem.nodeType === 1) {\n jQuery.cleanData(getAll(elem, false));\n elem.innerHTML = value;\n }\n }\n\n elem = 0; // If using innerHTML throws an exception, use the fallback method\n } catch (e) {}\n }\n\n if (elem) {\n this.empty().append(value);\n }\n }, null, value, arguments.length);\n },\n replaceWith: function replaceWith() {\n var ignored = []; // Make the changes, replacing each non-ignored context element with the new content\n\n return domManip(this, arguments, function (elem) {\n var parent = this.parentNode;\n\n if (jQuery.inArray(this, ignored) < 0) {\n jQuery.cleanData(getAll(this));\n\n if (parent) {\n parent.replaceChild(elem, this);\n }\n } // Force callback invocation\n\n }, ignored);\n }\n });\n jQuery.each({\n appendTo: \"append\",\n prependTo: \"prepend\",\n insertBefore: \"before\",\n insertAfter: \"after\",\n replaceAll: \"replaceWith\"\n }, function (name, original) {\n jQuery.fn[name] = function (selector) {\n var elems,\n ret = [],\n insert = jQuery(selector),\n last = insert.length - 1,\n i = 0;\n\n for (; i <= last; i++) {\n elems = i === last ? this : this.clone(true);\n jQuery(insert[i])[original](elems); // Support: Android <=4.0 only, PhantomJS 1 only\n // .get() because push.apply(_, arraylike) throws on ancient WebKit\n\n push.apply(ret, elems.get());\n }\n\n return this.pushStack(ret);\n };\n });\n var rnumnonpx = new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\n\n var getStyles = function getStyles(elem) {\n // Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n // IE throws on elements created in popups\n // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n var view = elem.ownerDocument.defaultView;\n\n if (!view || !view.opener) {\n view = window;\n }\n\n return view.getComputedStyle(elem);\n };\n\n var swap = function swap(elem, options, callback) {\n var ret,\n name,\n old = {}; // Remember the old values, and insert the new ones\n\n for (name in options) {\n old[name] = elem.style[name];\n elem.style[name] = options[name];\n }\n\n ret = callback.call(elem); // Revert the old values\n\n for (name in options) {\n elem.style[name] = old[name];\n }\n\n return ret;\n };\n\n var rboxStyle = new RegExp(cssExpand.join(\"|\"), \"i\");\n\n (function () {\n // Executing both pixelPosition & boxSizingReliable tests require only one layout\n // so they're executed at the same time to save the second computation.\n function computeStyleTests() {\n // This is a singleton, we need to execute it only once\n if (!div) {\n return;\n }\n\n container.style.cssText = \"position:absolute;left:-11111px;width:60px;\" + \"margin-top:1px;padding:0;border:0\";\n div.style.cssText = \"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" + \"margin:auto;border:1px;padding:1px;\" + \"width:60%;top:1%\";\n documentElement.appendChild(container).appendChild(div);\n var divStyle = window.getComputedStyle(div);\n pixelPositionVal = divStyle.top !== \"1%\"; // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\n reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12; // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n // Some styles come back with percentage values, even though they shouldn't\n\n div.style.right = \"60%\";\n pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36; // Support: IE 9 - 11 only\n // Detect misreporting of content dimensions for box-sizing:border-box elements\n\n boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36; // Support: IE 9 only\n // Detect overflow:scroll screwiness (gh-3699)\n // Support: Chrome <=64\n // Don't get tricked when zoom affects offsetWidth (gh-4029)\n\n div.style.position = \"absolute\";\n scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12;\n documentElement.removeChild(container); // Nullify the div so it wouldn't be stored in the memory and\n // it will also be a sign that checks already performed\n\n div = null;\n }\n\n function roundPixelMeasures(measure) {\n return Math.round(parseFloat(measure));\n }\n\n var pixelPositionVal,\n boxSizingReliableVal,\n scrollboxSizeVal,\n pixelBoxStylesVal,\n reliableTrDimensionsVal,\n reliableMarginLeftVal,\n container = document.createElement(\"div\"),\n div = document.createElement(\"div\"); // Finish early in limited (non-browser) environments\n\n if (!div.style) {\n return;\n } // Support: IE <=9 - 11 only\n // Style of cloned element affects source element cloned (#8908)\n\n\n div.style.backgroundClip = \"content-box\";\n div.cloneNode(true).style.backgroundClip = \"\";\n support.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n jQuery.extend(support, {\n boxSizingReliable: function boxSizingReliable() {\n computeStyleTests();\n return boxSizingReliableVal;\n },\n pixelBoxStyles: function pixelBoxStyles() {\n computeStyleTests();\n return pixelBoxStylesVal;\n },\n pixelPosition: function pixelPosition() {\n computeStyleTests();\n return pixelPositionVal;\n },\n reliableMarginLeft: function reliableMarginLeft() {\n computeStyleTests();\n return reliableMarginLeftVal;\n },\n scrollboxSize: function scrollboxSize() {\n computeStyleTests();\n return scrollboxSizeVal;\n },\n // Support: IE 9 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Behavior in IE 9 is more subtle than in newer versions & it passes\n // some versions of this test; make sure not to make it pass there!\n //\n // Support: Firefox 70+\n // Only Firefox includes border widths\n // in computed dimensions. (gh-4529)\n reliableTrDimensions: function reliableTrDimensions() {\n var table, tr, trChild, trStyle;\n\n if (reliableTrDimensionsVal == null) {\n table = document.createElement(\"table\");\n tr = document.createElement(\"tr\");\n trChild = document.createElement(\"div\");\n table.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n tr.style.cssText = \"border:1px solid\"; // Support: Chrome 86+\n // Height set through cssText does not get applied.\n // Computed height then comes back as 0.\n\n tr.style.height = \"1px\";\n trChild.style.height = \"9px\"; // Support: Android 8 Chrome 86+\n // In our bodyBackground.html iframe,\n // display for all div elements is set to \"inline\",\n // which causes a problem only in Android 8 Chrome 86.\n // Ensuring the div is display: block\n // gets around this issue.\n\n trChild.style.display = \"block\";\n documentElement.appendChild(table).appendChild(tr).appendChild(trChild);\n trStyle = window.getComputedStyle(tr);\n reliableTrDimensionsVal = parseInt(trStyle.height, 10) + parseInt(trStyle.borderTopWidth, 10) + parseInt(trStyle.borderBottomWidth, 10) === tr.offsetHeight;\n documentElement.removeChild(table);\n }\n\n return reliableTrDimensionsVal;\n }\n });\n })();\n\n function curCSS(elem, name, computed) {\n var width,\n minWidth,\n maxWidth,\n ret,\n // Support: Firefox 51+\n // Retrieving style before computed somehow\n // fixes an issue with getting wrong values\n // on detached elements\n style = elem.style;\n computed = computed || getStyles(elem); // getPropertyValue is needed for:\n // .css('filter') (IE 9 only, #12537)\n // .css('--customProperty) (#3144)\n\n if (computed) {\n ret = computed.getPropertyValue(name) || computed[name];\n\n if (ret === \"\" && !isAttached(elem)) {\n ret = jQuery.style(elem, name);\n } // A tribute to the \"awesome hack by Dean Edwards\"\n // Android Browser returns percentage for some values,\n // but width seems to be reliably pixels.\n // This is against the CSSOM draft spec:\n // https://drafts.csswg.org/cssom/#resolved-values\n\n\n if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) {\n // Remember the original values\n width = style.width;\n minWidth = style.minWidth;\n maxWidth = style.maxWidth; // Put in the new values to get a computed value out\n\n style.minWidth = style.maxWidth = style.width = ret;\n ret = computed.width; // Revert the changed values\n\n style.width = width;\n style.minWidth = minWidth;\n style.maxWidth = maxWidth;\n }\n }\n\n return ret !== undefined ? // Support: IE <=9 - 11 only\n // IE returns zIndex value as an integer.\n ret + \"\" : ret;\n }\n\n function addGetHookIf(conditionFn, hookFn) {\n // Define the hook, we'll check on the first run if it's really needed.\n return {\n get: function get() {\n if (conditionFn()) {\n // Hook not needed (or it's not possible to use it due\n // to missing dependency), remove it.\n delete this.get;\n return;\n } // Hook needed; redefine it so that the support test is not executed again.\n\n\n return (this.get = hookFn).apply(this, arguments);\n }\n };\n }\n\n var cssPrefixes = [\"Webkit\", \"Moz\", \"ms\"],\n emptyStyle = document.createElement(\"div\").style,\n vendorProps = {}; // Return a vendor-prefixed property or undefined\n\n function vendorPropName(name) {\n // Check for vendor prefixed names\n var capName = name[0].toUpperCase() + name.slice(1),\n i = cssPrefixes.length;\n\n while (i--) {\n name = cssPrefixes[i] + capName;\n\n if (name in emptyStyle) {\n return name;\n }\n }\n } // Return a potentially-mapped jQuery.cssProps or vendor prefixed property\n\n\n function finalPropName(name) {\n var final = jQuery.cssProps[name] || vendorProps[name];\n\n if (final) {\n return final;\n }\n\n if (name in emptyStyle) {\n return name;\n }\n\n return vendorProps[name] = vendorPropName(name) || name;\n }\n\n var // Swappable if display is none or starts with table\n // except \"table\", \"table-cell\", or \"table-caption\"\n // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n rdisplayswap = /^(none|table(?!-c[ea]).+)/,\n rcustomProp = /^--/,\n cssShow = {\n position: \"absolute\",\n visibility: \"hidden\",\n display: \"block\"\n },\n cssNormalTransform = {\n letterSpacing: \"0\",\n fontWeight: \"400\"\n };\n\n function setPositiveNumber(_elem, value, subtract) {\n // Any relative (+/-) values have already been\n // normalized at this point\n var matches = rcssNum.exec(value);\n return matches ? // Guard against undefined \"subtract\", e.g., when used as in cssHooks\n Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || \"px\") : value;\n }\n\n function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) {\n var i = dimension === \"width\" ? 1 : 0,\n extra = 0,\n delta = 0; // Adjustment may not be necessary\n\n if (box === (isBorderBox ? \"border\" : \"content\")) {\n return 0;\n }\n\n for (; i < 4; i += 2) {\n // Both box models exclude margin\n if (box === \"margin\") {\n delta += jQuery.css(elem, box + cssExpand[i], true, styles);\n } // If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\n\n if (!isBorderBox) {\n // Add padding\n delta += jQuery.css(elem, \"padding\" + cssExpand[i], true, styles); // For \"border\" or \"margin\", add border\n\n if (box !== \"padding\") {\n delta += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles); // But still keep track of it otherwise\n } else {\n extra += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n } // If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n // \"padding\" or \"margin\"\n\n } else {\n // For \"content\", subtract padding\n if (box === \"content\") {\n delta -= jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n } // For \"content\" or \"padding\", subtract border\n\n\n if (box !== \"margin\") {\n delta -= jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n }\n } // Account for positive content-box scroll gutter when requested by providing computedVal\n\n\n if (!isBorderBox && computedVal >= 0) {\n // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n // Assuming integer scroll gutter, subtract the rest and round down\n delta += Math.max(0, Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5 // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n // Use an explicit zero to avoid NaN (gh-3964)\n )) || 0;\n }\n\n return delta;\n }\n\n function getWidthOrHeight(elem, dimension, extra) {\n // Start with computed style\n var styles = getStyles(elem),\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n // Fake content-box until we know it's needed to know the true value.\n boxSizingNeeded = !support.boxSizingReliable() || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n valueIsBorderBox = isBorderBox,\n val = curCSS(elem, dimension, styles),\n offsetProp = \"offset\" + dimension[0].toUpperCase() + dimension.slice(1); // Support: Firefox <=54\n // Return a confounding non-pixel value or feign ignorance, as appropriate.\n\n if (rnumnonpx.test(val)) {\n if (!extra) {\n return val;\n }\n\n val = \"auto\";\n } // Support: IE 9 - 11 only\n // Use offsetWidth/offsetHeight for when box sizing is unreliable.\n // In those cases, the computed value can be trusted to be border-box.\n\n\n if ((!support.boxSizingReliable() && isBorderBox || // Support: IE 10 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Interestingly, in some cases IE 9 doesn't suffer from this issue.\n !support.reliableTrDimensions() && nodeName(elem, \"tr\") || // Fall back to offsetWidth/offsetHeight when value is \"auto\"\n // This happens for inline elements with no explicit setting (gh-3571)\n val === \"auto\" || // Support: Android <=4.1 - 4.3 only\n // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n !parseFloat(val) && jQuery.css(elem, \"display\", false, styles) === \"inline\") && // Make sure the element is visible & connected\n elem.getClientRects().length) {\n isBorderBox = jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\"; // Where available, offsetWidth/offsetHeight approximate border box dimensions.\n // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n // retrieved value as a content box dimension.\n\n valueIsBorderBox = offsetProp in elem;\n\n if (valueIsBorderBox) {\n val = elem[offsetProp];\n }\n } // Normalize \"\" and auto\n\n\n val = parseFloat(val) || 0; // Adjust for the element's box model\n\n return val + boxModelAdjustment(elem, dimension, extra || (isBorderBox ? \"border\" : \"content\"), valueIsBorderBox, styles, // Provide the current computed size to request scroll gutter calculation (gh-3589)\n val) + \"px\";\n }\n\n jQuery.extend({\n // Add in style property hooks for overriding the default\n // behavior of getting and setting a style property\n cssHooks: {\n opacity: {\n get: function get(elem, computed) {\n if (computed) {\n // We should always get a number back from opacity\n var ret = curCSS(elem, \"opacity\");\n return ret === \"\" ? \"1\" : ret;\n }\n }\n }\n },\n // Don't automatically add \"px\" to these possibly-unitless properties\n cssNumber: {\n \"animationIterationCount\": true,\n \"columnCount\": true,\n \"fillOpacity\": true,\n \"flexGrow\": true,\n \"flexShrink\": true,\n \"fontWeight\": true,\n \"gridArea\": true,\n \"gridColumn\": true,\n \"gridColumnEnd\": true,\n \"gridColumnStart\": true,\n \"gridRow\": true,\n \"gridRowEnd\": true,\n \"gridRowStart\": true,\n \"lineHeight\": true,\n \"opacity\": true,\n \"order\": true,\n \"orphans\": true,\n \"widows\": true,\n \"zIndex\": true,\n \"zoom\": true\n },\n // Add in properties whose names you wish to fix before\n // setting or getting the value\n cssProps: {},\n // Get and set the style property on a DOM Node\n style: function style(elem, name, value, extra) {\n // Don't set styles on text and comment nodes\n if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) {\n return;\n } // Make sure that we're working with the right name\n\n\n var ret,\n type,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name),\n style = elem.style; // Make sure that we're working with the right name. We don't\n // want to query the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Gets hook for the prefixed version, then unprefixed version\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // Check if we're setting a value\n\n if (value !== undefined) {\n type = _typeof(value); // Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\n if (type === \"string\" && (ret = rcssNum.exec(value)) && ret[1]) {\n value = adjustCSS(elem, name, ret); // Fixes bug #9237\n\n type = \"number\";\n } // Make sure that null and NaN values aren't set (#7116)\n\n\n if (value == null || value !== value) {\n return;\n } // If a number was passed in, add the unit (except for certain CSS properties)\n // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n // \"px\" to a few hardcoded values.\n\n\n if (type === \"number\" && !isCustomProp) {\n value += ret && ret[3] || (jQuery.cssNumber[origName] ? \"\" : \"px\");\n } // background-* props affect original clone's values\n\n\n if (!support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0) {\n style[name] = \"inherit\";\n } // If a hook was provided, use that value, otherwise just set the specified value\n\n\n if (!hooks || !(\"set\" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) {\n if (isCustomProp) {\n style.setProperty(name, value);\n } else {\n style[name] = value;\n }\n }\n } else {\n // If a hook was provided get the non-computed value from there\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) {\n return ret;\n } // Otherwise just get the value from the style object\n\n\n return style[name];\n }\n },\n css: function css(elem, name, extra, styles) {\n var val,\n num,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name); // Make sure that we're working with the right name. We don't\n // want to modify the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Try prefixed name followed by the unprefixed name\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // If a hook was provided get the computed value from there\n\n if (hooks && \"get\" in hooks) {\n val = hooks.get(elem, true, extra);\n } // Otherwise, if a way to get the computed value exists, use that\n\n\n if (val === undefined) {\n val = curCSS(elem, name, styles);\n } // Convert \"normal\" to computed value\n\n\n if (val === \"normal\" && name in cssNormalTransform) {\n val = cssNormalTransform[name];\n } // Make numeric if forced or a qualifier was provided and val looks numeric\n\n\n if (extra === \"\" || extra) {\n num = parseFloat(val);\n return extra === true || isFinite(num) ? num || 0 : val;\n }\n\n return val;\n }\n });\n jQuery.each([\"height\", \"width\"], function (_i, dimension) {\n jQuery.cssHooks[dimension] = {\n get: function get(elem, computed, extra) {\n if (computed) {\n // Certain elements can have dimension info if we invisibly show them\n // but it must have a current display style that would benefit\n return rdisplayswap.test(jQuery.css(elem, \"display\")) && ( // Support: Safari 8+\n // Table columns in Safari have non-zero offsetWidth & zero\n // getBoundingClientRect().width unless display is changed.\n // Support: IE <=11 only\n // Running getBoundingClientRect on a disconnected node\n // in IE throws an error.\n !elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function () {\n return getWidthOrHeight(elem, dimension, extra);\n }) : getWidthOrHeight(elem, dimension, extra);\n }\n },\n set: function set(elem, value, extra) {\n var matches,\n styles = getStyles(elem),\n // Only read styles.position if the test has a chance to fail\n // to avoid forcing a reflow.\n scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === \"absolute\",\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n boxSizingNeeded = scrollboxSizeBuggy || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n subtract = extra ? boxModelAdjustment(elem, dimension, extra, isBorderBox, styles) : 0; // Account for unreliable border-box dimensions by comparing offset* to computed and\n // faking a content-box to get border and padding (gh-3699)\n\n if (isBorderBox && scrollboxSizeBuggy) {\n subtract -= Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, \"border\", false, styles) - 0.5);\n } // Convert to pixels if value adjustment is needed\n\n\n if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || \"px\") !== \"px\") {\n elem.style[dimension] = value;\n value = jQuery.css(elem, dimension);\n }\n\n return setPositiveNumber(elem, value, subtract);\n }\n };\n });\n jQuery.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft, function (elem, computed) {\n if (computed) {\n return (parseFloat(curCSS(elem, \"marginLeft\")) || elem.getBoundingClientRect().left - swap(elem, {\n marginLeft: 0\n }, function () {\n return elem.getBoundingClientRect().left;\n })) + \"px\";\n }\n }); // These hooks are used by animate to expand properties\n\n jQuery.each({\n margin: \"\",\n padding: \"\",\n border: \"Width\"\n }, function (prefix, suffix) {\n jQuery.cssHooks[prefix + suffix] = {\n expand: function expand(value) {\n var i = 0,\n expanded = {},\n // Assumes a single number if not a string\n parts = typeof value === \"string\" ? value.split(\" \") : [value];\n\n for (; i < 4; i++) {\n expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0];\n }\n\n return expanded;\n }\n };\n\n if (prefix !== \"margin\") {\n jQuery.cssHooks[prefix + suffix].set = setPositiveNumber;\n }\n });\n jQuery.fn.extend({\n css: function css(name, value) {\n return access(this, function (elem, name, value) {\n var styles,\n len,\n map = {},\n i = 0;\n\n if (Array.isArray(name)) {\n styles = getStyles(elem);\n len = name.length;\n\n for (; i < len; i++) {\n map[name[i]] = jQuery.css(elem, name[i], false, styles);\n }\n\n return map;\n }\n\n return value !== undefined ? jQuery.style(elem, name, value) : jQuery.css(elem, name);\n }, name, value, arguments.length > 1);\n }\n });\n\n function Tween(elem, options, prop, end, easing) {\n return new Tween.prototype.init(elem, options, prop, end, easing);\n }\n\n jQuery.Tween = Tween;\n Tween.prototype = {\n constructor: Tween,\n init: function init(elem, options, prop, end, easing, unit) {\n this.elem = elem;\n this.prop = prop;\n this.easing = easing || jQuery.easing._default;\n this.options = options;\n this.start = this.now = this.cur();\n this.end = end;\n this.unit = unit || (jQuery.cssNumber[prop] ? \"\" : \"px\");\n },\n cur: function cur() {\n var hooks = Tween.propHooks[this.prop];\n return hooks && hooks.get ? hooks.get(this) : Tween.propHooks._default.get(this);\n },\n run: function run(percent) {\n var eased,\n hooks = Tween.propHooks[this.prop];\n\n if (this.options.duration) {\n this.pos = eased = jQuery.easing[this.easing](percent, this.options.duration * percent, 0, 1, this.options.duration);\n } else {\n this.pos = eased = percent;\n }\n\n this.now = (this.end - this.start) * eased + this.start;\n\n if (this.options.step) {\n this.options.step.call(this.elem, this.now, this);\n }\n\n if (hooks && hooks.set) {\n hooks.set(this);\n } else {\n Tween.propHooks._default.set(this);\n }\n\n return this;\n }\n };\n Tween.prototype.init.prototype = Tween.prototype;\n Tween.propHooks = {\n _default: {\n get: function get(tween) {\n var result; // Use a property on the element directly when it is not a DOM element,\n // or when there is no matching style property that exists.\n\n if (tween.elem.nodeType !== 1 || tween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) {\n return tween.elem[tween.prop];\n } // Passing an empty string as a 3rd parameter to .css will automatically\n // attempt a parseFloat and fallback to a string if the parse fails.\n // Simple values such as \"10px\" are parsed to Float;\n // complex values such as \"rotate(1rad)\" are returned as-is.\n\n\n result = jQuery.css(tween.elem, tween.prop, \"\"); // Empty strings, null, undefined and \"auto\" are converted to 0.\n\n return !result || result === \"auto\" ? 0 : result;\n },\n set: function set(tween) {\n // Use step hook for back compat.\n // Use cssHook if its there.\n // Use .style if available and use plain properties where available.\n if (jQuery.fx.step[tween.prop]) {\n jQuery.fx.step[tween.prop](tween);\n } else if (tween.elem.nodeType === 1 && (jQuery.cssHooks[tween.prop] || tween.elem.style[finalPropName(tween.prop)] != null)) {\n jQuery.style(tween.elem, tween.prop, tween.now + tween.unit);\n } else {\n tween.elem[tween.prop] = tween.now;\n }\n }\n }\n }; // Support: IE <=9 only\n // Panic based approach to setting things on disconnected nodes\n\n Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n set: function set(tween) {\n if (tween.elem.nodeType && tween.elem.parentNode) {\n tween.elem[tween.prop] = tween.now;\n }\n }\n };\n jQuery.easing = {\n linear: function linear(p) {\n return p;\n },\n swing: function swing(p) {\n return 0.5 - Math.cos(p * Math.PI) / 2;\n },\n _default: \"swing\"\n };\n jQuery.fx = Tween.prototype.init; // Back compat <1.8 extension point\n\n jQuery.fx.step = {};\n var fxNow,\n inProgress,\n rfxtypes = /^(?:toggle|show|hide)$/,\n rrun = /queueHooks$/;\n\n function schedule() {\n if (inProgress) {\n if (document.hidden === false && window.requestAnimationFrame) {\n window.requestAnimationFrame(schedule);\n } else {\n window.setTimeout(schedule, jQuery.fx.interval);\n }\n\n jQuery.fx.tick();\n }\n } // Animations created synchronously will run synchronously\n\n\n function createFxNow() {\n window.setTimeout(function () {\n fxNow = undefined;\n });\n return fxNow = Date.now();\n } // Generate parameters to create a standard animation\n\n\n function genFx(type, includeWidth) {\n var which,\n i = 0,\n attrs = {\n height: type\n }; // If we include width, step value is 1 to do all cssExpand values,\n // otherwise step value is 2 to skip over Left and Right\n\n includeWidth = includeWidth ? 1 : 0;\n\n for (; i < 4; i += 2 - includeWidth) {\n which = cssExpand[i];\n attrs[\"margin\" + which] = attrs[\"padding\" + which] = type;\n }\n\n if (includeWidth) {\n attrs.opacity = attrs.width = type;\n }\n\n return attrs;\n }\n\n function createTween(value, prop, animation) {\n var tween,\n collection = (Animation.tweeners[prop] || []).concat(Animation.tweeners[\"*\"]),\n index = 0,\n length = collection.length;\n\n for (; index < length; index++) {\n if (tween = collection[index].call(animation, prop, value)) {\n // We're done with this property\n return tween;\n }\n }\n }\n\n function defaultPrefilter(elem, props, opts) {\n var prop,\n value,\n toggle,\n hooks,\n oldfire,\n propTween,\n restoreDisplay,\n display,\n isBox = \"width\" in props || \"height\" in props,\n anim = this,\n orig = {},\n style = elem.style,\n hidden = elem.nodeType && isHiddenWithinTree(elem),\n dataShow = dataPriv.get(elem, \"fxshow\"); // Queue-skipping animations hijack the fx hooks\n\n if (!opts.queue) {\n hooks = jQuery._queueHooks(elem, \"fx\");\n\n if (hooks.unqueued == null) {\n hooks.unqueued = 0;\n oldfire = hooks.empty.fire;\n\n hooks.empty.fire = function () {\n if (!hooks.unqueued) {\n oldfire();\n }\n };\n }\n\n hooks.unqueued++;\n anim.always(function () {\n // Ensure the complete handler is called before this completes\n anim.always(function () {\n hooks.unqueued--;\n\n if (!jQuery.queue(elem, \"fx\").length) {\n hooks.empty.fire();\n }\n });\n });\n } // Detect show/hide animations\n\n\n for (prop in props) {\n value = props[prop];\n\n if (rfxtypes.test(value)) {\n delete props[prop];\n toggle = toggle || value === \"toggle\";\n\n if (value === (hidden ? \"hide\" : \"show\")) {\n // Pretend to be hidden if this is a \"show\" and\n // there is still data from a stopped show/hide\n if (value === \"show\" && dataShow && dataShow[prop] !== undefined) {\n hidden = true; // Ignore all other no-op show/hide data\n } else {\n continue;\n }\n }\n\n orig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop);\n }\n } // Bail out if this is a no-op like .hide().hide()\n\n\n propTween = !jQuery.isEmptyObject(props);\n\n if (!propTween && jQuery.isEmptyObject(orig)) {\n return;\n } // Restrict \"overflow\" and \"display\" styles during box animations\n\n\n if (isBox && elem.nodeType === 1) {\n // Support: IE <=9 - 11, Edge 12 - 15\n // Record all 3 overflow attributes because IE does not infer the shorthand\n // from identically-valued overflowX and overflowY and Edge just mirrors\n // the overflowX value there.\n opts.overflow = [style.overflow, style.overflowX, style.overflowY]; // Identify a display type, preferring old show/hide data over the CSS cascade\n\n restoreDisplay = dataShow && dataShow.display;\n\n if (restoreDisplay == null) {\n restoreDisplay = dataPriv.get(elem, \"display\");\n }\n\n display = jQuery.css(elem, \"display\");\n\n if (display === \"none\") {\n if (restoreDisplay) {\n display = restoreDisplay;\n } else {\n // Get nonempty value(s) by temporarily forcing visibility\n showHide([elem], true);\n restoreDisplay = elem.style.display || restoreDisplay;\n display = jQuery.css(elem, \"display\");\n showHide([elem]);\n }\n } // Animate inline elements as inline-block\n\n\n if (display === \"inline\" || display === \"inline-block\" && restoreDisplay != null) {\n if (jQuery.css(elem, \"float\") === \"none\") {\n // Restore the original display value at the end of pure show/hide animations\n if (!propTween) {\n anim.done(function () {\n style.display = restoreDisplay;\n });\n\n if (restoreDisplay == null) {\n display = style.display;\n restoreDisplay = display === \"none\" ? \"\" : display;\n }\n }\n\n style.display = \"inline-block\";\n }\n }\n }\n\n if (opts.overflow) {\n style.overflow = \"hidden\";\n anim.always(function () {\n style.overflow = opts.overflow[0];\n style.overflowX = opts.overflow[1];\n style.overflowY = opts.overflow[2];\n });\n } // Implement show/hide animations\n\n\n propTween = false;\n\n for (prop in orig) {\n // General show/hide setup for this element animation\n if (!propTween) {\n if (dataShow) {\n if (\"hidden\" in dataShow) {\n hidden = dataShow.hidden;\n }\n } else {\n dataShow = dataPriv.access(elem, \"fxshow\", {\n display: restoreDisplay\n });\n } // Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\n\n if (toggle) {\n dataShow.hidden = !hidden;\n } // Show elements before animating them\n\n\n if (hidden) {\n showHide([elem], true);\n }\n /* eslint-disable no-loop-func */\n\n\n anim.done(function () {\n /* eslint-enable no-loop-func */\n // The final step of a \"hide\" animation is actually hiding the element\n if (!hidden) {\n showHide([elem]);\n }\n\n dataPriv.remove(elem, \"fxshow\");\n\n for (prop in orig) {\n jQuery.style(elem, prop, orig[prop]);\n }\n });\n } // Per-property setup\n\n\n propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim);\n\n if (!(prop in dataShow)) {\n dataShow[prop] = propTween.start;\n\n if (hidden) {\n propTween.end = propTween.start;\n propTween.start = 0;\n }\n }\n }\n }\n\n function propFilter(props, specialEasing) {\n var index, name, easing, value, hooks; // camelCase, specialEasing and expand cssHook pass\n\n for (index in props) {\n name = camelCase(index);\n easing = specialEasing[name];\n value = props[index];\n\n if (Array.isArray(value)) {\n easing = value[1];\n value = props[index] = value[0];\n }\n\n if (index !== name) {\n props[name] = value;\n delete props[index];\n }\n\n hooks = jQuery.cssHooks[name];\n\n if (hooks && \"expand\" in hooks) {\n value = hooks.expand(value);\n delete props[name]; // Not quite $.extend, this won't overwrite existing keys.\n // Reusing 'index' because we have the correct \"name\"\n\n for (index in value) {\n if (!(index in props)) {\n props[index] = value[index];\n specialEasing[index] = easing;\n }\n }\n } else {\n specialEasing[name] = easing;\n }\n }\n }\n\n function Animation(elem, properties, options) {\n var result,\n stopped,\n index = 0,\n length = Animation.prefilters.length,\n deferred = jQuery.Deferred().always(function () {\n // Don't match elem in the :animated selector\n delete tick.elem;\n }),\n tick = function tick() {\n if (stopped) {\n return false;\n }\n\n var currentTime = fxNow || createFxNow(),\n remaining = Math.max(0, animation.startTime + animation.duration - currentTime),\n // Support: Android 2.3 only\n // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n temp = remaining / animation.duration || 0,\n percent = 1 - temp,\n index = 0,\n length = animation.tweens.length;\n\n for (; index < length; index++) {\n animation.tweens[index].run(percent);\n }\n\n deferred.notifyWith(elem, [animation, percent, remaining]); // If there's more to do, yield\n\n if (percent < 1 && length) {\n return remaining;\n } // If this was an empty animation, synthesize a final progress notification\n\n\n if (!length) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n } // Resolve the animation and report its conclusion\n\n\n deferred.resolveWith(elem, [animation]);\n return false;\n },\n animation = deferred.promise({\n elem: elem,\n props: jQuery.extend({}, properties),\n opts: jQuery.extend(true, {\n specialEasing: {},\n easing: jQuery.easing._default\n }, options),\n originalProperties: properties,\n originalOptions: options,\n startTime: fxNow || createFxNow(),\n duration: options.duration,\n tweens: [],\n createTween: function createTween(prop, end) {\n var tween = jQuery.Tween(elem, animation.opts, prop, end, animation.opts.specialEasing[prop] || animation.opts.easing);\n animation.tweens.push(tween);\n return tween;\n },\n stop: function stop(gotoEnd) {\n var index = 0,\n // If we are going to the end, we want to run all the tweens\n // otherwise we skip this part\n length = gotoEnd ? animation.tweens.length : 0;\n\n if (stopped) {\n return this;\n }\n\n stopped = true;\n\n for (; index < length; index++) {\n animation.tweens[index].run(1);\n } // Resolve when we played the last frame; otherwise, reject\n\n\n if (gotoEnd) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n deferred.resolveWith(elem, [animation, gotoEnd]);\n } else {\n deferred.rejectWith(elem, [animation, gotoEnd]);\n }\n\n return this;\n }\n }),\n props = animation.props;\n\n propFilter(props, animation.opts.specialEasing);\n\n for (; index < length; index++) {\n result = Animation.prefilters[index].call(animation, elem, props, animation.opts);\n\n if (result) {\n if (isFunction(result.stop)) {\n jQuery._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result);\n }\n\n return result;\n }\n }\n\n jQuery.map(props, createTween, animation);\n\n if (isFunction(animation.opts.start)) {\n animation.opts.start.call(elem, animation);\n } // Attach callbacks from options\n\n\n animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);\n jQuery.fx.timer(jQuery.extend(tick, {\n elem: elem,\n anim: animation,\n queue: animation.opts.queue\n }));\n return animation;\n }\n\n jQuery.Animation = jQuery.extend(Animation, {\n tweeners: {\n \"*\": [function (prop, value) {\n var tween = this.createTween(prop, value);\n adjustCSS(tween.elem, prop, rcssNum.exec(value), tween);\n return tween;\n }]\n },\n tweener: function tweener(props, callback) {\n if (isFunction(props)) {\n callback = props;\n props = [\"*\"];\n } else {\n props = props.match(rnothtmlwhite);\n }\n\n var prop,\n index = 0,\n length = props.length;\n\n for (; index < length; index++) {\n prop = props[index];\n Animation.tweeners[prop] = Animation.tweeners[prop] || [];\n Animation.tweeners[prop].unshift(callback);\n }\n },\n prefilters: [defaultPrefilter],\n prefilter: function prefilter(callback, prepend) {\n if (prepend) {\n Animation.prefilters.unshift(callback);\n } else {\n Animation.prefilters.push(callback);\n }\n }\n });\n\n jQuery.speed = function (speed, easing, fn) {\n var opt = speed && _typeof(speed) === \"object\" ? jQuery.extend({}, speed) : {\n complete: fn || !fn && easing || isFunction(speed) && speed,\n duration: speed,\n easing: fn && easing || easing && !isFunction(easing) && easing\n }; // Go to the end state if fx are off\n\n if (jQuery.fx.off) {\n opt.duration = 0;\n } else {\n if (typeof opt.duration !== \"number\") {\n if (opt.duration in jQuery.fx.speeds) {\n opt.duration = jQuery.fx.speeds[opt.duration];\n } else {\n opt.duration = jQuery.fx.speeds._default;\n }\n }\n } // Normalize opt.queue - true/undefined/null -> \"fx\"\n\n\n if (opt.queue == null || opt.queue === true) {\n opt.queue = \"fx\";\n } // Queueing\n\n\n opt.old = opt.complete;\n\n opt.complete = function () {\n if (isFunction(opt.old)) {\n opt.old.call(this);\n }\n\n if (opt.queue) {\n jQuery.dequeue(this, opt.queue);\n }\n };\n\n return opt;\n };\n\n jQuery.fn.extend({\n fadeTo: function fadeTo(speed, to, easing, callback) {\n // Show any hidden elements after setting opacity to 0\n return this.filter(isHiddenWithinTree).css(\"opacity\", 0).show() // Animate to the value specified\n .end().animate({\n opacity: to\n }, speed, easing, callback);\n },\n animate: function animate(prop, speed, easing, callback) {\n var empty = jQuery.isEmptyObject(prop),\n optall = jQuery.speed(speed, easing, callback),\n doAnimation = function doAnimation() {\n // Operate on a copy of prop so per-property easing won't be lost\n var anim = Animation(this, jQuery.extend({}, prop), optall); // Empty animations, or finishing resolves immediately\n\n if (empty || dataPriv.get(this, \"finish\")) {\n anim.stop(true);\n }\n };\n\n doAnimation.finish = doAnimation;\n return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation);\n },\n stop: function stop(type, clearQueue, gotoEnd) {\n var stopQueue = function stopQueue(hooks) {\n var stop = hooks.stop;\n delete hooks.stop;\n stop(gotoEnd);\n };\n\n if (typeof type !== \"string\") {\n gotoEnd = clearQueue;\n clearQueue = type;\n type = undefined;\n }\n\n if (clearQueue) {\n this.queue(type || \"fx\", []);\n }\n\n return this.each(function () {\n var dequeue = true,\n index = type != null && type + \"queueHooks\",\n timers = jQuery.timers,\n data = dataPriv.get(this);\n\n if (index) {\n if (data[index] && data[index].stop) {\n stopQueue(data[index]);\n }\n } else {\n for (index in data) {\n if (data[index] && data[index].stop && rrun.test(index)) {\n stopQueue(data[index]);\n }\n }\n }\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && (type == null || timers[index].queue === type)) {\n timers[index].anim.stop(gotoEnd);\n dequeue = false;\n timers.splice(index, 1);\n }\n } // Start the next in the queue if the last step wasn't forced.\n // Timers currently will call their complete callbacks, which\n // will dequeue but only if they were gotoEnd.\n\n\n if (dequeue || !gotoEnd) {\n jQuery.dequeue(this, type);\n }\n });\n },\n finish: function finish(type) {\n if (type !== false) {\n type = type || \"fx\";\n }\n\n return this.each(function () {\n var index,\n data = dataPriv.get(this),\n queue = data[type + \"queue\"],\n hooks = data[type + \"queueHooks\"],\n timers = jQuery.timers,\n length = queue ? queue.length : 0; // Enable finishing flag on private data\n\n data.finish = true; // Empty the queue first\n\n jQuery.queue(this, type, []);\n\n if (hooks && hooks.stop) {\n hooks.stop.call(this, true);\n } // Look for any active animations, and finish them\n\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && timers[index].queue === type) {\n timers[index].anim.stop(true);\n timers.splice(index, 1);\n }\n } // Look for any animations in the old queue and finish them\n\n\n for (index = 0; index < length; index++) {\n if (queue[index] && queue[index].finish) {\n queue[index].finish.call(this);\n }\n } // Turn off finishing flag\n\n\n delete data.finish;\n });\n }\n });\n jQuery.each([\"toggle\", \"show\", \"hide\"], function (_i, name) {\n var cssFn = jQuery.fn[name];\n\n jQuery.fn[name] = function (speed, easing, callback) {\n return speed == null || typeof speed === \"boolean\" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback);\n };\n }); // Generate shortcuts for custom animations\n\n jQuery.each({\n slideDown: genFx(\"show\"),\n slideUp: genFx(\"hide\"),\n slideToggle: genFx(\"toggle\"),\n fadeIn: {\n opacity: \"show\"\n },\n fadeOut: {\n opacity: \"hide\"\n },\n fadeToggle: {\n opacity: \"toggle\"\n }\n }, function (name, props) {\n jQuery.fn[name] = function (speed, easing, callback) {\n return this.animate(props, speed, easing, callback);\n };\n });\n jQuery.timers = [];\n\n jQuery.fx.tick = function () {\n var timer,\n i = 0,\n timers = jQuery.timers;\n fxNow = Date.now();\n\n for (; i < timers.length; i++) {\n timer = timers[i]; // Run the timer and safely remove it when done (allowing for external removal)\n\n if (!timer() && timers[i] === timer) {\n timers.splice(i--, 1);\n }\n }\n\n if (!timers.length) {\n jQuery.fx.stop();\n }\n\n fxNow = undefined;\n };\n\n jQuery.fx.timer = function (timer) {\n jQuery.timers.push(timer);\n jQuery.fx.start();\n };\n\n jQuery.fx.interval = 13;\n\n jQuery.fx.start = function () {\n if (inProgress) {\n return;\n }\n\n inProgress = true;\n schedule();\n };\n\n jQuery.fx.stop = function () {\n inProgress = null;\n };\n\n jQuery.fx.speeds = {\n slow: 600,\n fast: 200,\n // Default speed\n _default: 400\n }; // Based off of the plugin by Clint Helfers, with permission.\n // https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\n\n jQuery.fn.delay = function (time, type) {\n time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;\n type = type || \"fx\";\n return this.queue(type, function (next, hooks) {\n var timeout = window.setTimeout(next, time);\n\n hooks.stop = function () {\n window.clearTimeout(timeout);\n };\n });\n };\n\n (function () {\n var input = document.createElement(\"input\"),\n select = document.createElement(\"select\"),\n opt = select.appendChild(document.createElement(\"option\"));\n input.type = \"checkbox\"; // Support: Android <=4.3 only\n // Default value for a checkbox should be \"on\"\n\n support.checkOn = input.value !== \"\"; // Support: IE <=11 only\n // Must access selectedIndex to make default options select\n\n support.optSelected = opt.selected; // Support: IE <=11 only\n // An input loses its value after becoming a radio\n\n input = document.createElement(\"input\");\n input.value = \"t\";\n input.type = \"radio\";\n support.radioValue = input.value === \"t\";\n })();\n\n var boolHook,\n attrHandle = jQuery.expr.attrHandle;\n jQuery.fn.extend({\n attr: function attr(name, value) {\n return access(this, jQuery.attr, name, value, arguments.length > 1);\n },\n removeAttr: function removeAttr(name) {\n return this.each(function () {\n jQuery.removeAttr(this, name);\n });\n }\n });\n jQuery.extend({\n attr: function attr(elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set attributes on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n } // Fallback to prop when attributes are not supported\n\n\n if (typeof elem.getAttribute === \"undefined\") {\n return jQuery.prop(elem, name, value);\n } // Attribute hooks are determined by the lowercase version\n // Grab necessary hook if one is defined\n\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n hooks = jQuery.attrHooks[name.toLowerCase()] || (jQuery.expr.match.bool.test(name) ? boolHook : undefined);\n }\n\n if (value !== undefined) {\n if (value === null) {\n jQuery.removeAttr(elem, name);\n return;\n }\n\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n elem.setAttribute(name, value + \"\");\n return value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n ret = jQuery.find.attr(elem, name); // Non-existent attributes return null, we normalize to undefined\n\n return ret == null ? undefined : ret;\n },\n attrHooks: {\n type: {\n set: function set(elem, value) {\n if (!support.radioValue && value === \"radio\" && nodeName(elem, \"input\")) {\n var val = elem.value;\n elem.setAttribute(\"type\", value);\n\n if (val) {\n elem.value = val;\n }\n\n return value;\n }\n }\n }\n },\n removeAttr: function removeAttr(elem, value) {\n var name,\n i = 0,\n // Attribute names can contain non-HTML whitespace characters\n // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n attrNames = value && value.match(rnothtmlwhite);\n\n if (attrNames && elem.nodeType === 1) {\n while (name = attrNames[i++]) {\n elem.removeAttribute(name);\n }\n }\n }\n }); // Hooks for boolean attributes\n\n boolHook = {\n set: function set(elem, value, name) {\n if (value === false) {\n // Remove boolean attributes when set to false\n jQuery.removeAttr(elem, name);\n } else {\n elem.setAttribute(name, name);\n }\n\n return name;\n }\n };\n jQuery.each(jQuery.expr.match.bool.source.match(/\\w+/g), function (_i, name) {\n var getter = attrHandle[name] || jQuery.find.attr;\n\n attrHandle[name] = function (elem, name, isXML) {\n var ret,\n handle,\n lowercaseName = name.toLowerCase();\n\n if (!isXML) {\n // Avoid an infinite loop by temporarily removing this function from the getter\n handle = attrHandle[lowercaseName];\n attrHandle[lowercaseName] = ret;\n ret = getter(elem, name, isXML) != null ? lowercaseName : null;\n attrHandle[lowercaseName] = handle;\n }\n\n return ret;\n };\n });\n var rfocusable = /^(?:input|select|textarea|button)$/i,\n rclickable = /^(?:a|area)$/i;\n jQuery.fn.extend({\n prop: function prop(name, value) {\n return access(this, jQuery.prop, name, value, arguments.length > 1);\n },\n removeProp: function removeProp(name) {\n return this.each(function () {\n delete this[jQuery.propFix[name] || name];\n });\n }\n });\n jQuery.extend({\n prop: function prop(elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set properties on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n }\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n // Fix name and attach hooks\n name = jQuery.propFix[name] || name;\n hooks = jQuery.propHooks[name];\n }\n\n if (value !== undefined) {\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n return elem[name] = value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n return elem[name];\n },\n propHooks: {\n tabIndex: {\n get: function get(elem) {\n // Support: IE <=9 - 11 only\n // elem.tabIndex doesn't always return the\n // correct value when it hasn't been explicitly set\n // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n // Use proper attribute retrieval(#12072)\n var tabindex = jQuery.find.attr(elem, \"tabindex\");\n\n if (tabindex) {\n return parseInt(tabindex, 10);\n }\n\n if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) {\n return 0;\n }\n\n return -1;\n }\n }\n },\n propFix: {\n \"for\": \"htmlFor\",\n \"class\": \"className\"\n }\n }); // Support: IE <=11 only\n // Accessing the selectedIndex property\n // forces the browser to respect setting selected\n // on the option\n // The getter ensures a default option is selected\n // when in an optgroup\n // eslint rule \"no-unused-expressions\" is disabled for this code\n // since it considers such accessions noop\n\n if (!support.optSelected) {\n jQuery.propHooks.selected = {\n get: function get(elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent && parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n\n return null;\n },\n set: function set(elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent) {\n parent.selectedIndex;\n\n if (parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n }\n }\n };\n }\n\n jQuery.each([\"tabIndex\", \"readOnly\", \"maxLength\", \"cellSpacing\", \"cellPadding\", \"rowSpan\", \"colSpan\", \"useMap\", \"frameBorder\", \"contentEditable\"], function () {\n jQuery.propFix[this.toLowerCase()] = this;\n }); // Strip and collapse whitespace according to HTML spec\n // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\n function stripAndCollapse(value) {\n var tokens = value.match(rnothtmlwhite) || [];\n return tokens.join(\" \");\n }\n\n function getClass(elem) {\n return elem.getAttribute && elem.getAttribute(\"class\") || \"\";\n }\n\n function classesToArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n\n if (typeof value === \"string\") {\n return value.match(rnothtmlwhite) || [];\n }\n\n return [];\n }\n\n jQuery.fn.extend({\n addClass: function addClass(value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).addClass(value.call(this, j, getClass(this)));\n });\n }\n\n classes = classesToArray(value);\n\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem);\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n if (cur.indexOf(\" \" + clazz + \" \") < 0) {\n cur += clazz + \" \";\n }\n } // Only assign if different to avoid unneeded rendering.\n\n\n finalValue = stripAndCollapse(cur);\n\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n\n return this;\n },\n removeClass: function removeClass(value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).removeClass(value.call(this, j, getClass(this)));\n });\n }\n\n if (!arguments.length) {\n return this.attr(\"class\", \"\");\n }\n\n classes = classesToArray(value);\n\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem); // This expression is here for better compressibility (see addClass)\n\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n // Remove *all* instances\n while (cur.indexOf(\" \" + clazz + \" \") > -1) {\n cur = cur.replace(\" \" + clazz + \" \", \" \");\n }\n } // Only assign if different to avoid unneeded rendering.\n\n\n finalValue = stripAndCollapse(cur);\n\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n\n return this;\n },\n toggleClass: function toggleClass(value, stateVal) {\n var type = _typeof(value),\n isValidValue = type === \"string\" || Array.isArray(value);\n\n if (typeof stateVal === \"boolean\" && isValidValue) {\n return stateVal ? this.addClass(value) : this.removeClass(value);\n }\n\n if (isFunction(value)) {\n return this.each(function (i) {\n jQuery(this).toggleClass(value.call(this, i, getClass(this), stateVal), stateVal);\n });\n }\n\n return this.each(function () {\n var className, i, self, classNames;\n\n if (isValidValue) {\n // Toggle individual class names\n i = 0;\n self = jQuery(this);\n classNames = classesToArray(value);\n\n while (className = classNames[i++]) {\n // Check each className given, space separated list\n if (self.hasClass(className)) {\n self.removeClass(className);\n } else {\n self.addClass(className);\n }\n } // Toggle whole class name\n\n } else if (value === undefined || type === \"boolean\") {\n className = getClass(this);\n\n if (className) {\n // Store className if set\n dataPriv.set(this, \"__className__\", className);\n } // If the element has a class name or if we're passed `false`,\n // then remove the whole classname (if there was one, the above saved it).\n // Otherwise bring back whatever was previously saved (if anything),\n // falling back to the empty string if nothing was stored.\n\n\n if (this.setAttribute) {\n this.setAttribute(\"class\", className || value === false ? \"\" : dataPriv.get(this, \"__className__\") || \"\");\n }\n }\n });\n },\n hasClass: function hasClass(selector) {\n var className,\n elem,\n i = 0;\n className = \" \" + selector + \" \";\n\n while (elem = this[i++]) {\n if (elem.nodeType === 1 && (\" \" + stripAndCollapse(getClass(elem)) + \" \").indexOf(className) > -1) {\n return true;\n }\n }\n\n return false;\n }\n });\n var rreturn = /\\r/g;\n jQuery.fn.extend({\n val: function val(value) {\n var hooks,\n ret,\n valueIsFunction,\n elem = this[0];\n\n if (!arguments.length) {\n if (elem) {\n hooks = jQuery.valHooks[elem.type] || jQuery.valHooks[elem.nodeName.toLowerCase()];\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, \"value\")) !== undefined) {\n return ret;\n }\n\n ret = elem.value; // Handle most common string cases\n\n if (typeof ret === \"string\") {\n return ret.replace(rreturn, \"\");\n } // Handle cases where value is null/undef or number\n\n\n return ret == null ? \"\" : ret;\n }\n\n return;\n }\n\n valueIsFunction = isFunction(value);\n return this.each(function (i) {\n var val;\n\n if (this.nodeType !== 1) {\n return;\n }\n\n if (valueIsFunction) {\n val = value.call(this, i, jQuery(this).val());\n } else {\n val = value;\n } // Treat null/undefined as \"\"; convert numbers to string\n\n\n if (val == null) {\n val = \"\";\n } else if (typeof val === \"number\") {\n val += \"\";\n } else if (Array.isArray(val)) {\n val = jQuery.map(val, function (value) {\n return value == null ? \"\" : value + \"\";\n });\n }\n\n hooks = jQuery.valHooks[this.type] || jQuery.valHooks[this.nodeName.toLowerCase()]; // If set returns undefined, fall back to normal setting\n\n if (!hooks || !(\"set\" in hooks) || hooks.set(this, val, \"value\") === undefined) {\n this.value = val;\n }\n });\n }\n });\n jQuery.extend({\n valHooks: {\n option: {\n get: function get(elem) {\n var val = jQuery.find.attr(elem, \"value\");\n return val != null ? val : // Support: IE <=10 - 11 only\n // option.text throws exceptions (#14686, #14858)\n // Strip and collapse whitespace\n // https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n stripAndCollapse(jQuery.text(elem));\n }\n },\n select: {\n get: function get(elem) {\n var value,\n option,\n i,\n options = elem.options,\n index = elem.selectedIndex,\n one = elem.type === \"select-one\",\n values = one ? null : [],\n max = one ? index + 1 : options.length;\n\n if (index < 0) {\n i = max;\n } else {\n i = one ? index : 0;\n } // Loop through all the selected options\n\n\n for (; i < max; i++) {\n option = options[i]; // Support: IE <=9 only\n // IE8-9 doesn't update selected after form reset (#2551)\n\n if ((option.selected || i === index) && // Don't return options that are disabled or in a disabled optgroup\n !option.disabled && (!option.parentNode.disabled || !nodeName(option.parentNode, \"optgroup\"))) {\n // Get the specific value for the option\n value = jQuery(option).val(); // We don't need an array for one selects\n\n if (one) {\n return value;\n } // Multi-Selects return an array\n\n\n values.push(value);\n }\n }\n\n return values;\n },\n set: function set(elem, value) {\n var optionSet,\n option,\n options = elem.options,\n values = jQuery.makeArray(value),\n i = options.length;\n\n while (i--) {\n option = options[i];\n /* eslint-disable no-cond-assign */\n\n if (option.selected = jQuery.inArray(jQuery.valHooks.option.get(option), values) > -1) {\n optionSet = true;\n }\n /* eslint-enable no-cond-assign */\n\n } // Force browsers to behave consistently when non-matching value is set\n\n\n if (!optionSet) {\n elem.selectedIndex = -1;\n }\n\n return values;\n }\n }\n }\n }); // Radios and checkboxes getter/setter\n\n jQuery.each([\"radio\", \"checkbox\"], function () {\n jQuery.valHooks[this] = {\n set: function set(elem, value) {\n if (Array.isArray(value)) {\n return elem.checked = jQuery.inArray(jQuery(elem).val(), value) > -1;\n }\n }\n };\n\n if (!support.checkOn) {\n jQuery.valHooks[this].get = function (elem) {\n return elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\n };\n }\n }); // Return jQuery for attributes-only inclusion\n\n support.focusin = \"onfocusin\" in window;\n\n var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n stopPropagationCallback = function stopPropagationCallback(e) {\n e.stopPropagation();\n };\n\n jQuery.extend(jQuery.event, {\n trigger: function trigger(event, data, elem, onlyHandlers) {\n var i,\n cur,\n tmp,\n bubbleType,\n ontype,\n handle,\n special,\n lastElement,\n eventPath = [elem || document],\n type = hasOwn.call(event, \"type\") ? event.type : event,\n namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\n cur = lastElement = tmp = elem = elem || document; // Don't do events on text and comment nodes\n\n if (elem.nodeType === 3 || elem.nodeType === 8) {\n return;\n } // focus/blur morphs to focusin/out; ensure we're not firing them right now\n\n\n if (rfocusMorph.test(type + jQuery.event.triggered)) {\n return;\n }\n\n if (type.indexOf(\".\") > -1) {\n // Namespaced trigger; create a regexp to match event type in handle()\n namespaces = type.split(\".\");\n type = namespaces.shift();\n namespaces.sort();\n }\n\n ontype = type.indexOf(\":\") < 0 && \"on\" + type; // Caller can pass in a jQuery.Event object, Object, or just an event type string\n\n event = event[jQuery.expando] ? event : new jQuery.Event(type, _typeof(event) === \"object\" && event); // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\n event.isTrigger = onlyHandlers ? 2 : 3;\n event.namespace = namespaces.join(\".\");\n event.rnamespace = event.namespace ? new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null; // Clean up the event in case it is being reused\n\n event.result = undefined;\n\n if (!event.target) {\n event.target = elem;\n } // Clone any incoming data and prepend the event, creating the handler arg list\n\n\n data = data == null ? [event] : jQuery.makeArray(data, [event]); // Allow special events to draw outside the lines\n\n special = jQuery.event.special[type] || {};\n\n if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n return;\n } // Determine event propagation path in advance, per W3C events spec (#9951)\n // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\n\n if (!onlyHandlers && !special.noBubble && !isWindow(elem)) {\n bubbleType = special.delegateType || type;\n\n if (!rfocusMorph.test(bubbleType + type)) {\n cur = cur.parentNode;\n }\n\n for (; cur; cur = cur.parentNode) {\n eventPath.push(cur);\n tmp = cur;\n } // Only add window if we got to document (e.g., not plain obj or detached DOM)\n\n\n if (tmp === (elem.ownerDocument || document)) {\n eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n }\n } // Fire handlers on the event path\n\n\n i = 0;\n\n while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n lastElement = cur;\n event.type = i > 1 ? bubbleType : special.bindType || type; // jQuery handler\n\n handle = (dataPriv.get(cur, \"events\") || Object.create(null))[event.type] && dataPriv.get(cur, \"handle\");\n\n if (handle) {\n handle.apply(cur, data);\n } // Native handler\n\n\n handle = ontype && cur[ontype];\n\n if (handle && handle.apply && acceptData(cur)) {\n event.result = handle.apply(cur, data);\n\n if (event.result === false) {\n event.preventDefault();\n }\n }\n }\n\n event.type = type; // If nobody prevented the default action, do it now\n\n if (!onlyHandlers && !event.isDefaultPrevented()) {\n if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) {\n // Call a native DOM method on the target with the same name as the event.\n // Don't do default actions on window, that's where global variables be (#6170)\n if (ontype && isFunction(elem[type]) && !isWindow(elem)) {\n // Don't re-trigger an onFOO event when we call its FOO() method\n tmp = elem[ontype];\n\n if (tmp) {\n elem[ontype] = null;\n } // Prevent re-triggering of the same event, since we already bubbled it above\n\n\n jQuery.event.triggered = type;\n\n if (event.isPropagationStopped()) {\n lastElement.addEventListener(type, stopPropagationCallback);\n }\n\n elem[type]();\n\n if (event.isPropagationStopped()) {\n lastElement.removeEventListener(type, stopPropagationCallback);\n }\n\n jQuery.event.triggered = undefined;\n\n if (tmp) {\n elem[ontype] = tmp;\n }\n }\n }\n }\n\n return event.result;\n },\n // Piggyback on a donor event to simulate a different one\n // Used only for `focus(in | out)` events\n simulate: function simulate(type, elem, event) {\n var e = jQuery.extend(new jQuery.Event(), event, {\n type: type,\n isSimulated: true\n });\n jQuery.event.trigger(e, null, elem);\n }\n });\n jQuery.fn.extend({\n trigger: function trigger(type, data) {\n return this.each(function () {\n jQuery.event.trigger(type, data, this);\n });\n },\n triggerHandler: function triggerHandler(type, data) {\n var elem = this[0];\n\n if (elem) {\n return jQuery.event.trigger(type, data, elem, true);\n }\n }\n }); // Support: Firefox <=44\n // Firefox doesn't have focus(in | out) events\n // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n //\n // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n // focus(in | out) events fire after focus & blur events,\n // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\n if (!support.focusin) {\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (orig, fix) {\n // Attach a single capturing handler on the document while someone wants focusin/focusout\n var handler = function handler(event) {\n jQuery.event.simulate(fix, event.target, jQuery.event.fix(event));\n };\n\n jQuery.event.special[fix] = {\n setup: function setup() {\n // Handle: regular nodes (via `this.ownerDocument`), window\n // (via `this.document`) & document (via `this`).\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix);\n\n if (!attaches) {\n doc.addEventListener(orig, handler, true);\n }\n\n dataPriv.access(doc, fix, (attaches || 0) + 1);\n },\n teardown: function teardown() {\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix) - 1;\n\n if (!attaches) {\n doc.removeEventListener(orig, handler, true);\n dataPriv.remove(doc, fix);\n } else {\n dataPriv.access(doc, fix, attaches);\n }\n }\n };\n });\n }\n\n var location = window.location;\n var nonce = {\n guid: Date.now()\n };\n var rquery = /\\?/; // Cross-browser xml parsing\n\n jQuery.parseXML = function (data) {\n var xml, parserErrorElem;\n\n if (!data || typeof data !== \"string\") {\n return null;\n } // Support: IE 9 - 11 only\n // IE throws on parseFromString with invalid input.\n\n\n try {\n xml = new window.DOMParser().parseFromString(data, \"text/xml\");\n } catch (e) {}\n\n parserErrorElem = xml && xml.getElementsByTagName(\"parsererror\")[0];\n\n if (!xml || parserErrorElem) {\n jQuery.error(\"Invalid XML: \" + (parserErrorElem ? jQuery.map(parserErrorElem.childNodes, function (el) {\n return el.textContent;\n }).join(\"\\n\") : data));\n }\n\n return xml;\n };\n\n var rbracket = /\\[\\]$/,\n rCRLF = /\\r?\\n/g,\n rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n rsubmittable = /^(?:input|select|textarea|keygen)/i;\n\n function buildParams(prefix, obj, traditional, add) {\n var name;\n\n if (Array.isArray(obj)) {\n // Serialize array item.\n jQuery.each(obj, function (i, v) {\n if (traditional || rbracket.test(prefix)) {\n // Treat each array item as a scalar.\n add(prefix, v);\n } else {\n // Item is non-scalar (array or object), encode its numeric index.\n buildParams(prefix + \"[\" + (_typeof(v) === \"object\" && v != null ? i : \"\") + \"]\", v, traditional, add);\n }\n });\n } else if (!traditional && toType(obj) === \"object\") {\n // Serialize object item.\n for (name in obj) {\n buildParams(prefix + \"[\" + name + \"]\", obj[name], traditional, add);\n }\n } else {\n // Serialize scalar item.\n add(prefix, obj);\n }\n } // Serialize an array of form elements or a set of\n // key/values into a query string\n\n\n jQuery.param = function (a, traditional) {\n var prefix,\n s = [],\n add = function add(key, valueOrFunction) {\n // If value is a function, invoke it and use its return value\n var value = isFunction(valueOrFunction) ? valueOrFunction() : valueOrFunction;\n s[s.length] = encodeURIComponent(key) + \"=\" + encodeURIComponent(value == null ? \"\" : value);\n };\n\n if (a == null) {\n return \"\";\n } // If an array was passed in, assume that it is an array of form elements.\n\n\n if (Array.isArray(a) || a.jquery && !jQuery.isPlainObject(a)) {\n // Serialize the form elements\n jQuery.each(a, function () {\n add(this.name, this.value);\n });\n } else {\n // If traditional, encode the \"old\" way (the way 1.3.2 or older\n // did it), otherwise encode params recursively.\n for (prefix in a) {\n buildParams(prefix, a[prefix], traditional, add);\n }\n } // Return the resulting serialization\n\n\n return s.join(\"&\");\n };\n\n jQuery.fn.extend({\n serialize: function serialize() {\n return jQuery.param(this.serializeArray());\n },\n serializeArray: function serializeArray() {\n return this.map(function () {\n // Can add propHook for \"elements\" to filter or add form elements\n var elements = jQuery.prop(this, \"elements\");\n return elements ? jQuery.makeArray(elements) : this;\n }).filter(function () {\n var type = this.type; // Use .is( \":disabled\" ) so that fieldset[disabled] works\n\n return this.name && !jQuery(this).is(\":disabled\") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type));\n }).map(function (_i, elem) {\n var val = jQuery(this).val();\n\n if (val == null) {\n return null;\n }\n\n if (Array.isArray(val)) {\n return jQuery.map(val, function (val) {\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n });\n }\n\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n }).get();\n }\n });\n var r20 = /%20/g,\n rhash = /#.*$/,\n rantiCache = /([?&])_=[^&]*/,\n rheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n // #7653, #8125, #8152: local protocol detection\n rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n rnoContent = /^(?:GET|HEAD)$/,\n rprotocol = /^\\/\\//,\n\n /* Prefilters\n * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n * 2) These are called:\n * - BEFORE asking for a transport\n * - AFTER param serialization (s.data is a string if s.processData is true)\n * 3) key is the dataType\n * 4) the catchall symbol \"*\" can be used\n * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n */\n prefilters = {},\n\n /* Transports bindings\n * 1) key is the dataType\n * 2) the catchall symbol \"*\" can be used\n * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n */\n transports = {},\n // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n allTypes = \"*/\".concat(\"*\"),\n // Anchor tag for parsing the document origin\n originAnchor = document.createElement(\"a\");\n originAnchor.href = location.href; // Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\n\n function addToPrefiltersOrTransports(structure) {\n // dataTypeExpression is optional and defaults to \"*\"\n return function (dataTypeExpression, func) {\n if (typeof dataTypeExpression !== \"string\") {\n func = dataTypeExpression;\n dataTypeExpression = \"*\";\n }\n\n var dataType,\n i = 0,\n dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || [];\n\n if (isFunction(func)) {\n // For each dataType in the dataTypeExpression\n while (dataType = dataTypes[i++]) {\n // Prepend if requested\n if (dataType[0] === \"+\") {\n dataType = dataType.slice(1) || \"*\";\n (structure[dataType] = structure[dataType] || []).unshift(func); // Otherwise append\n } else {\n (structure[dataType] = structure[dataType] || []).push(func);\n }\n }\n }\n };\n } // Base inspection function for prefilters and transports\n\n\n function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\n var inspected = {},\n seekingTransport = structure === transports;\n\n function inspect(dataType) {\n var selected;\n inspected[dataType] = true;\n jQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) {\n var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR);\n\n if (typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[dataTypeOrTransport]) {\n options.dataTypes.unshift(dataTypeOrTransport);\n inspect(dataTypeOrTransport);\n return false;\n } else if (seekingTransport) {\n return !(selected = dataTypeOrTransport);\n }\n });\n return selected;\n }\n\n return inspect(options.dataTypes[0]) || !inspected[\"*\"] && inspect(\"*\");\n } // A special extend for ajax options\n // that takes \"flat\" options (not to be deep extended)\n // Fixes #9887\n\n\n function ajaxExtend(target, src) {\n var key,\n deep,\n flatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n for (key in src) {\n if (src[key] !== undefined) {\n (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key];\n }\n }\n\n if (deep) {\n jQuery.extend(true, target, deep);\n }\n\n return target;\n }\n /* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\n\n\n function ajaxHandleResponses(s, jqXHR, responses) {\n var ct,\n type,\n finalDataType,\n firstDataType,\n contents = s.contents,\n dataTypes = s.dataTypes; // Remove auto dataType and get content-type in the process\n\n while (dataTypes[0] === \"*\") {\n dataTypes.shift();\n\n if (ct === undefined) {\n ct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n }\n } // Check if we're dealing with a known content-type\n\n\n if (ct) {\n for (type in contents) {\n if (contents[type] && contents[type].test(ct)) {\n dataTypes.unshift(type);\n break;\n }\n }\n } // Check to see if we have a response for the expected dataType\n\n\n if (dataTypes[0] in responses) {\n finalDataType = dataTypes[0];\n } else {\n // Try convertible dataTypes\n for (type in responses) {\n if (!dataTypes[0] || s.converters[type + \" \" + dataTypes[0]]) {\n finalDataType = type;\n break;\n }\n\n if (!firstDataType) {\n firstDataType = type;\n }\n } // Or just use first one\n\n\n finalDataType = finalDataType || firstDataType;\n } // If we found a dataType\n // We add the dataType to the list if needed\n // and return the corresponding response\n\n\n if (finalDataType) {\n if (finalDataType !== dataTypes[0]) {\n dataTypes.unshift(finalDataType);\n }\n\n return responses[finalDataType];\n }\n }\n /* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\n\n\n function ajaxConvert(s, response, jqXHR, isSuccess) {\n var conv2,\n current,\n conv,\n tmp,\n prev,\n converters = {},\n // Work with a copy of dataTypes in case we need to modify it for conversion\n dataTypes = s.dataTypes.slice(); // Create converters map with lowercased keys\n\n if (dataTypes[1]) {\n for (conv in s.converters) {\n converters[conv.toLowerCase()] = s.converters[conv];\n }\n }\n\n current = dataTypes.shift(); // Convert to each sequential dataType\n\n while (current) {\n if (s.responseFields[current]) {\n jqXHR[s.responseFields[current]] = response;\n } // Apply the dataFilter if provided\n\n\n if (!prev && isSuccess && s.dataFilter) {\n response = s.dataFilter(response, s.dataType);\n }\n\n prev = current;\n current = dataTypes.shift();\n\n if (current) {\n // There's only work to do if current dataType is non-auto\n if (current === \"*\") {\n current = prev; // Convert response if prev dataType is non-auto and differs from current\n } else if (prev !== \"*\" && prev !== current) {\n // Seek a direct converter\n conv = converters[prev + \" \" + current] || converters[\"* \" + current]; // If none found, seek a pair\n\n if (!conv) {\n for (conv2 in converters) {\n // If conv2 outputs current\n tmp = conv2.split(\" \");\n\n if (tmp[1] === current) {\n // If prev can be converted to accepted input\n conv = converters[prev + \" \" + tmp[0]] || converters[\"* \" + tmp[0]];\n\n if (conv) {\n // Condense equivalence converters\n if (conv === true) {\n conv = converters[conv2]; // Otherwise, insert the intermediate dataType\n } else if (converters[conv2] !== true) {\n current = tmp[0];\n dataTypes.unshift(tmp[1]);\n }\n\n break;\n }\n }\n }\n } // Apply converter (if not an equivalence)\n\n\n if (conv !== true) {\n // Unless errors are allowed to bubble, catch and return them\n if (conv && s.throws) {\n response = conv(response);\n } else {\n try {\n response = conv(response);\n } catch (e) {\n return {\n state: \"parsererror\",\n error: conv ? e : \"No conversion from \" + prev + \" to \" + current\n };\n }\n }\n }\n }\n }\n }\n\n return {\n state: \"success\",\n data: response\n };\n }\n\n jQuery.extend({\n // Counter for holding the number of active queries\n active: 0,\n // Last-Modified header cache for next request\n lastModified: {},\n etag: {},\n ajaxSettings: {\n url: location.href,\n type: \"GET\",\n isLocal: rlocalProtocol.test(location.protocol),\n global: true,\n processData: true,\n async: true,\n contentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n /*\n timeout: 0,\n data: null,\n dataType: null,\n username: null,\n password: null,\n cache: null,\n throws: false,\n traditional: false,\n headers: {},\n */\n accepts: {\n \"*\": allTypes,\n text: \"text/plain\",\n html: \"text/html\",\n xml: \"application/xml, text/xml\",\n json: \"application/json, text/javascript\"\n },\n contents: {\n xml: /\\bxml\\b/,\n html: /\\bhtml/,\n json: /\\bjson\\b/\n },\n responseFields: {\n xml: \"responseXML\",\n text: \"responseText\",\n json: \"responseJSON\"\n },\n // Data converters\n // Keys separate source (or catchall \"*\") and destination types with a single space\n converters: {\n // Convert anything to text\n \"* text\": String,\n // Text to html (true = no transformation)\n \"text html\": true,\n // Evaluate text as a json expression\n \"text json\": JSON.parse,\n // Parse text as xml\n \"text xml\": jQuery.parseXML\n },\n // For options that shouldn't be deep extended:\n // you can add your own custom options here if\n // and when you create one that shouldn't be\n // deep extended (see ajaxExtend)\n flatOptions: {\n url: true,\n context: true\n }\n },\n // Creates a full fledged settings object into target\n // with both ajaxSettings and settings fields.\n // If target is omitted, writes into ajaxSettings.\n ajaxSetup: function ajaxSetup(target, settings) {\n return settings ? // Building a settings object\n ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) : // Extending ajaxSettings\n ajaxExtend(jQuery.ajaxSettings, target);\n },\n ajaxPrefilter: addToPrefiltersOrTransports(prefilters),\n ajaxTransport: addToPrefiltersOrTransports(transports),\n // Main method\n ajax: function ajax(url, options) {\n // If url is an object, simulate pre-1.5 signature\n if (_typeof(url) === \"object\") {\n options = url;\n url = undefined;\n } // Force options to be an object\n\n\n options = options || {};\n\n var transport,\n // URL without anti-cache param\n cacheURL,\n // Response headers\n responseHeadersString,\n responseHeaders,\n // timeout handle\n timeoutTimer,\n // Url cleanup var\n urlAnchor,\n // Request state (becomes false upon send and true upon completion)\n completed,\n // To know if global events are to be dispatched\n fireGlobals,\n // Loop variable\n i,\n // uncached part of the url\n uncached,\n // Create the final options object\n s = jQuery.ajaxSetup({}, options),\n // Callbacks context\n callbackContext = s.context || s,\n // Context for global events is callbackContext if it is a DOM node or jQuery collection\n globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery(callbackContext) : jQuery.event,\n // Deferreds\n deferred = jQuery.Deferred(),\n completeDeferred = jQuery.Callbacks(\"once memory\"),\n // Status-dependent callbacks\n _statusCode = s.statusCode || {},\n // Headers (they are sent all at once)\n requestHeaders = {},\n requestHeadersNames = {},\n // Default abort message\n strAbort = \"canceled\",\n // Fake xhr\n jqXHR = {\n readyState: 0,\n // Builds headers hashtable if needed\n getResponseHeader: function getResponseHeader(key) {\n var match;\n\n if (completed) {\n if (!responseHeaders) {\n responseHeaders = {};\n\n while (match = rheaders.exec(responseHeadersString)) {\n responseHeaders[match[1].toLowerCase() + \" \"] = (responseHeaders[match[1].toLowerCase() + \" \"] || []).concat(match[2]);\n }\n }\n\n match = responseHeaders[key.toLowerCase() + \" \"];\n }\n\n return match == null ? null : match.join(\", \");\n },\n // Raw string\n getAllResponseHeaders: function getAllResponseHeaders() {\n return completed ? responseHeadersString : null;\n },\n // Caches the header\n setRequestHeader: function setRequestHeader(name, value) {\n if (completed == null) {\n name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name;\n requestHeaders[name] = value;\n }\n\n return this;\n },\n // Overrides response content-type header\n overrideMimeType: function overrideMimeType(type) {\n if (completed == null) {\n s.mimeType = type;\n }\n\n return this;\n },\n // Status-dependent callbacks\n statusCode: function statusCode(map) {\n var code;\n\n if (map) {\n if (completed) {\n // Execute the appropriate callbacks\n jqXHR.always(map[jqXHR.status]);\n } else {\n // Lazy-add the new callbacks in a way that preserves old ones\n for (code in map) {\n _statusCode[code] = [_statusCode[code], map[code]];\n }\n }\n }\n\n return this;\n },\n // Cancel the request\n abort: function abort(statusText) {\n var finalText = statusText || strAbort;\n\n if (transport) {\n transport.abort(finalText);\n }\n\n done(0, finalText);\n return this;\n }\n }; // Attach deferreds\n\n\n deferred.promise(jqXHR); // Add protocol if not provided (prefilters might expect it)\n // Handle falsy url in the settings object (#10093: consistency with old signature)\n // We also use the url parameter if available\n\n s.url = ((url || s.url || location.href) + \"\").replace(rprotocol, location.protocol + \"//\"); // Alias method option to type as per ticket #12004\n\n s.type = options.method || options.type || s.method || s.type; // Extract dataTypes list\n\n s.dataTypes = (s.dataType || \"*\").toLowerCase().match(rnothtmlwhite) || [\"\"]; // A cross-domain request is in order when the origin doesn't match the current origin.\n\n if (s.crossDomain == null) {\n urlAnchor = document.createElement(\"a\"); // Support: IE <=8 - 11, Edge 12 - 15\n // IE throws exception on accessing the href property if url is malformed,\n // e.g. http://example.com:80x/\n\n try {\n urlAnchor.href = s.url; // Support: IE <=8 - 11 only\n // Anchor's host property isn't correctly set when s.url is relative\n\n urlAnchor.href = urlAnchor.href;\n s.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host;\n } catch (e) {\n // If there is an error parsing the URL, assume it is crossDomain,\n // it can be rejected by the transport if it is invalid\n s.crossDomain = true;\n }\n } // Convert data if not already a string\n\n\n if (s.data && s.processData && typeof s.data !== \"string\") {\n s.data = jQuery.param(s.data, s.traditional);\n } // Apply prefilters\n\n\n inspectPrefiltersOrTransports(prefilters, s, options, jqXHR); // If request was aborted inside a prefilter, stop there\n\n if (completed) {\n return jqXHR;\n } // We can fire global events as of now if asked to\n // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\n\n fireGlobals = jQuery.event && s.global; // Watch for a new set of requests\n\n if (fireGlobals && jQuery.active++ === 0) {\n jQuery.event.trigger(\"ajaxStart\");\n } // Uppercase the type\n\n\n s.type = s.type.toUpperCase(); // Determine if request has content\n\n s.hasContent = !rnoContent.test(s.type); // Save the URL in case we're toying with the If-Modified-Since\n // and/or If-None-Match header later on\n // Remove hash to simplify url manipulation\n\n cacheURL = s.url.replace(rhash, \"\"); // More options handling for requests with no content\n\n if (!s.hasContent) {\n // Remember the hash so we can put it back\n uncached = s.url.slice(cacheURL.length); // If data is available and should be processed, append data to url\n\n if (s.data && (s.processData || typeof s.data === \"string\")) {\n cacheURL += (rquery.test(cacheURL) ? \"&\" : \"?\") + s.data; // #9682: remove data so that it's not used in an eventual retry\n\n delete s.data;\n } // Add or update anti-cache param if needed\n\n\n if (s.cache === false) {\n cacheURL = cacheURL.replace(rantiCache, \"$1\");\n uncached = (rquery.test(cacheURL) ? \"&\" : \"?\") + \"_=\" + nonce.guid++ + uncached;\n } // Put hash and anti-cache on the URL that will be requested (gh-1732)\n\n\n s.url = cacheURL + uncached; // Change '%20' to '+' if this is encoded form body content (gh-2658)\n } else if (s.data && s.processData && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0) {\n s.data = s.data.replace(r20, \"+\");\n } // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\n\n if (s.ifModified) {\n if (jQuery.lastModified[cacheURL]) {\n jqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\n }\n\n if (jQuery.etag[cacheURL]) {\n jqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\n }\n } // Set the correct header, if data is being sent\n\n\n if (s.data && s.hasContent && s.contentType !== false || options.contentType) {\n jqXHR.setRequestHeader(\"Content-Type\", s.contentType);\n } // Set the Accepts header for the server, depending on the dataType\n\n\n jqXHR.setRequestHeader(\"Accept\", s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\") : s.accepts[\"*\"]); // Check for headers option\n\n for (i in s.headers) {\n jqXHR.setRequestHeader(i, s.headers[i]);\n } // Allow custom headers/mimetypes and early abort\n\n\n if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || completed)) {\n // Abort if not done already and return\n return jqXHR.abort();\n } // Aborting is no longer a cancellation\n\n\n strAbort = \"abort\"; // Install callbacks on deferreds\n\n completeDeferred.add(s.complete);\n jqXHR.done(s.success);\n jqXHR.fail(s.error); // Get transport\n\n transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR); // If no transport, we auto-abort\n\n if (!transport) {\n done(-1, \"No Transport\");\n } else {\n jqXHR.readyState = 1; // Send global event\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\n } // If request was aborted inside ajaxSend, stop there\n\n\n if (completed) {\n return jqXHR;\n } // Timeout\n\n\n if (s.async && s.timeout > 0) {\n timeoutTimer = window.setTimeout(function () {\n jqXHR.abort(\"timeout\");\n }, s.timeout);\n }\n\n try {\n completed = false;\n transport.send(requestHeaders, done);\n } catch (e) {\n // Rethrow post-completion exceptions\n if (completed) {\n throw e;\n } // Propagate others as results\n\n\n done(-1, e);\n }\n } // Callback for when everything is done\n\n\n function done(status, nativeStatusText, responses, headers) {\n var isSuccess,\n success,\n error,\n response,\n modified,\n statusText = nativeStatusText; // Ignore repeat invocations\n\n if (completed) {\n return;\n }\n\n completed = true; // Clear timeout if it exists\n\n if (timeoutTimer) {\n window.clearTimeout(timeoutTimer);\n } // Dereference transport for early garbage collection\n // (no matter how long the jqXHR object will be used)\n\n\n transport = undefined; // Cache response headers\n\n responseHeadersString = headers || \"\"; // Set readyState\n\n jqXHR.readyState = status > 0 ? 4 : 0; // Determine if successful\n\n isSuccess = status >= 200 && status < 300 || status === 304; // Get response data\n\n if (responses) {\n response = ajaxHandleResponses(s, jqXHR, responses);\n } // Use a noop converter for missing script but not if jsonp\n\n\n if (!isSuccess && jQuery.inArray(\"script\", s.dataTypes) > -1 && jQuery.inArray(\"json\", s.dataTypes) < 0) {\n s.converters[\"text script\"] = function () {};\n } // Convert no matter what (that way responseXXX fields are always set)\n\n\n response = ajaxConvert(s, response, jqXHR, isSuccess); // If successful, handle type chaining\n\n if (isSuccess) {\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n modified = jqXHR.getResponseHeader(\"Last-Modified\");\n\n if (modified) {\n jQuery.lastModified[cacheURL] = modified;\n }\n\n modified = jqXHR.getResponseHeader(\"etag\");\n\n if (modified) {\n jQuery.etag[cacheURL] = modified;\n }\n } // if no content\n\n\n if (status === 204 || s.type === \"HEAD\") {\n statusText = \"nocontent\"; // if not modified\n } else if (status === 304) {\n statusText = \"notmodified\"; // If we have data, let's convert it\n } else {\n statusText = response.state;\n success = response.data;\n error = response.error;\n isSuccess = !error;\n }\n } else {\n // Extract error from statusText and normalize for non-aborts\n error = statusText;\n\n if (status || !statusText) {\n statusText = \"error\";\n\n if (status < 0) {\n status = 0;\n }\n }\n } // Set data for the fake xhr object\n\n\n jqXHR.status = status;\n jqXHR.statusText = (nativeStatusText || statusText) + \"\"; // Success/Error\n\n if (isSuccess) {\n deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\n } else {\n deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\n } // Status-dependent callbacks\n\n\n jqXHR.statusCode(_statusCode);\n _statusCode = undefined;\n\n if (fireGlobals) {\n globalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\", [jqXHR, s, isSuccess ? success : error]);\n } // Complete\n\n\n completeDeferred.fireWith(callbackContext, [jqXHR, statusText]);\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]); // Handle the global AJAX counter\n\n if (! --jQuery.active) {\n jQuery.event.trigger(\"ajaxStop\");\n }\n }\n }\n\n return jqXHR;\n },\n getJSON: function getJSON(url, data, callback) {\n return jQuery.get(url, data, callback, \"json\");\n },\n getScript: function getScript(url, callback) {\n return jQuery.get(url, undefined, callback, \"script\");\n }\n });\n jQuery.each([\"get\", \"post\"], function (_i, method) {\n jQuery[method] = function (url, data, callback, type) {\n // Shift arguments if data argument was omitted\n if (isFunction(data)) {\n type = type || callback;\n callback = data;\n data = undefined;\n } // The url can be an options object (which then must have .url)\n\n\n return jQuery.ajax(jQuery.extend({\n url: url,\n type: method,\n dataType: type,\n data: data,\n success: callback\n }, jQuery.isPlainObject(url) && url));\n };\n });\n jQuery.ajaxPrefilter(function (s) {\n var i;\n\n for (i in s.headers) {\n if (i.toLowerCase() === \"content-type\") {\n s.contentType = s.headers[i] || \"\";\n }\n }\n });\n\n jQuery._evalUrl = function (url, options, doc) {\n return jQuery.ajax({\n url: url,\n // Make this explicit, since user can override this through ajaxSetup (#11264)\n type: \"GET\",\n dataType: \"script\",\n cache: true,\n async: false,\n global: false,\n // Only evaluate the response if it is successful (gh-4126)\n // dataFilter is not invoked for failure responses, so using it instead\n // of the default converter is kludgy but it works.\n converters: {\n \"text script\": function textScript() {}\n },\n dataFilter: function dataFilter(response) {\n jQuery.globalEval(response, options, doc);\n }\n });\n };\n\n jQuery.fn.extend({\n wrapAll: function wrapAll(html) {\n var wrap;\n\n if (this[0]) {\n if (isFunction(html)) {\n html = html.call(this[0]);\n } // The elements to wrap the target around\n\n\n wrap = jQuery(html, this[0].ownerDocument).eq(0).clone(true);\n\n if (this[0].parentNode) {\n wrap.insertBefore(this[0]);\n }\n\n wrap.map(function () {\n var elem = this;\n\n while (elem.firstElementChild) {\n elem = elem.firstElementChild;\n }\n\n return elem;\n }).append(this);\n }\n\n return this;\n },\n wrapInner: function wrapInner(html) {\n if (isFunction(html)) {\n return this.each(function (i) {\n jQuery(this).wrapInner(html.call(this, i));\n });\n }\n\n return this.each(function () {\n var self = jQuery(this),\n contents = self.contents();\n\n if (contents.length) {\n contents.wrapAll(html);\n } else {\n self.append(html);\n }\n });\n },\n wrap: function wrap(html) {\n var htmlIsFunction = isFunction(html);\n return this.each(function (i) {\n jQuery(this).wrapAll(htmlIsFunction ? html.call(this, i) : html);\n });\n },\n unwrap: function unwrap(selector) {\n this.parent(selector).not(\"body\").each(function () {\n jQuery(this).replaceWith(this.childNodes);\n });\n return this;\n }\n });\n\n jQuery.expr.pseudos.hidden = function (elem) {\n return !jQuery.expr.pseudos.visible(elem);\n };\n\n jQuery.expr.pseudos.visible = function (elem) {\n return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);\n };\n\n jQuery.ajaxSettings.xhr = function () {\n try {\n return new window.XMLHttpRequest();\n } catch (e) {}\n };\n\n var xhrSuccessStatus = {\n // File protocol always yields status code 0, assume 200\n 0: 200,\n // Support: IE <=9 only\n // #1450: sometimes IE returns 1223 when it should be 204\n 1223: 204\n },\n xhrSupported = jQuery.ajaxSettings.xhr();\n support.cors = !!xhrSupported && \"withCredentials\" in xhrSupported;\n support.ajax = xhrSupported = !!xhrSupported;\n jQuery.ajaxTransport(function (options) {\n var _callback, errorCallback; // Cross domain only allowed if supported through XMLHttpRequest\n\n\n if (support.cors || xhrSupported && !options.crossDomain) {\n return {\n send: function send(headers, complete) {\n var i,\n xhr = options.xhr();\n xhr.open(options.type, options.url, options.async, options.username, options.password); // Apply custom fields if provided\n\n if (options.xhrFields) {\n for (i in options.xhrFields) {\n xhr[i] = options.xhrFields[i];\n }\n } // Override mime type if needed\n\n\n if (options.mimeType && xhr.overrideMimeType) {\n xhr.overrideMimeType(options.mimeType);\n } // X-Requested-With header\n // For cross-domain requests, seeing as conditions for a preflight are\n // akin to a jigsaw puzzle, we simply never set it to be sure.\n // (it can always be set on a per-request basis or even using ajaxSetup)\n // For same-domain requests, won't change header if already provided.\n\n\n if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\n headers[\"X-Requested-With\"] = \"XMLHttpRequest\";\n } // Set headers\n\n\n for (i in headers) {\n xhr.setRequestHeader(i, headers[i]);\n } // Callback\n\n\n _callback = function callback(type) {\n return function () {\n if (_callback) {\n _callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = xhr.onreadystatechange = null;\n\n if (type === \"abort\") {\n xhr.abort();\n } else if (type === \"error\") {\n // Support: IE <=9 only\n // On a manual native abort, IE9 throws\n // errors on any property access that is not readyState\n if (typeof xhr.status !== \"number\") {\n complete(0, \"error\");\n } else {\n complete( // File: protocol always yields status 0; see #8605, #14207\n xhr.status, xhr.statusText);\n }\n } else {\n complete(xhrSuccessStatus[xhr.status] || xhr.status, xhr.statusText, // Support: IE <=9 only\n // IE9 has no XHR2 but throws on binary (trac-11426)\n // For XHR2 non-text, let the caller handle it (gh-2498)\n (xhr.responseType || \"text\") !== \"text\" || typeof xhr.responseText !== \"string\" ? {\n binary: xhr.response\n } : {\n text: xhr.responseText\n }, xhr.getAllResponseHeaders());\n }\n }\n };\n }; // Listen to events\n\n\n xhr.onload = _callback();\n errorCallback = xhr.onerror = xhr.ontimeout = _callback(\"error\"); // Support: IE 9 only\n // Use onreadystatechange to replace onabort\n // to handle uncaught aborts\n\n if (xhr.onabort !== undefined) {\n xhr.onabort = errorCallback;\n } else {\n xhr.onreadystatechange = function () {\n // Check readyState before timeout as it changes\n if (xhr.readyState === 4) {\n // Allow onerror to be called first,\n // but that will not handle a native abort\n // Also, save errorCallback to a variable\n // as xhr.onerror cannot be accessed\n window.setTimeout(function () {\n if (_callback) {\n errorCallback();\n }\n });\n }\n };\n } // Create the abort callback\n\n\n _callback = _callback(\"abort\");\n\n try {\n // Do send the request (this may raise an exception)\n xhr.send(options.hasContent && options.data || null);\n } catch (e) {\n // #14683: Only rethrow if this hasn't been notified as an error yet\n if (_callback) {\n throw e;\n }\n }\n },\n abort: function abort() {\n if (_callback) {\n _callback();\n }\n }\n };\n }\n }); // Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\n\n jQuery.ajaxPrefilter(function (s) {\n if (s.crossDomain) {\n s.contents.script = false;\n }\n }); // Install script dataType\n\n jQuery.ajaxSetup({\n accepts: {\n script: \"text/javascript, application/javascript, \" + \"application/ecmascript, application/x-ecmascript\"\n },\n contents: {\n script: /\\b(?:java|ecma)script\\b/\n },\n converters: {\n \"text script\": function textScript(text) {\n jQuery.globalEval(text);\n return text;\n }\n }\n }); // Handle cache's special case and crossDomain\n\n jQuery.ajaxPrefilter(\"script\", function (s) {\n if (s.cache === undefined) {\n s.cache = false;\n }\n\n if (s.crossDomain) {\n s.type = \"GET\";\n }\n }); // Bind script tag hack transport\n\n jQuery.ajaxTransport(\"script\", function (s) {\n // This transport only deals with cross domain or forced-by-attrs requests\n if (s.crossDomain || s.scriptAttrs) {\n var script, _callback2;\n\n return {\n send: function send(_, complete) {\n script = jQuery(\"