-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsrc.2d25ad8e.js.map
1 lines (1 loc) · 760 KB
/
src.2d25ad8e.js.map
1
{"version":3,"sources":["../node_modules/regenerator-runtime/runtime.js","../node_modules/near-api-js/lib/key_stores/keystore.js","../node_modules/tweetnacl/nacl-fast.js","../node_modules/bn.js/lib/bn.js","../node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/isarray/index.js","../node_modules/buffer/index.js","../node_modules/safe-buffer/index.js","../node_modules/base-x/src/index.js","../node_modules/bs58/index.js","../node_modules/text-encoding-utf-8/lib/encoding.lib.js","../node_modules/borsh/lib/index.js","../node_modules/near-api-js/lib/utils/serialize.js","../node_modules/near-api-js/lib/utils/enums.js","../node_modules/near-api-js/lib/utils/key_pair.js","../node_modules/near-api-js/lib/key_stores/in_memory_key_store.js","../node_modules/near-api-js/lib/key_stores/browser_local_storage_key_store.js","../node_modules/near-api-js/lib/key_stores/merge_key_store.js","../node_modules/near-api-js/lib/key_stores/browser-index.js","../node_modules/near-api-js/lib/providers/provider.js","../node_modules/near-api-js/node_modules/depd/lib/browser/index.js","../node_modules/depd/lib/browser/index.js","../node_modules/setprototypeof/index.js","../node_modules/statuses/codes.json","../node_modules/statuses/index.js","../node_modules/inherits/inherits_browser.js","../node_modules/toidentifier/index.js","../node_modules/http-errors/index.js","../node_modules/near-api-js/lib/utils/exponential-backoff.js","../node_modules/near-api-js/lib/utils/errors.js","../node_modules/near-api-js/lib/utils/web.js","../node_modules/mustache/mustache.js","../node_modules/near-api-js/lib/generated/rpc_error_schema.json","../node_modules/near-api-js/lib/res/error_messages.json","../node_modules/near-api-js/lib/utils/rpc_errors.js","../node_modules/near-api-js/lib/providers/json-rpc-provider.js","../node_modules/near-api-js/lib/providers/index.js","../node_modules/near-api-js/lib/utils/format.js","../node_modules/near-api-js/lib/utils/index.js","../node_modules/process/browser.js","../node_modules/js-sha256/src/sha256.js","../node_modules/near-api-js/lib/transaction.js","../node_modules/near-api-js/lib/validators.js","../node_modules/near-api-js/lib/constants.js","../node_modules/near-api-js/lib/account.js","../node_modules/near-api-js/lib/account_multisig.js","../node_modules/near-api-js/lib/account_creator.js","../node_modules/near-api-js/lib/signer.js","../node_modules/near-api-js/lib/connection.js","../node_modules/near-api-js/lib/contract.js","../node_modules/near-api-js/lib/near.js","../node_modules/near-api-js/lib/wallet-account.js","../node_modules/near-api-js/lib/common-index.js","../node_modules/near-api-js/lib/browser-connect.js","../node_modules/capability/lib/CapabilityDetector.js","../node_modules/capability/lib/index.js","../node_modules/capability/lib/definitions.js","../node_modules/capability/index.js","../node_modules/capability/es5.js","../node_modules/error-polyfill/lib/prepareStackTrace.js","../node_modules/error-polyfill/lib/v8.js","../node_modules/o3/lib/Class.js","../node_modules/o3/lib/abstractMethod.js","../node_modules/o3/lib/index.js","../node_modules/o3/index.js","../node_modules/u3/lib/cache.js","../node_modules/u3/lib/eachCombination.js","../node_modules/u3/lib/index.js","../node_modules/u3/index.js","../node_modules/error-polyfill/lib/non-v8/FrameStringSource.js","../node_modules/error-polyfill/lib/non-v8/Frame.js","../node_modules/error-polyfill/lib/non-v8/FrameStringParser.js","../node_modules/error-polyfill/lib/non-v8/index.js","../node_modules/error-polyfill/lib/unsupported.js","../node_modules/error-polyfill/lib/index.js","../node_modules/error-polyfill/index.js","../node_modules/near-api-js/lib/browser-index.js","config.js","utils.js","index.js"],"names":["depd","namespace","TypeError","deprecate","message","_file","undefined","_ignored","_namespace","_traced","_warned","Object","create","function","wrapfunction","property","wrapproperty","fn","obj","prop","descriptor","getOwnPropertyDescriptor","configurable","module","exports","codes","require","populateStatusesMap","statuses","arr","keys","forEach","code","status","Number","toLowerCase","push","Error","n","parseInt","isNaN","STATUS_CODES","redirect","empty","retry","toIdentifier","str","split","map","token","slice","toUpperCase","join","replace","setPrototypeOf","inherits","codeClass","String","charAt","createError","err","msg","props","i","arguments","length","arg","statusCode","HttpError","key","captureStackTrace","expose","createHttpErrorConstructor","createClientErrorConstructor","name","className","toClassName","ClientError","prototype","defineProperty","enumerable","value","writable","nameFunc","createIsHttpErrorFunction","val","createServerErrorConstructor","ServerError","func","desc","populateConstructorExports","CodeError","ImATeapot","substr","isHttpError","logWarning","ErrorContext","TypedError","ArgumentTypeError","PositionalArgsError","constructor","argName","argType","argValue","JSON","stringify","type","context","transactionHash","args","console","warn","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","e","call","runClearTimeout","marker","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","len","run","Item","array","noop","nextTick","Array","apply","title","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","__importDefault","mod","__esModule","Account","bn_js_1","depd_1","transaction_1","providers_1","borsh_1","key_pair_1","errors_1","rpc_errors_1","constants_1","exponential_backoff_1","TX_NONCE_RETRY_NUMBER","TX_NONCE_RETRY_WAIT","TX_NONCE_RETRY_WAIT_BACKOFF","parseJsonFromRawResponse","response","parse","Buffer","from","toString","bytesJsonStringify","input","connection","accountId","accessKeyByPublicKeyCache","ready","Promise","default","resolve","fetchState","state","provider","query","request_type","account_id","finality","printLogsAndFailures","contractId","results","result","log","receiptIds","printLogs","logs","failure","prefix","signTransaction","receiverId","actions","accessKeyInfo","findAccessKey","networkId","signer","accessKey","blockHash","block","header","hash","nonce","baseDecode","signAndSendTransaction","signAndSendTransactionV1","signAndSendTransactionV2","txHash","signedTx","publicKey","transaction","sendTransaction","error","baseEncode","flatLogs","transaction_outcome","receipts_outcome","reduce","acc","it","outcome","Failure","receipt_ids","parseRpcError","error_message","error_type","id","parseResultError","getPublicKey","cachedAccessKey","public_key","createAndDeployContract","data","amount","fullAccessKey","contractAccount","createAccount","transfer","addKey","PublicKey","deployContract","sendMoney","newAccountId","deleteAccount","beneficiaryId","functionCall","functionCallV1","functionCallV2","methodName","gas","validateArgs","DEFAULT_FUNCTION_CALL_GAS","attachedDeposit","walletMeta","walletCallbackUrl","stringifyArg","stringifyJsonOrBytes","methodNames","isArray","functionCallAccessKey","deleteKey","stake","isUint8Array","byteLength","viewFunction","serializedArgs","method_name","args_base64","viewState","blockQuery","values","prefix_base64","getAccessKeys","getAccountDetails","authorizedApps","filter","item","access_key","permission","perm","FunctionCall","receiver_id","allowance","getAccountBalance","protocolConfig","experimental_protocolConfig","costPerByte","runtime_config","storage_amount_per_byte","stateStaked","storage_usage","mul","staked","locked","totalBalance","add","availableBalance","sub","max","total","available","CONTRACT_NAME","getConfig","nodeUrl","contractName","walletUrl","helperUrl","explorerUrl","keyPath","masterAccount","nearConfig","initContract","assign","deps","keyStore","keyStores","BrowserLocalStorageKeyStore","near","window","walletConnection","WalletConnection","getAccountId","Contract","account","viewMethods","changeMethods","contract","logout","signOut","location","origin","pathname","login","requestSignIn","isFirstMessage","submitButton","document","querySelector","randInt","min","range","ret","Math","floor","random","clearMessages","innerHTML","getRandomColor","colors","appendMessage","date","Date","strDate","toLocaleDateString","toLocaleTimeString","color","html","objMessages","oldHtml","signedOutFlow","style","display","signedInFlow","querySelectorAll","el","innerText","accountLink","href","contractLink","onsubmit","event","preventDefault","target","elements","fieldset","greeting","disabled","hello","alert","oninput","onclick","nearInitPromise","then","isSignedIn","catch"],"mappings":"AsBMA,aAaA,SAASA,EAAMC,GACT,IAACA,EACG,MAAA,IAAIC,UAAU,kCAGbC,SAAAA,EAAWC,IAabD,OATPA,EAAUE,WAAQC,EAClBH,EAAUI,UAAW,EACrBJ,EAAUK,WAAaP,EACvBE,EAAUM,SAAU,EACpBN,EAAUO,QAAUC,OAAOC,OAAO,MAElCT,EAAUU,SAAWC,EACrBX,EAAUY,SAAWC,EAEdb,EAUT,SAASW,EAAcG,EAAIb,GACrB,GAAc,mBAAPa,EACH,MAAA,IAAIf,UAAU,kCAGfe,OAAAA,EAUT,SAASD,EAAcE,EAAKC,EAAMf,GAC5B,IAACc,GAAuB,iBAARA,GAAmC,mBAARA,EACvC,MAAA,IAAIhB,UAAU,+BAGlBkB,IAAAA,EAAaT,OAAOU,yBAAyBH,EAAKC,GAElD,IAACC,EACG,MAAA,IAAIlB,UAAU,sCAGlB,IAACkB,EAAWE,aACR,MAAA,IAAIpB,UAAU,iCA7DxBqB,OAAOC,QAAUxB;;AtBquBjB,IAAA,EA3uBA,EAAA,SAAA,GACA,aAEA,IAEA,EAFA,EAAA,OAAA,UACA,EAAA,EAAA,eAEA,EAAA,mBAAA,OAAA,OAAA,GACA,EAAA,EAAA,UAAA,aACA,EAAA,EAAA,eAAA,kBACA,EAAA,EAAA,aAAA,gBAEA,SAAA,EAAA,EAAA,EAAA,GAOA,OANA,OAAA,eAAA,EAAA,EAAA,CACA,MAAA,EACA,YAAA,EACA,cAAA,EACA,UAAA,IAEA,EAAA,GAEA,IAEA,EAAA,GAAA,IACA,MAAA,GACA,EAAA,SAAA,EAAA,EAAA,GACA,OAAA,EAAA,GAAA,GAIA,SAAA,EAAA,EAAA,EAAA,EAAA,GAEA,IAAA,EAAA,GAAA,EAAA,qBAAA,EAAA,EAAA,EACA,EAAA,OAAA,OAAA,EAAA,WACA,EAAA,IAAA,EAAA,GAAA,IAMA,OAFA,EAAA,QAuMA,SAAA,EAAA,EAAA,GACA,IAAA,EAAA,EAEA,OAAA,SAAA,EAAA,GACA,GAAA,IAAA,EACA,MAAA,IAAA,MAAA,gCAGA,GAAA,IAAA,EAAA,CACA,GAAA,UAAA,EACA,MAAA,EAKA,OAAA,IAMA,IAHA,EAAA,OAAA,EACA,EAAA,IAAA,IAEA,CACA,IAAA,EAAA,EAAA,SACA,GAAA,EAAA,CACA,IAAA,EAAA,EAAA,EAAA,GACA,GAAA,EAAA,CACA,GAAA,IAAA,EAAA,SACA,OAAA,GAIA,GAAA,SAAA,EAAA,OAGA,EAAA,KAAA,EAAA,MAAA,EAAA,SAEA,GAAA,UAAA,EAAA,OAAA,CACA,GAAA,IAAA,EAEA,MADA,EAAA,EACA,EAAA,IAGA,EAAA,kBAAA,EAAA,SAEA,WAAA,EAAA,QACA,EAAA,OAAA,SAAA,EAAA,KAGA,EAAA,EAEA,IAAA,EAAA,EAAA,EAAA,EAAA,GACA,GAAA,WAAA,EAAA,KAAA,CAOA,GAJA,EAAA,EAAA,KACA,EACA,EAEA,EAAA,MAAA,EACA,SAGA,MAAA,CACA,MAAA,EAAA,IACA,KAAA,EAAA,MAGA,UAAA,EAAA,OACA,EAAA,EAGA,EAAA,OAAA,QACA,EAAA,IAAA,EAAA,OA/QA,CAAA,EAAA,EAAA,GAEA,EAcA,SAAA,EAAA,EAAA,EAAA,GACA,IACA,MAAA,CAAA,KAAA,SAAA,IAAA,EAAA,KAAA,EAAA,IACA,MAAA,GACA,MAAA,CAAA,KAAA,QAAA,IAAA,IAhBA,EAAA,KAAA,EAoBA,IAAA,EAAA,iBACA,EAAA,iBACA,EAAA,YACA,EAAA,YAIA,EAAA,GAMA,SAAA,KACA,SAAA,KACA,SAAA,KAIA,IAAA,EAAA,GACA,EAAA,EAAA,EAAA,WACA,OAAA,OAGA,IAAA,EAAA,OAAA,eACA,EAAA,GAAA,EAAA,EAAA,EAAA,MACA,GACA,IAAA,GACA,EAAA,KAAA,EAAA,KAGA,EAAA,GAGA,IAAA,EAAA,EAAA,UACA,EAAA,UAAA,OAAA,OAAA,GAYA,SAAA,EAAA,GACA,CAAA,OAAA,QAAA,UAAA,QAAA,SAAA,GACA,EAAA,EAAA,EAAA,SAAA,GACA,OAAA,KAAA,QAAA,EAAA,OAkCA,SAAA,EAAA,EAAA,GAgCA,IAAA,EAgCA,KAAA,QA9BA,SAAA,EAAA,GACA,SAAA,IACA,OAAA,IAAA,EAAA,SAAA,EAAA,IAnCA,SAAA,EAAA,EAAA,EAAA,EAAA,GACA,IAAA,EAAA,EAAA,EAAA,GAAA,EAAA,GACA,GAAA,UAAA,EAAA,KAEA,CACA,IAAA,EAAA,EAAA,IACA,EAAA,EAAA,MACA,OAAA,GACA,iBAAA,GACA,EAAA,KAAA,EAAA,WACA,EAAA,QAAA,EAAA,SAAA,KAAA,SAAA,GACA,EAAA,OAAA,EAAA,EAAA,IACA,SAAA,GACA,EAAA,QAAA,EAAA,EAAA,KAIA,EAAA,QAAA,GAAA,KAAA,SAAA,GAIA,EAAA,MAAA,EACA,EAAA,IACA,SAAA,GAGA,OAAA,EAAA,QAAA,EAAA,EAAA,KAvBA,EAAA,EAAA,KAiCA,CAAA,EAAA,EAAA,EAAA,KAIA,OAAA,EAaA,EAAA,EAAA,KACA,EAGA,GACA,KAkHA,SAAA,EAAA,EAAA,GACA,IAAA,EAAA,EAAA,SAAA,EAAA,QACA,GAAA,IAAA,EAAA,CAKA,GAFA,EAAA,SAAA,KAEA,UAAA,EAAA,OAAA,CAEA,GAAA,EAAA,SAAA,SAGA,EAAA,OAAA,SACA,EAAA,IAAA,EACA,EAAA,EAAA,GAEA,UAAA,EAAA,QAGA,OAAA,EAIA,EAAA,OAAA,QACA,EAAA,IAAA,IAAA,UACA,kDAGA,OAAA,EAGA,IAAA,EAAA,EAAA,EAAA,EAAA,SAAA,EAAA,KAEA,GAAA,UAAA,EAAA,KAIA,OAHA,EAAA,OAAA,QACA,EAAA,IAAA,EAAA,IACA,EAAA,SAAA,KACA,EAGA,IAAA,EAAA,EAAA,IAEA,OAAA,EAOA,EAAA,MAGA,EAAA,EAAA,YAAA,EAAA,MAGA,EAAA,KAAA,EAAA,QAQA,WAAA,EAAA,SACA,EAAA,OAAA,OACA,EAAA,IAAA,GAUA,EAAA,SAAA,KACA,GANA,GA3BA,EAAA,OAAA,QACA,EAAA,IAAA,IAAA,UAAA,oCACA,EAAA,SAAA,KACA,GAoDA,SAAA,EAAA,GACA,IAAA,EAAA,CAAA,OAAA,EAAA,IAEA,KAAA,IACA,EAAA,SAAA,EAAA,IAGA,KAAA,IACA,EAAA,WAAA,EAAA,GACA,EAAA,SAAA,EAAA,IAGA,KAAA,WAAA,KAAA,GAGA,SAAA,EAAA,GACA,IAAA,EAAA,EAAA,YAAA,GACA,EAAA,KAAA,gBACA,EAAA,IACA,EAAA,WAAA,EAGA,SAAA,EAAA,GAIA,KAAA,WAAA,CAAA,CAAA,OAAA,SACA,EAAA,QAAA,EAAA,MACA,KAAA,OAAA,GA8BA,SAAA,EAAA,GACA,GAAA,EAAA,CACA,IAAA,EAAA,EAAA,GACA,GAAA,EACA,OAAA,EAAA,KAAA,GAGA,GAAA,mBAAA,EAAA,KACA,OAAA,EAGA,IAAA,MAAA,EAAA,QAAA,CACA,IAAA,GAAA,EAAA,EAAA,SAAA,IACA,OAAA,EAAA,EAAA,QACA,GAAA,EAAA,KAAA,EAAA,GAGA,OAFA,EAAA,MAAA,EAAA,GACA,EAAA,MAAA,EACA,EAOA,OAHA,EAAA,MAAA,EACA,EAAA,MAAA,EAEA,GAGA,OAAA,EAAA,KAAA,GAKA,MAAA,CAAA,KAAA,GAIA,SAAA,IACA,MAAA,CAAA,MAAA,EAAA,MAAA,GA+MA,OA7mBA,EAAA,UAAA,EACA,EAAA,EAAA,cAAA,GACA,EAAA,EAAA,cAAA,GACA,EAAA,YAAA,EACA,EACA,EACA,qBAaA,EAAA,oBAAA,SAAA,GACA,IAAA,EAAA,mBAAA,GAAA,EAAA,YACA,QAAA,IACA,IAAA,GAGA,uBAAA,EAAA,aAAA,EAAA,QAIA,EAAA,KAAA,SAAA,GAQA,OAPA,OAAA,eACA,OAAA,eAAA,EAAA,IAEA,EAAA,UAAA,EACA,EAAA,EAAA,EAAA,sBAEA,EAAA,UAAA,OAAA,OAAA,GACA,GAOA,EAAA,MAAA,SAAA,GACA,MAAA,CAAA,QAAA,IAsEA,EAAA,EAAA,WACA,EAAA,EAAA,UAAA,EAAA,WACA,OAAA,OAEA,EAAA,cAAA,EAKA,EAAA,MAAA,SAAA,EAAA,EAAA,EAAA,EAAA,QACA,IAAA,IAAA,EAAA,SAEA,IAAA,EAAA,IAAA,EACA,EAAA,EAAA,EAAA,EAAA,GACA,GAGA,OAAA,EAAA,oBAAA,GACA,EACA,EAAA,OAAA,KAAA,SAAA,GACA,OAAA,EAAA,KAAA,EAAA,MAAA,EAAA,UAuKA,EAAA,GAEA,EAAA,EAAA,EAAA,aAOA,EAAA,EAAA,EAAA,WACA,OAAA,OAGA,EAAA,EAAA,WAAA,WACA,MAAA,uBAkCA,EAAA,KAAA,SAAA,GACA,IAAA,EAAA,GACA,IAAA,IAAA,KAAA,EACA,EAAA,KAAA,GAMA,OAJA,EAAA,UAIA,SAAA,IACA,KAAA,EAAA,QAAA,CACA,IAAA,EAAA,EAAA,MACA,GAAA,KAAA,EAGA,OAFA,EAAA,MAAA,EACA,EAAA,MAAA,EACA,EAQA,OADA,EAAA,MAAA,EACA,IAsCA,EAAA,OAAA,EAMA,EAAA,UAAA,CACA,YAAA,EAEA,MAAA,SAAA,GAcA,GAbA,KAAA,KAAA,EACA,KAAA,KAAA,EAGA,KAAA,KAAA,KAAA,MAAA,EACA,KAAA,MAAA,EACA,KAAA,SAAA,KAEA,KAAA,OAAA,OACA,KAAA,IAAA,EAEA,KAAA,WAAA,QAAA,IAEA,EACA,IAAA,IAAA,KAAA,KAEA,MAAA,EAAA,OAAA,IACA,EAAA,KAAA,KAAA,KACA,OAAA,EAAA,MAAA,MACA,KAAA,GAAA,IAMA,KAAA,WACA,KAAA,MAAA,EAEA,IACA,EADA,KAAA,WAAA,GACA,WACA,GAAA,UAAA,EAAA,KACA,MAAA,EAAA,IAGA,OAAA,KAAA,MAGA,kBAAA,SAAA,GACA,GAAA,KAAA,KACA,MAAA,EAGA,IAAA,EAAA,KACA,SAAA,EAAA,EAAA,GAYA,OAXA,EAAA,KAAA,QACA,EAAA,IAAA,EACA,EAAA,KAAA,EAEA,IAGA,EAAA,OAAA,OACA,EAAA,IAAA,KAGA,EAGA,IAAA,IAAA,EAAA,KAAA,WAAA,OAAA,EAAA,GAAA,IAAA,EAAA,CACA,IAAA,EAAA,KAAA,WAAA,GACA,EAAA,EAAA,WAEA,GAAA,SAAA,EAAA,OAIA,OAAA,EAAA,OAGA,GAAA,EAAA,QAAA,KAAA,KAAA,CACA,IAAA,EAAA,EAAA,KAAA,EAAA,YACA,EAAA,EAAA,KAAA,EAAA,cAEA,GAAA,GAAA,EAAA,CACA,GAAA,KAAA,KAAA,EAAA,SACA,OAAA,EAAA,EAAA,UAAA,GACA,GAAA,KAAA,KAAA,EAAA,WACA,OAAA,EAAA,EAAA,iBAGA,GAAA,GACA,GAAA,KAAA,KAAA,EAAA,SACA,OAAA,EAAA,EAAA,UAAA,OAGA,CAAA,IAAA,EAMA,MAAA,IAAA,MAAA,0CALA,GAAA,KAAA,KAAA,EAAA,WACA,OAAA,EAAA,EAAA,gBAUA,OAAA,SAAA,EAAA,GACA,IAAA,IAAA,EAAA,KAAA,WAAA,OAAA,EAAA,GAAA,IAAA,EAAA,CACA,IAAA,EAAA,KAAA,WAAA,GACA,GAAA,EAAA,QAAA,KAAA,MACA,EAAA,KAAA,EAAA,eACA,KAAA,KAAA,EAAA,WAAA,CACA,IAAA,EAAA,EACA,OAIA,IACA,UAAA,GACA,aAAA,IACA,EAAA,QAAA,GACA,GAAA,EAAA,aAGA,EAAA,MAGA,IAAA,EAAA,EAAA,EAAA,WAAA,GAIA,OAHA,EAAA,KAAA,EACA,EAAA,IAAA,EAEA,GACA,KAAA,OAAA,OACA,KAAA,KAAA,EAAA,WACA,GAGA,KAAA,SAAA,IAGA,SAAA,SAAA,EAAA,GACA,GAAA,UAAA,EAAA,KACA,MAAA,EAAA,IAcA,MAXA,UAAA,EAAA,MACA,aAAA,EAAA,KACA,KAAA,KAAA,EAAA,IACA,WAAA,EAAA,MACA,KAAA,KAAA,KAAA,IAAA,EAAA,IACA,KAAA,OAAA,SACA,KAAA,KAAA,OACA,WAAA,EAAA,MAAA,IACA,KAAA,KAAA,GAGA,GAGA,OAAA,SAAA,GACA,IAAA,IAAA,EAAA,KAAA,WAAA,OAAA,EAAA,GAAA,IAAA,EAAA,CACA,IAAA,EAAA,KAAA,WAAA,GACA,GAAA,EAAA,aAAA,EAGA,OAFA,KAAA,SAAA,EAAA,WAAA,EAAA,UACA,EAAA,GACA,IAKA,MAAA,SAAA,GACA,IAAA,IAAA,EAAA,KAAA,WAAA,OAAA,EAAA,GAAA,IAAA,EAAA,CACA,IAAA,EAAA,KAAA,WAAA,GACA,GAAA,EAAA,SAAA,EAAA,CACA,IAAA,EAAA,EAAA,WACA,GAAA,UAAA,EAAA,KAAA,CACA,IAAA,EAAA,EAAA,IACA,EAAA,GAEA,OAAA,GAMA,MAAA,IAAA,MAAA,0BAGA,cAAA,SAAA,EAAA,EAAA,GAaA,OAZA,KAAA,SAAA,CACA,SAAA,EAAA,GACA,WAAA,EACA,QAAA,GAGA,SAAA,KAAA,SAGA,KAAA,IAAA,GAGA,IAQA,EA9sBA,CAqtBA,iBAAA,OAAA,OAAA,QAAA,IAGA,IACA,mBAAA,EACA,MAAA,GAWA,iBAAA,WACA,WAAA,mBAAA,EAEA,SAAA,IAAA,yBAAA,CAAA;;AC/uBA,aACA,OAAA,eAAA,QAAA,aAAA,CAAA,OAAA,IACA,QAAA,cAAA,EAOA,MAAA,GAEA,QAAA,SAAA;;;;CCXA,SAAA,GACA,aAQA,IAAA,EAAA,SAAA,GACA,IAAA,EAAA,EAAA,IAAA,aAAA,IACA,GAAA,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,OAAA,IAAA,EAAA,GAAA,EAAA,GACA,OAAA,GAIA,EAAA,WAAA,MAAA,IAAA,MAAA,YAEA,EAAA,IAAA,WAAA,IACA,EAAA,IAAA,WAAA,IAAA,EAAA,GAAA,EAEA,IAAA,EAAA,IACA,EAAA,EAAA,CAAA,IACA,EAAA,EAAA,CAAA,MAAA,IACA,EAAA,EAAA,CAAA,MAAA,KAAA,MAAA,MAAA,MAAA,MAAA,KAAA,IAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,QACA,EAAA,EAAA,CAAA,MAAA,KAAA,MAAA,MAAA,MAAA,MAAA,KAAA,IAAA,MAAA,MAAA,MAAA,KAAA,MAAA,MAAA,MAAA,OACA,EAAA,EAAA,CAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,OACA,EAAA,EAAA,CAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,QACA,EAAA,EAAA,CAAA,MAAA,MAAA,KAAA,MAAA,MAAA,MAAA,KAAA,MAAA,MAAA,MAAA,IAAA,MAAA,MAAA,MAAA,KAAA,QAEA,SAAA,EAAA,EAAA,EAAA,EAAA,GACA,EAAA,GAAA,GAAA,GAAA,IACA,EAAA,EAAA,GAAA,GAAA,GAAA,IACA,EAAA,EAAA,GAAA,GAAA,EAAA,IACA,EAAA,EAAA,GAAA,IAAA,EACA,EAAA,EAAA,GAAA,GAAA,GAAA,IACA,EAAA,EAAA,GAAA,GAAA,GAAA,IACA,EAAA,EAAA,GAAA,GAAA,EAAA,IACA,EAAA,EAAA,GAAA,IAAA,EAGA,SAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GACA,IAAA,EAAA,EAAA,EACA,IAAA,EAAA,EAAA,EAAA,EAAA,IAAA,GAAA,EAAA,EAAA,GAAA,EAAA,EAAA,GACA,OAAA,EAAA,EAAA,IAAA,GAAA,EAGA,SAAA,EAAA,EAAA,EAAA,EAAA,GACA,OAAA,EAAA,EAAA,EAAA,EAAA,EAAA,IAGA,SAAA,EAAA,EAAA,EAAA,EAAA,GACA,OAAA,EAAA,EAAA,EAAA,EAAA,EAAA,IA6UA,SAAA,EAAA,EAAA,EAAA,EAAA,IA1UA,SAAA,EAAA,EAAA,EAAA,GAsBA,IArBA,IAmBA,EAnBA,EAAA,IAAA,EAAA,IAAA,IAAA,EAAA,KAAA,GAAA,IAAA,EAAA,KAAA,IAAA,IAAA,EAAA,KAAA,GACA,EAAA,IAAA,EAAA,IAAA,IAAA,EAAA,KAAA,GAAA,IAAA,EAAA,KAAA,IAAA,IAAA,EAAA,KAAA,GACA,EAAA,IAAA,EAAA,IAAA,IAAA,EAAA,KAAA,GAAA,IAAA,EAAA,KAAA,IAAA,IAAA,EAAA,KAAA,GACA,EAAA,IAAA,EAAA,IAAA,IAAA,EAAA,KAAA,GAAA,IAAA,EAAA,MAAA,IAAA,IAAA,EAAA,MAAA,GACA,EAAA,IAAA,EAAA,KAAA,IAAA,EAAA,MAAA,GAAA,IAAA,EAAA,MAAA,IAAA,IAAA,EAAA,MAAA,GACA,EAAA,IAAA,EAAA,IAAA,IAAA,EAAA,KAAA,GAAA,IAAA,EAAA,KAAA,IAAA,IAAA,EAAA,KAAA,GACA,EAAA,IAAA,EAAA,IAAA,IAAA,EAAA,KAAA,GAAA,IAAA,EAAA,KAAA,IAAA,IAAA,EAAA,KAAA,GACA,EAAA,IAAA,EAAA,IAAA,IAAA,EAAA,KAAA,GAAA,IAAA,EAAA,KAAA,IAAA,IAAA,EAAA,KAAA,GACA,EAAA,IAAA,EAAA,IAAA,IAAA,EAAA,KAAA,GAAA,IAAA,EAAA,MAAA,IAAA,IAAA,EAAA,MAAA,GACA,EAAA,IAAA,EAAA,KAAA,IAAA,EAAA,MAAA,GAAA,IAAA,EAAA,MAAA,IAAA,IAAA,EAAA,MAAA,GACA,EAAA,IAAA,EAAA,IAAA,IAAA,EAAA,KAAA,GAAA,IAAA,EAAA,MAAA,IAAA,IAAA,EAAA,MAAA,GACA,EAAA,IAAA,EAAA,KAAA,IAAA,EAAA,MAAA,GAAA,IAAA,EAAA,MAAA,IAAA,IAAA,EAAA,MAAA,GACA,EAAA,IAAA,EAAA,KAAA,IAAA,EAAA,MAAA,GAAA,IAAA,EAAA,MAAA,IAAA,IAAA,EAAA,MAAA,GACA,EAAA,IAAA,EAAA,KAAA,IAAA,EAAA,MAAA,GAAA,IAAA,EAAA,MAAA,IAAA,IAAA,EAAA,MAAA,GACA,EAAA,IAAA,EAAA,KAAA,IAAA,EAAA,MAAA,GAAA,IAAA,EAAA,MAAA,IAAA,IAAA,EAAA,MAAA,GACA,EAAA,IAAA,EAAA,KAAA,IAAA,EAAA,MAAA,GAAA,IAAA,EAAA,MAAA,IAAA,IAAA,EAAA,MAAA,GAEA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EACA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EACA,EAAA,EAEA,EAAA,EAAA,EAAA,GAAA,GAAA,EAQA,IADA,GADA,IADA,GADA,IADA,GADA,IADA,EAAA,EAAA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,GASA,IADA,GADA,IADA,GADA,IADA,GADA,IADA,EAAA,EAAA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,GASA,IADA,GADA,IADA,GADA,IADA,GADA,IADA,EAAA,EAAA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,GASA,IADA,GADA,IADA,GADA,IADA,GADA,IADA,EAAA,EAAA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,GASA,IADA,GADA,IADA,GADA,IADA,GADA,IADA,EAAA,EAAA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,GASA,IADA,GADA,IADA,GADA,IADA,GADA,IADA,EAAA,EAAA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,GASA,IADA,GADA,IADA,GADA,IADA,GADA,IADA,EAAA,EAAA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,GASA,IADA,GADA,IADA,GADA,IADA,GADA,IADA,EAAA,EAAA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,GAEA,EAAA,EAAA,EAAA,EACA,EAAA,EAAA,EAAA,EACA,EAAA,EAAA,EAAA,EACA,EAAA,EAAA,EAAA,EACA,EAAA,EAAA,EAAA,EACA,EAAA,EAAA,EAAA,EACA,EAAA,EAAA,EAAA,EACA,EAAA,EAAA,EAAA,EACA,EAAA,EAAA,EAAA,EACA,EAAA,EAAA,EAAA,EACA,EAAA,EAAA,EAAA,EACA,EAAA,EAAA,EAAA,EACA,EAAA,EAAA,EAAA,EACA,EAAA,EAAA,EAAA,EACA,EAAA,EAAA,EAAA,EACA,EAAA,EAAA,EAAA,EAEA,EAAA,GAAA,IAAA,EAAA,IACA,EAAA,GAAA,IAAA,EAAA,IACA,EAAA,GAAA,IAAA,GAAA,IACA,EAAA,GAAA,IAAA,GAAA,IAEA,EAAA,GAAA,IAAA,EAAA,IACA,EAAA,GAAA,IAAA,EAAA,IACA,EAAA,GAAA,IAAA,GAAA,IACA,EAAA,GAAA,IAAA,GAAA,IAEA,EAAA,GAAA,IAAA,EAAA,IACA,EAAA,GAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,GAAA,IACA,EAAA,IAAA,IAAA,GAAA,IAEA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,GAAA,IACA,EAAA,IAAA,IAAA,GAAA,IAEA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,GAAA,IACA,EAAA,IAAA,IAAA,GAAA,IAEA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,GAAA,IACA,EAAA,IAAA,IAAA,GAAA,IAEA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,GAAA,IACA,EAAA,IAAA,IAAA,GAAA,IAEA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,GAAA,IACA,EAAA,IAAA,IAAA,GAAA,IAEA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,GAAA,IACA,EAAA,IAAA,IAAA,GAAA,IAEA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,GAAA,IACA,EAAA,IAAA,IAAA,GAAA,IAEA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,GAAA,IACA,EAAA,IAAA,IAAA,GAAA,IAEA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,GAAA,IACA,EAAA,IAAA,IAAA,GAAA,IAEA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,GAAA,IACA,EAAA,IAAA,IAAA,GAAA,IAEA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,GAAA,IACA,EAAA,IAAA,IAAA,GAAA,IAEA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,GAAA,IACA,EAAA,IAAA,IAAA,GAAA,IAEA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,GAAA,IACA,EAAA,IAAA,IAAA,GAAA,IA6IA,CAAA,EAAA,EAAA,EAAA,GAGA,SAAA,EAAA,EAAA,EAAA,EAAA,IA7IA,SAAA,EAAA,EAAA,EAAA,GAsBA,IArBA,IAmBA,EAFA,EAjBA,IAAA,EAAA,IAAA,IAAA,EAAA,KAAA,GAAA,IAAA,EAAA,KAAA,IAAA,IAAA,EAAA,KAAA,GAiBA,EAhBA,IAAA,EAAA,IAAA,IAAA,EAAA,KAAA,GAAA,IAAA,EAAA,KAAA,IAAA,IAAA,EAAA,KAAA,GAgBA,EAfA,IAAA,EAAA,IAAA,IAAA,EAAA,KAAA,GAAA,IAAA,EAAA,KAAA,IAAA,IAAA,EAAA,KAAA,GAeA,EAdA,IAAA,EAAA,IAAA,IAAA,EAAA,KAAA,GAAA,IAAA,EAAA,MAAA,IAAA,IAAA,EAAA,MAAA,GAcA,EAbA,IAAA,EAAA,KAAA,IAAA,EAAA,MAAA,GAAA,IAAA,EAAA,MAAA,IAAA,IAAA,EAAA,MAAA,GAaA,EAZA,IAAA,EAAA,IAAA,IAAA,EAAA,KAAA,GAAA,IAAA,EAAA,KAAA,IAAA,IAAA,EAAA,KAAA,GAYA,EAXA,IAAA,EAAA,IAAA,IAAA,EAAA,KAAA,GAAA,IAAA,EAAA,KAAA,IAAA,IAAA,EAAA,KAAA,GAWA,EAVA,IAAA,EAAA,IAAA,IAAA,EAAA,KAAA,GAAA,IAAA,EAAA,KAAA,IAAA,IAAA,EAAA,KAAA,GAWA,EAVA,IAAA,EAAA,IAAA,IAAA,EAAA,KAAA,GAAA,IAAA,EAAA,MAAA,IAAA,IAAA,EAAA,MAAA,GAUA,EATA,IAAA,EAAA,KAAA,IAAA,EAAA,MAAA,GAAA,IAAA,EAAA,MAAA,IAAA,IAAA,EAAA,MAAA,GASA,EARA,IAAA,EAAA,IAAA,IAAA,EAAA,KAAA,GAAA,IAAA,EAAA,MAAA,IAAA,IAAA,EAAA,MAAA,GAQA,EAPA,IAAA,EAAA,KAAA,IAAA,EAAA,MAAA,GAAA,IAAA,EAAA,MAAA,IAAA,IAAA,EAAA,MAAA,GAOA,EANA,IAAA,EAAA,KAAA,IAAA,EAAA,MAAA,GAAA,IAAA,EAAA,MAAA,IAAA,IAAA,EAAA,MAAA,GAMA,EALA,IAAA,EAAA,KAAA,IAAA,EAAA,MAAA,GAAA,IAAA,EAAA,MAAA,IAAA,IAAA,EAAA,MAAA,GAKA,EAJA,IAAA,EAAA,KAAA,IAAA,EAAA,MAAA,GAAA,IAAA,EAAA,MAAA,IAAA,IAAA,EAAA,MAAA,GAKA,EAJA,IAAA,EAAA,KAAA,IAAA,EAAA,MAAA,GAAA,IAAA,EAAA,MAAA,IAAA,IAAA,EAAA,MAAA,GAMA,EAAA,EAAA,EAAA,GAAA,GAAA,EAQA,IADA,GADA,IADA,GADA,IADA,GADA,IADA,EAAA,EAAA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,GASA,IADA,GADA,IADA,GADA,IADA,GADA,IADA,EAAA,EAAA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,GASA,IADA,GADA,IADA,GADA,IADA,GADA,IADA,EAAA,EAAA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,GASA,IADA,GADA,IADA,GADA,IADA,GADA,IADA,EAAA,EAAA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,GASA,IADA,GADA,IADA,GADA,IADA,GADA,IADA,EAAA,EAAA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,GASA,IADA,GADA,IADA,GADA,IADA,GADA,IADA,EAAA,EAAA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,GASA,IADA,GADA,IADA,GADA,IADA,GADA,IADA,EAAA,EAAA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,GASA,IADA,GADA,IADA,GADA,IADA,GADA,IADA,EAAA,EAAA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,EAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,IACA,EAAA,IACA,GAAA,IAAA,GAGA,EAAA,GAAA,IAAA,EAAA,IACA,EAAA,GAAA,IAAA,EAAA,IACA,EAAA,GAAA,IAAA,GAAA,IACA,EAAA,GAAA,IAAA,GAAA,IAEA,EAAA,GAAA,IAAA,EAAA,IACA,EAAA,GAAA,IAAA,EAAA,IACA,EAAA,GAAA,IAAA,GAAA,IACA,EAAA,GAAA,IAAA,GAAA,IAEA,EAAA,GAAA,IAAA,EAAA,IACA,EAAA,GAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,GAAA,IACA,EAAA,IAAA,IAAA,GAAA,IAEA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,GAAA,IACA,EAAA,IAAA,IAAA,GAAA,IAEA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,GAAA,IACA,EAAA,IAAA,IAAA,GAAA,IAEA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,GAAA,IACA,EAAA,IAAA,IAAA,GAAA,IAEA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,GAAA,IACA,EAAA,IAAA,IAAA,GAAA,IAEA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,EAAA,IACA,EAAA,IAAA,IAAA,GAAA,IACA,EAAA,IAAA,IAAA,GAAA,IAQA,CAAA,EAAA,EAAA,EAAA,GAGA,IAAA,EAAA,IAAA,WAAA,CAAA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,MAGA,SAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GACA,IACA,EAAA,EADA,EAAA,IAAA,WAAA,IAAA,EAAA,IAAA,WAAA,IAEA,IAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,GAAA,EACA,IAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,GAAA,EAAA,GACA,KAAA,GAAA,IAAA,CAEA,IADA,EAAA,EAAA,EAAA,EAAA,GACA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,GAAA,EAAA,GAEA,IADA,EAAA,EACA,EAAA,EAAA,EAAA,GAAA,IACA,EAAA,GAAA,IAAA,EAAA,IAAA,EACA,EAAA,GAAA,IAAA,EACA,KAAA,EAEA,GAAA,GACA,GAAA,GACA,GAAA,GAEA,GAAA,EAAA,EAEA,IADA,EAAA,EAAA,EAAA,EAAA,GACA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,GAAA,EAAA,GAEA,OAAA,EAGA,SAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GACA,IACA,EAAA,EADA,EAAA,IAAA,WAAA,IAAA,EAAA,IAAA,WAAA,IAEA,IAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,GAAA,EACA,IAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,GAAA,EAAA,GACA,KAAA,GAAA,IAAA,CAEA,IADA,EAAA,EAAA,EAAA,EAAA,GACA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,EAAA,GAAA,EAAA,GAEA,IADA,EAAA,EACA,EAAA,EAAA,EAAA,GAAA,IACA,EAAA,GAAA,IAAA,EAAA,IAAA,EACA,EAAA,GAAA,IAAA,EACA,KAAA,EAEA,GAAA,GACA,GAAA,GAEA,GAAA,EAAA,EAEA,IADA,EAAA,EAAA,EAAA,EAAA,GACA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,GAEA,OAAA,EAGA,SAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GACA,IAAA,EAAA,IAAA,WAAA,IACA,EAAA,EAAA,EAAA,EAAA,GAEA,IADA,IAAA,EAAA,IAAA,WAAA,GACA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,GAAA,EAAA,EAAA,IACA,OAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAGA,SAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GACA,IAAA,EAAA,IAAA,WAAA,IACA,EAAA,EAAA,EAAA,EAAA,GAEA,IADA,IAAA,EAAA,IAAA,WAAA,GACA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,GAAA,EAAA,EAAA,IACA,OAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GAQA,IAAA,EAAA,SAAA,GAQA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAPA,KAAA,OAAA,IAAA,WAAA,IACA,KAAA,EAAA,IAAA,YAAA,IACA,KAAA,EAAA,IAAA,YAAA,IACA,KAAA,IAAA,IAAA,YAAA,GACA,KAAA,SAAA,EACA,KAAA,IAAA,EAIA,EAAA,IAAA,EAAA,IAAA,IAAA,EAAA,KAAA,EAAA,KAAA,EAAA,GAAA,KAAA,EACA,EAAA,IAAA,EAAA,IAAA,IAAA,EAAA,KAAA,EAAA,KAAA,EAAA,GAAA,MAAA,IAAA,GAAA,GAAA,GACA,EAAA,IAAA,EAAA,IAAA,IAAA,EAAA,KAAA,EAAA,KAAA,EAAA,GAAA,MAAA,IAAA,GAAA,GAAA,GACA,EAAA,IAAA,EAAA,IAAA,IAAA,EAAA,KAAA,EAAA,KAAA,EAAA,GAAA,MAAA,IAAA,EAAA,GAAA,GACA,EAAA,IAAA,EAAA,IAAA,IAAA,EAAA,KAAA,EAAA,KAAA,EAAA,GAAA,KAAA,IAAA,EAAA,GAAA,IACA,KAAA,EAAA,GAAA,IAAA,EAAA,KACA,EAAA,IAAA,EAAA,KAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,GAAA,MAAA,IAAA,GAAA,GAAA,GACA,EAAA,IAAA,EAAA,KAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,GAAA,MAAA,IAAA,GAAA,GAAA,GACA,EAAA,IAAA,EAAA,KAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,GAAA,MAAA,IAAA,EAAA,GAAA,GACA,KAAA,EAAA,GAAA,IAAA,EAAA,IAEA,KAAA,IAAA,GAAA,IAAA,EAAA,KAAA,IAAA,EAAA,MAAA,EACA,KAAA,IAAA,GAAA,IAAA,EAAA,KAAA,IAAA,EAAA,MAAA,EACA,KAAA,IAAA,GAAA,IAAA,EAAA,KAAA,IAAA,EAAA,MAAA,EACA,KAAA,IAAA,GAAA,IAAA,EAAA,KAAA,IAAA,EAAA,MAAA,EACA,KAAA,IAAA,GAAA,IAAA,EAAA,KAAA,IAAA,EAAA,MAAA,EACA,KAAA,IAAA,GAAA,IAAA,EAAA,KAAA,IAAA,EAAA,MAAA,EACA,KAAA,IAAA,GAAA,IAAA,EAAA,KAAA,IAAA,EAAA,MAAA,EACA,KAAA,IAAA,GAAA,IAAA,EAAA,KAAA,IAAA,EAAA,MAAA,GAoUA,SAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GACA,IAAA,EAAA,IAAA,EAAA,GAGA,OAFA,EAAA,OAAA,EAAA,EAAA,GACA,EAAA,OAAA,EAAA,GACA,EAGA,SAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GACA,IAAA,EAAA,IAAA,WAAA,IAEA,OADA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GACA,EAAA,EAAA,EAAA,EAAA,GAGA,SAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GACA,IAAA,EACA,GAAA,EAAA,GAAA,OAAA,EAGA,IAFA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GACA,EAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,GACA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,GAAA,EACA,OAAA,EAGA,SAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GACA,IAAA,EACA,EAAA,IAAA,WAAA,IACA,GAAA,EAAA,GAAA,OAAA,EAEA,GADA,EAAA,EAAA,EAAA,GAAA,EAAA,GACA,IAAA,EAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,GAAA,OAAA,EAEA,IADA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,GACA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,GAAA,EACA,OAAA,EAGA,SAAA,EAAA,EAAA,GACA,IAAA,EACA,IAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,GAAA,EAAA,EAAA,GAGA,SAAA,EAAA,GACA,IAAA,EAAA,EAAA,EAAA,EACA,IAAA,EAAA,EAAA,EAAA,GAAA,IACA,EAAA,EAAA,GAAA,EAAA,MACA,EAAA,KAAA,MAAA,EAAA,OACA,EAAA,GAAA,EAAA,MAAA,EAEA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,GAGA,SAAA,EAAA,EAAA,EAAA,GAEA,IADA,IAAA,EAAA,IAAA,EAAA,GACA,EAAA,EAAA,EAAA,GAAA,IACA,EAAA,GAAA,EAAA,GAAA,EAAA,IACA,EAAA,IAAA,EACA,EAAA,IAAA,EAIA,SAAA,EAAA,EAAA,GACA,IAAA,EAAA,EAAA,EACA,EAAA,IAAA,EAAA,IACA,IAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,GAAA,EAAA,GAIA,IAHA,EAAA,GACA,EAAA,GACA,EAAA,GACA,EAAA,EAAA,EAAA,EAAA,IAAA,CAEA,IADA,EAAA,GAAA,EAAA,GAAA,MACA,EAAA,EAAA,EAAA,GAAA,IACA,EAAA,GAAA,EAAA,GAAA,OAAA,EAAA,EAAA,IAAA,GAAA,GACA,EAAA,EAAA,IAAA,MAEA,EAAA,IAAA,EAAA,IAAA,OAAA,EAAA,KAAA,GAAA,GACA,EAAA,EAAA,KAAA,GAAA,EACA,EAAA,KAAA,MACA,EAAA,EAAA,EAAA,EAAA,GAEA,IAAA,EAAA,EAAA,EAAA,GAAA,IACA,EAAA,EAAA,GAAA,IAAA,EAAA,GACA,EAAA,EAAA,EAAA,GAAA,EAAA,IAAA,EAIA,SAAA,EAAA,EAAA,GACA,IAAA,EAAA,IAAA,WAAA,IAAA,EAAA,IAAA,WAAA,IAGA,OAFA,EAAA,EAAA,GACA,EAAA,EAAA,GACA,EAAA,EAAA,EAAA,EAAA,GAGA,SAAA,EAAA,GACA,IAAA,EAAA,IAAA,WAAA,IAEA,OADA,EAAA,EAAA,GACA,EAAA,EAAA,GAGA,SAAA,EAAA,EAAA,GACA,IAAA,EACA,IAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,GACA,EAAA,KAAA,MAGA,SAAA,EAAA,EAAA,EAAA,GACA,IAAA,IAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAGA,SAAA,EAAA,EAAA,EAAA,GACA,IAAA,IAAA,EAAA,EAAA,EAAA,GAAA,IAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAGA,SAAA,EAAA,EAAA,EAAA,GACA,IAAA,EAAA,EACA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EACA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EACA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EACA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EACA,EAAA,EAAA,GACA,EAAA,EAAA,GACA,EAAA,EAAA,GACA,EAAA,EAAA,GACA,EAAA,EAAA,GACA,EAAA,EAAA,GACA,EAAA,EAAA,GACA,EAAA,EAAA,GACA,EAAA,EAAA,GACA,EAAA,EAAA,GACA,EAAA,EAAA,IACA,EAAA,EAAA,IACA,EAAA,EAAA,IACA,EAAA,EAAA,IACA,EAAA,EAAA,IACA,EAAA,EAAA,IAGA,IADA,EAAA,EAAA,IACA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EAEA,IADA,EAAA,EAAA,IACA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EAEA,IADA,EAAA,EAAA,IACA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EAEA,IADA,EAAA,EAAA,IACA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EAEA,IADA,EAAA,EAAA,IACA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EAEA,IADA,EAAA,EAAA,IACA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EAEA,IADA,EAAA,EAAA,IACA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EAEA,IADA,EAAA,EAAA,IACA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EAEA,IADA,EAAA,EAAA,IACA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EAEA,IADA,EAAA,EAAA,IACA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EAEA,IADA,EAAA,EAAA,KACA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EAEA,IADA,EAAA,EAAA,KACA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EAEA,IADA,EAAA,EAAA,KACA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EAEA,IADA,EAAA,EAAA,KACA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EAEA,IADA,EAAA,EAAA,KACA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EACA,GAAA,EAAA,EAEA,IADA,EAAA,EAAA,KACA,EAkBA,GAAA,IAhBA,GAAA,EAAA,GAiBA,GAAA,IAhBA,GAAA,EAAA,GAiBA,GAAA,IAhBA,GAAA,EAAA,GAiBA,GAAA,IAhBA,GAAA,EAAA,GAiBA,GAAA,IAhBA,GAAA,EAAA,GAiBA,GAAA,IAhBA,GAAA,EAAA,GAiBA,GAAA,IAhBA,GAAA,EAAA,GAiBA,GAAA,IAhBA,GAAA,EAAA,GAiBA,GAAA,IAhBA,GAAA,EAAA,GAiBA,GAAA,IAhBA,GAAA,EAAA,GAiBA,GAAA,IAhBA,GAAA,EAAA,GAiBA,GAAA,IAhBA,GAAA,EAAA,GAiBA,GAAA,IAhBA,GAAA,EAAA,GAiBA,GAAA,IAhBA,GAAA,EAAA,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","file":"src.2d25ad8e.js","sourceRoot":"..\\src","sourcesContent":["/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyStore = void 0;\n/**\n * KeyStores are passed to {@link Near} via {@link NearConfig}\n * and are used by the {@link InMemorySigner} to sign transactions.\n *\n * @example {@link connect}\n */\nclass KeyStore {\n}\nexports.KeyStore = KeyStore;\n","(function(nacl) {\n'use strict';\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _0 = new Uint8Array(16);\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i+1] = (h >> 16) & 0xff;\n x[i+2] = (h >> 8) & 0xff;\n x[i+3] = h & 0xff;\n x[i+4] = (l >> 24) & 0xff;\n x[i+5] = (l >> 16) & 0xff;\n x[i+6] = (l >> 8) & 0xff;\n x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i,d = 0;\n for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_16(x, xi, y, yi) {\n return vn(x,xi,y,yi,16);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x,xi,y,yi,32);\n}\n\nfunction core_salsa20(o, p, k, c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n x0 = x0 + j0 | 0;\n x1 = x1 + j1 | 0;\n x2 = x2 + j2 | 0;\n x3 = x3 + j3 | 0;\n x4 = x4 + j4 | 0;\n x5 = x5 + j5 | 0;\n x6 = x6 + j6 | 0;\n x7 = x7 + j7 | 0;\n x8 = x8 + j8 | 0;\n x9 = x9 + j9 | 0;\n x10 = x10 + j10 | 0;\n x11 = x11 + j11 | 0;\n x12 = x12 + j12 | 0;\n x13 = x13 + j13 | 0;\n x14 = x14 + j14 | 0;\n x15 = x15 + j15 | 0;\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x1 >>> 0 & 0xff;\n o[ 5] = x1 >>> 8 & 0xff;\n o[ 6] = x1 >>> 16 & 0xff;\n o[ 7] = x1 >>> 24 & 0xff;\n\n o[ 8] = x2 >>> 0 & 0xff;\n o[ 9] = x2 >>> 8 & 0xff;\n o[10] = x2 >>> 16 & 0xff;\n o[11] = x2 >>> 24 & 0xff;\n\n o[12] = x3 >>> 0 & 0xff;\n o[13] = x3 >>> 8 & 0xff;\n o[14] = x3 >>> 16 & 0xff;\n o[15] = x3 >>> 24 & 0xff;\n\n o[16] = x4 >>> 0 & 0xff;\n o[17] = x4 >>> 8 & 0xff;\n o[18] = x4 >>> 16 & 0xff;\n o[19] = x4 >>> 24 & 0xff;\n\n o[20] = x5 >>> 0 & 0xff;\n o[21] = x5 >>> 8 & 0xff;\n o[22] = x5 >>> 16 & 0xff;\n o[23] = x5 >>> 24 & 0xff;\n\n o[24] = x6 >>> 0 & 0xff;\n o[25] = x6 >>> 8 & 0xff;\n o[26] = x6 >>> 16 & 0xff;\n o[27] = x6 >>> 24 & 0xff;\n\n o[28] = x7 >>> 0 & 0xff;\n o[29] = x7 >>> 8 & 0xff;\n o[30] = x7 >>> 16 & 0xff;\n o[31] = x7 >>> 24 & 0xff;\n\n o[32] = x8 >>> 0 & 0xff;\n o[33] = x8 >>> 8 & 0xff;\n o[34] = x8 >>> 16 & 0xff;\n o[35] = x8 >>> 24 & 0xff;\n\n o[36] = x9 >>> 0 & 0xff;\n o[37] = x9 >>> 8 & 0xff;\n o[38] = x9 >>> 16 & 0xff;\n o[39] = x9 >>> 24 & 0xff;\n\n o[40] = x10 >>> 0 & 0xff;\n o[41] = x10 >>> 8 & 0xff;\n o[42] = x10 >>> 16 & 0xff;\n o[43] = x10 >>> 24 & 0xff;\n\n o[44] = x11 >>> 0 & 0xff;\n o[45] = x11 >>> 8 & 0xff;\n o[46] = x11 >>> 16 & 0xff;\n o[47] = x11 >>> 24 & 0xff;\n\n o[48] = x12 >>> 0 & 0xff;\n o[49] = x12 >>> 8 & 0xff;\n o[50] = x12 >>> 16 & 0xff;\n o[51] = x12 >>> 24 & 0xff;\n\n o[52] = x13 >>> 0 & 0xff;\n o[53] = x13 >>> 8 & 0xff;\n o[54] = x13 >>> 16 & 0xff;\n o[55] = x13 >>> 24 & 0xff;\n\n o[56] = x14 >>> 0 & 0xff;\n o[57] = x14 >>> 8 & 0xff;\n o[58] = x14 >>> 16 & 0xff;\n o[59] = x14 >>> 24 & 0xff;\n\n o[60] = x15 >>> 0 & 0xff;\n o[61] = x15 >>> 8 & 0xff;\n o[62] = x15 >>> 16 & 0xff;\n o[63] = x15 >>> 24 & 0xff;\n}\n\nfunction core_hsalsa20(o,p,k,c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x5 >>> 0 & 0xff;\n o[ 5] = x5 >>> 8 & 0xff;\n o[ 6] = x5 >>> 16 & 0xff;\n o[ 7] = x5 >>> 24 & 0xff;\n\n o[ 8] = x10 >>> 0 & 0xff;\n o[ 9] = x10 >>> 8 & 0xff;\n o[10] = x10 >>> 16 & 0xff;\n o[11] = x10 >>> 24 & 0xff;\n\n o[12] = x15 >>> 0 & 0xff;\n o[13] = x15 >>> 8 & 0xff;\n o[14] = x15 >>> 16 & 0xff;\n o[15] = x15 >>> 24 & 0xff;\n\n o[16] = x6 >>> 0 & 0xff;\n o[17] = x6 >>> 8 & 0xff;\n o[18] = x6 >>> 16 & 0xff;\n o[19] = x6 >>> 24 & 0xff;\n\n o[20] = x7 >>> 0 & 0xff;\n o[21] = x7 >>> 8 & 0xff;\n o[22] = x7 >>> 16 & 0xff;\n o[23] = x7 >>> 24 & 0xff;\n\n o[24] = x8 >>> 0 & 0xff;\n o[25] = x8 >>> 8 & 0xff;\n o[26] = x8 >>> 16 & 0xff;\n o[27] = x8 >>> 24 & 0xff;\n\n o[28] = x9 >>> 0 & 0xff;\n o[29] = x9 >>> 8 & 0xff;\n o[30] = x9 >>> 16 & 0xff;\n o[31] = x9 >>> 24 & 0xff;\n}\n\nfunction crypto_core_salsa20(out,inp,k,c) {\n core_salsa20(out,inp,k,c);\n}\n\nfunction crypto_core_hsalsa20(out,inp,k,c) {\n core_hsalsa20(out,inp,k,c);\n}\n\nvar sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);\n // \"expand 32-byte k\"\n\nfunction crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n mpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n }\n return 0;\n}\n\nfunction crypto_stream_salsa20(c,cpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = x[i];\n }\n return 0;\n}\n\nfunction crypto_stream(c,cpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20(c,cpos,d,sn,s);\n}\n\nfunction crypto_stream_xor(c,cpos,m,mpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);\n}\n\n/*\n* Port of Andrew Moon's Poly1305-donna-16. Public domain.\n* https://github.com/floodyberry/poly1305-donna\n*/\n\nvar poly1305 = function(key) {\n this.buffer = new Uint8Array(16);\n this.r = new Uint16Array(10);\n this.h = new Uint16Array(10);\n this.pad = new Uint16Array(8);\n this.leftover = 0;\n this.fin = 0;\n\n var t0, t1, t2, t3, t4, t5, t6, t7;\n\n t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff;\n t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this.r[5] = ((t4 >>> 1)) & 0x1ffe;\n t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this.r[9] = ((t7 >>> 5)) & 0x007f;\n\n this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;\n this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;\n this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;\n this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;\n this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;\n this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;\n this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;\n this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;\n};\n\npoly1305.prototype.blocks = function(m, mpos, bytes) {\n var hibit = this.fin ? 0 : (1 << 11);\n var t0, t1, t2, t3, t4, t5, t6, t7, c;\n var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n var h0 = this.h[0],\n h1 = this.h[1],\n h2 = this.h[2],\n h3 = this.h[3],\n h4 = this.h[4],\n h5 = this.h[5],\n h6 = this.h[6],\n h7 = this.h[7],\n h8 = this.h[8],\n h9 = this.h[9];\n\n var r0 = this.r[0],\n r1 = this.r[1],\n r2 = this.r[2],\n r3 = this.r[3],\n r4 = this.r[4],\n r5 = this.r[5],\n r6 = this.r[6],\n r7 = this.r[7],\n r8 = this.r[8],\n r9 = this.r[9];\n\n while (bytes >= 16) {\n t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff;\n t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n\n c = 0;\n\n d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13); d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13); d0 &= 0x1fff;\n\n d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13); d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13); d1 &= 0x1fff;\n\n d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13); d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13); d2 &= 0x1fff;\n\n d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13); d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13); d3 &= 0x1fff;\n\n d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13); d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13); d4 &= 0x1fff;\n\n d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13); d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13); d5 &= 0x1fff;\n\n d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13); d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13); d6 &= 0x1fff;\n\n d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13); d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13); d7 &= 0x1fff;\n\n d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13); d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13); d8 &= 0x1fff;\n\n d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13); d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13); d9 &= 0x1fff;\n\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n\n mpos += 16;\n bytes -= 16;\n }\n this.h[0] = h0;\n this.h[1] = h1;\n this.h[2] = h2;\n this.h[3] = h3;\n this.h[4] = h4;\n this.h[5] = h5;\n this.h[6] = h6;\n this.h[7] = h7;\n this.h[8] = h8;\n this.h[9] = h9;\n};\n\npoly1305.prototype.finish = function(mac, macpos) {\n var g = new Uint16Array(10);\n var c, mask, f, i;\n\n if (this.leftover) {\n i = this.leftover;\n this.buffer[i++] = 1;\n for (; i < 16; i++) this.buffer[i] = 0;\n this.fin = 1;\n this.blocks(this.buffer, 0, 16);\n }\n\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this.h[i] += c;\n c = this.h[i] >>> 13;\n this.h[i] &= 0x1fff;\n }\n this.h[0] += (c * 5);\n c = this.h[0] >>> 13;\n this.h[0] &= 0x1fff;\n this.h[1] += c;\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n this.h[2] += c;\n\n g[0] = this.h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this.h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) g[i] &= mask;\n mask = ~mask;\n for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff;\n this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff;\n this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff;\n this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff;\n this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff;\n this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff;\n this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff;\n this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff;\n\n f = this.h[0] + this.pad[0];\n this.h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n this.h[i] = f & 0xffff;\n }\n\n mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;\n mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;\n mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;\n mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;\n mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;\n mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;\n mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;\n mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;\n mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;\n mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;\n mac[macpos+10] = (this.h[5] >>> 0) & 0xff;\n mac[macpos+11] = (this.h[5] >>> 8) & 0xff;\n mac[macpos+12] = (this.h[6] >>> 0) & 0xff;\n mac[macpos+13] = (this.h[6] >>> 8) & 0xff;\n mac[macpos+14] = (this.h[7] >>> 0) & 0xff;\n mac[macpos+15] = (this.h[7] >>> 8) & 0xff;\n};\n\npoly1305.prototype.update = function(m, mpos, bytes) {\n var i, want;\n\n if (this.leftover) {\n want = (16 - this.leftover);\n if (want > bytes)\n want = bytes;\n for (i = 0; i < want; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n bytes -= want;\n mpos += want;\n this.leftover += want;\n if (this.leftover < 16)\n return;\n this.blocks(this.buffer, 0, 16);\n this.leftover = 0;\n }\n\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this.blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n\n if (bytes) {\n for (i = 0; i < bytes; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n this.leftover += bytes;\n }\n};\n\nfunction crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n var s = new poly1305(k);\n s.update(m, mpos, n);\n s.finish(out, outpos);\n return 0;\n}\n\nfunction crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n var x = new Uint8Array(16);\n crypto_onetimeauth(x,0,m,mpos,n,k);\n return crypto_verify_16(h,hpos,x,0);\n}\n\nfunction crypto_secretbox(c,m,d,n,k) {\n var i;\n if (d < 32) return -1;\n crypto_stream_xor(c,0,m,0,d,n,k);\n crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n for (i = 0; i < 16; i++) c[i] = 0;\n return 0;\n}\n\nfunction crypto_secretbox_open(m,c,d,n,k) {\n var i;\n var x = new Uint8Array(32);\n if (d < 32) return -1;\n crypto_stream(x,0,32,n,k);\n if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;\n crypto_stream_xor(m,0,c,0,d,n,k);\n for (i = 0; i < 32; i++) m[i] = 0;\n return 0;\n}\n\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b-1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n b = (m[15]>>16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1-b);\n }\n for (i = 0; i < 16; i++) {\n o[2*i] = t[i] & 0xff;\n o[2*i+1] = t[i]>>8;\n }\n}\n\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if(a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if(a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31]=(n[31]&127)|64;\n z[0]&=248;\n unpack25519(x,p);\n for (i = 0; i < 16; i++) {\n b[i]=x[i];\n d[i]=a[i]=c[i]=0;\n }\n a[0]=d[0]=1;\n for (i=254; i>=0; --i) {\n r=(z[i>>>3]>>>(i&7))&1;\n sel25519(a,b,r);\n sel25519(c,d,r);\n A(e,a,c);\n Z(a,a,c);\n A(c,b,d);\n Z(b,b,d);\n S(d,e);\n S(f,a);\n M(a,c,a);\n M(c,b,e);\n A(e,a,c);\n Z(a,a,c);\n S(b,a);\n Z(c,d,f);\n M(a,c,_121665);\n A(a,a,d);\n M(c,c,a);\n M(a,d,f);\n M(d,b,x);\n S(b,e);\n sel25519(a,b,r);\n sel25519(c,d,r);\n }\n for (i = 0; i < 16; i++) {\n x[i+16]=a[i];\n x[i+32]=c[i];\n x[i+48]=b[i];\n x[i+64]=d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32,x32);\n M(x16,x16,x32);\n pack25519(q,x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n}\n\nfunction crypto_box_beforenm(k, y, x) {\n var s = new Uint8Array(32);\n crypto_scalarmult(s, x, y);\n return crypto_core_hsalsa20(k, _0, s, sigma);\n}\n\nvar crypto_box_afternm = crypto_secretbox;\nvar crypto_box_open_afternm = crypto_secretbox_open;\n\nfunction crypto_box(c, m, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_afternm(c, m, d, n, k);\n}\n\nfunction crypto_box_open(m, c, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_open_afternm(m, c, d, n, k);\n}\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16),\n bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n th, tl, i, j, h, l, a, b, c, d;\n\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i*2];\n l = K[i*2+1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i%16];\n l = wl[i%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i%16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j+9)%16];\n l = wl[(j+9)%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j+1)%16];\n tl = wl[(j+1)%16];\n h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j+14)%16];\n tl = wl[(j+14)%16];\n h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i, b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b-n+i];\n x[n] = 128;\n\n n = 256-128*(n<112?1:0);\n x[n-9] = 0;\n ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n return 0;\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i/8)|0] >> (i&7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i+1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++) x[i] = r[i];\n for (i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n+32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i+j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i+32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n return n;\n}\n\nvar crypto_secretbox_KEYBYTES = 32,\n crypto_secretbox_NONCEBYTES = 24,\n crypto_secretbox_ZEROBYTES = 32,\n crypto_secretbox_BOXZEROBYTES = 16,\n crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_box_BEFORENMBYTES = 32,\n crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,\n crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,\n crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32,\n crypto_hash_BYTES = 64;\n\nnacl.lowlevel = {\n crypto_core_hsalsa20: crypto_core_hsalsa20,\n crypto_stream_xor: crypto_stream_xor,\n crypto_stream: crypto_stream,\n crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n crypto_stream_salsa20: crypto_stream_salsa20,\n crypto_onetimeauth: crypto_onetimeauth,\n crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n crypto_verify_16: crypto_verify_16,\n crypto_verify_32: crypto_verify_32,\n crypto_secretbox: crypto_secretbox,\n crypto_secretbox_open: crypto_secretbox_open,\n crypto_scalarmult: crypto_scalarmult,\n crypto_scalarmult_base: crypto_scalarmult_base,\n crypto_box_beforenm: crypto_box_beforenm,\n crypto_box_afternm: crypto_box_afternm,\n crypto_box: crypto_box,\n crypto_box_open: crypto_box_open,\n crypto_box_keypair: crypto_box_keypair,\n crypto_hash: crypto_hash,\n crypto_sign: crypto_sign,\n crypto_sign_keypair: crypto_sign_keypair,\n crypto_sign_open: crypto_sign_open,\n\n crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n crypto_sign_BYTES: crypto_sign_BYTES,\n crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n crypto_hash_BYTES: crypto_hash_BYTES,\n\n gf: gf,\n D: D,\n L: L,\n pack25519: pack25519,\n unpack25519: unpack25519,\n M: M,\n A: A,\n S: S,\n Z: Z,\n pow2523: pow2523,\n add: add,\n set25519: set25519,\n modL: modL,\n scalarmult: scalarmult,\n scalarbase: scalarbase,\n};\n\n/* High-level API */\n\nfunction checkLengths(k, n) {\n if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n}\n\nfunction checkBoxLengths(pk, sk) {\n if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n}\n\nfunction checkArrayTypes() {\n for (var i = 0; i < arguments.length; i++) {\n if (!(arguments[i] instanceof Uint8Array))\n throw new TypeError('unexpected type, use Uint8Array');\n }\n}\n\nfunction cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.randomBytes = function(n) {\n var b = new Uint8Array(n);\n randombytes(b, n);\n return b;\n};\n\nnacl.secretbox = function(msg, nonce, key) {\n checkArrayTypes(msg, nonce, key);\n checkLengths(key, nonce);\n var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n var c = new Uint8Array(m.length);\n for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];\n crypto_secretbox(c, m, m.length, nonce, key);\n return c.subarray(crypto_secretbox_BOXZEROBYTES);\n};\n\nnacl.secretbox.open = function(box, nonce, key) {\n checkArrayTypes(box, nonce, key);\n checkLengths(key, nonce);\n var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n var m = new Uint8Array(c.length);\n for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];\n if (c.length < 32) return null;\n if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return null;\n return m.subarray(crypto_secretbox_ZEROBYTES);\n};\n\nnacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\nnacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\nnacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n\nnacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n};\n\nnacl.scalarMult.base = function(n) {\n checkArrayTypes(n);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult_base(q, n);\n return q;\n};\n\nnacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\nnacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n\nnacl.box = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox(msg, nonce, k);\n};\n\nnacl.box.before = function(publicKey, secretKey) {\n checkArrayTypes(publicKey, secretKey);\n checkBoxLengths(publicKey, secretKey);\n var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n crypto_box_beforenm(k, publicKey, secretKey);\n return k;\n};\n\nnacl.box.after = nacl.secretbox;\n\nnacl.box.open = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox.open(msg, nonce, k);\n};\n\nnacl.box.open.after = nacl.secretbox.open;\n\nnacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\nnacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\nnacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\nnacl.box.nonceLength = crypto_box_NONCEBYTES;\nnacl.box.overheadLength = nacl.secretbox.overheadLength;\n\nnacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n};\n\nnacl.sign.open = function(signedMsg, publicKey) {\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var tmp = new Uint8Array(signedMsg.length);\n var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0) return null;\n var m = new Uint8Array(mlen);\n for (var i = 0; i < m.length; i++) m[i] = tmp[i];\n return m;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES)\n throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\nnacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\nnacl.sign.seedLength = crypto_sign_SEEDBYTES;\nnacl.sign.signatureLength = crypto_sign_BYTES;\n\nnacl.hash = function(msg) {\n checkArrayTypes(msg);\n var h = new Uint8Array(crypto_hash_BYTES);\n crypto_hash(h, msg, msg.length);\n return h;\n};\n\nnacl.hash.hashLength = crypto_hash_BYTES;\n\nnacl.verify = function(x, y) {\n checkArrayTypes(x, y);\n // Zero length arguments are considered not equal.\n if (x.length === 0 || y.length === 0) return false;\n if (x.length !== y.length) return false;\n return (vn(x, 0, y, 0, x.length) === 0) ? true : false;\n};\n\nnacl.setPRNG = function(fn) {\n randombytes = fn;\n};\n\n(function() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;\n if (crypto && crypto.getRandomValues) {\n // Browsers.\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n } else if (typeof require !== 'undefined') {\n // Node.js.\n crypto = require('crypto');\n if (crypto && crypto.randomBytes) {\n nacl.setPRNG(function(x, n) {\n var i, v = crypto.randomBytes(n);\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n }\n }\n})();\n\n})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {}));\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n 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\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n 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 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 if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // '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 if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\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 for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\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 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 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 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 for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <http://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return '<Buffer ' + str + '>'\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","'use strict'\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n// @ts-ignore\nvar _Buffer = require('safe-buffer').Buffer\nfunction base (ALPHABET) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n var BASE_MAP = new Uint8Array(256)\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i)\n var xc = x.charCodeAt(0)\n if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n BASE_MAP[xc] = i\n }\n var BASE = ALPHABET.length\n var LEADER = ALPHABET.charAt(0)\n var FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up\n function encode (source) {\n if (Array.isArray(source) || source instanceof Uint8Array) { source = _Buffer.from(source) }\n if (!_Buffer.isBuffer(source)) { throw new TypeError('Expected Buffer') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\n var zeroes = 0\n var length = 0\n var pbegin = 0\n var pend = source.length\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++\n zeroes++\n }\n // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0\n var b58 = new Uint8Array(size)\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin]\n // Apply \"b58 = b58 * 256 + ch\".\n var i = 0\n for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0\n b58[it1] = (carry % BASE) >>> 0\n carry = (carry / BASE) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n pbegin++\n }\n // Skip leading zeroes in base58 result.\n var it2 = size - length\n while (it2 !== size && b58[it2] === 0) {\n it2++\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes)\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }\n return str\n }\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return _Buffer.alloc(0) }\n var psz = 0\n // Skip and count leading '1's.\n var zeroes = 0\n var length = 0\n while (source[psz] === LEADER) {\n zeroes++\n psz++\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size)\n // Process the characters.\n while (source[psz]) {\n // Decode character\n var carry = BASE_MAP[source.charCodeAt(psz)]\n // Invalid character\n if (carry === 255) { return }\n var i = 0\n for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0\n b256[it3] = (carry % 256) >>> 0\n carry = (carry / 256) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n psz++\n }\n // Skip leading zeroes in b256.\n var it4 = size - length\n while (it4 !== size && b256[it4] === 0) {\n it4++\n }\n var vch = _Buffer.allocUnsafe(zeroes + (size - it4))\n vch.fill(0x00, 0, zeroes)\n var j = zeroes\n while (it4 !== size) {\n vch[j++] = b256[it4++]\n }\n return vch\n }\n function decode (string) {\n var buffer = decodeUnsafe(string)\n if (buffer) { return buffer }\n throw new Error('Non-base' + BASE + ' character')\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n }\n}\nmodule.exports = base\n","var basex = require('base-x')\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n\nmodule.exports = basex(ALPHABET)\n","'use strict';\n\n// This is free and unencumbered software released into the public domain.\n// See LICENSE.md for more information.\n\n//\n// Utilities\n//\n\n/**\n * @param {number} a The number to test.\n * @param {number} min The minimum value in the range, inclusive.\n * @param {number} max The maximum value in the range, inclusive.\n * @return {boolean} True if a >= min and a <= max.\n */\nfunction inRange(a, min, max) {\n return min <= a && a <= max;\n}\n\n/**\n * @param {*} o\n * @return {Object}\n */\nfunction ToDictionary(o) {\n if (o === undefined) return {};\n if (o === Object(o)) return o;\n throw TypeError('Could not convert argument to dictionary');\n}\n\n/**\n * @param {string} string Input string of UTF-16 code units.\n * @return {!Array.<number>} Code points.\n */\nfunction stringToCodePoints(string) {\n // https://heycam.github.io/webidl/#dfn-obtain-unicode\n\n // 1. Let S be the DOMString value.\n var s = String(string);\n\n // 2. Let n be the length of S.\n var n = s.length;\n\n // 3. Initialize i to 0.\n var i = 0;\n\n // 4. Initialize U to be an empty sequence of Unicode characters.\n var u = [];\n\n // 5. While i < n:\n while (i < n) {\n\n // 1. Let c be the code unit in S at index i.\n var c = s.charCodeAt(i);\n\n // 2. Depending on the value of c:\n\n // c < 0xD800 or c > 0xDFFF\n if (c < 0xD800 || c > 0xDFFF) {\n // Append to U the Unicode character with code point c.\n u.push(c);\n }\n\n // 0xDC00 ≤ c ≤ 0xDFFF\n else if (0xDC00 <= c && c <= 0xDFFF) {\n // Append to U a U+FFFD REPLACEMENT CHARACTER.\n u.push(0xFFFD);\n }\n\n // 0xD800 ≤ c ≤ 0xDBFF\n else if (0xD800 <= c && c <= 0xDBFF) {\n // 1. If i = n−1, then append to U a U+FFFD REPLACEMENT\n // CHARACTER.\n if (i === n - 1) {\n u.push(0xFFFD);\n }\n // 2. Otherwise, i < n−1:\n else {\n // 1. Let d be the code unit in S at index i+1.\n var d = string.charCodeAt(i + 1);\n\n // 2. If 0xDC00 ≤ d ≤ 0xDFFF, then:\n if (0xDC00 <= d && d <= 0xDFFF) {\n // 1. Let a be c & 0x3FF.\n var a = c & 0x3FF;\n\n // 2. Let b be d & 0x3FF.\n var b = d & 0x3FF;\n\n // 3. Append to U the Unicode character with code point\n // 2^16+2^10*a+b.\n u.push(0x10000 + (a << 10) + b);\n\n // 4. Set i to i+1.\n i += 1;\n }\n\n // 3. Otherwise, d < 0xDC00 or d > 0xDFFF. Append to U a\n // U+FFFD REPLACEMENT CHARACTER.\n else {\n u.push(0xFFFD);\n }\n }\n }\n\n // 3. Set i to i+1.\n i += 1;\n }\n\n // 6. Return U.\n return u;\n}\n\n/**\n * @param {!Array.<number>} code_points Array of code points.\n * @return {string} string String of UTF-16 code units.\n */\nfunction codePointsToString(code_points) {\n var s = '';\n for (var i = 0; i < code_points.length; ++i) {\n var cp = code_points[i];\n if (cp <= 0xFFFF) {\n s += String.fromCharCode(cp);\n } else {\n cp -= 0x10000;\n s += String.fromCharCode((cp >> 10) + 0xD800,\n (cp & 0x3FF) + 0xDC00);\n }\n }\n return s;\n}\n\n\n//\n// Implementation of Encoding specification\n// https://encoding.spec.whatwg.org/\n//\n\n//\n// 3. Terminology\n//\n\n/**\n * End-of-stream is a special token that signifies no more tokens\n * are in the stream.\n * @const\n */ var end_of_stream = -1;\n\n/**\n * A stream represents an ordered sequence of tokens.\n *\n * @constructor\n * @param {!(Array.<number>|Uint8Array)} tokens Array of tokens that provide the\n * stream.\n */\nfunction Stream(tokens) {\n /** @type {!Array.<number>} */\n this.tokens = [].slice.call(tokens);\n}\n\nStream.prototype = {\n /**\n * @return {boolean} True if end-of-stream has been hit.\n */\n endOfStream: function() {\n return !this.tokens.length;\n },\n\n /**\n * When a token is read from a stream, the first token in the\n * stream must be returned and subsequently removed, and\n * end-of-stream must be returned otherwise.\n *\n * @return {number} Get the next token from the stream, or\n * end_of_stream.\n */\n read: function() {\n if (!this.tokens.length)\n return end_of_stream;\n return this.tokens.shift();\n },\n\n /**\n * When one or more tokens are prepended to a stream, those tokens\n * must be inserted, in given order, before the first token in the\n * stream.\n *\n * @param {(number|!Array.<number>)} token The token(s) to prepend to the stream.\n */\n prepend: function(token) {\n if (Array.isArray(token)) {\n var tokens = /**@type {!Array.<number>}*/(token);\n while (tokens.length)\n this.tokens.unshift(tokens.pop());\n } else {\n this.tokens.unshift(token);\n }\n },\n\n /**\n * When one or more tokens are pushed to a stream, those tokens\n * must be inserted, in given order, after the last token in the\n * stream.\n *\n * @param {(number|!Array.<number>)} token The tokens(s) to prepend to the stream.\n */\n push: function(token) {\n if (Array.isArray(token)) {\n var tokens = /**@type {!Array.<number>}*/(token);\n while (tokens.length)\n this.tokens.push(tokens.shift());\n } else {\n this.tokens.push(token);\n }\n }\n};\n\n//\n// 4. Encodings\n//\n\n// 4.1 Encoders and decoders\n\n/** @const */\nvar finished = -1;\n\n/**\n * @param {boolean} fatal If true, decoding errors raise an exception.\n * @param {number=} opt_code_point Override the standard fallback code point.\n * @return {number} The code point to insert on a decoding error.\n */\nfunction decoderError(fatal, opt_code_point) {\n if (fatal)\n throw TypeError('Decoder error');\n return opt_code_point || 0xFFFD;\n}\n\n//\n// 7. API\n//\n\n/** @const */ var DEFAULT_ENCODING = 'utf-8';\n\n// 7.1 Interface TextDecoder\n\n/**\n * @constructor\n * @param {string=} encoding The label of the encoding;\n * defaults to 'utf-8'.\n * @param {Object=} options\n */\nfunction TextDecoder(encoding, options) {\n if (!(this instanceof TextDecoder)) {\n return new TextDecoder(encoding, options);\n }\n encoding = encoding !== undefined ? String(encoding).toLowerCase() : DEFAULT_ENCODING;\n if (encoding !== DEFAULT_ENCODING) {\n throw new Error('Encoding not supported. Only utf-8 is supported');\n }\n options = ToDictionary(options);\n\n /** @private @type {boolean} */\n this._streaming = false;\n /** @private @type {boolean} */\n this._BOMseen = false;\n /** @private @type {?Decoder} */\n this._decoder = null;\n /** @private @type {boolean} */\n this._fatal = Boolean(options['fatal']);\n /** @private @type {boolean} */\n this._ignoreBOM = Boolean(options['ignoreBOM']);\n\n Object.defineProperty(this, 'encoding', {value: 'utf-8'});\n Object.defineProperty(this, 'fatal', {value: this._fatal});\n Object.defineProperty(this, 'ignoreBOM', {value: this._ignoreBOM});\n}\n\nTextDecoder.prototype = {\n /**\n * @param {ArrayBufferView=} input The buffer of bytes to decode.\n * @param {Object=} options\n * @return {string} The decoded string.\n */\n decode: function decode(input, options) {\n var bytes;\n if (typeof input === 'object' && input instanceof ArrayBuffer) {\n bytes = new Uint8Array(input);\n } else if (typeof input === 'object' && 'buffer' in input &&\n input.buffer instanceof ArrayBuffer) {\n bytes = new Uint8Array(input.buffer,\n input.byteOffset,\n input.byteLength);\n } else {\n bytes = new Uint8Array(0);\n }\n\n options = ToDictionary(options);\n\n if (!this._streaming) {\n this._decoder = new UTF8Decoder({fatal: this._fatal});\n this._BOMseen = false;\n }\n this._streaming = Boolean(options['stream']);\n\n var input_stream = new Stream(bytes);\n\n var code_points = [];\n\n /** @type {?(number|!Array.<number>)} */\n var result;\n\n while (!input_stream.endOfStream()) {\n result = this._decoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (result === null)\n continue;\n if (Array.isArray(result))\n code_points.push.apply(code_points, /**@type {!Array.<number>}*/(result));\n else\n code_points.push(result);\n }\n if (!this._streaming) {\n do {\n result = this._decoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (result === null)\n continue;\n if (Array.isArray(result))\n code_points.push.apply(code_points, /**@type {!Array.<number>}*/(result));\n else\n code_points.push(result);\n } while (!input_stream.endOfStream());\n this._decoder = null;\n }\n\n if (code_points.length) {\n // If encoding is one of utf-8, utf-16be, and utf-16le, and\n // ignore BOM flag and BOM seen flag are unset, run these\n // subsubsteps:\n if (['utf-8'].indexOf(this.encoding) !== -1 &&\n !this._ignoreBOM && !this._BOMseen) {\n // If token is U+FEFF, set BOM seen flag.\n if (code_points[0] === 0xFEFF) {\n this._BOMseen = true;\n code_points.shift();\n } else {\n // Otherwise, if token is not end-of-stream, set BOM seen\n // flag and append token to output.\n this._BOMseen = true;\n }\n }\n }\n\n return codePointsToString(code_points);\n }\n};\n\n// 7.2 Interface TextEncoder\n\n/**\n * @constructor\n * @param {string=} encoding The label of the encoding;\n * defaults to 'utf-8'.\n * @param {Object=} options\n */\nfunction TextEncoder(encoding, options) {\n if (!(this instanceof TextEncoder))\n return new TextEncoder(encoding, options);\n encoding = encoding !== undefined ? String(encoding).toLowerCase() : DEFAULT_ENCODING;\n if (encoding !== DEFAULT_ENCODING) {\n throw new Error('Encoding not supported. Only utf-8 is supported');\n }\n options = ToDictionary(options);\n\n /** @private @type {boolean} */\n this._streaming = false;\n /** @private @type {?Encoder} */\n this._encoder = null;\n /** @private @type {{fatal: boolean}} */\n this._options = {fatal: Boolean(options['fatal'])};\n\n Object.defineProperty(this, 'encoding', {value: 'utf-8'});\n}\n\nTextEncoder.prototype = {\n /**\n * @param {string=} opt_string The string to encode.\n * @param {Object=} options\n * @return {Uint8Array} Encoded bytes, as a Uint8Array.\n */\n encode: function encode(opt_string, options) {\n opt_string = opt_string ? String(opt_string) : '';\n options = ToDictionary(options);\n\n // NOTE: This option is nonstandard. None of the encodings\n // permitted for encoding (i.e. UTF-8, UTF-16) are stateful,\n // so streaming is not necessary.\n if (!this._streaming)\n this._encoder = new UTF8Encoder(this._options);\n this._streaming = Boolean(options['stream']);\n\n var bytes = [];\n var input_stream = new Stream(stringToCodePoints(opt_string));\n /** @type {?(number|!Array.<number>)} */\n var result;\n while (!input_stream.endOfStream()) {\n result = this._encoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (Array.isArray(result))\n bytes.push.apply(bytes, /**@type {!Array.<number>}*/(result));\n else\n bytes.push(result);\n }\n if (!this._streaming) {\n while (true) {\n result = this._encoder.handler(input_stream, input_stream.read());\n if (result === finished)\n break;\n if (Array.isArray(result))\n bytes.push.apply(bytes, /**@type {!Array.<number>}*/(result));\n else\n bytes.push(result);\n }\n this._encoder = null;\n }\n return new Uint8Array(bytes);\n }\n};\n\n//\n// 8. The encoding\n//\n\n// 8.1 utf-8\n\n/**\n * @constructor\n * @implements {Decoder}\n * @param {{fatal: boolean}} options\n */\nfunction UTF8Decoder(options) {\n var fatal = options.fatal;\n\n // utf-8's decoder's has an associated utf-8 code point, utf-8\n // bytes seen, and utf-8 bytes needed (all initially 0), a utf-8\n // lower boundary (initially 0x80), and a utf-8 upper boundary\n // (initially 0xBF).\n var /** @type {number} */ utf8_code_point = 0,\n /** @type {number} */ utf8_bytes_seen = 0,\n /** @type {number} */ utf8_bytes_needed = 0,\n /** @type {number} */ utf8_lower_boundary = 0x80,\n /** @type {number} */ utf8_upper_boundary = 0xBF;\n\n /**\n * @param {Stream} stream The stream of bytes being decoded.\n * @param {number} bite The next byte read from the stream.\n * @return {?(number|!Array.<number>)} The next code point(s)\n * decoded, or null if not enough data exists in the input\n * stream to decode a complete code point.\n */\n this.handler = function(stream, bite) {\n // 1. If byte is end-of-stream and utf-8 bytes needed is not 0,\n // set utf-8 bytes needed to 0 and return error.\n if (bite === end_of_stream && utf8_bytes_needed !== 0) {\n utf8_bytes_needed = 0;\n return decoderError(fatal);\n }\n\n // 2. If byte is end-of-stream, return finished.\n if (bite === end_of_stream)\n return finished;\n\n // 3. If utf-8 bytes needed is 0, based on byte:\n if (utf8_bytes_needed === 0) {\n\n // 0x00 to 0x7F\n if (inRange(bite, 0x00, 0x7F)) {\n // Return a code point whose value is byte.\n return bite;\n }\n\n // 0xC2 to 0xDF\n if (inRange(bite, 0xC2, 0xDF)) {\n // Set utf-8 bytes needed to 1 and utf-8 code point to byte\n // − 0xC0.\n utf8_bytes_needed = 1;\n utf8_code_point = bite - 0xC0;\n }\n\n // 0xE0 to 0xEF\n else if (inRange(bite, 0xE0, 0xEF)) {\n // 1. If byte is 0xE0, set utf-8 lower boundary to 0xA0.\n if (bite === 0xE0)\n utf8_lower_boundary = 0xA0;\n // 2. If byte is 0xED, set utf-8 upper boundary to 0x9F.\n if (bite === 0xED)\n utf8_upper_boundary = 0x9F;\n // 3. Set utf-8 bytes needed to 2 and utf-8 code point to\n // byte − 0xE0.\n utf8_bytes_needed = 2;\n utf8_code_point = bite - 0xE0;\n }\n\n // 0xF0 to 0xF4\n else if (inRange(bite, 0xF0, 0xF4)) {\n // 1. If byte is 0xF0, set utf-8 lower boundary to 0x90.\n if (bite === 0xF0)\n utf8_lower_boundary = 0x90;\n // 2. If byte is 0xF4, set utf-8 upper boundary to 0x8F.\n if (bite === 0xF4)\n utf8_upper_boundary = 0x8F;\n // 3. Set utf-8 bytes needed to 3 and utf-8 code point to\n // byte − 0xF0.\n utf8_bytes_needed = 3;\n utf8_code_point = bite - 0xF0;\n }\n\n // Otherwise\n else {\n // Return error.\n return decoderError(fatal);\n }\n\n // Then (byte is in the range 0xC2 to 0xF4) set utf-8 code\n // point to utf-8 code point << (6 × utf-8 bytes needed) and\n // return continue.\n utf8_code_point = utf8_code_point << (6 * utf8_bytes_needed);\n return null;\n }\n\n // 4. If byte is not in the range utf-8 lower boundary to utf-8\n // upper boundary, run these substeps:\n if (!inRange(bite, utf8_lower_boundary, utf8_upper_boundary)) {\n\n // 1. Set utf-8 code point, utf-8 bytes needed, and utf-8\n // bytes seen to 0, set utf-8 lower boundary to 0x80, and set\n // utf-8 upper boundary to 0xBF.\n utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0;\n utf8_lower_boundary = 0x80;\n utf8_upper_boundary = 0xBF;\n\n // 2. Prepend byte to stream.\n stream.prepend(bite);\n\n // 3. Return error.\n return decoderError(fatal);\n }\n\n // 5. Set utf-8 lower boundary to 0x80 and utf-8 upper boundary\n // to 0xBF.\n utf8_lower_boundary = 0x80;\n utf8_upper_boundary = 0xBF;\n\n // 6. Increase utf-8 bytes seen by one and set utf-8 code point\n // to utf-8 code point + (byte − 0x80) << (6 × (utf-8 bytes\n // needed − utf-8 bytes seen)).\n utf8_bytes_seen += 1;\n utf8_code_point += (bite - 0x80) << (6 * (utf8_bytes_needed - utf8_bytes_seen));\n\n // 7. If utf-8 bytes seen is not equal to utf-8 bytes needed,\n // continue.\n if (utf8_bytes_seen !== utf8_bytes_needed)\n return null;\n\n // 8. Let code point be utf-8 code point.\n var code_point = utf8_code_point;\n\n // 9. Set utf-8 code point, utf-8 bytes needed, and utf-8 bytes\n // seen to 0.\n utf8_code_point = utf8_bytes_needed = utf8_bytes_seen = 0;\n\n // 10. Return a code point whose value is code point.\n return code_point;\n };\n}\n\n/**\n * @constructor\n * @implements {Encoder}\n * @param {{fatal: boolean}} options\n */\nfunction UTF8Encoder(options) {\n var fatal = options.fatal;\n /**\n * @param {Stream} stream Input stream.\n * @param {number} code_point Next code point read from the stream.\n * @return {(number|!Array.<number>)} Byte(s) to emit.\n */\n this.handler = function(stream, code_point) {\n // 1. If code point is end-of-stream, return finished.\n if (code_point === end_of_stream)\n return finished;\n\n // 2. If code point is in the range U+0000 to U+007F, return a\n // byte whose value is code point.\n if (inRange(code_point, 0x0000, 0x007f))\n return code_point;\n\n // 3. Set count and offset based on the range code point is in:\n var count, offset;\n // U+0080 to U+07FF: 1 and 0xC0\n if (inRange(code_point, 0x0080, 0x07FF)) {\n count = 1;\n offset = 0xC0;\n }\n // U+0800 to U+FFFF: 2 and 0xE0\n else if (inRange(code_point, 0x0800, 0xFFFF)) {\n count = 2;\n offset = 0xE0;\n }\n // U+10000 to U+10FFFF: 3 and 0xF0\n else if (inRange(code_point, 0x10000, 0x10FFFF)) {\n count = 3;\n offset = 0xF0;\n }\n\n // 4.Let bytes be a byte sequence whose first byte is (code\n // point >> (6 × count)) + offset.\n var bytes = [(code_point >> (6 * count)) + offset];\n\n // 5. Run these substeps while count is greater than 0:\n while (count > 0) {\n\n // 1. Set temp to code point >> (6 × (count − 1)).\n var temp = code_point >> (6 * (count - 1));\n\n // 2. Append to bytes 0x80 | (temp & 0x3F).\n bytes.push(0x80 | (temp & 0x3F));\n\n // 3. Decrease count by one.\n count -= 1;\n }\n\n // 6. Return bytes bytes, in order.\n return bytes;\n };\n}\n\nexports.TextEncoder = TextEncoder;\nexports.TextDecoder = TextDecoder;","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.deserializeUnchecked = exports.deserialize = exports.serialize = exports.BinaryReader = exports.BinaryWriter = exports.BorshError = exports.baseDecode = exports.baseEncode = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst bs58_1 = __importDefault(require(\"bs58\"));\n// TODO: Make sure this polyfill not included when not required\nconst encoding = __importStar(require(\"text-encoding-utf-8\"));\nconst TextDecoder = (typeof global.TextDecoder !== 'function') ? encoding.TextDecoder : global.TextDecoder;\nconst textDecoder = new TextDecoder('utf-8', { fatal: true });\nfunction baseEncode(value) {\n if (typeof (value) === 'string') {\n value = Buffer.from(value, 'utf8');\n }\n return bs58_1.default.encode(Buffer.from(value));\n}\nexports.baseEncode = baseEncode;\nfunction baseDecode(value) {\n return Buffer.from(bs58_1.default.decode(value));\n}\nexports.baseDecode = baseDecode;\nconst INITIAL_LENGTH = 1024;\nclass BorshError extends Error {\n constructor(message) {\n super(message);\n this.fieldPath = [];\n this.originalMessage = message;\n }\n addToFieldPath(fieldName) {\n this.fieldPath.splice(0, 0, fieldName);\n // NOTE: Modifying message directly as jest doesn't use .toString()\n this.message = this.originalMessage + ': ' + this.fieldPath.join('.');\n }\n}\nexports.BorshError = BorshError;\n/// Binary encoder.\nclass BinaryWriter {\n constructor() {\n this.buf = Buffer.alloc(INITIAL_LENGTH);\n this.length = 0;\n }\n maybeResize() {\n if (this.buf.length < 16 + this.length) {\n this.buf = Buffer.concat([this.buf, Buffer.alloc(INITIAL_LENGTH)]);\n }\n }\n writeU8(value) {\n this.maybeResize();\n this.buf.writeUInt8(value, this.length);\n this.length += 1;\n }\n writeU16(value) {\n this.maybeResize();\n this.buf.writeUInt16LE(value, this.length);\n this.length += 2;\n }\n writeU32(value) {\n this.maybeResize();\n this.buf.writeUInt32LE(value, this.length);\n this.length += 4;\n }\n writeU64(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray('le', 8)));\n }\n writeU128(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray('le', 16)));\n }\n writeU256(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray('le', 32)));\n }\n writeU512(value) {\n this.maybeResize();\n this.writeBuffer(Buffer.from(new bn_js_1.default(value).toArray('le', 64)));\n }\n writeBuffer(buffer) {\n // Buffer.from is needed as this.buf.subarray can return plain Uint8Array in browser\n this.buf = Buffer.concat([Buffer.from(this.buf.subarray(0, this.length)), buffer, Buffer.alloc(INITIAL_LENGTH)]);\n this.length += buffer.length;\n }\n writeString(str) {\n this.maybeResize();\n const b = Buffer.from(str, 'utf8');\n this.writeU32(b.length);\n this.writeBuffer(b);\n }\n writeFixedArray(array) {\n this.writeBuffer(Buffer.from(array));\n }\n writeArray(array, fn) {\n this.maybeResize();\n this.writeU32(array.length);\n for (const elem of array) {\n this.maybeResize();\n fn(elem);\n }\n }\n toArray() {\n return this.buf.subarray(0, this.length);\n }\n}\nexports.BinaryWriter = BinaryWriter;\nfunction handlingRangeError(target, propertyKey, propertyDescriptor) {\n const originalMethod = propertyDescriptor.value;\n propertyDescriptor.value = function (...args) {\n try {\n return originalMethod.apply(this, args);\n }\n catch (e) {\n if (e instanceof RangeError) {\n const code = e.code;\n if (['ERR_BUFFER_OUT_OF_BOUNDS', 'ERR_OUT_OF_RANGE'].indexOf(code) >= 0) {\n throw new BorshError('Reached the end of buffer when deserializing');\n }\n }\n throw e;\n }\n };\n}\nclass BinaryReader {\n constructor(buf) {\n this.buf = buf;\n this.offset = 0;\n }\n readU8() {\n const value = this.buf.readUInt8(this.offset);\n this.offset += 1;\n return value;\n }\n readU16() {\n const value = this.buf.readUInt16LE(this.offset);\n this.offset += 2;\n return value;\n }\n readU32() {\n const value = this.buf.readUInt32LE(this.offset);\n this.offset += 4;\n return value;\n }\n readU64() {\n const buf = this.readBuffer(8);\n return new bn_js_1.default(buf, 'le');\n }\n readU128() {\n const buf = this.readBuffer(16);\n return new bn_js_1.default(buf, 'le');\n }\n readU256() {\n const buf = this.readBuffer(32);\n return new bn_js_1.default(buf, 'le');\n }\n readU512() {\n const buf = this.readBuffer(64);\n return new bn_js_1.default(buf, 'le');\n }\n readBuffer(len) {\n if ((this.offset + len) > this.buf.length) {\n throw new BorshError(`Expected buffer length ${len} isn't within bounds`);\n }\n const result = this.buf.slice(this.offset, this.offset + len);\n this.offset += len;\n return result;\n }\n readString() {\n const len = this.readU32();\n const buf = this.readBuffer(len);\n try {\n // NOTE: Using TextDecoder to fail on invalid UTF-8\n return textDecoder.decode(buf);\n }\n catch (e) {\n throw new BorshError(`Error decoding UTF-8 string: ${e}`);\n }\n }\n readFixedArray(len) {\n return new Uint8Array(this.readBuffer(len));\n }\n readArray(fn) {\n const len = this.readU32();\n const result = Array();\n for (let i = 0; i < len; ++i) {\n result.push(fn());\n }\n return result;\n }\n}\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU8\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU16\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU32\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU64\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU128\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU256\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readU512\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readString\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readFixedArray\", null);\n__decorate([\n handlingRangeError\n], BinaryReader.prototype, \"readArray\", null);\nexports.BinaryReader = BinaryReader;\nfunction capitalizeFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nfunction serializeField(schema, fieldName, value, fieldType, writer) {\n try {\n // TODO: Handle missing values properly (make sure they never result in just skipped write)\n if (typeof fieldType === 'string') {\n writer[`write${capitalizeFirstLetter(fieldType)}`](value);\n }\n else if (fieldType instanceof Array) {\n if (typeof fieldType[0] === 'number') {\n if (value.length !== fieldType[0]) {\n throw new BorshError(`Expecting byte array of length ${fieldType[0]}, but got ${value.length} bytes`);\n }\n writer.writeFixedArray(value);\n }\n else if (fieldType.length === 2 && typeof fieldType[1] === 'number') {\n if (value.length !== fieldType[1]) {\n throw new BorshError(`Expecting byte array of length ${fieldType[1]}, but got ${value.length} bytes`);\n }\n for (let i = 0; i < fieldType[1]; i++) {\n serializeField(schema, null, value[i], fieldType[0], writer);\n }\n }\n else {\n writer.writeArray(value, (item) => { serializeField(schema, fieldName, item, fieldType[0], writer); });\n }\n }\n else if (fieldType.kind !== undefined) {\n switch (fieldType.kind) {\n case 'option': {\n if (value === null || value === undefined) {\n writer.writeU8(0);\n }\n else {\n writer.writeU8(1);\n serializeField(schema, fieldName, value, fieldType.type, writer);\n }\n break;\n }\n default: throw new BorshError(`FieldType ${fieldType} unrecognized`);\n }\n }\n else {\n serializeStruct(schema, value, writer);\n }\n }\n catch (error) {\n if (error instanceof BorshError) {\n error.addToFieldPath(fieldName);\n }\n throw error;\n }\n}\nfunction serializeStruct(schema, obj, writer) {\n if (typeof obj.borshSerialize === 'function') {\n obj.borshSerialize(writer);\n return;\n }\n const structSchema = schema.get(obj.constructor);\n if (!structSchema) {\n throw new BorshError(`Class ${obj.constructor.name} is missing in schema`);\n }\n if (structSchema.kind === 'struct') {\n structSchema.fields.map(([fieldName, fieldType]) => {\n serializeField(schema, fieldName, obj[fieldName], fieldType, writer);\n });\n }\n else if (structSchema.kind === 'enum') {\n const name = obj[structSchema.field];\n for (let idx = 0; idx < structSchema.values.length; ++idx) {\n const [fieldName, fieldType] = structSchema.values[idx];\n if (fieldName === name) {\n writer.writeU8(idx);\n serializeField(schema, fieldName, obj[fieldName], fieldType, writer);\n break;\n }\n }\n }\n else {\n throw new BorshError(`Unexpected schema kind: ${structSchema.kind} for ${obj.constructor.name}`);\n }\n}\n/// Serialize given object using schema of the form:\n/// { class_name -> [ [field_name, field_type], .. ], .. }\nfunction serialize(schema, obj, Writer = BinaryWriter) {\n const writer = new Writer();\n serializeStruct(schema, obj, writer);\n return writer.toArray();\n}\nexports.serialize = serialize;\nfunction deserializeField(schema, fieldName, fieldType, reader) {\n try {\n if (typeof fieldType === 'string') {\n return reader[`read${capitalizeFirstLetter(fieldType)}`]();\n }\n if (fieldType instanceof Array) {\n if (typeof fieldType[0] === 'number') {\n return reader.readFixedArray(fieldType[0]);\n }\n else if (typeof fieldType[1] === 'number') {\n const arr = [];\n for (let i = 0; i < fieldType[1]; i++) {\n arr.push(deserializeField(schema, null, fieldType[0], reader));\n }\n return arr;\n }\n else {\n return reader.readArray(() => deserializeField(schema, fieldName, fieldType[0], reader));\n }\n }\n if (fieldType.kind === 'option') {\n const option = reader.readU8();\n if (option) {\n return deserializeField(schema, fieldName, fieldType.type, reader);\n }\n return undefined;\n }\n return deserializeStruct(schema, fieldType, reader);\n }\n catch (error) {\n if (error instanceof BorshError) {\n error.addToFieldPath(fieldName);\n }\n throw error;\n }\n}\nfunction deserializeStruct(schema, classType, reader) {\n if (typeof classType.borshDeserialize === 'function') {\n return classType.borshDeserialize(reader);\n }\n const structSchema = schema.get(classType);\n if (!structSchema) {\n throw new BorshError(`Class ${classType.name} is missing in schema`);\n }\n if (structSchema.kind === 'struct') {\n const result = {};\n for (const [fieldName, fieldType] of schema.get(classType).fields) {\n result[fieldName] = deserializeField(schema, fieldName, fieldType, reader);\n }\n return new classType(result);\n }\n if (structSchema.kind === 'enum') {\n const idx = reader.readU8();\n if (idx >= structSchema.values.length) {\n throw new BorshError(`Enum index: ${idx} is out of range`);\n }\n const [fieldName, fieldType] = structSchema.values[idx];\n const fieldValue = deserializeField(schema, fieldName, fieldType, reader);\n return new classType({ [fieldName]: fieldValue });\n }\n throw new BorshError(`Unexpected schema kind: ${structSchema.kind} for ${classType.constructor.name}`);\n}\n/// Deserializes object from bytes using schema.\nfunction deserialize(schema, classType, buffer, Reader = BinaryReader) {\n const reader = new Reader(buffer);\n const result = deserializeStruct(schema, classType, reader);\n if (reader.offset < buffer.length) {\n throw new BorshError(`Unexpected ${buffer.length - reader.offset} bytes after deserialized data`);\n }\n return result;\n}\nexports.deserialize = deserialize;\n/// Deserializes object from bytes using schema, without checking the length read\nfunction deserializeUnchecked(schema, classType, buffer, Reader = BinaryReader) {\n const reader = new Reader(buffer);\n return deserializeStruct(schema, classType, reader);\n}\nexports.deserializeUnchecked = deserializeUnchecked;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar borsh_1 = require(\"borsh\");\nObject.defineProperty(exports, \"base_encode\", { enumerable: true, get: function () { return borsh_1.baseEncode; } });\nObject.defineProperty(exports, \"base_decode\", { enumerable: true, get: function () { return borsh_1.baseDecode; } });\nObject.defineProperty(exports, \"serialize\", { enumerable: true, get: function () { return borsh_1.serialize; } });\nObject.defineProperty(exports, \"deserialize\", { enumerable: true, get: function () { return borsh_1.deserialize; } });\nObject.defineProperty(exports, \"BorshError\", { enumerable: true, get: function () { return borsh_1.BorshError; } });\nObject.defineProperty(exports, \"BinaryWriter\", { enumerable: true, get: function () { return borsh_1.BinaryWriter; } });\nObject.defineProperty(exports, \"BinaryReader\", { enumerable: true, get: function () { return borsh_1.BinaryReader; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Assignable = exports.Enum = void 0;\n/** @hidden @module */\nclass Enum {\n constructor(properties) {\n if (Object.keys(properties).length !== 1) {\n throw new Error('Enum can only take single value');\n }\n Object.keys(properties).map((key) => {\n this[key] = properties[key];\n this.enum = key;\n });\n }\n}\nexports.Enum = Enum;\nclass Assignable {\n constructor(properties) {\n Object.keys(properties).map((key) => {\n this[key] = properties[key];\n });\n }\n}\nexports.Assignable = Assignable;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KeyPairEd25519 = exports.KeyPair = exports.PublicKey = exports.KeyType = void 0;\nconst tweetnacl_1 = __importDefault(require(\"tweetnacl\"));\nconst serialize_1 = require(\"./serialize\");\nconst enums_1 = require(\"./enums\");\n/** All supported key types */\nvar KeyType;\n(function (KeyType) {\n KeyType[KeyType[\"ED25519\"] = 0] = \"ED25519\";\n})(KeyType = exports.KeyType || (exports.KeyType = {}));\nfunction key_type_to_str(keyType) {\n switch (keyType) {\n case KeyType.ED25519: return 'ed25519';\n default: throw new Error(`Unknown key type ${keyType}`);\n }\n}\nfunction str_to_key_type(keyType) {\n switch (keyType.toLowerCase()) {\n case 'ed25519': return KeyType.ED25519;\n default: throw new Error(`Unknown key type ${keyType}`);\n }\n}\n/**\n * PublicKey representation that has type and bytes of the key.\n */\nclass PublicKey extends enums_1.Assignable {\n static from(value) {\n if (typeof value === 'string') {\n return PublicKey.fromString(value);\n }\n return value;\n }\n static fromString(encodedKey) {\n const parts = encodedKey.split(':');\n if (parts.length === 1) {\n return new PublicKey({ keyType: KeyType.ED25519, data: serialize_1.base_decode(parts[0]) });\n }\n else if (parts.length === 2) {\n return new PublicKey({ keyType: str_to_key_type(parts[0]), data: serialize_1.base_decode(parts[1]) });\n }\n else {\n throw new Error('Invalid encoded key format, must be <curve>:<encoded key>');\n }\n }\n toString() {\n return `${key_type_to_str(this.keyType)}:${serialize_1.base_encode(this.data)}`;\n }\n}\nexports.PublicKey = PublicKey;\nclass KeyPair {\n /**\n * @param curve Name of elliptical curve, case-insensitive\n * @returns Random KeyPair based on the curve\n */\n static fromRandom(curve) {\n switch (curve.toUpperCase()) {\n case 'ED25519': return KeyPairEd25519.fromRandom();\n default: throw new Error(`Unknown curve ${curve}`);\n }\n }\n static fromString(encodedKey) {\n const parts = encodedKey.split(':');\n if (parts.length === 1) {\n return new KeyPairEd25519(parts[0]);\n }\n else if (parts.length === 2) {\n switch (parts[0].toUpperCase()) {\n case 'ED25519': return new KeyPairEd25519(parts[1]);\n default: throw new Error(`Unknown curve: ${parts[0]}`);\n }\n }\n else {\n throw new Error('Invalid encoded key format, must be <curve>:<encoded key>');\n }\n }\n}\nexports.KeyPair = KeyPair;\n/**\n * This class provides key pair functionality for Ed25519 curve:\n * generating key pairs, encoding key pairs, signing and verifying.\n */\nclass KeyPairEd25519 extends KeyPair {\n /**\n * Construct an instance of key pair given a secret key.\n * It's generally assumed that these are encoded in base58.\n * @param {string} secretKey\n */\n constructor(secretKey) {\n super();\n const keyPair = tweetnacl_1.default.sign.keyPair.fromSecretKey(serialize_1.base_decode(secretKey));\n this.publicKey = new PublicKey({ keyType: KeyType.ED25519, data: keyPair.publicKey });\n this.secretKey = secretKey;\n }\n /**\n * Generate a new random keypair.\n * @example\n * const keyRandom = KeyPair.fromRandom();\n * keyRandom.publicKey\n * // returns [PUBLIC_KEY]\n *\n * keyRandom.secretKey\n * // returns [SECRET_KEY]\n */\n static fromRandom() {\n const newKeyPair = tweetnacl_1.default.sign.keyPair();\n return new KeyPairEd25519(serialize_1.base_encode(newKeyPair.secretKey));\n }\n sign(message) {\n const signature = tweetnacl_1.default.sign.detached(message, serialize_1.base_decode(this.secretKey));\n return { signature, publicKey: this.publicKey };\n }\n verify(message, signature) {\n return tweetnacl_1.default.sign.detached.verify(message, signature, this.publicKey.data);\n }\n toString() {\n return `ed25519:${this.secretKey}`;\n }\n getPublicKey() {\n return this.publicKey;\n }\n}\nexports.KeyPairEd25519 = KeyPairEd25519;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InMemoryKeyStore = void 0;\nconst keystore_1 = require(\"./keystore\");\nconst key_pair_1 = require(\"../utils/key_pair\");\n/**\n * Simple in-memory keystore for mainly for testing purposes.\n *\n * @example {@link https://docs.near.org/docs/develop/front-end/naj-quick-reference#key-store}\n * @example\n * ```js\n * import { connect, keyStores, utils } from 'near-api-js';\n *\n * const privateKey = '.......';\n * const keyPair = utils.KeyPair.fromString(privateKey);\n *\n * const keyStore = new keyStores.InMemoryKeyStore();\n * keyStore.setKey('testnet', 'example-account.testnet', keyPair);\n *\n * const config = {\n * keyStore, // instance of InMemoryKeyStore\n * networkId: 'testnet',\n * nodeUrl: 'https://rpc.testnet.near.org',\n * walletUrl: 'https://wallet.testnet.near.org',\n * helperUrl: 'https://helper.testnet.near.org',\n * explorerUrl: 'https://explorer.testnet.near.org'\n * };\n *\n * // inside an async function\n * const near = await connect(config)\n * ```\n */\nclass InMemoryKeyStore extends keystore_1.KeyStore {\n constructor() {\n super();\n this.keys = {};\n }\n /**\n * Stores a {@KeyPair} in in-memory storage item\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @param keyPair The key pair to store in local storage\n */\n async setKey(networkId, accountId, keyPair) {\n this.keys[`${accountId}:${networkId}`] = keyPair.toString();\n }\n /**\n * Gets a {@link KeyPair} from in-memory storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @returns {Promise<KeyPair>}\n */\n async getKey(networkId, accountId) {\n const value = this.keys[`${accountId}:${networkId}`];\n if (!value) {\n return null;\n }\n return key_pair_1.KeyPair.fromString(value);\n }\n /**\n * Removes a {@link KeyPair} from in-memory storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n */\n async removeKey(networkId, accountId) {\n delete this.keys[`${accountId}:${networkId}`];\n }\n /**\n * Removes all {@link KeyPairs} from in-memory storage\n */\n async clear() {\n this.keys = {};\n }\n /**\n * Get the network(s) from in-memory storage\n * @returns {Promise<string[]>}\n */\n async getNetworks() {\n const result = new Set();\n Object.keys(this.keys).forEach((key) => {\n const parts = key.split(':');\n result.add(parts[1]);\n });\n return Array.from(result.values());\n }\n /**\n * Gets the account(s) from in-memory storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @returns{Promise<string[]>}\n */\n async getAccounts(networkId) {\n const result = new Array();\n Object.keys(this.keys).forEach((key) => {\n const parts = key.split(':');\n if (parts[parts.length - 1] === networkId) {\n result.push(parts.slice(0, parts.length - 1).join(':'));\n }\n });\n return result;\n }\n /** @hidden */\n toString() {\n return 'InMemoryKeyStore';\n }\n}\nexports.InMemoryKeyStore = InMemoryKeyStore;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowserLocalStorageKeyStore = void 0;\nconst keystore_1 = require(\"./keystore\");\nconst key_pair_1 = require(\"../utils/key_pair\");\nconst LOCAL_STORAGE_KEY_PREFIX = 'near-api-js:keystore:';\n/**\n * This class is used to store keys in the browsers local storage.\n *\n * @example {@link https://docs.near.org/docs/develop/front-end/naj-quick-reference#key-store}\n * @example\n * ```js\n * import { connect, keyStores } from 'near-api-js';\n *\n * const keyStore = new keyStores.BrowserLocalStorageKeyStore();\n * const config = {\n * keyStore, // instance of BrowserLocalStorageKeyStore\n * networkId: 'testnet',\n * nodeUrl: 'https://rpc.testnet.near.org',\n * walletUrl: 'https://wallet.testnet.near.org',\n * helperUrl: 'https://helper.testnet.near.org',\n * explorerUrl: 'https://explorer.testnet.near.org'\n * };\n *\n * // inside an async function\n * const near = await connect(config)\n * ```\n */\nclass BrowserLocalStorageKeyStore extends keystore_1.KeyStore {\n /**\n * @param localStorage defaults to window.localStorage\n * @param prefix defaults to `near-api-js:keystore:`\n */\n constructor(localStorage = window.localStorage, prefix = LOCAL_STORAGE_KEY_PREFIX) {\n super();\n this.localStorage = localStorage;\n this.prefix = prefix;\n }\n /**\n * Stores a {@link KeyPair} in local storage.\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @param keyPair The key pair to store in local storage\n */\n async setKey(networkId, accountId, keyPair) {\n this.localStorage.setItem(this.storageKeyForSecretKey(networkId, accountId), keyPair.toString());\n }\n /**\n * Gets a {@link KeyPair} from local storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @returns {Promise<KeyPair>}\n */\n async getKey(networkId, accountId) {\n const value = this.localStorage.getItem(this.storageKeyForSecretKey(networkId, accountId));\n if (!value) {\n return null;\n }\n return key_pair_1.KeyPair.fromString(value);\n }\n /**\n * Removes a {@link KeyPair} from local storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n */\n async removeKey(networkId, accountId) {\n this.localStorage.removeItem(this.storageKeyForSecretKey(networkId, accountId));\n }\n /**\n * Removes all items that start with `prefix` from local storage\n */\n async clear() {\n for (const key of this.storageKeys()) {\n if (key.startsWith(this.prefix)) {\n this.localStorage.removeItem(key);\n }\n }\n }\n /**\n * Get the network(s) from local storage\n * @returns {Promise<string[]>}\n */\n async getNetworks() {\n const result = new Set();\n for (const key of this.storageKeys()) {\n if (key.startsWith(this.prefix)) {\n const parts = key.substring(this.prefix.length).split(':');\n result.add(parts[1]);\n }\n }\n return Array.from(result.values());\n }\n /**\n * Gets the account(s) from local storage\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @returns{Promise<string[]>}\n */\n async getAccounts(networkId) {\n const result = new Array();\n for (const key of this.storageKeys()) {\n if (key.startsWith(this.prefix)) {\n const parts = key.substring(this.prefix.length).split(':');\n if (parts[1] === networkId) {\n result.push(parts[0]);\n }\n }\n }\n return result;\n }\n /**\n * @hidden\n * Helper function to retrieve a local storage key\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the storage keythat's sought\n * @returns {string} An example might be: `near-api-js:keystore:near-friend:default`\n */\n storageKeyForSecretKey(networkId, accountId) {\n return `${this.prefix}${accountId}:${networkId}`;\n }\n /** @hidden */\n *storageKeys() {\n for (let i = 0; i < this.localStorage.length; i++) {\n yield this.localStorage.key(i);\n }\n }\n}\nexports.BrowserLocalStorageKeyStore = BrowserLocalStorageKeyStore;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MergeKeyStore = void 0;\nconst keystore_1 = require(\"./keystore\");\nclass MergeKeyStore extends keystore_1.KeyStore {\n /**\n * @param keyStores read calls are attempted from start to end of array\n * @param options.writeKeyStoreIndex the keystore index that will receive all write calls\n */\n constructor(keyStores, options = { writeKeyStoreIndex: 0 }) {\n super();\n this.options = options;\n this.keyStores = keyStores;\n }\n /**\n * Store a {@link KeyPain} to the first index of a key store array\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @param keyPair The key pair to store in local storage\n */\n async setKey(networkId, accountId, keyPair) {\n await this.keyStores[this.options.writeKeyStoreIndex].setKey(networkId, accountId, keyPair);\n }\n /**\n * Gets a {@link KeyPair} from the array of key stores\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n * @returns {Promise<KeyPair>}\n */\n async getKey(networkId, accountId) {\n for (const keyStore of this.keyStores) {\n const keyPair = await keyStore.getKey(networkId, accountId);\n if (keyPair) {\n return keyPair;\n }\n }\n return null;\n }\n /**\n * Removes a {@link KeyPair} from the array of key stores\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account tied to the key pair\n */\n async removeKey(networkId, accountId) {\n for (const keyStore of this.keyStores) {\n await keyStore.removeKey(networkId, accountId);\n }\n }\n /**\n * Removes all items from each key store\n */\n async clear() {\n for (const keyStore of this.keyStores) {\n await keyStore.clear();\n }\n }\n /**\n * Get the network(s) from the array of key stores\n * @returns {Promise<string[]>}\n */\n async getNetworks() {\n const result = new Set();\n for (const keyStore of this.keyStores) {\n for (const network of await keyStore.getNetworks()) {\n result.add(network);\n }\n }\n return Array.from(result);\n }\n /**\n * Gets the account(s) from the array of key stores\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @returns{Promise<string[]>}\n */\n async getAccounts(networkId) {\n const result = new Set();\n for (const keyStore of this.keyStores) {\n for (const account of await keyStore.getAccounts(networkId)) {\n result.add(account);\n }\n }\n return Array.from(result);\n }\n /** @hidden */\n toString() {\n return `MergeKeyStore(${this.keyStores.join(', ')})`;\n }\n}\nexports.MergeKeyStore = MergeKeyStore;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MergeKeyStore = exports.BrowserLocalStorageKeyStore = exports.InMemoryKeyStore = exports.KeyStore = void 0;\n/** @hidden @module */\nconst keystore_1 = require(\"./keystore\");\nObject.defineProperty(exports, \"KeyStore\", { enumerable: true, get: function () { return keystore_1.KeyStore; } });\nconst in_memory_key_store_1 = require(\"./in_memory_key_store\");\nObject.defineProperty(exports, \"InMemoryKeyStore\", { enumerable: true, get: function () { return in_memory_key_store_1.InMemoryKeyStore; } });\nconst browser_local_storage_key_store_1 = require(\"./browser_local_storage_key_store\");\nObject.defineProperty(exports, \"BrowserLocalStorageKeyStore\", { enumerable: true, get: function () { return browser_local_storage_key_store_1.BrowserLocalStorageKeyStore; } });\nconst merge_key_store_1 = require(\"./merge_key_store\");\nObject.defineProperty(exports, \"MergeKeyStore\", { enumerable: true, get: function () { return merge_key_store_1.MergeKeyStore; } });\n","\"use strict\";\n/**\n * NEAR RPC API request types and responses\n * @module\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getTransactionLastResult = exports.Provider = exports.IdType = exports.FinalExecutionStatusBasic = exports.ExecutionStatusBasic = void 0;\nvar ExecutionStatusBasic;\n(function (ExecutionStatusBasic) {\n ExecutionStatusBasic[\"Unknown\"] = \"Unknown\";\n ExecutionStatusBasic[\"Pending\"] = \"Pending\";\n ExecutionStatusBasic[\"Failure\"] = \"Failure\";\n})(ExecutionStatusBasic = exports.ExecutionStatusBasic || (exports.ExecutionStatusBasic = {}));\nvar FinalExecutionStatusBasic;\n(function (FinalExecutionStatusBasic) {\n FinalExecutionStatusBasic[\"NotStarted\"] = \"NotStarted\";\n FinalExecutionStatusBasic[\"Started\"] = \"Started\";\n FinalExecutionStatusBasic[\"Failure\"] = \"Failure\";\n})(FinalExecutionStatusBasic = exports.FinalExecutionStatusBasic || (exports.FinalExecutionStatusBasic = {}));\nvar IdType;\n(function (IdType) {\n IdType[\"Transaction\"] = \"transaction\";\n IdType[\"Receipt\"] = \"receipt\";\n})(IdType = exports.IdType || (exports.IdType = {}));\n/** @hidden */\nclass Provider {\n}\nexports.Provider = Provider;\n/** @hidden */\nfunction getTransactionLastResult(txResult) {\n if (typeof txResult.status === 'object' && typeof txResult.status.SuccessValue === 'string') {\n const value = Buffer.from(txResult.status.SuccessValue, 'base64').toString();\n try {\n return JSON.parse(value);\n }\n catch (e) {\n return value;\n }\n }\n return null;\n}\nexports.getTransactionLastResult = getTransactionLastResult;\n","/*!\n * depd\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = depd\n\n/**\n * Create deprecate for namespace in caller.\n */\n\nfunction depd (namespace) {\n if (!namespace) {\n throw new TypeError('argument namespace is required')\n }\n\n function deprecate (message) {\n // no-op in browser\n }\n\n deprecate._file = undefined\n deprecate._ignored = true\n deprecate._namespace = namespace\n deprecate._traced = false\n deprecate._warned = Object.create(null)\n\n deprecate.function = wrapfunction\n deprecate.property = wrapproperty\n\n return deprecate\n}\n\n/**\n * Return a wrapped function in a deprecation message.\n *\n * This is a no-op version of the wrapper, which does nothing but call\n * validation.\n */\n\nfunction wrapfunction (fn, message) {\n if (typeof fn !== 'function') {\n throw new TypeError('argument fn must be a function')\n }\n\n return fn\n}\n\n/**\n * Wrap property in a deprecation message.\n *\n * This is a no-op version of the wrapper, which does nothing but call\n * validation.\n */\n\nfunction wrapproperty (obj, prop, message) {\n if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n throw new TypeError('argument obj must be object')\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(obj, prop)\n\n if (!descriptor) {\n throw new TypeError('must call property on owner object')\n }\n\n if (!descriptor.configurable) {\n throw new TypeError('property must be configurable')\n }\n}\n","/*!\n * depd\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = depd\n\n/**\n * Create deprecate for namespace in caller.\n */\n\nfunction depd (namespace) {\n if (!namespace) {\n throw new TypeError('argument namespace is required')\n }\n\n function deprecate (message) {\n // no-op in browser\n }\n\n deprecate._file = undefined\n deprecate._ignored = true\n deprecate._namespace = namespace\n deprecate._traced = false\n deprecate._warned = Object.create(null)\n\n deprecate.function = wrapfunction\n deprecate.property = wrapproperty\n\n return deprecate\n}\n\n/**\n * Return a wrapped function in a deprecation message.\n *\n * This is a no-op version of the wrapper, which does nothing but call\n * validation.\n */\n\nfunction wrapfunction (fn, message) {\n if (typeof fn !== 'function') {\n throw new TypeError('argument fn must be a function')\n }\n\n return fn\n}\n\n/**\n * Wrap property in a deprecation message.\n *\n * This is a no-op version of the wrapper, which does nothing but call\n * validation.\n */\n\nfunction wrapproperty (obj, prop, message) {\n if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n throw new TypeError('argument obj must be object')\n }\n\n var descriptor = Object.getOwnPropertyDescriptor(obj, prop)\n\n if (!descriptor) {\n throw new TypeError('must call property on owner object')\n }\n\n if (!descriptor.configurable) {\n throw new TypeError('property must be configurable')\n }\n}\n","'use strict'\n/* eslint no-proto: 0 */\nmodule.exports = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties)\n\nfunction setProtoOf (obj, proto) {\n obj.__proto__ = proto\n return obj\n}\n\nfunction mixinProperties (obj, proto) {\n for (var prop in proto) {\n if (!Object.prototype.hasOwnProperty.call(obj, prop)) {\n obj[prop] = proto[prop]\n }\n }\n return obj\n}\n","module.exports={100:\"Continue\",101:\"Switching Protocols\",102:\"Processing\",103:\"Early Hints\",200:\"OK\",201:\"Created\",202:\"Accepted\",203:\"Non-Authoritative Information\",204:\"No Content\",205:\"Reset Content\",206:\"Partial Content\",207:\"Multi-Status\",208:\"Already Reported\",226:\"IM Used\",300:\"Multiple Choices\",301:\"Moved Permanently\",302:\"Found\",303:\"See Other\",304:\"Not Modified\",305:\"Use Proxy\",306:\"(Unused)\",307:\"Temporary Redirect\",308:\"Permanent Redirect\",400:\"Bad Request\",401:\"Unauthorized\",402:\"Payment Required\",403:\"Forbidden\",404:\"Not Found\",405:\"Method Not Allowed\",406:\"Not Acceptable\",407:\"Proxy Authentication Required\",408:\"Request Timeout\",409:\"Conflict\",410:\"Gone\",411:\"Length Required\",412:\"Precondition Failed\",413:\"Payload Too Large\",414:\"URI Too Long\",415:\"Unsupported Media Type\",416:\"Range Not Satisfiable\",417:\"Expectation Failed\",418:\"I'm a teapot\",421:\"Misdirected Request\",422:\"Unprocessable Entity\",423:\"Locked\",424:\"Failed Dependency\",425:\"Unordered Collection\",426:\"Upgrade Required\",428:\"Precondition Required\",429:\"Too Many Requests\",431:\"Request Header Fields Too Large\",451:\"Unavailable For Legal Reasons\",500:\"Internal Server Error\",501:\"Not Implemented\",502:\"Bad Gateway\",503:\"Service Unavailable\",504:\"Gateway Timeout\",505:\"HTTP Version Not Supported\",506:\"Variant Also Negotiates\",507:\"Insufficient Storage\",508:\"Loop Detected\",509:\"Bandwidth Limit Exceeded\",510:\"Not Extended\",511:\"Network Authentication Required\"};","/*!\n * statuses\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2016 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar codes = require('./codes.json')\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = status\n\n// status code to message map\nstatus.STATUS_CODES = codes\n\n// array of status codes\nstatus.codes = populateStatusesMap(status, codes)\n\n// status codes for redirects\nstatus.redirect = {\n 300: true,\n 301: true,\n 302: true,\n 303: true,\n 305: true,\n 307: true,\n 308: true\n}\n\n// status codes for empty bodies\nstatus.empty = {\n 204: true,\n 205: true,\n 304: true\n}\n\n// status codes for when you should retry the request\nstatus.retry = {\n 502: true,\n 503: true,\n 504: true\n}\n\n/**\n * Populate the statuses map for given codes.\n * @private\n */\n\nfunction populateStatusesMap (statuses, codes) {\n var arr = []\n\n Object.keys(codes).forEach(function forEachCode (code) {\n var message = codes[code]\n var status = Number(code)\n\n // Populate properties\n statuses[status] = message\n statuses[message] = status\n statuses[message.toLowerCase()] = status\n\n // Add to array\n arr.push(status)\n })\n\n return arr\n}\n\n/**\n * Get the status code.\n *\n * Given a number, this will throw if it is not a known status\n * code, otherwise the code will be returned. Given a string,\n * the string will be parsed for a number and return the code\n * if valid, otherwise will lookup the code assuming this is\n * the status message.\n *\n * @param {string|number} code\n * @returns {number}\n * @public\n */\n\nfunction status (code) {\n if (typeof code === 'number') {\n if (!status[code]) throw new Error('invalid status code: ' + code)\n return code\n }\n\n if (typeof code !== 'string') {\n throw new TypeError('code must be a number or string')\n }\n\n // '403'\n var n = parseInt(code, 10)\n if (!isNaN(n)) {\n if (!status[n]) throw new Error('invalid status code: ' + n)\n return n\n }\n\n n = status[code.toLowerCase()]\n if (!n) throw new Error('invalid status message: \"' + code + '\"')\n return n\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","/*!\n * toidentifier\n * Copyright(c) 2016 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = toIdentifier\n\n/**\n * Trasform the given string into a JavaScript identifier\n *\n * @param {string} str\n * @returns {string}\n * @public\n */\n\nfunction toIdentifier (str) {\n return str\n .split(' ')\n .map(function (token) {\n return token.slice(0, 1).toUpperCase() + token.slice(1)\n })\n .join('')\n .replace(/[^ _0-9a-z]/gi, '')\n}\n","/*!\n * http-errors\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2016 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar deprecate = require('depd')('http-errors')\nvar setPrototypeOf = require('setprototypeof')\nvar statuses = require('statuses')\nvar inherits = require('inherits')\nvar toIdentifier = require('toidentifier')\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = createError\nmodule.exports.HttpError = createHttpErrorConstructor()\nmodule.exports.isHttpError = createIsHttpErrorFunction(module.exports.HttpError)\n\n// Populate exports for all constructors\npopulateConstructorExports(module.exports, statuses.codes, module.exports.HttpError)\n\n/**\n * Get the code class of a status code.\n * @private\n */\n\nfunction codeClass (status) {\n return Number(String(status).charAt(0) + '00')\n}\n\n/**\n * Create a new HTTP Error.\n *\n * @returns {Error}\n * @public\n */\n\nfunction createError () {\n // so much arity going on ~_~\n var err\n var msg\n var status = 500\n var props = {}\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i]\n if (arg instanceof Error) {\n err = arg\n status = err.status || err.statusCode || status\n continue\n }\n switch (typeof arg) {\n case 'string':\n msg = arg\n break\n case 'number':\n status = arg\n if (i !== 0) {\n deprecate('non-first-argument status code; replace with createError(' + arg + ', ...)')\n }\n break\n case 'object':\n props = arg\n break\n }\n }\n\n if (typeof status === 'number' && (status < 400 || status >= 600)) {\n deprecate('non-error status code; use only 4xx or 5xx status codes')\n }\n\n if (typeof status !== 'number' ||\n (!statuses[status] && (status < 400 || status >= 600))) {\n status = 500\n }\n\n // constructor\n var HttpError = createError[status] || createError[codeClass(status)]\n\n if (!err) {\n // create error\n err = HttpError\n ? new HttpError(msg)\n : new Error(msg || statuses[status])\n Error.captureStackTrace(err, createError)\n }\n\n if (!HttpError || !(err instanceof HttpError) || err.status !== status) {\n // add properties to generic error\n err.expose = status < 500\n err.status = err.statusCode = status\n }\n\n for (var key in props) {\n if (key !== 'status' && key !== 'statusCode') {\n err[key] = props[key]\n }\n }\n\n return err\n}\n\n/**\n * Create HTTP error abstract base class.\n * @private\n */\n\nfunction createHttpErrorConstructor () {\n function HttpError () {\n throw new TypeError('cannot construct abstract class')\n }\n\n inherits(HttpError, Error)\n\n return HttpError\n}\n\n/**\n * Create a constructor for a client error.\n * @private\n */\n\nfunction createClientErrorConstructor (HttpError, name, code) {\n var className = toClassName(name)\n\n function ClientError (message) {\n // create the error object\n var msg = message != null ? message : statuses[code]\n var err = new Error(msg)\n\n // capture a stack trace to the construction point\n Error.captureStackTrace(err, ClientError)\n\n // adjust the [[Prototype]]\n setPrototypeOf(err, ClientError.prototype)\n\n // redefine the error message\n Object.defineProperty(err, 'message', {\n enumerable: true,\n configurable: true,\n value: msg,\n writable: true\n })\n\n // redefine the error name\n Object.defineProperty(err, 'name', {\n enumerable: false,\n configurable: true,\n value: className,\n writable: true\n })\n\n return err\n }\n\n inherits(ClientError, HttpError)\n nameFunc(ClientError, className)\n\n ClientError.prototype.status = code\n ClientError.prototype.statusCode = code\n ClientError.prototype.expose = true\n\n return ClientError\n}\n\n/**\n * Create function to test is a value is a HttpError.\n * @private\n */\n\nfunction createIsHttpErrorFunction (HttpError) {\n return function isHttpError (val) {\n if (!val || typeof val !== 'object') {\n return false\n }\n\n if (val instanceof HttpError) {\n return true\n }\n\n return val instanceof Error &&\n typeof val.expose === 'boolean' &&\n typeof val.statusCode === 'number' && val.status === val.statusCode\n }\n}\n\n/**\n * Create a constructor for a server error.\n * @private\n */\n\nfunction createServerErrorConstructor (HttpError, name, code) {\n var className = toClassName(name)\n\n function ServerError (message) {\n // create the error object\n var msg = message != null ? message : statuses[code]\n var err = new Error(msg)\n\n // capture a stack trace to the construction point\n Error.captureStackTrace(err, ServerError)\n\n // adjust the [[Prototype]]\n setPrototypeOf(err, ServerError.prototype)\n\n // redefine the error message\n Object.defineProperty(err, 'message', {\n enumerable: true,\n configurable: true,\n value: msg,\n writable: true\n })\n\n // redefine the error name\n Object.defineProperty(err, 'name', {\n enumerable: false,\n configurable: true,\n value: className,\n writable: true\n })\n\n return err\n }\n\n inherits(ServerError, HttpError)\n nameFunc(ServerError, className)\n\n ServerError.prototype.status = code\n ServerError.prototype.statusCode = code\n ServerError.prototype.expose = false\n\n return ServerError\n}\n\n/**\n * Set the name of a function, if possible.\n * @private\n */\n\nfunction nameFunc (func, name) {\n var desc = Object.getOwnPropertyDescriptor(func, 'name')\n\n if (desc && desc.configurable) {\n desc.value = name\n Object.defineProperty(func, 'name', desc)\n }\n}\n\n/**\n * Populate the exports object with constructors for every error class.\n * @private\n */\n\nfunction populateConstructorExports (exports, codes, HttpError) {\n codes.forEach(function forEachCode (code) {\n var CodeError\n var name = toIdentifier(statuses[code])\n\n switch (codeClass(code)) {\n case 400:\n CodeError = createClientErrorConstructor(HttpError, name, code)\n break\n case 500:\n CodeError = createServerErrorConstructor(HttpError, name, code)\n break\n }\n\n if (CodeError) {\n // export the constructor\n exports[code] = CodeError\n exports[name] = CodeError\n }\n })\n\n // backwards-compatibility\n exports[\"I'mateapot\"] = deprecate.function(exports.ImATeapot,\n '\"I\\'mateapot\"; use \"ImATeapot\" instead')\n}\n\n/**\n * Get a class name from a name identifier.\n * @private\n */\n\nfunction toClassName (name) {\n return name.substr(-5) !== 'Error'\n ? name + 'Error'\n : name\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nasync function exponentialBackoff(startWaitTime, retryNumber, waitBackoff, getResult) {\n // TODO: jitter?\n let waitTime = startWaitTime;\n for (let i = 0; i < retryNumber; i++) {\n const result = await getResult();\n if (result) {\n return result;\n }\n await sleep(waitTime);\n waitTime *= waitBackoff;\n }\n return null;\n}\nexports.default = exponentialBackoff;\n// Sleep given number of millis.\nfunction sleep(millis) {\n return new Promise(resolve => setTimeout(resolve, millis));\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.logWarning = exports.ErrorContext = exports.TypedError = exports.ArgumentTypeError = exports.PositionalArgsError = void 0;\nclass PositionalArgsError extends Error {\n constructor() {\n super('Contract method calls expect named arguments wrapped in object, e.g. { argName1: argValue1, argName2: argValue2 }');\n }\n}\nexports.PositionalArgsError = PositionalArgsError;\nclass ArgumentTypeError extends Error {\n constructor(argName, argType, argValue) {\n super(`Expected ${argType} for '${argName}' argument, but got '${JSON.stringify(argValue)}'`);\n }\n}\nexports.ArgumentTypeError = ArgumentTypeError;\nclass TypedError extends Error {\n constructor(message, type, context) {\n super(message);\n this.type = type || 'UntypedError';\n this.context = context;\n }\n}\nexports.TypedError = TypedError;\nclass ErrorContext {\n constructor(transactionHash) {\n this.transactionHash = transactionHash;\n }\n}\nexports.ErrorContext = ErrorContext;\nfunction logWarning(...args) {\n if (!process.env['NEAR_NO_LOGS']) {\n console.warn(...args);\n }\n}\nexports.logWarning = logWarning;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fetchJson = void 0;\nconst http_errors_1 = __importDefault(require(\"http-errors\"));\nconst exponential_backoff_1 = __importDefault(require(\"./exponential-backoff\"));\nconst providers_1 = require(\"../providers\");\nconst errors_1 = require(\"./errors\");\nconst START_WAIT_TIME_MS = 1000;\nconst BACKOFF_MULTIPLIER = 1.5;\nconst RETRY_NUMBER = 10;\nasync function fetchJson(connection, json) {\n let url = null;\n if (typeof (connection) === 'string') {\n url = connection;\n }\n else {\n url = connection.url;\n }\n const response = await exponential_backoff_1.default(START_WAIT_TIME_MS, RETRY_NUMBER, BACKOFF_MULTIPLIER, async () => {\n try {\n const response = await fetch(url, {\n method: json ? 'POST' : 'GET',\n body: json ? json : undefined,\n headers: { 'Content-Type': 'application/json; charset=utf-8' }\n });\n if (!response.ok) {\n if (response.status === 503) {\n errors_1.logWarning(`Retrying HTTP request for ${url} as it's not available now`);\n return null;\n }\n throw http_errors_1.default(response.status, await response.text());\n }\n return response;\n }\n catch (error) {\n if (error.toString().includes('FetchError') || error.toString().includes('Failed to fetch')) {\n errors_1.logWarning(`Retrying HTTP request for ${url} because of error: ${error}`);\n return null;\n }\n throw error;\n }\n });\n if (!response) {\n throw new providers_1.TypedError(`Exceeded ${RETRY_NUMBER} attempts for ${url}.`, 'RetriesExceeded');\n }\n return await response.json();\n}\nexports.fetchJson = fetchJson;\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.Mustache = factory());\n}(this, (function () { 'use strict';\n\n /*!\n * mustache.js - Logic-less {{mustache}} templates with JavaScript\n * http://github.com/janl/mustache.js\n */\n\n var objectToString = Object.prototype.toString;\n var isArray = Array.isArray || function isArrayPolyfill (object) {\n return objectToString.call(object) === '[object Array]';\n };\n\n function isFunction (object) {\n return typeof object === 'function';\n }\n\n /**\n * More correct typeof string handling array\n * which normally returns typeof 'object'\n */\n function typeStr (obj) {\n return isArray(obj) ? 'array' : typeof obj;\n }\n\n function escapeRegExp (string) {\n return string.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, '\\\\$&');\n }\n\n /**\n * Null safe way of checking whether or not an object,\n * including its prototype, has a given property\n */\n function hasProperty (obj, propName) {\n return obj != null && typeof obj === 'object' && (propName in obj);\n }\n\n /**\n * Safe way of detecting whether or not the given thing is a primitive and\n * whether it has the given property\n */\n function primitiveHasOwnProperty (primitive, propName) {\n return (\n primitive != null\n && typeof primitive !== 'object'\n && primitive.hasOwnProperty\n && primitive.hasOwnProperty(propName)\n );\n }\n\n // Workaround for https://issues.apache.org/jira/browse/COUCHDB-577\n // See https://github.com/janl/mustache.js/issues/189\n var regExpTest = RegExp.prototype.test;\n function testRegExp (re, string) {\n return regExpTest.call(re, string);\n }\n\n var nonSpaceRe = /\\S/;\n function isWhitespace (string) {\n return !testRegExp(nonSpaceRe, string);\n }\n\n var entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/',\n '`': '`',\n '=': '='\n };\n\n function escapeHtml (string) {\n return String(string).replace(/[&<>\"'`=\\/]/g, function fromEntityMap (s) {\n return entityMap[s];\n });\n }\n\n var whiteRe = /\\s*/;\n var spaceRe = /\\s+/;\n var equalsRe = /\\s*=/;\n var curlyRe = /\\s*\\}/;\n var tagRe = /#|\\^|\\/|>|\\{|&|=|!/;\n\n /**\n * Breaks up the given `template` string into a tree of tokens. If the `tags`\n * argument is given here it must be an array with two string values: the\n * opening and closing tags used in the template (e.g. [ \"<%\", \"%>\" ]). Of\n * course, the default is to use mustaches (i.e. mustache.tags).\n *\n * A token is an array with at least 4 elements. The first element is the\n * mustache symbol that was used inside the tag, e.g. \"#\" or \"&\". If the tag\n * did not contain a symbol (i.e. {{myValue}}) this element is \"name\". For\n * all text that appears outside a symbol this element is \"text\".\n *\n * The second element of a token is its \"value\". For mustache tags this is\n * whatever else was inside the tag besides the opening symbol. For text tokens\n * this is the text itself.\n *\n * The third and fourth elements of the token are the start and end indices,\n * respectively, of the token in the original template.\n *\n * Tokens that are the root node of a subtree contain two more elements: 1) an\n * array of tokens in the subtree and 2) the index in the original template at\n * which the closing tag for that section begins.\n *\n * Tokens for partials also contain two more elements: 1) a string value of\n * indendation prior to that tag and 2) the index of that tag on that line -\n * eg a value of 2 indicates the partial is the third tag on this line.\n */\n function parseTemplate (template, tags) {\n if (!template)\n return [];\n var lineHasNonSpace = false;\n var sections = []; // Stack to hold section tokens\n var tokens = []; // Buffer to hold the tokens\n var spaces = []; // Indices of whitespace tokens on the current line\n var hasTag = false; // Is there a {{tag}} on the current line?\n var nonSpace = false; // Is there a non-space char on the current line?\n var indentation = ''; // Tracks indentation for tags that use it\n var tagIndex = 0; // Stores a count of number of tags encountered on a line\n\n // Strips all whitespace tokens array for the current line\n // if there was a {{#tag}} on it and otherwise only space.\n function stripSpace () {\n if (hasTag && !nonSpace) {\n while (spaces.length)\n delete tokens[spaces.pop()];\n } else {\n spaces = [];\n }\n\n hasTag = false;\n nonSpace = false;\n }\n\n var openingTagRe, closingTagRe, closingCurlyRe;\n function compileTags (tagsToCompile) {\n if (typeof tagsToCompile === 'string')\n tagsToCompile = tagsToCompile.split(spaceRe, 2);\n\n if (!isArray(tagsToCompile) || tagsToCompile.length !== 2)\n throw new Error('Invalid tags: ' + tagsToCompile);\n\n openingTagRe = new RegExp(escapeRegExp(tagsToCompile[0]) + '\\\\s*');\n closingTagRe = new RegExp('\\\\s*' + escapeRegExp(tagsToCompile[1]));\n closingCurlyRe = new RegExp('\\\\s*' + escapeRegExp('}' + tagsToCompile[1]));\n }\n\n compileTags(tags || mustache.tags);\n\n var scanner = new Scanner(template);\n\n var start, type, value, chr, token, openSection;\n while (!scanner.eos()) {\n start = scanner.pos;\n\n // Match any text between tags.\n value = scanner.scanUntil(openingTagRe);\n\n if (value) {\n for (var i = 0, valueLength = value.length; i < valueLength; ++i) {\n chr = value.charAt(i);\n\n if (isWhitespace(chr)) {\n spaces.push(tokens.length);\n indentation += chr;\n } else {\n nonSpace = true;\n lineHasNonSpace = true;\n indentation += ' ';\n }\n\n tokens.push([ 'text', chr, start, start + 1 ]);\n start += 1;\n\n // Check for whitespace on the current line.\n if (chr === '\\n') {\n stripSpace();\n indentation = '';\n tagIndex = 0;\n lineHasNonSpace = false;\n }\n }\n }\n\n // Match the opening tag.\n if (!scanner.scan(openingTagRe))\n break;\n\n hasTag = true;\n\n // Get the tag type.\n type = scanner.scan(tagRe) || 'name';\n scanner.scan(whiteRe);\n\n // Get the tag value.\n if (type === '=') {\n value = scanner.scanUntil(equalsRe);\n scanner.scan(equalsRe);\n scanner.scanUntil(closingTagRe);\n } else if (type === '{') {\n value = scanner.scanUntil(closingCurlyRe);\n scanner.scan(curlyRe);\n scanner.scanUntil(closingTagRe);\n type = '&';\n } else {\n value = scanner.scanUntil(closingTagRe);\n }\n\n // Match the closing tag.\n if (!scanner.scan(closingTagRe))\n throw new Error('Unclosed tag at ' + scanner.pos);\n\n if (type == '>') {\n token = [ type, value, start, scanner.pos, indentation, tagIndex, lineHasNonSpace ];\n } else {\n token = [ type, value, start, scanner.pos ];\n }\n tagIndex++;\n tokens.push(token);\n\n if (type === '#' || type === '^') {\n sections.push(token);\n } else if (type === '/') {\n // Check section nesting.\n openSection = sections.pop();\n\n if (!openSection)\n throw new Error('Unopened section \"' + value + '\" at ' + start);\n\n if (openSection[1] !== value)\n throw new Error('Unclosed section \"' + openSection[1] + '\" at ' + start);\n } else if (type === 'name' || type === '{' || type === '&') {\n nonSpace = true;\n } else if (type === '=') {\n // Set the tags for the next time around.\n compileTags(value);\n }\n }\n\n stripSpace();\n\n // Make sure there are no open sections when we're done.\n openSection = sections.pop();\n\n if (openSection)\n throw new Error('Unclosed section \"' + openSection[1] + '\" at ' + scanner.pos);\n\n return nestTokens(squashTokens(tokens));\n }\n\n /**\n * Combines the values of consecutive text tokens in the given `tokens` array\n * to a single token.\n */\n function squashTokens (tokens) {\n var squashedTokens = [];\n\n var token, lastToken;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n token = tokens[i];\n\n if (token) {\n if (token[0] === 'text' && lastToken && lastToken[0] === 'text') {\n lastToken[1] += token[1];\n lastToken[3] = token[3];\n } else {\n squashedTokens.push(token);\n lastToken = token;\n }\n }\n }\n\n return squashedTokens;\n }\n\n /**\n * Forms the given array of `tokens` into a nested tree structure where\n * tokens that represent a section have two additional items: 1) an array of\n * all tokens that appear in that section and 2) the index in the original\n * template that represents the end of that section.\n */\n function nestTokens (tokens) {\n var nestedTokens = [];\n var collector = nestedTokens;\n var sections = [];\n\n var token, section;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n token = tokens[i];\n\n switch (token[0]) {\n case '#':\n case '^':\n collector.push(token);\n sections.push(token);\n collector = token[4] = [];\n break;\n case '/':\n section = sections.pop();\n section[5] = token[2];\n collector = sections.length > 0 ? sections[sections.length - 1][4] : nestedTokens;\n break;\n default:\n collector.push(token);\n }\n }\n\n return nestedTokens;\n }\n\n /**\n * A simple string scanner that is used by the template parser to find\n * tokens in template strings.\n */\n function Scanner (string) {\n this.string = string;\n this.tail = string;\n this.pos = 0;\n }\n\n /**\n * Returns `true` if the tail is empty (end of string).\n */\n Scanner.prototype.eos = function eos () {\n return this.tail === '';\n };\n\n /**\n * Tries to match the given regular expression at the current position.\n * Returns the matched text if it can match, the empty string otherwise.\n */\n Scanner.prototype.scan = function scan (re) {\n var match = this.tail.match(re);\n\n if (!match || match.index !== 0)\n return '';\n\n var string = match[0];\n\n this.tail = this.tail.substring(string.length);\n this.pos += string.length;\n\n return string;\n };\n\n /**\n * Skips all text until the given regular expression can be matched. Returns\n * the skipped string, which is the entire tail if no match can be made.\n */\n Scanner.prototype.scanUntil = function scanUntil (re) {\n var index = this.tail.search(re), match;\n\n switch (index) {\n case -1:\n match = this.tail;\n this.tail = '';\n break;\n case 0:\n match = '';\n break;\n default:\n match = this.tail.substring(0, index);\n this.tail = this.tail.substring(index);\n }\n\n this.pos += match.length;\n\n return match;\n };\n\n /**\n * Represents a rendering context by wrapping a view object and\n * maintaining a reference to the parent context.\n */\n function Context (view, parentContext) {\n this.view = view;\n this.cache = { '.': this.view };\n this.parent = parentContext;\n }\n\n /**\n * Creates a new context using the given view with this context\n * as the parent.\n */\n Context.prototype.push = function push (view) {\n return new Context(view, this);\n };\n\n /**\n * Returns the value of the given name in this context, traversing\n * up the context hierarchy if the value is absent in this context's view.\n */\n Context.prototype.lookup = function lookup (name) {\n var cache = this.cache;\n\n var value;\n if (cache.hasOwnProperty(name)) {\n value = cache[name];\n } else {\n var context = this, intermediateValue, names, index, lookupHit = false;\n\n while (context) {\n if (name.indexOf('.') > 0) {\n intermediateValue = context.view;\n names = name.split('.');\n index = 0;\n\n /**\n * Using the dot notion path in `name`, we descend through the\n * nested objects.\n *\n * To be certain that the lookup has been successful, we have to\n * check if the last object in the path actually has the property\n * we are looking for. We store the result in `lookupHit`.\n *\n * This is specially necessary for when the value has been set to\n * `undefined` and we want to avoid looking up parent contexts.\n *\n * In the case where dot notation is used, we consider the lookup\n * to be successful even if the last \"object\" in the path is\n * not actually an object but a primitive (e.g., a string, or an\n * integer), because it is sometimes useful to access a property\n * of an autoboxed primitive, such as the length of a string.\n **/\n while (intermediateValue != null && index < names.length) {\n if (index === names.length - 1)\n lookupHit = (\n hasProperty(intermediateValue, names[index])\n || primitiveHasOwnProperty(intermediateValue, names[index])\n );\n\n intermediateValue = intermediateValue[names[index++]];\n }\n } else {\n intermediateValue = context.view[name];\n\n /**\n * Only checking against `hasProperty`, which always returns `false` if\n * `context.view` is not an object. Deliberately omitting the check\n * against `primitiveHasOwnProperty` if dot notation is not used.\n *\n * Consider this example:\n * ```\n * Mustache.render(\"The length of a football field is {{#length}}{{length}}{{/length}}.\", {length: \"100 yards\"})\n * ```\n *\n * If we were to check also against `primitiveHasOwnProperty`, as we do\n * in the dot notation case, then render call would return:\n *\n * \"The length of a football field is 9.\"\n *\n * rather than the expected:\n *\n * \"The length of a football field is 100 yards.\"\n **/\n lookupHit = hasProperty(context.view, name);\n }\n\n if (lookupHit) {\n value = intermediateValue;\n break;\n }\n\n context = context.parent;\n }\n\n cache[name] = value;\n }\n\n if (isFunction(value))\n value = value.call(this.view);\n\n return value;\n };\n\n /**\n * A Writer knows how to take a stream of tokens and render them to a\n * string, given a context. It also maintains a cache of templates to\n * avoid the need to parse the same template twice.\n */\n function Writer () {\n this.templateCache = {\n _cache: {},\n set: function set (key, value) {\n this._cache[key] = value;\n },\n get: function get (key) {\n return this._cache[key];\n },\n clear: function clear () {\n this._cache = {};\n }\n };\n }\n\n /**\n * Clears all cached templates in this writer.\n */\n Writer.prototype.clearCache = function clearCache () {\n if (typeof this.templateCache !== 'undefined') {\n this.templateCache.clear();\n }\n };\n\n /**\n * Parses and caches the given `template` according to the given `tags` or\n * `mustache.tags` if `tags` is omitted, and returns the array of tokens\n * that is generated from the parse.\n */\n Writer.prototype.parse = function parse (template, tags) {\n var cache = this.templateCache;\n var cacheKey = template + ':' + (tags || mustache.tags).join(':');\n var isCacheEnabled = typeof cache !== 'undefined';\n var tokens = isCacheEnabled ? cache.get(cacheKey) : undefined;\n\n if (tokens == undefined) {\n tokens = parseTemplate(template, tags);\n isCacheEnabled && cache.set(cacheKey, tokens);\n }\n return tokens;\n };\n\n /**\n * High-level method that is used to render the given `template` with\n * the given `view`.\n *\n * The optional `partials` argument may be an object that contains the\n * names and templates of partials that are used in the template. It may\n * also be a function that is used to load partial templates on the fly\n * that takes a single argument: the name of the partial.\n *\n * If the optional `config` argument is given here, then it should be an\n * object with a `tags` attribute or an `escape` attribute or both.\n * If an array is passed, then it will be interpreted the same way as\n * a `tags` attribute on a `config` object.\n *\n * The `tags` attribute of a `config` object must be an array with two\n * string values: the opening and closing tags used in the template (e.g.\n * [ \"<%\", \"%>\" ]). The default is to mustache.tags.\n *\n * The `escape` attribute of a `config` object must be a function which\n * accepts a string as input and outputs a safely escaped string.\n * If an `escape` function is not provided, then an HTML-safe string\n * escaping function is used as the default.\n */\n Writer.prototype.render = function render (template, view, partials, config) {\n var tags = this.getConfigTags(config);\n var tokens = this.parse(template, tags);\n var context = (view instanceof Context) ? view : new Context(view, undefined);\n return this.renderTokens(tokens, context, partials, template, config);\n };\n\n /**\n * Low-level method that renders the given array of `tokens` using\n * the given `context` and `partials`.\n *\n * Note: The `originalTemplate` is only ever used to extract the portion\n * of the original template that was contained in a higher-order section.\n * If the template doesn't use higher-order sections, this argument may\n * be omitted.\n */\n Writer.prototype.renderTokens = function renderTokens (tokens, context, partials, originalTemplate, config) {\n var buffer = '';\n\n var token, symbol, value;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n value = undefined;\n token = tokens[i];\n symbol = token[0];\n\n if (symbol === '#') value = this.renderSection(token, context, partials, originalTemplate, config);\n else if (symbol === '^') value = this.renderInverted(token, context, partials, originalTemplate, config);\n else if (symbol === '>') value = this.renderPartial(token, context, partials, config);\n else if (symbol === '&') value = this.unescapedValue(token, context);\n else if (symbol === 'name') value = this.escapedValue(token, context, config);\n else if (symbol === 'text') value = this.rawValue(token);\n\n if (value !== undefined)\n buffer += value;\n }\n\n return buffer;\n };\n\n Writer.prototype.renderSection = function renderSection (token, context, partials, originalTemplate, config) {\n var self = this;\n var buffer = '';\n var value = context.lookup(token[1]);\n\n // This function is used to render an arbitrary template\n // in the current context by higher-order sections.\n function subRender (template) {\n return self.render(template, context, partials, config);\n }\n\n if (!value) return;\n\n if (isArray(value)) {\n for (var j = 0, valueLength = value.length; j < valueLength; ++j) {\n buffer += this.renderTokens(token[4], context.push(value[j]), partials, originalTemplate, config);\n }\n } else if (typeof value === 'object' || typeof value === 'string' || typeof value === 'number') {\n buffer += this.renderTokens(token[4], context.push(value), partials, originalTemplate, config);\n } else if (isFunction(value)) {\n if (typeof originalTemplate !== 'string')\n throw new Error('Cannot use higher-order sections without the original template');\n\n // Extract the portion of the original template that the section contains.\n value = value.call(context.view, originalTemplate.slice(token[3], token[5]), subRender);\n\n if (value != null)\n buffer += value;\n } else {\n buffer += this.renderTokens(token[4], context, partials, originalTemplate, config);\n }\n return buffer;\n };\n\n Writer.prototype.renderInverted = function renderInverted (token, context, partials, originalTemplate, config) {\n var value = context.lookup(token[1]);\n\n // Use JavaScript's definition of falsy. Include empty arrays.\n // See https://github.com/janl/mustache.js/issues/186\n if (!value || (isArray(value) && value.length === 0))\n return this.renderTokens(token[4], context, partials, originalTemplate, config);\n };\n\n Writer.prototype.indentPartial = function indentPartial (partial, indentation, lineHasNonSpace) {\n var filteredIndentation = indentation.replace(/[^ \\t]/g, '');\n var partialByNl = partial.split('\\n');\n for (var i = 0; i < partialByNl.length; i++) {\n if (partialByNl[i].length && (i > 0 || !lineHasNonSpace)) {\n partialByNl[i] = filteredIndentation + partialByNl[i];\n }\n }\n return partialByNl.join('\\n');\n };\n\n Writer.prototype.renderPartial = function renderPartial (token, context, partials, config) {\n if (!partials) return;\n var tags = this.getConfigTags(config);\n\n var value = isFunction(partials) ? partials(token[1]) : partials[token[1]];\n if (value != null) {\n var lineHasNonSpace = token[6];\n var tagIndex = token[5];\n var indentation = token[4];\n var indentedValue = value;\n if (tagIndex == 0 && indentation) {\n indentedValue = this.indentPartial(value, indentation, lineHasNonSpace);\n }\n var tokens = this.parse(indentedValue, tags);\n return this.renderTokens(tokens, context, partials, indentedValue, config);\n }\n };\n\n Writer.prototype.unescapedValue = function unescapedValue (token, context) {\n var value = context.lookup(token[1]);\n if (value != null)\n return value;\n };\n\n Writer.prototype.escapedValue = function escapedValue (token, context, config) {\n var escape = this.getConfigEscape(config) || mustache.escape;\n var value = context.lookup(token[1]);\n if (value != null)\n return (typeof value === 'number' && escape === mustache.escape) ? String(value) : escape(value);\n };\n\n Writer.prototype.rawValue = function rawValue (token) {\n return token[1];\n };\n\n Writer.prototype.getConfigTags = function getConfigTags (config) {\n if (isArray(config)) {\n return config;\n }\n else if (config && typeof config === 'object') {\n return config.tags;\n }\n else {\n return undefined;\n }\n };\n\n Writer.prototype.getConfigEscape = function getConfigEscape (config) {\n if (config && typeof config === 'object' && !isArray(config)) {\n return config.escape;\n }\n else {\n return undefined;\n }\n };\n\n var mustache = {\n name: 'mustache.js',\n version: '4.2.0',\n tags: [ '{{', '}}' ],\n clearCache: undefined,\n escape: undefined,\n parse: undefined,\n render: undefined,\n Scanner: undefined,\n Context: undefined,\n Writer: undefined,\n /**\n * Allows a user to override the default caching strategy, by providing an\n * object with set, get and clear methods. This can also be used to disable\n * the cache by setting it to the literal `undefined`.\n */\n set templateCache (cache) {\n defaultWriter.templateCache = cache;\n },\n /**\n * Gets the default or overridden caching object from the default writer.\n */\n get templateCache () {\n return defaultWriter.templateCache;\n }\n };\n\n // All high-level mustache.* functions use this writer.\n var defaultWriter = new Writer();\n\n /**\n * Clears all cached templates in the default writer.\n */\n mustache.clearCache = function clearCache () {\n return defaultWriter.clearCache();\n };\n\n /**\n * Parses and caches the given template in the default writer and returns the\n * array of tokens it contains. Doing this ahead of time avoids the need to\n * parse templates on the fly as they are rendered.\n */\n mustache.parse = function parse (template, tags) {\n return defaultWriter.parse(template, tags);\n };\n\n /**\n * Renders the `template` with the given `view`, `partials`, and `config`\n * using the default writer.\n */\n mustache.render = function render (template, view, partials, config) {\n if (typeof template !== 'string') {\n throw new TypeError('Invalid template! Template should be a \"string\" ' +\n 'but \"' + typeStr(template) + '\" was given as the first ' +\n 'argument for mustache#render(template, view, partials)');\n }\n\n return defaultWriter.render(template, view, partials, config);\n };\n\n // Export the escaping function so that the user may override it.\n // See https://github.com/janl/mustache.js/issues/244\n mustache.escape = escapeHtml;\n\n // Export these mainly for testing, but also for advanced usage.\n mustache.Scanner = Scanner;\n mustache.Context = Context;\n mustache.Writer = Writer;\n\n return mustache;\n\n})));\n","module.exports={schema:{BadUTF16:{name:\"BadUTF16\",subtypes:[],props:{}},BadUTF8:{name:\"BadUTF8\",subtypes:[],props:{}},BalanceExceeded:{name:\"BalanceExceeded\",subtypes:[],props:{}},BreakpointTrap:{name:\"BreakpointTrap\",subtypes:[],props:{}},CacheError:{name:\"CacheError\",subtypes:[\"ReadError\",\"WriteError\",\"DeserializationError\",\"SerializationError\"],props:{}},CallIndirectOOB:{name:\"CallIndirectOOB\",subtypes:[],props:{}},CannotAppendActionToJointPromise:{name:\"CannotAppendActionToJointPromise\",subtypes:[],props:{}},CannotReturnJointPromise:{name:\"CannotReturnJointPromise\",subtypes:[],props:{}},CodeDoesNotExist:{name:\"CodeDoesNotExist\",subtypes:[],props:{account_id:\"\"}},CompilationError:{name:\"CompilationError\",subtypes:[\"CodeDoesNotExist\",\"PrepareError\",\"WasmerCompileError\"],props:{}},ContractSizeExceeded:{name:\"ContractSizeExceeded\",subtypes:[],props:{limit:\"\",size:\"\"}},Deprecated:{name:\"Deprecated\",subtypes:[],props:{method_name:\"\"}},Deserialization:{name:\"Deserialization\",subtypes:[],props:{}},DeserializationError:{name:\"DeserializationError\",subtypes:[],props:{}},EmptyMethodName:{name:\"EmptyMethodName\",subtypes:[],props:{}},FunctionCallError:{name:\"FunctionCallError\",subtypes:[\"CompilationError\",\"LinkError\",\"MethodResolveError\",\"WasmTrap\",\"WasmUnknownError\",\"HostError\",\"EvmError\"],props:{}},GasExceeded:{name:\"GasExceeded\",subtypes:[],props:{}},GasInstrumentation:{name:\"GasInstrumentation\",subtypes:[],props:{}},GasLimitExceeded:{name:\"GasLimitExceeded\",subtypes:[],props:{}},GenericTrap:{name:\"GenericTrap\",subtypes:[],props:{}},GuestPanic:{name:\"GuestPanic\",subtypes:[],props:{panic_msg:\"\"}},HostError:{name:\"HostError\",subtypes:[\"BadUTF16\",\"BadUTF8\",\"GasExceeded\",\"GasLimitExceeded\",\"BalanceExceeded\",\"EmptyMethodName\",\"GuestPanic\",\"IntegerOverflow\",\"InvalidPromiseIndex\",\"CannotAppendActionToJointPromise\",\"CannotReturnJointPromise\",\"InvalidPromiseResultIndex\",\"InvalidRegisterId\",\"IteratorWasInvalidated\",\"MemoryAccessViolation\",\"InvalidReceiptIndex\",\"InvalidIteratorIndex\",\"InvalidAccountId\",\"InvalidMethodName\",\"InvalidPublicKey\",\"ProhibitedInView\",\"NumberOfLogsExceeded\",\"KeyLengthExceeded\",\"ValueLengthExceeded\",\"TotalLogLengthExceeded\",\"NumberPromisesExceeded\",\"NumberInputDataDependenciesExceeded\",\"ReturnedValueLengthExceeded\",\"ContractSizeExceeded\",\"Deprecated\"],props:{}},IllegalArithmetic:{name:\"IllegalArithmetic\",subtypes:[],props:{}},IncorrectCallIndirectSignature:{name:\"IncorrectCallIndirectSignature\",subtypes:[],props:{}},Instantiate:{name:\"Instantiate\",subtypes:[],props:{}},IntegerOverflow:{name:\"IntegerOverflow\",subtypes:[],props:{}},InternalMemoryDeclared:{name:\"InternalMemoryDeclared\",subtypes:[],props:{}},InvalidAccountId:{name:\"InvalidAccountId\",subtypes:[],props:{account_id:\"\"}},InvalidIteratorIndex:{name:\"InvalidIteratorIndex\",subtypes:[],props:{iterator_index:\"\"}},InvalidMethodName:{name:\"InvalidMethodName\",subtypes:[],props:{}},InvalidPromiseIndex:{name:\"InvalidPromiseIndex\",subtypes:[],props:{promise_idx:\"\"}},InvalidPromiseResultIndex:{name:\"InvalidPromiseResultIndex\",subtypes:[],props:{result_idx:\"\"}},InvalidPublicKey:{name:\"InvalidPublicKey\",subtypes:[],props:{}},InvalidReceiptIndex:{name:\"InvalidReceiptIndex\",subtypes:[],props:{receipt_index:\"\"}},InvalidRegisterId:{name:\"InvalidRegisterId\",subtypes:[],props:{register_id:\"\"}},IteratorWasInvalidated:{name:\"IteratorWasInvalidated\",subtypes:[],props:{iterator_index:\"\"}},KeyLengthExceeded:{name:\"KeyLengthExceeded\",subtypes:[],props:{length:\"\",limit:\"\"}},LinkError:{name:\"LinkError\",subtypes:[],props:{msg:\"\"}},Memory:{name:\"Memory\",subtypes:[],props:{}},MemoryAccessViolation:{name:\"MemoryAccessViolation\",subtypes:[],props:{}},MemoryOutOfBounds:{name:\"MemoryOutOfBounds\",subtypes:[],props:{}},MethodEmptyName:{name:\"MethodEmptyName\",subtypes:[],props:{}},MethodInvalidSignature:{name:\"MethodInvalidSignature\",subtypes:[],props:{}},MethodNotFound:{name:\"MethodNotFound\",subtypes:[],props:{}},MethodResolveError:{name:\"MethodResolveError\",subtypes:[\"MethodEmptyName\",\"MethodUTF8Error\",\"MethodNotFound\",\"MethodInvalidSignature\"],props:{}},MethodUTF8Error:{name:\"MethodUTF8Error\",subtypes:[],props:{}},MisalignedAtomicAccess:{name:\"MisalignedAtomicAccess\",subtypes:[],props:{}},NumberInputDataDependenciesExceeded:{name:\"NumberInputDataDependenciesExceeded\",subtypes:[],props:{limit:\"\",number_of_input_data_dependencies:\"\"}},NumberOfLogsExceeded:{name:\"NumberOfLogsExceeded\",subtypes:[],props:{limit:\"\"}},NumberPromisesExceeded:{name:\"NumberPromisesExceeded\",subtypes:[],props:{limit:\"\",number_of_promises:\"\"}},PrepareError:{name:\"PrepareError\",subtypes:[\"Serialization\",\"Deserialization\",\"InternalMemoryDeclared\",\"GasInstrumentation\",\"StackHeightInstrumentation\",\"Instantiate\",\"Memory\"],props:{}},ProhibitedInView:{name:\"ProhibitedInView\",subtypes:[],props:{method_name:\"\"}},ReadError:{name:\"ReadError\",subtypes:[],props:{}},ReturnedValueLengthExceeded:{name:\"ReturnedValueLengthExceeded\",subtypes:[],props:{length:\"\",limit:\"\"}},Serialization:{name:\"Serialization\",subtypes:[],props:{}},SerializationError:{name:\"SerializationError\",subtypes:[],props:{hash:\"\"}},StackHeightInstrumentation:{name:\"StackHeightInstrumentation\",subtypes:[],props:{}},StackOverflow:{name:\"StackOverflow\",subtypes:[],props:{}},TotalLogLengthExceeded:{name:\"TotalLogLengthExceeded\",subtypes:[],props:{length:\"\",limit:\"\"}},Unreachable:{name:\"Unreachable\",subtypes:[],props:{}},ValueLengthExceeded:{name:\"ValueLengthExceeded\",subtypes:[],props:{length:\"\",limit:\"\"}},WasmTrap:{name:\"WasmTrap\",subtypes:[\"Unreachable\",\"IncorrectCallIndirectSignature\",\"MemoryOutOfBounds\",\"CallIndirectOOB\",\"IllegalArithmetic\",\"MisalignedAtomicAccess\",\"BreakpointTrap\",\"StackOverflow\",\"GenericTrap\"],props:{}},WasmUnknownError:{name:\"WasmUnknownError\",subtypes:[],props:{}},WasmerCompileError:{name:\"WasmerCompileError\",subtypes:[],props:{msg:\"\"}},WriteError:{name:\"WriteError\",subtypes:[],props:{}},AccessKeyNotFound:{name:\"AccessKeyNotFound\",subtypes:[],props:{account_id:\"\",public_key:\"\"}},AccountAlreadyExists:{name:\"AccountAlreadyExists\",subtypes:[],props:{account_id:\"\"}},AccountDoesNotExist:{name:\"AccountDoesNotExist\",subtypes:[],props:{account_id:\"\"}},ActionError:{name:\"ActionError\",subtypes:[\"AccountAlreadyExists\",\"AccountDoesNotExist\",\"CreateAccountOnlyByRegistrar\",\"CreateAccountNotAllowed\",\"ActorNoPermission\",\"DeleteKeyDoesNotExist\",\"AddKeyAlreadyExists\",\"DeleteAccountStaking\",\"LackBalanceForState\",\"TriesToUnstake\",\"TriesToStake\",\"InsufficientStake\",\"FunctionCallError\",\"NewReceiptValidationError\",\"OnlyImplicitAccountCreationAllowed\"],props:{index:\"\"}},ActionsValidationError:{name:\"ActionsValidationError\",subtypes:[\"DeleteActionMustBeFinal\",\"TotalPrepaidGasExceeded\",\"TotalNumberOfActionsExceeded\",\"AddKeyMethodNamesNumberOfBytesExceeded\",\"AddKeyMethodNameLengthExceeded\",\"IntegerOverflow\",\"InvalidAccountId\",\"ContractSizeExceeded\",\"FunctionCallMethodNameLengthExceeded\",\"FunctionCallArgumentsLengthExceeded\",\"UnsuitableStakingKey\",\"FunctionCallZeroAttachedGas\"],props:{}},ActorNoPermission:{name:\"ActorNoPermission\",subtypes:[],props:{account_id:\"\",actor_id:\"\"}},AddKeyAlreadyExists:{name:\"AddKeyAlreadyExists\",subtypes:[],props:{account_id:\"\",public_key:\"\"}},AddKeyMethodNameLengthExceeded:{name:\"AddKeyMethodNameLengthExceeded\",subtypes:[],props:{length:\"\",limit:\"\"}},AddKeyMethodNamesNumberOfBytesExceeded:{name:\"AddKeyMethodNamesNumberOfBytesExceeded\",subtypes:[],props:{limit:\"\",total_number_of_bytes:\"\"}},BalanceMismatchError:{name:\"BalanceMismatchError\",subtypes:[],props:{final_accounts_balance:\"\",final_postponed_receipts_balance:\"\",incoming_receipts_balance:\"\",incoming_validator_rewards:\"\",initial_accounts_balance:\"\",initial_postponed_receipts_balance:\"\",new_delayed_receipts_balance:\"\",other_burnt_amount:\"\",outgoing_receipts_balance:\"\",processed_delayed_receipts_balance:\"\",slashed_burnt_amount:\"\",tx_burnt_amount:\"\"}},CostOverflow:{name:\"CostOverflow\",subtypes:[],props:{}},CreateAccountNotAllowed:{name:\"CreateAccountNotAllowed\",subtypes:[],props:{account_id:\"\",predecessor_id:\"\"}},CreateAccountOnlyByRegistrar:{name:\"CreateAccountOnlyByRegistrar\",subtypes:[],props:{account_id:\"\",predecessor_id:\"\",registrar_account_id:\"\"}},DeleteAccountStaking:{name:\"DeleteAccountStaking\",subtypes:[],props:{account_id:\"\"}},DeleteActionMustBeFinal:{name:\"DeleteActionMustBeFinal\",subtypes:[],props:{}},DeleteKeyDoesNotExist:{name:\"DeleteKeyDoesNotExist\",subtypes:[],props:{account_id:\"\",public_key:\"\"}},DepositWithFunctionCall:{name:\"DepositWithFunctionCall\",subtypes:[],props:{}},Expired:{name:\"Expired\",subtypes:[],props:{}},FunctionCallArgumentsLengthExceeded:{name:\"FunctionCallArgumentsLengthExceeded\",subtypes:[],props:{length:\"\",limit:\"\"}},FunctionCallMethodNameLengthExceeded:{name:\"FunctionCallMethodNameLengthExceeded\",subtypes:[],props:{length:\"\",limit:\"\"}},FunctionCallZeroAttachedGas:{name:\"FunctionCallZeroAttachedGas\",subtypes:[],props:{}},InsufficientStake:{name:\"InsufficientStake\",subtypes:[],props:{account_id:\"\",minimum_stake:\"\",stake:\"\"}},InvalidAccessKeyError:{name:\"InvalidAccessKeyError\",subtypes:[\"AccessKeyNotFound\",\"ReceiverMismatch\",\"MethodNameMismatch\",\"RequiresFullAccess\",\"NotEnoughAllowance\",\"DepositWithFunctionCall\"],props:{}},InvalidChain:{name:\"InvalidChain\",subtypes:[],props:{}},InvalidDataReceiverId:{name:\"InvalidDataReceiverId\",subtypes:[],props:{account_id:\"\"}},InvalidNonce:{name:\"InvalidNonce\",subtypes:[],props:{ak_nonce:\"\",tx_nonce:\"\"}},InvalidPredecessorId:{name:\"InvalidPredecessorId\",subtypes:[],props:{account_id:\"\"}},InvalidReceiverId:{name:\"InvalidReceiverId\",subtypes:[],props:{account_id:\"\"}},InvalidSignature:{name:\"InvalidSignature\",subtypes:[],props:{}},InvalidSignerId:{name:\"InvalidSignerId\",subtypes:[],props:{account_id:\"\"}},InvalidTxError:{name:\"InvalidTxError\",subtypes:[\"InvalidAccessKeyError\",\"InvalidSignerId\",\"SignerDoesNotExist\",\"InvalidNonce\",\"InvalidReceiverId\",\"InvalidSignature\",\"NotEnoughBalance\",\"LackBalanceForState\",\"CostOverflow\",\"InvalidChain\",\"Expired\",\"ActionsValidation\"],props:{}},LackBalanceForState:{name:\"LackBalanceForState\",subtypes:[],props:{account_id:\"\",amount:\"\"}},MethodNameMismatch:{name:\"MethodNameMismatch\",subtypes:[],props:{method_name:\"\"}},NotEnoughAllowance:{name:\"NotEnoughAllowance\",subtypes:[],props:{account_id:\"\",allowance:\"\",cost:\"\",public_key:\"\"}},NotEnoughBalance:{name:\"NotEnoughBalance\",subtypes:[],props:{balance:\"\",cost:\"\",signer_id:\"\"}},OnlyImplicitAccountCreationAllowed:{name:\"OnlyImplicitAccountCreationAllowed\",subtypes:[],props:{account_id:\"\"}},ReceiptValidationError:{name:\"ReceiptValidationError\",subtypes:[\"InvalidPredecessorId\",\"InvalidReceiverId\",\"InvalidSignerId\",\"InvalidDataReceiverId\",\"ReturnedValueLengthExceeded\",\"NumberInputDataDependenciesExceeded\",\"ActionsValidation\"],props:{}},ReceiverMismatch:{name:\"ReceiverMismatch\",subtypes:[],props:{ak_receiver:\"\",tx_receiver:\"\"}},RequiresFullAccess:{name:\"RequiresFullAccess\",subtypes:[],props:{}},SignerDoesNotExist:{name:\"SignerDoesNotExist\",subtypes:[],props:{signer_id:\"\"}},TotalNumberOfActionsExceeded:{name:\"TotalNumberOfActionsExceeded\",subtypes:[],props:{limit:\"\",total_number_of_actions:\"\"}},TotalPrepaidGasExceeded:{name:\"TotalPrepaidGasExceeded\",subtypes:[],props:{limit:\"\",total_prepaid_gas:\"\"}},TriesToStake:{name:\"TriesToStake\",subtypes:[],props:{account_id:\"\",balance:\"\",locked:\"\",stake:\"\"}},TriesToUnstake:{name:\"TriesToUnstake\",subtypes:[],props:{account_id:\"\"}},TxExecutionError:{name:\"TxExecutionError\",subtypes:[\"ActionError\",\"InvalidTxError\"],props:{}},UnsuitableStakingKey:{name:\"UnsuitableStakingKey\",subtypes:[],props:{public_key:\"\"}},Closed:{name:\"Closed\",subtypes:[],props:{}},InternalError:{name:\"InternalError\",subtypes:[],props:{}},ServerError:{name:\"ServerError\",subtypes:[\"TxExecutionError\",\"Timeout\",\"Closed\",\"InternalError\"],props:{}},Timeout:{name:\"Timeout\",subtypes:[],props:{}}}};","module.exports={GasLimitExceeded:\"Exceeded the maximum amount of gas allowed to burn per contract\",MethodEmptyName:\"Method name is empty\",WasmerCompileError:\"Wasmer compilation error: {{msg}}\",GuestPanic:\"Smart contract panicked: {{panic_msg}}\",Memory:\"Error creating Wasm memory\",GasExceeded:\"Exceeded the prepaid gas\",MethodUTF8Error:\"Method name is not valid UTF8 string\",BadUTF16:\"String encoding is bad UTF-16 sequence\",WasmTrap:\"WebAssembly trap: {{msg}}\",GasInstrumentation:\"Gas instrumentation failed or contract has denied instructions.\",InvalidPromiseIndex:\"{{promise_idx}} does not correspond to existing promises\",InvalidPromiseResultIndex:\"Accessed invalid promise result index: {{result_idx}}\",Deserialization:\"Error happened while deserializing the module\",MethodNotFound:\"Contract method is not found\",InvalidRegisterId:\"Accessed invalid register id: {{register_id}}\",InvalidReceiptIndex:\"VM Logic returned an invalid receipt index: {{receipt_index}}\",EmptyMethodName:\"Method name is empty in contract call\",CannotReturnJointPromise:\"Returning joint promise is currently prohibited\",StackHeightInstrumentation:\"Stack instrumentation failed\",CodeDoesNotExist:\"Cannot find contract code for account {{account_id}}\",MethodInvalidSignature:\"Invalid method signature\",IntegerOverflow:\"Integer overflow happened during contract execution\",MemoryAccessViolation:\"MemoryAccessViolation\",InvalidIteratorIndex:\"Iterator index {{iterator_index}} does not exist\",IteratorWasInvalidated:\"Iterator {{iterator_index}} was invalidated after its creation by performing a mutable operation on trie\",InvalidAccountId:\"VM Logic returned an invalid account id\",Serialization:\"Error happened while serializing the module\",CannotAppendActionToJointPromise:\"Actions can only be appended to non-joint promise.\",InternalMemoryDeclared:\"Internal memory declaration has been found in the module\",Instantiate:\"Error happened during instantiation\",ProhibitedInView:\"{{method_name}} is not allowed in view calls\",InvalidMethodName:\"VM Logic returned an invalid method name\",BadUTF8:\"String encoding is bad UTF-8 sequence\",BalanceExceeded:\"Exceeded the account balance\",LinkError:\"Wasm contract link error: {{msg}}\",InvalidPublicKey:\"VM Logic provided an invalid public key\",ActorNoPermission:\"Actor {{actor_id}} doesn't have permission to account {{account_id}} to complete the action\",LackBalanceForState:\"The account {{account_id}} wouldn't have enough balance to cover storage, required to have {{amount}} yoctoNEAR more\",ReceiverMismatch:\"Wrong AccessKey used for transaction: transaction is sent to receiver_id={{tx_receiver}}, but is signed with function call access key that restricted to only use with receiver_id={{ak_receiver}}. Either change receiver_id in your transaction or switch to use a FullAccessKey.\",CostOverflow:\"Transaction gas or balance cost is too high\",InvalidSignature:\"Transaction is not signed with the given public key\",AccessKeyNotFound:'Signer \"{{account_id}}\" doesn\\'t have access key with the given public_key {{public_key}}',NotEnoughBalance:\"Sender {{signer_id}} does not have enough balance {{#formatNear}}{{balance}}{{/formatNear}} for operation costing {{#formatNear}}{{cost}}{{/formatNear}}\",NotEnoughAllowance:\"Access Key {account_id}:{public_key} does not have enough balance {{#formatNear}}{{allowance}}{{/formatNear}} for transaction costing {{#formatNear}}{{cost}}{{/formatNear}}\",Expired:\"Transaction has expired\",DeleteAccountStaking:\"Account {{account_id}} is staking and can not be deleted\",SignerDoesNotExist:\"Signer {{signer_id}} does not exist\",TriesToStake:\"Account {{account_id}} tried to stake {{#formatNear}}{{stake}}{{/formatNear}}, but has staked {{#formatNear}}{{locked}}{{/formatNear}} and only has {{#formatNear}}{{balance}}{{/formatNear}}\",AddKeyAlreadyExists:\"The public key {{public_key}} is already used for an existing access key\",InvalidSigner:\"Invalid signer account ID {{signer_id}} according to requirements\",CreateAccountNotAllowed:\"The new account_id {{account_id}} can't be created by {{predecessor_id}}\",RequiresFullAccess:\"The transaction contains more then one action, but it was signed with an access key which allows transaction to apply only one specific action. To apply more then one actions TX must be signed with a full access key\",TriesToUnstake:\"Account {{account_id}} is not yet staked, but tried to unstake\",InvalidNonce:\"Transaction nonce {{tx_nonce}} must be larger than nonce of the used access key {{ak_nonce}}\",AccountAlreadyExists:\"Can't create a new account {{account_id}}, because it already exists\",InvalidChain:\"Transaction parent block hash doesn't belong to the current chain\",AccountDoesNotExist:\"Can't complete the action because account {{account_id}} doesn't exist\",MethodNameMismatch:\"Transaction method name {{method_name}} isn't allowed by the access key\",DeleteAccountHasRent:\"Account {{account_id}} can't be deleted. It has {{#formatNear}}{{balance}}{{/formatNear}}, which is enough to cover the rent\",DeleteAccountHasEnoughBalance:\"Account {{account_id}} can't be deleted. It has {{#formatNear}}{{balance}}{{/formatNear}}, which is enough to cover it's storage\",InvalidReceiver:\"Invalid receiver account ID {{receiver_id}} according to requirements\",DeleteKeyDoesNotExist:\"Account {{account_id}} tries to remove an access key that doesn't exist\",Timeout:\"Timeout exceeded\",Closed:\"Connection closed\"};","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getErrorTypeFromErrorMessage = exports.formatError = exports.parseResultError = exports.parseRpcError = exports.ServerError = void 0;\nconst mustache_1 = __importDefault(require(\"mustache\"));\nconst rpc_error_schema_json_1 = __importDefault(require(\"../generated/rpc_error_schema.json\"));\nconst error_messages_json_1 = __importDefault(require(\"../res/error_messages.json\"));\nconst common_index_1 = require(\"../common-index\");\nconst errors_1 = require(\"../utils/errors\");\nconst mustacheHelpers = {\n formatNear: () => (n, render) => common_index_1.utils.format.formatNearAmount(render(n))\n};\nclass ServerError extends errors_1.TypedError {\n}\nexports.ServerError = ServerError;\nclass ServerTransactionError extends ServerError {\n}\nfunction parseRpcError(errorObj) {\n const result = {};\n const errorClassName = walkSubtype(errorObj, rpc_error_schema_json_1.default.schema, result, '');\n // NOTE: This assumes that all errors extend TypedError\n const error = new ServerError(formatError(errorClassName, result), errorClassName);\n Object.assign(error, result);\n return error;\n}\nexports.parseRpcError = parseRpcError;\nfunction parseResultError(result) {\n const server_error = parseRpcError(result.status.Failure);\n const server_tx_error = new ServerTransactionError();\n Object.assign(server_tx_error, server_error);\n server_tx_error.type = server_error.type;\n server_tx_error.message = server_error.message;\n server_tx_error.transaction_outcome = result.transaction_outcome;\n return server_tx_error;\n}\nexports.parseResultError = parseResultError;\nfunction formatError(errorClassName, errorData) {\n if (typeof error_messages_json_1.default[errorClassName] === 'string') {\n return mustache_1.default.render(error_messages_json_1.default[errorClassName], {\n ...errorData,\n ...mustacheHelpers\n });\n }\n return JSON.stringify(errorData);\n}\nexports.formatError = formatError;\n/**\n * Walks through defined schema returning error(s) recursively\n * @param errorObj The error to be parsed\n * @param schema A defined schema in JSON mapping to the RPC errors\n * @param result An object used in recursion or called directly\n * @param typeName The human-readable error type name as defined in the JSON mapping\n */\nfunction walkSubtype(errorObj, schema, result, typeName) {\n let error;\n let type;\n let errorTypeName;\n for (const errorName in schema) {\n if (isString(errorObj[errorName])) {\n // Return early if error type is in a schema\n return errorObj[errorName];\n }\n if (isObject(errorObj[errorName])) {\n error = errorObj[errorName];\n type = schema[errorName];\n errorTypeName = errorName;\n }\n else if (isObject(errorObj.kind) && isObject(errorObj.kind[errorName])) {\n error = errorObj.kind[errorName];\n type = schema[errorName];\n errorTypeName = errorName;\n }\n else {\n continue;\n }\n }\n if (error && type) {\n for (const prop of Object.keys(type.props)) {\n result[prop] = error[prop];\n }\n return walkSubtype(error, schema, result, errorTypeName);\n }\n else {\n // TODO: is this the right thing to do?\n result.kind = errorObj;\n return typeName;\n }\n}\nfunction getErrorTypeFromErrorMessage(errorMessage) {\n // This function should be removed when JSON RPC starts returning typed errors.\n switch (true) {\n case /^account .*? does not exist while viewing$/.test(errorMessage):\n return 'AccountDoesNotExist';\n case /^Account .*? doesn't exist$/.test(errorMessage):\n return 'AccountDoesNotExist';\n case /^access key .*? does not exist while viewing$/.test(errorMessage):\n return 'AccessKeyDoesNotExist';\n case /wasm execution failed with error: FunctionCallError\\(CompilationError\\(CodeDoesNotExist/.test(errorMessage):\n return 'CodeDoesNotExist';\n case /Transaction nonce \\d+ must be larger than nonce of the used access key \\d+/.test(errorMessage):\n return 'InvalidNonce';\n default:\n return 'UntypedError';\n }\n}\nexports.getErrorTypeFromErrorMessage = getErrorTypeFromErrorMessage;\n/**\n * Helper function determining if the argument is an object\n * @param n Value to check\n */\nfunction isObject(n) {\n return Object.prototype.toString.call(n) === '[object Object]';\n}\n/**\n * Helper function determining if the argument is a string\n * @param n Value to check\n */\nfunction isString(n) {\n return Object.prototype.toString.call(n) === '[object String]';\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonRpcProvider = exports.ErrorContext = exports.TypedError = void 0;\n/**\n * This module contains the {@link JsonRpcProvider} client class\n * which can be used to interact with the NEAR RPC API.\n * @see {@link providers/provider} for a list of request and response types\n */\nconst depd_1 = __importDefault(require(\"depd\"));\nconst provider_1 = require(\"./provider\");\nconst web_1 = require(\"../utils/web\");\nconst errors_1 = require(\"../utils/errors\");\nObject.defineProperty(exports, \"TypedError\", { enumerable: true, get: function () { return errors_1.TypedError; } });\nObject.defineProperty(exports, \"ErrorContext\", { enumerable: true, get: function () { return errors_1.ErrorContext; } });\nconst borsh_1 = require(\"borsh\");\nconst exponential_backoff_1 = __importDefault(require(\"../utils/exponential-backoff\"));\nconst rpc_errors_1 = require(\"../utils/rpc_errors\");\n// Default number of retries before giving up on a request.\nconst REQUEST_RETRY_NUMBER = 12;\n// Default wait until next retry in millis.\nconst REQUEST_RETRY_WAIT = 500;\n// Exponential back off for waiting to retry.\nconst REQUEST_RETRY_WAIT_BACKOFF = 1.5;\n/// Keep ids unique across all connections.\nlet _nextId = 123;\n/**\n * Client class to interact with the NEAR RPC API.\n * @see {@link https://github.com/near/nearcore/tree/master/chain/jsonrpc}\n */\nclass JsonRpcProvider extends provider_1.Provider {\n /**\n * @param url RPC API endpoint URL\n */\n constructor(url) {\n super();\n this.connection = { url };\n }\n /**\n * Gets the RPC's status\n * @see {@link https://docs.near.org/docs/develop/front-end/rpc#general-validator-status}\n */\n async status() {\n return this.sendJsonRpc('status', []);\n }\n /**\n * Sends a signed transaction to the RPC and waits until transaction is fully complete\n * @see {@link https://docs.near.org/docs/develop/front-end/rpc#send-transaction-await}\n *\n * @param signedTransaction The signed transaction being sent\n */\n async sendTransaction(signedTransaction) {\n const bytes = signedTransaction.encode();\n return this.sendJsonRpc('broadcast_tx_commit', [Buffer.from(bytes).toString('base64')]);\n }\n /**\n * Sends a signed transaction to the RPC and immediately returns transaction hash\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#send-transaction-async)\n * @param signedTransaction The signed transaction being sent\n * @returns {Promise<FinalExecutionOutcome>}\n */\n async sendTransactionAsync(signedTransaction) {\n const bytes = signedTransaction.encode();\n return this.sendJsonRpc('broadcast_tx_async', [Buffer.from(bytes).toString('base64')]);\n }\n /**\n * Gets a transaction's status from the RPC\n * @see {@link https://docs.near.org/docs/develop/front-end/rpc#transaction-status}\n *\n * @param txHash A transaction hash as either a Uint8Array or a base58 encoded string\n * @param accountId The NEAR account that signed the transaction\n */\n async txStatus(txHash, accountId) {\n if (typeof txHash === 'string') {\n return this.txStatusString(txHash, accountId);\n }\n else {\n return this.txStatusUint8Array(txHash, accountId);\n }\n }\n async txStatusUint8Array(txHash, accountId) {\n return this.sendJsonRpc('tx', [borsh_1.baseEncode(txHash), accountId]);\n }\n async txStatusString(txHash, accountId) {\n return this.sendJsonRpc('tx', [txHash, accountId]);\n }\n /**\n * Gets a transaction's status from the RPC with receipts\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#transaction-status-with-receipts)\n * @param txHash The hash of the transaction\n * @param accountId The NEAR account that signed the transaction\n * @returns {Promise<FinalExecutionOutcome>}\n */\n async txStatusReceipts(txHash, accountId) {\n return this.sendJsonRpc('EXPERIMENTAL_tx_status', [borsh_1.baseEncode(txHash), accountId]);\n }\n /**\n * Query the RPC as [shown in the docs](https://docs.near.org/docs/develop/front-end/rpc#accounts--contracts)\n * Query the RPC by passing an {@link RpcQueryRequest}\n * @see {@link https://docs.near.org/docs/develop/front-end/rpc#accounts--contracts}\n *\n * @typeParam T the shape of the returned query response\n */\n async query(...args) {\n let result;\n if (args.length === 1) {\n result = await this.sendJsonRpc('query', args[0]);\n }\n else {\n const [path, data] = args;\n result = await this.sendJsonRpc('query', [path, data]);\n }\n if (result && result.error) {\n throw new errors_1.TypedError(`Querying ${args} failed: ${result.error}.\\n${JSON.stringify(result, null, 2)}`, rpc_errors_1.getErrorTypeFromErrorMessage(result.error));\n }\n return result;\n }\n /**\n * Query for block info from the RPC\n * pass block_id OR finality as blockQuery, not both\n * @see {@link https://docs.near.org/docs/interaction/rpc#block}\n *\n * @param blockQuery {@link BlockReference} (passing a {@link BlockId} is deprecated)\n */\n async block(blockQuery) {\n const { finality } = blockQuery;\n let { blockId } = blockQuery;\n if (typeof blockQuery !== 'object') {\n const deprecate = depd_1.default('JsonRpcProvider.block(blockId)');\n deprecate('use `block({ blockId })` or `block({ finality })` instead');\n blockId = blockQuery;\n }\n return this.sendJsonRpc('block', { block_id: blockId, finality });\n }\n /**\n * Query changes in block from the RPC\n * pass block_id OR finality as blockQuery, not both\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#block-details)\n */\n async blockChanges(blockQuery) {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes_in_block', { block_id: blockId, finality });\n }\n /**\n * Queries for details about a specific chunk appending details of receipts and transactions to the same chunk data provided by a block\n * @see {@link https://docs.near.org/docs/interaction/rpc#chunk}\n *\n * @param chunkId Hash of a chunk ID or shard ID\n */\n async chunk(chunkId) {\n return this.sendJsonRpc('chunk', [chunkId]);\n }\n /**\n * Query validators of the epoch defined by the given block id.\n * @see {@link https://docs.near.org/docs/develop/front-end/rpc#detailed-validator-status}\n *\n * @param blockId Block hash or height, or null for latest.\n */\n async validators(blockId) {\n return this.sendJsonRpc('validators', [blockId]);\n }\n /**\n * @deprecated\n * Gets the genesis config from RPC\n * @see {@link https://docs.near.org/docs/develop/front-end/rpc#genesis-config}\n */\n async experimental_genesisConfig() {\n const deprecate = depd_1.default('JsonRpcProvider.experimental_protocolConfig()');\n deprecate('use `experimental_protocolConfig({ sync_checkpoint: \\'genesis\\' })` to fetch the up-to-date or genesis protocol config explicitly');\n return await this.sendJsonRpc('EXPERIMENTAL_protocol_config', { sync_checkpoint: 'genesis' });\n }\n /**\n * Gets the protocol config at a block from RPC\n * @see {@link }\n *\n * @param blockReference specifies the block to get the protocol config for\n */\n async experimental_protocolConfig(blockReference) {\n return await this.sendJsonRpc('EXPERIMENTAL_protocol_config', blockReference);\n }\n /**\n * @deprecated Use {@link lightClientProof} instead\n */\n async experimental_lightClientProof(request) {\n const deprecate = depd_1.default('JsonRpcProvider.experimental_lightClientProof(request)');\n deprecate('use `lightClientProof` instead');\n return await this.lightClientProof(request);\n }\n /**\n * Gets a light client execution proof for verifying execution outcomes\n * @see {@link https://github.com/nearprotocol/NEPs/blob/master/specs/ChainSpec/LightClient.md#light-client-proof}\n */\n async lightClientProof(request) {\n return await this.sendJsonRpc('EXPERIMENTAL_light_client_proof', request);\n }\n /**\n * Gets access key changes for a given array of accountIds\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-access-key-changes-all)\n * @returns {Promise<ChangeResult>}\n */\n async accessKeyChanges(accountIdArray, blockQuery) {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes', {\n changes_type: 'all_access_key_changes',\n account_ids: accountIdArray,\n block_id: blockId,\n finality\n });\n }\n /**\n * Gets single access key changes for a given array of access keys\n * pass block_id OR finality as blockQuery, not both\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-access-key-changes-single)\n * @returns {Promise<ChangeResult>}\n */\n async singleAccessKeyChanges(accessKeyArray, blockQuery) {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes', {\n changes_type: 'single_access_key_changes',\n keys: accessKeyArray,\n block_id: blockId,\n finality\n });\n }\n /**\n * Gets account changes for a given array of accountIds\n * pass block_id OR finality as blockQuery, not both\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-account-changes)\n * @returns {Promise<ChangeResult>}\n */\n async accountChanges(accountIdArray, blockQuery) {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes', {\n changes_type: 'account_changes',\n account_ids: accountIdArray,\n block_id: blockId,\n finality\n });\n }\n /**\n * Gets contract state changes for a given array of accountIds\n * pass block_id OR finality as blockQuery, not both\n * Note: If you pass a keyPrefix it must be base64 encoded\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-contract-state-changes)\n * @returns {Promise<ChangeResult>}\n */\n async contractStateChanges(accountIdArray, blockQuery, keyPrefix = '') {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes', {\n changes_type: 'data_changes',\n account_ids: accountIdArray,\n key_prefix_base64: keyPrefix,\n block_id: blockId,\n finality\n });\n }\n /**\n * Gets contract code changes for a given array of accountIds\n * pass block_id OR finality as blockQuery, not both\n * Note: Change is returned in a base64 encoded WASM file\n * See [docs for more info](https://docs.near.org/docs/develop/front-end/rpc#view-contract-code-changes)\n * @returns {Promise<ChangeResult>}\n */\n async contractCodeChanges(accountIdArray, blockQuery) {\n const { finality } = blockQuery;\n const { blockId } = blockQuery;\n return this.sendJsonRpc('EXPERIMENTAL_changes', {\n changes_type: 'contract_code_changes',\n account_ids: accountIdArray,\n block_id: blockId,\n finality\n });\n }\n /**\n * Returns gas price for a specific block_height or block_hash.\n * @see {@link https://docs.near.org/docs/develop/front-end/rpc#gas-price}\n *\n * @param blockId Block hash or height, or null for latest.\n */\n async gasPrice(blockId) {\n return await this.sendJsonRpc('gas_price', [blockId]);\n }\n /**\n * Directly call the RPC specifying the method and params\n *\n * @param method RPC method\n * @param params Parameters to the method\n */\n async sendJsonRpc(method, params) {\n const response = await exponential_backoff_1.default(REQUEST_RETRY_WAIT, REQUEST_RETRY_NUMBER, REQUEST_RETRY_WAIT_BACKOFF, async () => {\n try {\n const request = {\n method,\n params,\n id: (_nextId++),\n jsonrpc: '2.0'\n };\n const response = await web_1.fetchJson(this.connection, JSON.stringify(request));\n if (response.error) {\n if (typeof response.error.data === 'object') {\n if (typeof response.error.data.error_message === 'string' && typeof response.error.data.error_type === 'string') {\n // if error data has error_message and error_type properties, we consider that node returned an error in the old format\n throw new errors_1.TypedError(response.error.data.error_message, response.error.data.error_type);\n }\n throw rpc_errors_1.parseRpcError(response.error.data);\n }\n else {\n const errorMessage = `[${response.error.code}] ${response.error.message}: ${response.error.data}`;\n // NOTE: All this hackery is happening because structured errors not implemented\n // TODO: Fix when https://github.com/nearprotocol/nearcore/issues/1839 gets resolved\n if (response.error.data === 'Timeout' || errorMessage.includes('Timeout error')\n || errorMessage.includes('query has timed out')) {\n throw new errors_1.TypedError(errorMessage, 'TimeoutError');\n }\n throw new errors_1.TypedError(errorMessage, rpc_errors_1.getErrorTypeFromErrorMessage(response.error.data));\n }\n }\n // Success when response.error is not exist\n return response;\n }\n catch (error) {\n if (error.type === 'TimeoutError') {\n console.warn(`Retrying request to ${method} as it has timed out`, params);\n return null;\n }\n throw error;\n }\n });\n const { result } = response;\n // From jsonrpc spec:\n // result\n // This member is REQUIRED on success.\n // This member MUST NOT exist if there was an error invoking the method.\n if (typeof result === 'undefined') {\n throw new errors_1.TypedError(`Exceeded ${REQUEST_RETRY_NUMBER} attempts for request to ${method}.`, 'RetriesExceeded');\n }\n return result;\n }\n}\nexports.JsonRpcProvider = JsonRpcProvider;\n","\"use strict\";\n/** @hidden @module */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ErrorContext = exports.TypedError = exports.getTransactionLastResult = exports.FinalExecutionStatusBasic = exports.JsonRpcProvider = exports.Provider = void 0;\nconst provider_1 = require(\"./provider\");\nObject.defineProperty(exports, \"Provider\", { enumerable: true, get: function () { return provider_1.Provider; } });\nObject.defineProperty(exports, \"getTransactionLastResult\", { enumerable: true, get: function () { return provider_1.getTransactionLastResult; } });\nObject.defineProperty(exports, \"FinalExecutionStatusBasic\", { enumerable: true, get: function () { return provider_1.FinalExecutionStatusBasic; } });\nconst json_rpc_provider_1 = require(\"./json-rpc-provider\");\nObject.defineProperty(exports, \"JsonRpcProvider\", { enumerable: true, get: function () { return json_rpc_provider_1.JsonRpcProvider; } });\nObject.defineProperty(exports, \"TypedError\", { enumerable: true, get: function () { return json_rpc_provider_1.TypedError; } });\nObject.defineProperty(exports, \"ErrorContext\", { enumerable: true, get: function () { return json_rpc_provider_1.ErrorContext; } });\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseNearAmount = exports.formatNearAmount = exports.NEAR_NOMINATION = exports.NEAR_NOMINATION_EXP = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\n/**\n * Exponent for calculating how many indivisible units are there in one NEAR. See {@link NEAR_NOMINATION}.\n */\nexports.NEAR_NOMINATION_EXP = 24;\n/**\n * Number of indivisible units in one NEAR. Derived from {@link NEAR_NOMINATION_EXP}.\n */\nexports.NEAR_NOMINATION = new bn_js_1.default('10', 10).pow(new bn_js_1.default(exports.NEAR_NOMINATION_EXP, 10));\n// Pre-calculate offests used for rounding to different number of digits\nconst ROUNDING_OFFSETS = [];\nconst BN10 = new bn_js_1.default(10);\nfor (let i = 0, offset = new bn_js_1.default(5); i < exports.NEAR_NOMINATION_EXP; i++, offset = offset.mul(BN10)) {\n ROUNDING_OFFSETS[i] = offset;\n}\n/**\n * Convert account balance value from internal indivisible units to NEAR. 1 NEAR is defined by {@link NEAR_NOMINATION}.\n * Effectively this divides given amount by {@link NEAR_NOMINATION}.\n *\n * @param balance decimal string representing balance in smallest non-divisible NEAR units (as specified by {@link NEAR_NOMINATION})\n * @param fracDigits number of fractional digits to preserve in formatted string. Balance is rounded to match given number of digits.\n * @returns Value in Ⓝ\n */\nfunction formatNearAmount(balance, fracDigits = exports.NEAR_NOMINATION_EXP) {\n const balanceBN = new bn_js_1.default(balance, 10);\n if (fracDigits !== exports.NEAR_NOMINATION_EXP) {\n // Adjust balance for rounding at given number of digits\n const roundingExp = exports.NEAR_NOMINATION_EXP - fracDigits - 1;\n if (roundingExp > 0) {\n balanceBN.iadd(ROUNDING_OFFSETS[roundingExp]);\n }\n }\n balance = balanceBN.toString();\n const wholeStr = balance.substring(0, balance.length - exports.NEAR_NOMINATION_EXP) || '0';\n const fractionStr = balance.substring(balance.length - exports.NEAR_NOMINATION_EXP)\n .padStart(exports.NEAR_NOMINATION_EXP, '0').substring(0, fracDigits);\n return trimTrailingZeroes(`${formatWithCommas(wholeStr)}.${fractionStr}`);\n}\nexports.formatNearAmount = formatNearAmount;\n/**\n * Convert human readable NEAR amount to internal indivisible units.\n * Effectively this multiplies given amount by {@link NEAR_NOMINATION}.\n *\n * @param amt decimal string (potentially fractional) denominated in NEAR.\n * @returns The parsed yoctoⓃ amount or null if no amount was passed in\n */\nfunction parseNearAmount(amt) {\n if (!amt) {\n return null;\n }\n amt = cleanupAmount(amt);\n const split = amt.split('.');\n const wholePart = split[0];\n const fracPart = split[1] || '';\n if (split.length > 2 || fracPart.length > exports.NEAR_NOMINATION_EXP) {\n throw new Error(`Cannot parse '${amt}' as NEAR amount`);\n }\n return trimLeadingZeroes(wholePart + fracPart.padEnd(exports.NEAR_NOMINATION_EXP, '0'));\n}\nexports.parseNearAmount = parseNearAmount;\n/**\n * Removes commas from the input\n * @param amount A value or amount that may contain commas\n * @returns string The cleaned value\n */\nfunction cleanupAmount(amount) {\n return amount.replace(/,/g, '').trim();\n}\n/**\n * Removes .000… from an input\n * @param value A value that may contain trailing zeroes in the decimals place\n * @returns string The value without the trailing zeros\n */\nfunction trimTrailingZeroes(value) {\n return value.replace(/\\.?0*$/, '');\n}\n/**\n * Removes leading zeroes from an input\n * @param value A value that may contain leading zeroes\n * @returns string The value without the leading zeroes\n */\nfunction trimLeadingZeroes(value) {\n value = value.replace(/^0+/, '');\n if (value === '') {\n return '0';\n }\n return value;\n}\n/**\n * Returns a human-readable value with commas\n * @param value A value that may not contain commas\n * @returns string A value with commas\n */\nfunction formatWithCommas(value) {\n const pattern = /(-?\\d+)(\\d{3})/;\n while (pattern.test(value)) {\n value = value.replace(pattern, '$1,$2');\n }\n return value;\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.logWarning = exports.rpc_errors = exports.KeyPairEd25519 = exports.KeyPair = exports.PublicKey = exports.format = exports.enums = exports.web = exports.serialize = exports.key_pair = void 0;\nconst key_pair = __importStar(require(\"./key_pair\"));\nexports.key_pair = key_pair;\nconst serialize = __importStar(require(\"./serialize\"));\nexports.serialize = serialize;\nconst web = __importStar(require(\"./web\"));\nexports.web = web;\nconst enums = __importStar(require(\"./enums\"));\nexports.enums = enums;\nconst format = __importStar(require(\"./format\"));\nexports.format = format;\nconst rpc_errors = __importStar(require(\"./rpc_errors\"));\nexports.rpc_errors = rpc_errors;\nconst key_pair_1 = require(\"./key_pair\");\nObject.defineProperty(exports, \"PublicKey\", { enumerable: true, get: function () { return key_pair_1.PublicKey; } });\nObject.defineProperty(exports, \"KeyPair\", { enumerable: true, get: function () { return key_pair_1.KeyPair; } });\nObject.defineProperty(exports, \"KeyPairEd25519\", { enumerable: true, get: function () { return key_pair_1.KeyPairEd25519; } });\nconst errors_1 = require(\"./errors\");\nObject.defineProperty(exports, \"logWarning\", { enumerable: true, get: function () { return errors_1.logWarning; } });\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// 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}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\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 try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\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\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\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\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\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 if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\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) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/**\n * [js-sha256]{@link https://github.com/emn178/js-sha256}\n *\n * @version 0.9.0\n * @author Chen, Yi-Cyuan [[email protected]]\n * @copyright Chen, Yi-Cyuan 2014-2017\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var ERROR = 'input is invalid type';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA256_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA256_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA256_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA256_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var EXTRA = [-2147483648, 8388608, 32768, 128];\n var SHIFT = [24, 16, 8, 0];\n var K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n ];\n var OUTPUT_TYPES = ['hex', 'array', 'digest', 'arrayBuffer'];\n\n var blocks = [];\n\n if (root.JS_SHA256_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (outputType, is224) {\n return function (message) {\n return new Sha256(is224, true).update(message)[outputType]();\n };\n };\n\n var createMethod = function (is224) {\n var method = createOutputMethod('hex', is224);\n if (NODE_JS) {\n method = nodeWrap(method, is224);\n }\n method.create = function () {\n return new Sha256(is224);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createOutputMethod(type, is224);\n }\n return method;\n };\n\n var nodeWrap = function (method, is224) {\n var crypto = eval(\"require('crypto')\");\n var Buffer = eval(\"require('buffer').Buffer\");\n var algorithm = is224 ? 'sha224' : 'sha256';\n var nodeMethod = function (message) {\n if (typeof message === 'string') {\n return crypto.createHash(algorithm).update(message, 'utf8').digest('hex');\n } else {\n if (message === null || message === undefined) {\n throw new Error(ERROR);\n } else if (message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n }\n }\n if (Array.isArray(message) || ArrayBuffer.isView(message) ||\n message.constructor === Buffer) {\n return crypto.createHash(algorithm).update(new Buffer(message)).digest('hex');\n } else {\n return method(message);\n }\n };\n return nodeMethod;\n };\n\n var createHmacOutputMethod = function (outputType, is224) {\n return function (key, message) {\n return new HmacSha256(key, is224, true).update(message)[outputType]();\n };\n };\n\n var createHmacMethod = function (is224) {\n var method = createHmacOutputMethod('hex', is224);\n method.create = function (key) {\n return new HmacSha256(key, is224);\n };\n method.update = function (key, message) {\n return method.create(key).update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createHmacOutputMethod(type, is224);\n }\n return method;\n };\n\n function Sha256(is224, sharedMemory) {\n if (sharedMemory) {\n blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n this.blocks = blocks;\n } else {\n this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n }\n\n if (is224) {\n this.h0 = 0xc1059ed8;\n this.h1 = 0x367cd507;\n this.h2 = 0x3070dd17;\n this.h3 = 0xf70e5939;\n this.h4 = 0xffc00b31;\n this.h5 = 0x68581511;\n this.h6 = 0x64f98fa7;\n this.h7 = 0xbefa4fa4;\n } else { // 256\n this.h0 = 0x6a09e667;\n this.h1 = 0xbb67ae85;\n this.h2 = 0x3c6ef372;\n this.h3 = 0xa54ff53a;\n this.h4 = 0x510e527f;\n this.h5 = 0x9b05688c;\n this.h6 = 0x1f83d9ab;\n this.h7 = 0x5be0cd19;\n }\n\n this.block = this.start = this.bytes = this.hBytes = 0;\n this.finalized = this.hashed = false;\n this.first = true;\n this.is224 = is224;\n }\n\n Sha256.prototype.update = function (message) {\n if (this.finalized) {\n return;\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n notString = true;\n }\n var code, index = 0, i, length = message.length, blocks = this.blocks;\n\n while (index < length) {\n if (this.hashed) {\n this.hashed = false;\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n\n if (notString) {\n for (i = this.start; index < length && i < 64; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < 64; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n\n this.lastByteIndex = i;\n this.bytes += i - this.start;\n if (i >= 64) {\n this.block = blocks[16];\n this.start = i - 64;\n this.hash();\n this.hashed = true;\n } else {\n this.start = i;\n }\n }\n if (this.bytes > 4294967295) {\n this.hBytes += this.bytes / 4294967296 << 0;\n this.bytes = this.bytes % 4294967296;\n }\n return this;\n };\n\n Sha256.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex;\n blocks[16] = this.block;\n blocks[i >> 2] |= EXTRA[i & 3];\n this.block = blocks[16];\n if (i >= 56) {\n if (!this.hashed) {\n this.hash();\n }\n blocks[0] = this.block;\n blocks[16] = blocks[1] = blocks[2] = blocks[3] =\n blocks[4] = blocks[5] = blocks[6] = blocks[7] =\n blocks[8] = blocks[9] = blocks[10] = blocks[11] =\n blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;\n }\n blocks[14] = this.hBytes << 3 | this.bytes >>> 29;\n blocks[15] = this.bytes << 3;\n this.hash();\n };\n\n Sha256.prototype.hash = function () {\n var a = this.h0, b = this.h1, c = this.h2, d = this.h3, e = this.h4, f = this.h5, g = this.h6,\n h = this.h7, blocks = this.blocks, j, s0, s1, maj, t1, t2, ch, ab, da, cd, bc;\n\n for (j = 16; j < 64; ++j) {\n // rightrotate\n t1 = blocks[j - 15];\n s0 = ((t1 >>> 7) | (t1 << 25)) ^ ((t1 >>> 18) | (t1 << 14)) ^ (t1 >>> 3);\n t1 = blocks[j - 2];\n s1 = ((t1 >>> 17) | (t1 << 15)) ^ ((t1 >>> 19) | (t1 << 13)) ^ (t1 >>> 10);\n blocks[j] = blocks[j - 16] + s0 + blocks[j - 7] + s1 << 0;\n }\n\n bc = b & c;\n for (j = 0; j < 64; j += 4) {\n if (this.first) {\n if (this.is224) {\n ab = 300032;\n t1 = blocks[0] - 1413257819;\n h = t1 - 150054599 << 0;\n d = t1 + 24177077 << 0;\n } else {\n ab = 704751109;\n t1 = blocks[0] - 210244248;\n h = t1 - 1521486534 << 0;\n d = t1 + 143694565 << 0;\n }\n this.first = false;\n } else {\n s0 = ((a >>> 2) | (a << 30)) ^ ((a >>> 13) | (a << 19)) ^ ((a >>> 22) | (a << 10));\n s1 = ((e >>> 6) | (e << 26)) ^ ((e >>> 11) | (e << 21)) ^ ((e >>> 25) | (e << 7));\n ab = a & b;\n maj = ab ^ (a & c) ^ bc;\n ch = (e & f) ^ (~e & g);\n t1 = h + s1 + ch + K[j] + blocks[j];\n t2 = s0 + maj;\n h = d + t1 << 0;\n d = t1 + t2 << 0;\n }\n s0 = ((d >>> 2) | (d << 30)) ^ ((d >>> 13) | (d << 19)) ^ ((d >>> 22) | (d << 10));\n s1 = ((h >>> 6) | (h << 26)) ^ ((h >>> 11) | (h << 21)) ^ ((h >>> 25) | (h << 7));\n da = d & a;\n maj = da ^ (d & b) ^ ab;\n ch = (h & e) ^ (~h & f);\n t1 = g + s1 + ch + K[j + 1] + blocks[j + 1];\n t2 = s0 + maj;\n g = c + t1 << 0;\n c = t1 + t2 << 0;\n s0 = ((c >>> 2) | (c << 30)) ^ ((c >>> 13) | (c << 19)) ^ ((c >>> 22) | (c << 10));\n s1 = ((g >>> 6) | (g << 26)) ^ ((g >>> 11) | (g << 21)) ^ ((g >>> 25) | (g << 7));\n cd = c & d;\n maj = cd ^ (c & a) ^ da;\n ch = (g & h) ^ (~g & e);\n t1 = f + s1 + ch + K[j + 2] + blocks[j + 2];\n t2 = s0 + maj;\n f = b + t1 << 0;\n b = t1 + t2 << 0;\n s0 = ((b >>> 2) | (b << 30)) ^ ((b >>> 13) | (b << 19)) ^ ((b >>> 22) | (b << 10));\n s1 = ((f >>> 6) | (f << 26)) ^ ((f >>> 11) | (f << 21)) ^ ((f >>> 25) | (f << 7));\n bc = b & c;\n maj = bc ^ (b & d) ^ cd;\n ch = (f & g) ^ (~f & h);\n t1 = e + s1 + ch + K[j + 3] + blocks[j + 3];\n t2 = s0 + maj;\n e = a + t1 << 0;\n a = t1 + t2 << 0;\n }\n\n this.h0 = this.h0 + a << 0;\n this.h1 = this.h1 + b << 0;\n this.h2 = this.h2 + c << 0;\n this.h3 = this.h3 + d << 0;\n this.h4 = this.h4 + e << 0;\n this.h5 = this.h5 + f << 0;\n this.h6 = this.h6 + g << 0;\n this.h7 = this.h7 + h << 0;\n };\n\n Sha256.prototype.hex = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var hex = HEX_CHARS[(h0 >> 28) & 0x0F] + HEX_CHARS[(h0 >> 24) & 0x0F] +\n HEX_CHARS[(h0 >> 20) & 0x0F] + HEX_CHARS[(h0 >> 16) & 0x0F] +\n HEX_CHARS[(h0 >> 12) & 0x0F] + HEX_CHARS[(h0 >> 8) & 0x0F] +\n HEX_CHARS[(h0 >> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +\n HEX_CHARS[(h1 >> 28) & 0x0F] + HEX_CHARS[(h1 >> 24) & 0x0F] +\n HEX_CHARS[(h1 >> 20) & 0x0F] + HEX_CHARS[(h1 >> 16) & 0x0F] +\n HEX_CHARS[(h1 >> 12) & 0x0F] + HEX_CHARS[(h1 >> 8) & 0x0F] +\n HEX_CHARS[(h1 >> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +\n HEX_CHARS[(h2 >> 28) & 0x0F] + HEX_CHARS[(h2 >> 24) & 0x0F] +\n HEX_CHARS[(h2 >> 20) & 0x0F] + HEX_CHARS[(h2 >> 16) & 0x0F] +\n HEX_CHARS[(h2 >> 12) & 0x0F] + HEX_CHARS[(h2 >> 8) & 0x0F] +\n HEX_CHARS[(h2 >> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +\n HEX_CHARS[(h3 >> 28) & 0x0F] + HEX_CHARS[(h3 >> 24) & 0x0F] +\n HEX_CHARS[(h3 >> 20) & 0x0F] + HEX_CHARS[(h3 >> 16) & 0x0F] +\n HEX_CHARS[(h3 >> 12) & 0x0F] + HEX_CHARS[(h3 >> 8) & 0x0F] +\n HEX_CHARS[(h3 >> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +\n HEX_CHARS[(h4 >> 28) & 0x0F] + HEX_CHARS[(h4 >> 24) & 0x0F] +\n HEX_CHARS[(h4 >> 20) & 0x0F] + HEX_CHARS[(h4 >> 16) & 0x0F] +\n HEX_CHARS[(h4 >> 12) & 0x0F] + HEX_CHARS[(h4 >> 8) & 0x0F] +\n HEX_CHARS[(h4 >> 4) & 0x0F] + HEX_CHARS[h4 & 0x0F] +\n HEX_CHARS[(h5 >> 28) & 0x0F] + HEX_CHARS[(h5 >> 24) & 0x0F] +\n HEX_CHARS[(h5 >> 20) & 0x0F] + HEX_CHARS[(h5 >> 16) & 0x0F] +\n HEX_CHARS[(h5 >> 12) & 0x0F] + HEX_CHARS[(h5 >> 8) & 0x0F] +\n HEX_CHARS[(h5 >> 4) & 0x0F] + HEX_CHARS[h5 & 0x0F] +\n HEX_CHARS[(h6 >> 28) & 0x0F] + HEX_CHARS[(h6 >> 24) & 0x0F] +\n HEX_CHARS[(h6 >> 20) & 0x0F] + HEX_CHARS[(h6 >> 16) & 0x0F] +\n HEX_CHARS[(h6 >> 12) & 0x0F] + HEX_CHARS[(h6 >> 8) & 0x0F] +\n HEX_CHARS[(h6 >> 4) & 0x0F] + HEX_CHARS[h6 & 0x0F];\n if (!this.is224) {\n hex += HEX_CHARS[(h7 >> 28) & 0x0F] + HEX_CHARS[(h7 >> 24) & 0x0F] +\n HEX_CHARS[(h7 >> 20) & 0x0F] + HEX_CHARS[(h7 >> 16) & 0x0F] +\n HEX_CHARS[(h7 >> 12) & 0x0F] + HEX_CHARS[(h7 >> 8) & 0x0F] +\n HEX_CHARS[(h7 >> 4) & 0x0F] + HEX_CHARS[h7 & 0x0F];\n }\n return hex;\n };\n\n Sha256.prototype.toString = Sha256.prototype.hex;\n\n Sha256.prototype.digest = function () {\n this.finalize();\n\n var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5,\n h6 = this.h6, h7 = this.h7;\n\n var arr = [\n (h0 >> 24) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 8) & 0xFF, h0 & 0xFF,\n (h1 >> 24) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 8) & 0xFF, h1 & 0xFF,\n (h2 >> 24) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 8) & 0xFF, h2 & 0xFF,\n (h3 >> 24) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 8) & 0xFF, h3 & 0xFF,\n (h4 >> 24) & 0xFF, (h4 >> 16) & 0xFF, (h4 >> 8) & 0xFF, h4 & 0xFF,\n (h5 >> 24) & 0xFF, (h5 >> 16) & 0xFF, (h5 >> 8) & 0xFF, h5 & 0xFF,\n (h6 >> 24) & 0xFF, (h6 >> 16) & 0xFF, (h6 >> 8) & 0xFF, h6 & 0xFF\n ];\n if (!this.is224) {\n arr.push((h7 >> 24) & 0xFF, (h7 >> 16) & 0xFF, (h7 >> 8) & 0xFF, h7 & 0xFF);\n }\n return arr;\n };\n\n Sha256.prototype.array = Sha256.prototype.digest;\n\n Sha256.prototype.arrayBuffer = function () {\n this.finalize();\n\n var buffer = new ArrayBuffer(this.is224 ? 28 : 32);\n var dataView = new DataView(buffer);\n dataView.setUint32(0, this.h0);\n dataView.setUint32(4, this.h1);\n dataView.setUint32(8, this.h2);\n dataView.setUint32(12, this.h3);\n dataView.setUint32(16, this.h4);\n dataView.setUint32(20, this.h5);\n dataView.setUint32(24, this.h6);\n if (!this.is224) {\n dataView.setUint32(28, this.h7);\n }\n return buffer;\n };\n\n function HmacSha256(key, is224, sharedMemory) {\n var i, type = typeof key;\n if (type === 'string') {\n var bytes = [], length = key.length, index = 0, code;\n for (i = 0; i < length; ++i) {\n code = key.charCodeAt(i);\n if (code < 0x80) {\n bytes[index++] = code;\n } else if (code < 0x800) {\n bytes[index++] = (0xc0 | (code >> 6));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes[index++] = (0xe0 | (code >> 12));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (key.charCodeAt(++i) & 0x3ff));\n bytes[index++] = (0xf0 | (code >> 18));\n bytes[index++] = (0x80 | ((code >> 12) & 0x3f));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n }\n }\n key = bytes;\n } else {\n if (type === 'object') {\n if (key === null) {\n throw new Error(ERROR);\n } else if (ARRAY_BUFFER && key.constructor === ArrayBuffer) {\n key = new Uint8Array(key);\n } else if (!Array.isArray(key)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(key)) {\n throw new Error(ERROR);\n }\n }\n } else {\n throw new Error(ERROR);\n }\n }\n\n if (key.length > 64) {\n key = (new Sha256(is224, true)).update(key).array();\n }\n\n var oKeyPad = [], iKeyPad = [];\n for (i = 0; i < 64; ++i) {\n var b = key[i] || 0;\n oKeyPad[i] = 0x5c ^ b;\n iKeyPad[i] = 0x36 ^ b;\n }\n\n Sha256.call(this, is224, sharedMemory);\n\n this.update(iKeyPad);\n this.oKeyPad = oKeyPad;\n this.inner = true;\n this.sharedMemory = sharedMemory;\n }\n HmacSha256.prototype = new Sha256();\n\n HmacSha256.prototype.finalize = function () {\n Sha256.prototype.finalize.call(this);\n if (this.inner) {\n this.inner = false;\n var innerHash = this.array();\n Sha256.call(this, this.is224, this.sharedMemory);\n this.update(this.oKeyPad);\n this.update(innerHash);\n Sha256.prototype.finalize.call(this);\n }\n };\n\n var exports = createMethod();\n exports.sha256 = exports;\n exports.sha224 = createMethod(true);\n exports.sha256.hmac = createHmacMethod();\n exports.sha224.hmac = createHmacMethod(true);\n\n if (COMMON_JS) {\n module.exports = exports;\n } else {\n root.sha256 = exports.sha256;\n root.sha224 = exports.sha224;\n if (AMD) {\n define(function () {\n return exports;\n });\n }\n }\n})();\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.signTransaction = exports.createTransaction = exports.SCHEMA = exports.Action = exports.SignedTransaction = exports.Transaction = exports.Signature = exports.deleteAccount = exports.deleteKey = exports.addKey = exports.stake = exports.transfer = exports.functionCall = exports.stringifyJsonOrBytes = exports.deployContract = exports.createAccount = exports.DeleteAccount = exports.DeleteKey = exports.AddKey = exports.Stake = exports.Transfer = exports.FunctionCall = exports.DeployContract = exports.CreateAccount = exports.IAction = exports.functionCallAccessKey = exports.fullAccessKey = exports.AccessKey = exports.AccessKeyPermission = exports.FullAccessPermission = exports.FunctionCallPermission = void 0;\nconst js_sha256_1 = __importDefault(require(\"js-sha256\"));\nconst enums_1 = require(\"./utils/enums\");\nconst borsh_1 = require(\"borsh\");\nconst key_pair_1 = require(\"./utils/key_pair\");\nclass FunctionCallPermission extends enums_1.Assignable {\n}\nexports.FunctionCallPermission = FunctionCallPermission;\nclass FullAccessPermission extends enums_1.Assignable {\n}\nexports.FullAccessPermission = FullAccessPermission;\nclass AccessKeyPermission extends enums_1.Enum {\n}\nexports.AccessKeyPermission = AccessKeyPermission;\nclass AccessKey extends enums_1.Assignable {\n}\nexports.AccessKey = AccessKey;\nfunction fullAccessKey() {\n return new AccessKey({ nonce: 0, permission: new AccessKeyPermission({ fullAccess: new FullAccessPermission({}) }) });\n}\nexports.fullAccessKey = fullAccessKey;\nfunction functionCallAccessKey(receiverId, methodNames, allowance) {\n return new AccessKey({ nonce: 0, permission: new AccessKeyPermission({ functionCall: new FunctionCallPermission({ receiverId, allowance, methodNames }) }) });\n}\nexports.functionCallAccessKey = functionCallAccessKey;\nclass IAction extends enums_1.Assignable {\n}\nexports.IAction = IAction;\nclass CreateAccount extends IAction {\n}\nexports.CreateAccount = CreateAccount;\nclass DeployContract extends IAction {\n}\nexports.DeployContract = DeployContract;\nclass FunctionCall extends IAction {\n}\nexports.FunctionCall = FunctionCall;\nclass Transfer extends IAction {\n}\nexports.Transfer = Transfer;\nclass Stake extends IAction {\n}\nexports.Stake = Stake;\nclass AddKey extends IAction {\n}\nexports.AddKey = AddKey;\nclass DeleteKey extends IAction {\n}\nexports.DeleteKey = DeleteKey;\nclass DeleteAccount extends IAction {\n}\nexports.DeleteAccount = DeleteAccount;\nfunction createAccount() {\n return new Action({ createAccount: new CreateAccount({}) });\n}\nexports.createAccount = createAccount;\nfunction deployContract(code) {\n return new Action({ deployContract: new DeployContract({ code }) });\n}\nexports.deployContract = deployContract;\nfunction stringifyJsonOrBytes(args) {\n const isUint8Array = args.byteLength !== undefined && args.byteLength === args.length;\n const serializedArgs = isUint8Array ? args : Buffer.from(JSON.stringify(args));\n return serializedArgs;\n}\nexports.stringifyJsonOrBytes = stringifyJsonOrBytes;\n/**\n * Constructs {@link Action} instance representing contract method call.\n *\n * @param methodName the name of the method to call\n * @param args arguments to pass to method. Can be either plain JS object which gets serialized as JSON automatically\n * or `Uint8Array` instance which represents bytes passed as is.\n * @param gas max amount of gas that method call can use\n * @param deposit amount of NEAR (in yoctoNEAR) to send together with the call\n * @param stringify Convert input arguments into bytes array.\n */\nfunction functionCall(methodName, args, gas, deposit, stringify = stringifyJsonOrBytes) {\n return new Action({ functionCall: new FunctionCall({ methodName, args: stringify(args), gas, deposit }) });\n}\nexports.functionCall = functionCall;\nfunction transfer(deposit) {\n return new Action({ transfer: new Transfer({ deposit }) });\n}\nexports.transfer = transfer;\nfunction stake(stake, publicKey) {\n return new Action({ stake: new Stake({ stake, publicKey }) });\n}\nexports.stake = stake;\nfunction addKey(publicKey, accessKey) {\n return new Action({ addKey: new AddKey({ publicKey, accessKey }) });\n}\nexports.addKey = addKey;\nfunction deleteKey(publicKey) {\n return new Action({ deleteKey: new DeleteKey({ publicKey }) });\n}\nexports.deleteKey = deleteKey;\nfunction deleteAccount(beneficiaryId) {\n return new Action({ deleteAccount: new DeleteAccount({ beneficiaryId }) });\n}\nexports.deleteAccount = deleteAccount;\nclass Signature extends enums_1.Assignable {\n}\nexports.Signature = Signature;\nclass Transaction extends enums_1.Assignable {\n encode() {\n return borsh_1.serialize(exports.SCHEMA, this);\n }\n static decode(bytes) {\n return borsh_1.deserialize(exports.SCHEMA, Transaction, bytes);\n }\n}\nexports.Transaction = Transaction;\nclass SignedTransaction extends enums_1.Assignable {\n encode() {\n return borsh_1.serialize(exports.SCHEMA, this);\n }\n static decode(bytes) {\n return borsh_1.deserialize(exports.SCHEMA, SignedTransaction, bytes);\n }\n}\nexports.SignedTransaction = SignedTransaction;\n/**\n * Contains a list of the valid transaction Actions available with this API\n * @see {@link https://nomicon.io/RuntimeSpec/Actions.html | Actions Spec}\n */\nclass Action extends enums_1.Enum {\n}\nexports.Action = Action;\nexports.SCHEMA = new Map([\n [Signature, { kind: 'struct', fields: [\n ['keyType', 'u8'],\n ['data', [64]]\n ] }],\n [SignedTransaction, { kind: 'struct', fields: [\n ['transaction', Transaction],\n ['signature', Signature]\n ] }],\n [Transaction, { kind: 'struct', fields: [\n ['signerId', 'string'],\n ['publicKey', key_pair_1.PublicKey],\n ['nonce', 'u64'],\n ['receiverId', 'string'],\n ['blockHash', [32]],\n ['actions', [Action]]\n ] }],\n [key_pair_1.PublicKey, { kind: 'struct', fields: [\n ['keyType', 'u8'],\n ['data', [32]]\n ] }],\n [AccessKey, { kind: 'struct', fields: [\n ['nonce', 'u64'],\n ['permission', AccessKeyPermission],\n ] }],\n [AccessKeyPermission, { kind: 'enum', field: 'enum', values: [\n ['functionCall', FunctionCallPermission],\n ['fullAccess', FullAccessPermission],\n ] }],\n [FunctionCallPermission, { kind: 'struct', fields: [\n ['allowance', { kind: 'option', type: 'u128' }],\n ['receiverId', 'string'],\n ['methodNames', ['string']],\n ] }],\n [FullAccessPermission, { kind: 'struct', fields: [] }],\n [Action, { kind: 'enum', field: 'enum', values: [\n ['createAccount', CreateAccount],\n ['deployContract', DeployContract],\n ['functionCall', FunctionCall],\n ['transfer', Transfer],\n ['stake', Stake],\n ['addKey', AddKey],\n ['deleteKey', DeleteKey],\n ['deleteAccount', DeleteAccount],\n ] }],\n [CreateAccount, { kind: 'struct', fields: [] }],\n [DeployContract, { kind: 'struct', fields: [\n ['code', ['u8']]\n ] }],\n [FunctionCall, { kind: 'struct', fields: [\n ['methodName', 'string'],\n ['args', ['u8']],\n ['gas', 'u64'],\n ['deposit', 'u128']\n ] }],\n [Transfer, { kind: 'struct', fields: [\n ['deposit', 'u128']\n ] }],\n [Stake, { kind: 'struct', fields: [\n ['stake', 'u128'],\n ['publicKey', key_pair_1.PublicKey]\n ] }],\n [AddKey, { kind: 'struct', fields: [\n ['publicKey', key_pair_1.PublicKey],\n ['accessKey', AccessKey]\n ] }],\n [DeleteKey, { kind: 'struct', fields: [\n ['publicKey', key_pair_1.PublicKey]\n ] }],\n [DeleteAccount, { kind: 'struct', fields: [\n ['beneficiaryId', 'string']\n ] }],\n]);\nfunction createTransaction(signerId, publicKey, receiverId, nonce, actions, blockHash) {\n return new Transaction({ signerId, publicKey, nonce, receiverId, actions, blockHash });\n}\nexports.createTransaction = createTransaction;\n/**\n * Signs a given transaction from an account with given keys, applied to the given network\n * @param transaction The Transaction object to sign\n * @param signer The {Signer} object that assists with signing keys\n * @param accountId The human-readable NEAR account name\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n */\nasync function signTransactionObject(transaction, signer, accountId, networkId) {\n const message = borsh_1.serialize(exports.SCHEMA, transaction);\n const hash = new Uint8Array(js_sha256_1.default.sha256.array(message));\n const signature = await signer.signMessage(message, accountId, networkId);\n const signedTx = new SignedTransaction({\n transaction,\n signature: new Signature({ keyType: transaction.publicKey.keyType, data: signature.signature })\n });\n return [hash, signedTx];\n}\nasync function signTransaction(...args) {\n if (args[0].constructor === Transaction) {\n const [transaction, signer, accountId, networkId] = args;\n return signTransactionObject(transaction, signer, accountId, networkId);\n }\n else {\n const [receiverId, nonce, actions, blockHash, signer, accountId, networkId] = args;\n const publicKey = await signer.getPublicKey(accountId, networkId);\n const transaction = createTransaction(accountId, publicKey, receiverId, nonce, actions, blockHash);\n return signTransactionObject(transaction, signer, accountId, networkId);\n }\n}\nexports.signTransaction = signTransaction;\n","'use strict';\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.diffEpochValidators = exports.findSeatPrice = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\n/** Finds seat price given validators stakes and number of seats.\n * Calculation follow the spec: https://nomicon.io/Economics/README.html#validator-selection\n * @params validators: current or next epoch validators.\n * @params numSeats: number of seats.\n */\nfunction findSeatPrice(validators, numSeats) {\n const stakes = validators.map(v => new bn_js_1.default(v.stake, 10)).sort((a, b) => a.cmp(b));\n const num = new bn_js_1.default(numSeats);\n const stakesSum = stakes.reduce((a, b) => a.add(b));\n if (stakesSum.lt(num)) {\n throw new Error('Stakes are below seats');\n }\n // assert stakesSum >= numSeats\n let left = new bn_js_1.default(1), right = stakesSum.add(new bn_js_1.default(1));\n while (!left.eq(right.sub(new bn_js_1.default(1)))) {\n const mid = left.add(right).div(new bn_js_1.default(2));\n let found = false;\n let currentSum = new bn_js_1.default(0);\n for (let i = 0; i < stakes.length; ++i) {\n currentSum = currentSum.add(stakes[i].div(mid));\n if (currentSum.gte(num)) {\n left = mid;\n found = true;\n break;\n }\n }\n if (!found) {\n right = mid;\n }\n }\n return left;\n}\nexports.findSeatPrice = findSeatPrice;\n/** Diff validators between current and next epoch.\n * Returns additions, subtractions and changes to validator set.\n * @params currentValidators: list of current validators.\n * @params nextValidators: list of next validators.\n */\nfunction diffEpochValidators(currentValidators, nextValidators) {\n const validatorsMap = new Map();\n currentValidators.forEach(v => validatorsMap.set(v.account_id, v));\n const nextValidatorsSet = new Set(nextValidators.map(v => v.account_id));\n return {\n newValidators: nextValidators.filter(v => !validatorsMap.has(v.account_id)),\n removedValidators: currentValidators.filter(v => !nextValidatorsSet.has(v.account_id)),\n changedValidators: nextValidators.filter(v => (validatorsMap.has(v.account_id) && validatorsMap.get(v.account_id).stake != v.stake))\n .map(v => ({ current: validatorsMap.get(v.account_id), next: v }))\n };\n}\nexports.diffEpochValidators = diffEpochValidators;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DEFAULT_FUNCTION_CALL_GAS = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\n// Default amount of gas to be sent with the function calls. Used to pay for the fees\n// incurred while running the contract execution. The unused amount will be refunded back to\n// the originator.\n// Due to protocol changes that charge upfront for the maximum possible gas price inflation due to\n// full blocks, the price of max_prepaid_gas is decreased to `300 * 10**12`.\n// For discussion see https://github.com/nearprotocol/NEPs/issues/67\nexports.DEFAULT_FUNCTION_CALL_GAS = new bn_js_1.default('30000000000000');\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Account = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst depd_1 = __importDefault(require(\"depd\"));\nconst transaction_1 = require(\"./transaction\");\nconst providers_1 = require(\"./providers\");\nconst borsh_1 = require(\"borsh\");\nconst key_pair_1 = require(\"./utils/key_pair\");\nconst errors_1 = require(\"./utils/errors\");\nconst rpc_errors_1 = require(\"./utils/rpc_errors\");\nconst constants_1 = require(\"./constants\");\nconst exponential_backoff_1 = __importDefault(require(\"./utils/exponential-backoff\"));\n// Default number of retries with different nonce before giving up on a transaction.\nconst TX_NONCE_RETRY_NUMBER = 12;\n// Default wait until next retry in millis.\nconst TX_NONCE_RETRY_WAIT = 500;\n// Exponential back off for waiting to retry.\nconst TX_NONCE_RETRY_WAIT_BACKOFF = 1.5;\nfunction parseJsonFromRawResponse(response) {\n return JSON.parse(Buffer.from(response).toString());\n}\nfunction bytesJsonStringify(input) {\n return Buffer.from(JSON.stringify(input));\n}\n/**\n * This class provides common account related RPC calls including signing transactions with a {@link KeyPair}.\n *\n * @example {@link https://docs.near.org/docs/develop/front-end/naj-quick-reference#account}\n * @hint Use {@link WalletConnection} in the browser to redirect to {@link https://docs.near.org/docs/tools/near-wallet | NEAR Wallet} for Account/key management using the {@link BrowserLocalStorageKeyStore}.\n * @see {@link https://nomicon.io/DataStructures/Account.html | Account Spec}\n */\nclass Account {\n constructor(connection, accountId) {\n /** @hidden */\n this.accessKeyByPublicKeyCache = {};\n this.connection = connection;\n this.accountId = accountId;\n }\n /** @hidden */\n get ready() {\n const deprecate = depd_1.default('Account.ready()');\n deprecate('not needed anymore, always ready');\n return Promise.resolve();\n }\n async fetchState() {\n const deprecate = depd_1.default('Account.fetchState()');\n deprecate('use `Account.state()` instead');\n }\n /**\n * Returns basic NEAR account information via the `view_account` RPC query method\n * @see {@link https://docs.near.org/docs/develop/front-end/rpc#view-account}\n */\n async state() {\n return this.connection.provider.query({\n request_type: 'view_account',\n account_id: this.accountId,\n finality: 'optimistic'\n });\n }\n /** @hidden */\n printLogsAndFailures(contractId, results) {\n if (!process.env[\"NEAR_NO_LOGS\"]) {\n for (const result of results) {\n console.log(`Receipt${result.receiptIds.length > 1 ? 's' : ''}: ${result.receiptIds.join(', ')}`);\n this.printLogs(contractId, result.logs, '\\t');\n if (result.failure) {\n console.warn(`\\tFailure [${contractId}]: ${result.failure}`);\n }\n }\n }\n }\n /** @hidden */\n printLogs(contractId, logs, prefix = '') {\n if (!process.env[\"NEAR_NO_LOGS\"]) {\n for (const log of logs) {\n console.log(`${prefix}Log [${contractId}]: ${log}`);\n }\n }\n }\n /**\n * Create a signed transaction which can be broadcast to the network\n * @param receiverId NEAR account receiving the transaction\n * @param actions list of actions to perform as part of the transaction\n * @see {@link JsonRpcProvider.sendTransaction}\n */\n async signTransaction(receiverId, actions) {\n const accessKeyInfo = await this.findAccessKey(receiverId, actions);\n if (!accessKeyInfo) {\n throw new providers_1.TypedError(`Can not sign transactions for account ${this.accountId} on network ${this.connection.networkId}, no matching key pair found in ${this.connection.signer}.`, 'KeyNotFound');\n }\n const { accessKey } = accessKeyInfo;\n const block = await this.connection.provider.block({ finality: 'final' });\n const blockHash = block.header.hash;\n const nonce = ++accessKey.nonce;\n return await transaction_1.signTransaction(receiverId, nonce, actions, borsh_1.baseDecode(blockHash), this.connection.signer, this.accountId, this.connection.networkId);\n }\n signAndSendTransaction(...args) {\n if (typeof args[0] === 'string') {\n return this.signAndSendTransactionV1(args[0], args[1]);\n }\n else {\n return this.signAndSendTransactionV2(args[0]);\n }\n }\n signAndSendTransactionV1(receiverId, actions) {\n const deprecate = depd_1.default('Account.signAndSendTransaction(receiverId, actions');\n deprecate('use `Account.signAndSendTransaction(SignAndSendTransactionOptions)` instead');\n return this.signAndSendTransactionV2({ receiverId, actions });\n }\n async signAndSendTransactionV2({ receiverId, actions }) {\n let txHash, signedTx;\n // TODO: TX_NONCE (different constants for different uses of exponentialBackoff?)\n const result = await exponential_backoff_1.default(TX_NONCE_RETRY_WAIT, TX_NONCE_RETRY_NUMBER, TX_NONCE_RETRY_WAIT_BACKOFF, async () => {\n [txHash, signedTx] = await this.signTransaction(receiverId, actions);\n const publicKey = signedTx.transaction.publicKey;\n try {\n return await this.connection.provider.sendTransaction(signedTx);\n }\n catch (error) {\n if (error.type === 'InvalidNonce') {\n errors_1.logWarning(`Retrying transaction ${receiverId}:${borsh_1.baseEncode(txHash)} with new nonce.`);\n delete this.accessKeyByPublicKeyCache[publicKey.toString()];\n return null;\n }\n if (error.type === 'Expired') {\n errors_1.logWarning(`Retrying transaction ${receiverId}:${borsh_1.baseEncode(txHash)} due to expired block hash`);\n return null;\n }\n error.context = new providers_1.ErrorContext(borsh_1.baseEncode(txHash));\n throw error;\n }\n });\n if (!result) {\n // TODO: This should have different code actually, as means \"transaction not submitted for sure\"\n throw new providers_1.TypedError('nonce retries exceeded for transaction. This usually means there are too many parallel requests with the same access key.', 'RetriesExceeded');\n }\n const flatLogs = [result.transaction_outcome, ...result.receipts_outcome].reduce((acc, it) => {\n if (it.outcome.logs.length ||\n (typeof it.outcome.status === 'object' && typeof it.outcome.status.Failure === 'object')) {\n return acc.concat({\n 'receiptIds': it.outcome.receipt_ids,\n 'logs': it.outcome.logs,\n 'failure': typeof it.outcome.status.Failure != 'undefined' ? rpc_errors_1.parseRpcError(it.outcome.status.Failure) : null\n });\n }\n else\n return acc;\n }, []);\n this.printLogsAndFailures(signedTx.transaction.receiverId, flatLogs);\n if (typeof result.status === 'object' && typeof result.status.Failure === 'object') {\n // if error data has error_message and error_type properties, we consider that node returned an error in the old format\n if (result.status.Failure.error_message && result.status.Failure.error_type) {\n throw new providers_1.TypedError(`Transaction ${result.transaction_outcome.id} failed. ${result.status.Failure.error_message}`, result.status.Failure.error_type);\n }\n else {\n throw rpc_errors_1.parseResultError(result);\n }\n }\n // TODO: if Tx is Unknown or Started.\n return result;\n }\n /**\n * Finds the {@link AccessKeyView} associated with the accounts {@link PublicKey} stored in the {@link KeyStore}.\n *\n * @todo Find matching access key based on transaction (i.e. receiverId and actions)\n *\n * @param receiverId currently unused (see todo)\n * @param actions currently unused (see todo)\n * @returns `{ publicKey PublicKey; accessKey: AccessKeyView }`\n */\n async findAccessKey(receiverId, actions) {\n // TODO: Find matching access key based on transaction (i.e. receiverId and actions)\n const publicKey = await this.connection.signer.getPublicKey(this.accountId, this.connection.networkId);\n if (!publicKey) {\n return null;\n }\n const cachedAccessKey = this.accessKeyByPublicKeyCache[publicKey.toString()];\n if (cachedAccessKey !== undefined) {\n return { publicKey, accessKey: cachedAccessKey };\n }\n try {\n const accessKey = await this.connection.provider.query({\n request_type: 'view_access_key',\n account_id: this.accountId,\n public_key: publicKey.toString(),\n finality: 'optimistic'\n });\n // this function can be called multiple times and retrieve the same access key\n // this checks to see if the access key was already retrieved and cached while\n // the above network call was in flight. To keep nonce values in line, we return\n // the cached access key.\n if (this.accessKeyByPublicKeyCache[publicKey.toString()]) {\n return { publicKey, accessKey: this.accessKeyByPublicKeyCache[publicKey.toString()] };\n }\n this.accessKeyByPublicKeyCache[publicKey.toString()] = accessKey;\n return { publicKey, accessKey };\n }\n catch (e) {\n if (e.type == 'AccessKeyDoesNotExist') {\n return null;\n }\n throw e;\n }\n }\n /**\n * Create a new account and deploy a contract to it\n *\n * @param contractId NEAR account where the contract is deployed\n * @param publicKey The public key to add to the created contract account\n * @param data The compiled contract code\n * @param amount of NEAR to transfer to the created contract account. Transfer enough to pay for storage https://docs.near.org/docs/concepts/storage-staking\n */\n async createAndDeployContract(contractId, publicKey, data, amount) {\n const accessKey = transaction_1.fullAccessKey();\n await this.signAndSendTransaction({\n receiverId: contractId,\n actions: [transaction_1.createAccount(), transaction_1.transfer(amount), transaction_1.addKey(key_pair_1.PublicKey.from(publicKey), accessKey), transaction_1.deployContract(data)]\n });\n const contractAccount = new Account(this.connection, contractId);\n return contractAccount;\n }\n /**\n * @param receiverId NEAR account receiving Ⓝ\n * @param amount Amount to send in yoctoⓃ\n */\n async sendMoney(receiverId, amount) {\n return this.signAndSendTransaction({\n receiverId,\n actions: [transaction_1.transfer(amount)]\n });\n }\n /**\n * @param newAccountId NEAR account name to be created\n * @param publicKey A public key created from the masterAccount\n */\n async createAccount(newAccountId, publicKey, amount) {\n const accessKey = transaction_1.fullAccessKey();\n return this.signAndSendTransaction({\n receiverId: newAccountId,\n actions: [transaction_1.createAccount(), transaction_1.transfer(amount), transaction_1.addKey(key_pair_1.PublicKey.from(publicKey), accessKey)]\n });\n }\n /**\n * @param beneficiaryId The NEAR account that will receive the remaining Ⓝ balance from the account being deleted\n */\n async deleteAccount(beneficiaryId) {\n return this.signAndSendTransaction({\n receiverId: this.accountId,\n actions: [transaction_1.deleteAccount(beneficiaryId)]\n });\n }\n /**\n * @param data The compiled contract code\n */\n async deployContract(data) {\n return this.signAndSendTransaction({\n receiverId: this.accountId,\n actions: [transaction_1.deployContract(data)]\n });\n }\n async functionCall(...args) {\n if (typeof args[0] === 'string') {\n return this.functionCallV1(args[0], args[1], args[2], args[3], args[4]);\n }\n else {\n return this.functionCallV2(args[0]);\n }\n }\n functionCallV1(contractId, methodName, args, gas, amount) {\n const deprecate = depd_1.default('Account.functionCall(contractId, methodName, args, gas, amount)');\n deprecate('use `Account.functionCall(FunctionCallOptions)` instead');\n args = args || {};\n this.validateArgs(args);\n return this.signAndSendTransaction({\n receiverId: contractId,\n actions: [transaction_1.functionCall(methodName, args, gas || constants_1.DEFAULT_FUNCTION_CALL_GAS, amount)]\n });\n }\n functionCallV2({ contractId, methodName, args = {}, gas = constants_1.DEFAULT_FUNCTION_CALL_GAS, attachedDeposit, walletMeta, walletCallbackUrl, stringify }) {\n this.validateArgs(args);\n const stringifyArg = stringify === undefined ? transaction_1.stringifyJsonOrBytes : stringify;\n return this.signAndSendTransaction({\n receiverId: contractId,\n actions: [transaction_1.functionCall(methodName, args, gas, attachedDeposit, stringifyArg)],\n walletMeta,\n walletCallbackUrl\n });\n }\n /**\n * @see {@link https://docs.near.org/docs/concepts/account#access-keys}\n * @todo expand this API to support more options.\n * @param publicKey A public key to be associated with the contract\n * @param contractId NEAR account where the contract is deployed\n * @param methodNames The method names on the contract that should be allowed to be called. Pass null for no method names and '' or [] for any method names.\n * @param amount Payment in yoctoⓃ that is sent to the contract during this function call\n */\n async addKey(publicKey, contractId, methodNames, amount) {\n if (!methodNames) {\n methodNames = [];\n }\n if (!Array.isArray(methodNames)) {\n methodNames = [methodNames];\n }\n let accessKey;\n if (!contractId) {\n accessKey = transaction_1.fullAccessKey();\n }\n else {\n accessKey = transaction_1.functionCallAccessKey(contractId, methodNames, amount);\n }\n return this.signAndSendTransaction({\n receiverId: this.accountId,\n actions: [transaction_1.addKey(key_pair_1.PublicKey.from(publicKey), accessKey)]\n });\n }\n /**\n * @param publicKey The public key to be deleted\n * @returns {Promise<FinalExecutionOutcome>}\n */\n async deleteKey(publicKey) {\n return this.signAndSendTransaction({\n receiverId: this.accountId,\n actions: [transaction_1.deleteKey(key_pair_1.PublicKey.from(publicKey))]\n });\n }\n /**\n * @see {@link https://docs.near.org/docs/validator/staking-overview}\n *\n * @param publicKey The public key for the account that's staking\n * @param amount The account to stake in yoctoⓃ\n */\n async stake(publicKey, amount) {\n return this.signAndSendTransaction({\n receiverId: this.accountId,\n actions: [transaction_1.stake(amount, key_pair_1.PublicKey.from(publicKey))]\n });\n }\n /** @hidden */\n validateArgs(args) {\n const isUint8Array = args.byteLength !== undefined && args.byteLength === args.length;\n if (isUint8Array) {\n return;\n }\n if (Array.isArray(args) || typeof args !== 'object') {\n throw new errors_1.PositionalArgsError();\n }\n }\n /**\n * Invoke a contract view function using the RPC API.\n * @see {@link https://docs.near.org/docs/develop/front-end/rpc#call-a-contract-function}\n *\n * @param contractId NEAR account where the contract is deployed\n * @param methodName The view-only method (no state mutations) name on the contract as it is written in the contract code\n * @param args Any arguments to the view contract method, wrapped in JSON\n * @param options.parse Parse the result of the call. Receives a Buffer (bytes array) and converts it to any object. By default result will be treated as json.\n * @param options.stringify Convert input arguments into a bytes array. By default the input is treated as a JSON.\n * @returns {Promise<any>}\n */\n async viewFunction(contractId, methodName, args = {}, { parse = parseJsonFromRawResponse, stringify = bytesJsonStringify } = {}) {\n this.validateArgs(args);\n const serializedArgs = stringify(args).toString('base64');\n const result = await this.connection.provider.query({\n request_type: 'call_function',\n account_id: contractId,\n method_name: methodName,\n args_base64: serializedArgs,\n finality: 'optimistic'\n });\n if (result.logs) {\n this.printLogs(contractId, result.logs);\n }\n return result.result && result.result.length > 0 && parse(Buffer.from(result.result));\n }\n /**\n * Returns the state (key value pairs) of this account's contract based on the key prefix.\n * Pass an empty string for prefix if you would like to return the entire state.\n * @see {@link https://docs.near.org/docs/develop/front-end/rpc#view-contract-state}\n *\n * @param prefix allows to filter which keys should be returned. Empty prefix means all keys. String prefix is utf-8 encoded.\n * @param blockQuery specifies which block to query state at. By default returns last \"optimistic\" block (i.e. not necessarily finalized).\n */\n async viewState(prefix, blockQuery = { finality: 'optimistic' }) {\n const { values } = await this.connection.provider.query({\n request_type: 'view_state',\n ...blockQuery,\n account_id: this.accountId,\n prefix_base64: Buffer.from(prefix).toString('base64')\n });\n return values.map(({ key, value }) => ({\n key: Buffer.from(key, 'base64'),\n value: Buffer.from(value, 'base64')\n }));\n }\n /**\n * Get all access keys for the account\n * @see {@link https://docs.near.org/docs/develop/front-end/rpc#view-access-key-list}\n */\n async getAccessKeys() {\n const response = await this.connection.provider.query({\n request_type: 'view_access_key_list',\n account_id: this.accountId,\n finality: 'optimistic'\n });\n // A breaking API change introduced extra information into the\n // response, so it now returns an object with a `keys` field instead\n // of an array: https://github.com/nearprotocol/nearcore/pull/1789\n if (Array.isArray(response)) {\n return response;\n }\n return response.keys;\n }\n /**\n * Returns a list of authorized apps\n * @todo update the response value to return all the different keys, not just app keys.\n */\n async getAccountDetails() {\n // TODO: update the response value to return all the different keys, not just app keys.\n // Also if we need this function, or getAccessKeys is good enough.\n const accessKeys = await this.getAccessKeys();\n const authorizedApps = accessKeys\n .filter(item => item.access_key.permission !== 'FullAccess')\n .map(item => {\n const perm = item.access_key.permission;\n return {\n contractId: perm.FunctionCall.receiver_id,\n amount: perm.FunctionCall.allowance,\n publicKey: item.public_key,\n };\n });\n return { authorizedApps };\n }\n /**\n * Returns calculated account balance\n */\n async getAccountBalance() {\n const protocolConfig = await this.connection.provider.experimental_protocolConfig({ finality: 'final' });\n const state = await this.state();\n const costPerByte = new bn_js_1.default(protocolConfig.runtime_config.storage_amount_per_byte);\n const stateStaked = new bn_js_1.default(state.storage_usage).mul(costPerByte);\n const staked = new bn_js_1.default(state.locked);\n const totalBalance = new bn_js_1.default(state.amount).add(staked);\n const availableBalance = totalBalance.sub(bn_js_1.default.max(staked, stateStaked));\n return {\n total: totalBalance.toString(),\n stateStaked: stateStaked.toString(),\n staked: staked.toString(),\n available: availableBalance.toString()\n };\n }\n}\nexports.Account = Account;\n","'use strict';\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Account2FA = exports.AccountMultisig = exports.MULTISIG_CONFIRM_METHODS = exports.MULTISIG_CHANGE_METHODS = exports.MULTISIG_DEPOSIT = exports.MULTISIG_GAS = exports.MULTISIG_ALLOWANCE = exports.MULTISIG_STORAGE_KEY = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst depd_1 = __importDefault(require(\"depd\"));\nconst account_1 = require(\"./account\");\nconst format_1 = require(\"./utils/format\");\nconst key_pair_1 = require(\"./utils/key_pair\");\nconst transaction_1 = require(\"./transaction\");\nconst web_1 = require(\"./utils/web\");\nexports.MULTISIG_STORAGE_KEY = '__multisigRequest';\nexports.MULTISIG_ALLOWANCE = new bn_js_1.default(format_1.parseNearAmount('1'));\n// TODO: Different gas value for different requests (can reduce gas usage dramatically)\nexports.MULTISIG_GAS = new bn_js_1.default('100000000000000');\nexports.MULTISIG_DEPOSIT = new bn_js_1.default('0');\nexports.MULTISIG_CHANGE_METHODS = ['add_request', 'add_request_and_confirm', 'delete_request', 'confirm'];\nexports.MULTISIG_CONFIRM_METHODS = ['confirm'];\n// in memory request cache for node w/o localStorage\nconst storageFallback = {\n [exports.MULTISIG_STORAGE_KEY]: null\n};\nclass AccountMultisig extends account_1.Account {\n constructor(connection, accountId, options) {\n super(connection, accountId);\n this.storage = options.storage;\n this.onAddRequestResult = options.onAddRequestResult;\n }\n async signAndSendTransactionWithAccount(receiverId, actions) {\n return super.signAndSendTransaction({ receiverId, actions });\n }\n signAndSendTransaction(...args) {\n if (typeof args[0] === 'string') {\n return this._signAndSendTransaction({ receiverId: args[0], actions: args[1] });\n }\n return this._signAndSendTransaction(args[0]);\n }\n async _signAndSendTransaction({ receiverId, actions }) {\n const { accountId } = this;\n const args = Buffer.from(JSON.stringify({\n request: {\n receiver_id: receiverId,\n actions: convertActions(actions, accountId, receiverId)\n }\n }));\n let result;\n try {\n result = await super.signAndSendTransaction({\n receiverId: accountId,\n actions: [\n transaction_1.functionCall('add_request_and_confirm', args, exports.MULTISIG_GAS, exports.MULTISIG_DEPOSIT)\n ]\n });\n }\n catch (e) {\n if (e.toString().includes('Account has too many active requests. Confirm or delete some')) {\n await this.deleteUnconfirmedRequests();\n return await this.signAndSendTransaction(receiverId, actions);\n }\n throw e;\n }\n // TODO: Are following even needed? Seems like it throws on error already\n if (!result.status) {\n throw new Error('Request failed');\n }\n const status = { ...result.status };\n if (!status.SuccessValue || typeof status.SuccessValue !== 'string') {\n throw new Error('Request failed');\n }\n this.setRequest({\n accountId,\n actions,\n requestId: parseInt(Buffer.from(status.SuccessValue, 'base64').toString('ascii'), 10)\n });\n if (this.onAddRequestResult) {\n await this.onAddRequestResult(result);\n }\n // NOTE there is no await on purpose to avoid blocking for 2fa\n this.deleteUnconfirmedRequests();\n return result;\n }\n async deleteUnconfirmedRequests() {\n // TODO: Delete in batch, don't delete unexpired\n // TODO: Delete in batch, don't delete unexpired (can reduce gas usage dramatically)\n const request_ids = await this.getRequestIds();\n const { requestId } = this.getRequest();\n for (const requestIdToDelete of request_ids) {\n if (requestIdToDelete == requestId) {\n continue;\n }\n try {\n await super.signAndSendTransaction({\n receiverId: this.accountId,\n actions: [transaction_1.functionCall('delete_request', { request_id: requestIdToDelete }, exports.MULTISIG_GAS, exports.MULTISIG_DEPOSIT)]\n });\n }\n catch (e) {\n console.warn('Attempt to delete an earlier request before 15 minutes failed. Will try again.');\n }\n }\n }\n // helpers\n async getRequestIds() {\n // TODO: Read requests from state to allow filtering by expiration time\n // TODO: https://github.com/near/core-contracts/blob/305d1db4f4f2cf5ce4c1ef3479f7544957381f11/multisig/src/lib.rs#L84\n return this.viewFunction(this.accountId, 'list_request_ids');\n }\n getRequest() {\n if (this.storage) {\n return JSON.parse(this.storage.getItem(exports.MULTISIG_STORAGE_KEY) || '{}');\n }\n return storageFallback[exports.MULTISIG_STORAGE_KEY];\n }\n setRequest(data) {\n if (this.storage) {\n return this.storage.setItem(exports.MULTISIG_STORAGE_KEY, JSON.stringify(data));\n }\n storageFallback[exports.MULTISIG_STORAGE_KEY] = data;\n }\n}\nexports.AccountMultisig = AccountMultisig;\nclass Account2FA extends AccountMultisig {\n constructor(connection, accountId, options) {\n super(connection, accountId, options);\n this.helperUrl = 'https://helper.testnet.near.org';\n this.helperUrl = options.helperUrl || this.helperUrl;\n this.storage = options.storage;\n this.sendCode = options.sendCode || this.sendCodeDefault;\n this.getCode = options.getCode || this.getCodeDefault;\n this.verifyCode = options.verifyCode || this.verifyCodeDefault;\n this.onConfirmResult = options.onConfirmResult;\n }\n async signAndSendTransaction(...args) {\n if (typeof args[0] === 'string') {\n const deprecate = depd_1.default('Account.signAndSendTransaction(receiverId, actions');\n deprecate('use `Account2FA.signAndSendTransaction(SignAndSendTransactionOptions)` instead');\n return this.__signAndSendTransaction({ receiverId: args[0], actions: args[1] });\n }\n else {\n return this.__signAndSendTransaction(args[0]);\n }\n }\n async __signAndSendTransaction({ receiverId, actions }) {\n await super.signAndSendTransaction({ receiverId, actions });\n // TODO: Should following override onRequestResult in superclass instead of doing custom signAndSendTransaction?\n await this.sendCode();\n const result = await this.promptAndVerify();\n if (this.onConfirmResult) {\n await this.onConfirmResult(result);\n }\n return result;\n }\n // default helpers for CH deployments of multisig\n async deployMultisig(contractBytes) {\n const { accountId } = this;\n const seedOrLedgerKey = (await this.getRecoveryMethods()).data\n .filter(({ kind, publicKey }) => (kind === 'phrase' || kind === 'ledger') && publicKey !== null)\n .map((rm) => rm.publicKey);\n const fak2lak = (await this.getAccessKeys())\n .filter(({ public_key, access_key: { permission } }) => permission === 'FullAccess' && !seedOrLedgerKey.includes(public_key))\n .map((ak) => ak.public_key)\n .map(toPK);\n const confirmOnlyKey = toPK((await this.postSignedJson('/2fa/getAccessKey', { accountId })).publicKey);\n const newArgs = Buffer.from(JSON.stringify({ 'num_confirmations': 2 }));\n const actions = [\n ...fak2lak.map((pk) => transaction_1.deleteKey(pk)),\n ...fak2lak.map((pk) => transaction_1.addKey(pk, transaction_1.functionCallAccessKey(accountId, exports.MULTISIG_CHANGE_METHODS, null))),\n transaction_1.addKey(confirmOnlyKey, transaction_1.functionCallAccessKey(accountId, exports.MULTISIG_CONFIRM_METHODS, null)),\n transaction_1.deployContract(contractBytes),\n ];\n if ((await this.state()).code_hash === '11111111111111111111111111111111') {\n actions.push(transaction_1.functionCall('new', newArgs, exports.MULTISIG_GAS, exports.MULTISIG_DEPOSIT));\n }\n console.log('deploying multisig contract for', accountId);\n return await super.signAndSendTransactionWithAccount(accountId, actions);\n }\n async disable(contractBytes) {\n const { accountId } = this;\n const accessKeys = await this.getAccessKeys();\n const lak2fak = accessKeys\n .filter(({ access_key }) => access_key.permission !== 'FullAccess')\n .filter(({ access_key }) => {\n const perm = access_key.permission.FunctionCall;\n return perm.receiver_id === accountId &&\n perm.method_names.length === 4 &&\n perm.method_names.includes('add_request_and_confirm');\n });\n const confirmOnlyKey = key_pair_1.PublicKey.from((await this.postSignedJson('/2fa/getAccessKey', { accountId })).publicKey);\n const actions = [\n transaction_1.deleteKey(confirmOnlyKey),\n ...lak2fak.map(({ public_key }) => transaction_1.deleteKey(key_pair_1.PublicKey.from(public_key))),\n ...lak2fak.map(({ public_key }) => transaction_1.addKey(key_pair_1.PublicKey.from(public_key), null)),\n transaction_1.deployContract(contractBytes),\n ];\n console.log('disabling 2fa for', accountId);\n return await this.signAndSendTransaction({\n receiverId: accountId,\n actions\n });\n }\n async sendCodeDefault() {\n const { accountId } = this;\n const { requestId } = this.getRequest();\n const method = await this.get2faMethod();\n await this.postSignedJson('/2fa/send', {\n accountId,\n method,\n requestId,\n });\n return requestId;\n }\n async getCodeDefault(method) {\n throw new Error('There is no getCode callback provided. Please provide your own in AccountMultisig constructor options. It has a parameter method where method.kind is \"email\" or \"phone\".');\n }\n async promptAndVerify() {\n const method = await this.get2faMethod();\n const securityCode = await this.getCode(method);\n try {\n const result = await this.verifyCode(securityCode);\n // TODO: Parse error from result for real (like in normal account.signAndSendTransaction)\n return result;\n }\n catch (e) {\n console.warn('Error validating security code:', e);\n if (e.toString().includes('invalid 2fa code provided') || e.toString().includes('2fa code not valid')) {\n return await this.promptAndVerify();\n }\n throw e;\n }\n }\n async verifyCodeDefault(securityCode) {\n const { accountId } = this;\n const request = this.getRequest();\n if (!request) {\n throw new Error('no request pending');\n }\n const { requestId } = request;\n return await this.postSignedJson('/2fa/verify', {\n accountId,\n securityCode,\n requestId\n });\n }\n async getRecoveryMethods() {\n const { accountId } = this;\n return {\n accountId,\n data: await this.postSignedJson('/account/recoveryMethods', { accountId })\n };\n }\n async get2faMethod() {\n let { data } = await this.getRecoveryMethods();\n if (data && data.length) {\n data = data.find((m) => m.kind.indexOf('2fa-') === 0);\n }\n if (!data)\n return null;\n const { kind, detail } = data;\n return { kind, detail };\n }\n async signatureFor() {\n const { accountId } = this;\n const block = await this.connection.provider.block({ finality: 'final' });\n const blockNumber = block.header.height.toString();\n const signed = await this.connection.signer.signMessage(Buffer.from(blockNumber), accountId, this.connection.networkId);\n const blockNumberSignature = Buffer.from(signed.signature).toString('base64');\n return { blockNumber, blockNumberSignature };\n }\n async postSignedJson(path, body) {\n return await web_1.fetchJson(this.helperUrl + path, JSON.stringify({\n ...body,\n ...(await this.signatureFor())\n }));\n }\n}\nexports.Account2FA = Account2FA;\n// helpers\nconst toPK = (pk) => key_pair_1.PublicKey.from(pk);\nconst convertPKForContract = (pk) => pk.toString().replace('ed25519:', '');\nconst convertActions = (actions, accountId, receiverId) => actions.map((a) => {\n const type = a.enum;\n const { gas, publicKey, methodName, args, deposit, accessKey, code } = a[type];\n const action = {\n type: type[0].toUpperCase() + type.substr(1),\n gas: (gas && gas.toString()) || undefined,\n public_key: (publicKey && convertPKForContract(publicKey)) || undefined,\n method_name: methodName,\n args: (args && Buffer.from(args).toString('base64')) || undefined,\n code: (code && Buffer.from(code).toString('base64')) || undefined,\n amount: (deposit && deposit.toString()) || undefined,\n deposit: (deposit && deposit.toString()) || '0',\n permission: undefined,\n };\n if (accessKey) {\n if (receiverId === accountId && accessKey.permission.enum !== 'fullAccess') {\n action.permission = {\n receiver_id: accountId,\n allowance: exports.MULTISIG_ALLOWANCE.toString(),\n method_names: exports.MULTISIG_CHANGE_METHODS,\n };\n }\n if (accessKey.permission.enum === 'functionCall') {\n const { receiverId: receiver_id, methodNames: method_names, allowance } = accessKey.permission.functionCall;\n action.permission = {\n receiver_id,\n allowance: (allowance && allowance.toString()) || undefined,\n method_names\n };\n }\n }\n return action;\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UrlAccountCreator = exports.LocalAccountCreator = exports.AccountCreator = void 0;\nconst web_1 = require(\"./utils/web\");\n/**\n * Account creator provides an interface for implementations to actually create accounts\n */\nclass AccountCreator {\n}\nexports.AccountCreator = AccountCreator;\nclass LocalAccountCreator extends AccountCreator {\n constructor(masterAccount, initialBalance) {\n super();\n this.masterAccount = masterAccount;\n this.initialBalance = initialBalance;\n }\n /**\n * Creates an account using a masterAccount, meaning the new account is created from an existing account\n * @param newAccountId The name of the NEAR account to be created\n * @param publicKey The public key from the masterAccount used to create this account\n * @returns {Promise<void>}\n */\n async createAccount(newAccountId, publicKey) {\n await this.masterAccount.createAccount(newAccountId, publicKey, this.initialBalance);\n }\n}\nexports.LocalAccountCreator = LocalAccountCreator;\nclass UrlAccountCreator extends AccountCreator {\n constructor(connection, helperUrl) {\n super();\n this.connection = connection;\n this.helperUrl = helperUrl;\n }\n /**\n * Creates an account using a helperUrl\n * This is [hosted here](https://helper.nearprotocol.com) or set up locally with the [near-contract-helper](https://github.com/nearprotocol/near-contract-helper) repository\n * @param newAccountId The name of the NEAR account to be created\n * @param publicKey The public key from the masterAccount used to create this account\n * @returns {Promise<void>}\n */\n async createAccount(newAccountId, publicKey) {\n await web_1.fetchJson(`${this.helperUrl}/account`, JSON.stringify({ newAccountId, newAccountPublicKey: publicKey.toString() }));\n }\n}\nexports.UrlAccountCreator = UrlAccountCreator;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InMemorySigner = exports.Signer = void 0;\nconst js_sha256_1 = __importDefault(require(\"js-sha256\"));\nconst key_pair_1 = require(\"./utils/key_pair\");\nconst in_memory_key_store_1 = require(\"./key_stores/in_memory_key_store\");\n/**\n * General signing interface, can be used for in memory signing, RPC singing, external wallet, HSM, etc.\n */\nclass Signer {\n}\nexports.Signer = Signer;\n/**\n * Signs using in memory key store.\n */\nclass InMemorySigner extends Signer {\n constructor(keyStore) {\n super();\n this.keyStore = keyStore;\n }\n /**\n * Creates a single account Signer instance with account, network and keyPair provided.\n *\n * Intended to be useful for temporary keys (e.g. claiming a Linkdrop).\n *\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @param accountId The NEAR account to assign the key pair to\n * @param keyPair The keyPair to use for signing\n */\n static async fromKeyPair(networkId, accountId, keyPair) {\n const keyStore = new in_memory_key_store_1.InMemoryKeyStore();\n await keyStore.setKey(networkId, accountId, keyPair);\n return new InMemorySigner(keyStore);\n }\n /**\n * Creates a public key for the account given\n * @param accountId The NEAR account to assign a public key to\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @returns {Promise<PublicKey>}\n */\n async createKey(accountId, networkId) {\n const keyPair = key_pair_1.KeyPair.fromRandom('ed25519');\n await this.keyStore.setKey(networkId, accountId, keyPair);\n return keyPair.getPublicKey();\n }\n /**\n * Gets the existing public key for a given account\n * @param accountId The NEAR account to assign a public key to\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @returns {Promise<PublicKey>} Returns the public key or null if not found\n */\n async getPublicKey(accountId, networkId) {\n const keyPair = await this.keyStore.getKey(networkId, accountId);\n if (keyPair === null) {\n return null;\n }\n return keyPair.getPublicKey();\n }\n /**\n * @param message A message to be signed, typically a serialized transaction\n * @param accountId the NEAR account signing the message\n * @param networkId The targeted network. (ex. default, betanet, etc…)\n * @returns {Promise<Signature>}\n */\n async signMessage(message, accountId, networkId) {\n const hash = new Uint8Array(js_sha256_1.default.sha256.array(message));\n if (!accountId) {\n throw new Error('InMemorySigner requires provided account id');\n }\n const keyPair = await this.keyStore.getKey(networkId, accountId);\n if (keyPair === null) {\n throw new Error(`Key for ${accountId} not found in ${networkId}`);\n }\n return keyPair.sign(hash);\n }\n toString() {\n return `InMemorySigner(${this.keyStore})`;\n }\n}\nexports.InMemorySigner = InMemorySigner;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Connection = void 0;\nconst providers_1 = require(\"./providers\");\nconst signer_1 = require(\"./signer\");\n/**\n * @param config Contains connection info details\n * @returns {Provider}\n */\nfunction getProvider(config) {\n switch (config.type) {\n case undefined:\n return config;\n case 'JsonRpcProvider': return new providers_1.JsonRpcProvider(config.args.url);\n default: throw new Error(`Unknown provider type ${config.type}`);\n }\n}\n/**\n * @param config Contains connection info details\n * @returns {Signer}\n */\nfunction getSigner(config) {\n switch (config.type) {\n case undefined:\n return config;\n case 'InMemorySigner': {\n return new signer_1.InMemorySigner(config.keyStore);\n }\n default: throw new Error(`Unknown signer type ${config.type}`);\n }\n}\n/**\n * Connects an account to a given network via a given provider\n */\nclass Connection {\n constructor(networkId, provider, signer) {\n this.networkId = networkId;\n this.provider = provider;\n this.signer = signer;\n }\n /**\n * @param config Contains connection info details\n */\n static fromConfig(config) {\n const provider = getProvider(config.provider);\n const signer = getSigner(config.signer);\n return new Connection(config.networkId, provider, signer);\n }\n}\nexports.Connection = Connection;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Contract = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst depd_1 = __importDefault(require(\"depd\"));\nconst providers_1 = require(\"./providers\");\nconst errors_1 = require(\"./utils/errors\");\n// Makes `function.name` return given name\nfunction nameFunction(name, body) {\n return {\n [name](...args) {\n return body(...args);\n }\n }[name];\n}\nconst isUint8Array = (x) => x && x.byteLength !== undefined && x.byteLength === x.length;\nconst isObject = (x) => Object.prototype.toString.call(x) === '[object Object]';\n/**\n * Defines a smart contract on NEAR including the change (mutable) and view (non-mutable) methods\n *\n * @example {@link https://docs.near.org/docs/develop/front-end/naj-quick-reference#contract}\n * @example\n * ```js\n * import { Contract } from 'near-api-js';\n *\n * async function contractExample() {\n * const methodOptions = {\n * viewMethods: ['getMessageByAccountId'],\n * changeMethods: ['addMessage']\n * };\n * const contract = new Contract(\n * wallet.account(),\n * 'contract-id.testnet',\n * methodOptions\n * );\n *\n * // use a contract view method\n * const messages = await contract.getMessages({\n * accountId: 'example-account.testnet'\n * });\n *\n * // use a contract change method\n * await contract.addMessage({\n * meta: 'some info',\n * callbackUrl: 'https://example.com/callback',\n * args: { text: 'my message' },\n * amount: 1\n * })\n * }\n * ```\n */\nclass Contract {\n /**\n * @param account NEAR account to sign change method transactions\n * @param contractId NEAR account id where the contract is deployed\n * @param options NEAR smart contract methods that your application will use. These will be available as `contract.methodName`\n */\n constructor(account, contractId, options) {\n this.account = account;\n this.contractId = contractId;\n const { viewMethods = [], changeMethods = [] } = options;\n viewMethods.forEach((methodName) => {\n Object.defineProperty(this, methodName, {\n writable: false,\n enumerable: true,\n value: nameFunction(methodName, async (args = {}, options = {}, ...ignored) => {\n if (ignored.length || !(isObject(args) || isUint8Array(args)) || !isObject(options)) {\n throw new errors_1.PositionalArgsError();\n }\n return this.account.viewFunction(this.contractId, methodName, args, options);\n })\n });\n });\n changeMethods.forEach((methodName) => {\n Object.defineProperty(this, methodName, {\n writable: false,\n enumerable: true,\n value: nameFunction(methodName, async (...args) => {\n if (args.length && (args.length > 3 || !(isObject(args[0]) || isUint8Array(args[0])))) {\n throw new errors_1.PositionalArgsError();\n }\n if (args.length > 1 || !(args[0] && args[0].args)) {\n const deprecate = depd_1.default('contract.methodName(args, gas, amount)');\n deprecate('use `contract.methodName({ args, gas?, amount?, callbackUrl?, meta? })` instead');\n return this._changeMethod({\n methodName,\n args: args[0],\n gas: args[1],\n amount: args[2]\n });\n }\n return this._changeMethod({ methodName, ...args[0] });\n })\n });\n });\n }\n async _changeMethod({ args, methodName, gas, amount, meta, callbackUrl }) {\n validateBNLike({ gas, amount });\n const rawResult = await this.account.functionCall({\n contractId: this.contractId,\n methodName,\n args,\n gas,\n attachedDeposit: amount,\n walletMeta: meta,\n walletCallbackUrl: callbackUrl\n });\n return providers_1.getTransactionLastResult(rawResult);\n }\n}\nexports.Contract = Contract;\n/**\n * Validation on arguments being a big number from bn.js\n * Throws if an argument is not in BN format or otherwise invalid\n * @param argMap\n */\nfunction validateBNLike(argMap) {\n const bnLike = 'number, decimal string or BN';\n for (const argName of Object.keys(argMap)) {\n const argValue = argMap[argName];\n if (argValue && !bn_js_1.default.isBN(argValue) && isNaN(argValue)) {\n throw new errors_1.ArgumentTypeError(argName, bnLike, argValue);\n }\n }\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Near = void 0;\n/**\n * This module contains the main class developers will use to interact with NEAR.\n * The {@link Near} class is used to interact with {@link Account | Accounts} through the {@link JsonRpcProvider.JsonRpcProvider | JsonRpcProvider}.\n * It is configured via the {@link NearConfig}.\n *\n * @example {@link https://docs.near.org/docs/develop/front-end/naj-quick-reference#account}\n *\n * @module near\n */\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst account_1 = require(\"./account\");\nconst connection_1 = require(\"./connection\");\nconst contract_1 = require(\"./contract\");\nconst account_creator_1 = require(\"./account_creator\");\n/**\n * This is the main class developers should use to interact with NEAR.\n * @example\n * ```js\n * const near = new Near(config);\n * ```\n */\nclass Near {\n constructor(config) {\n this.config = config;\n this.connection = connection_1.Connection.fromConfig({\n networkId: config.networkId,\n provider: { type: 'JsonRpcProvider', args: { url: config.nodeUrl } },\n signer: config.signer || { type: 'InMemorySigner', keyStore: config.keyStore || config.deps.keyStore }\n });\n if (config.masterAccount) {\n // TODO: figure out better way of specifiying initial balance.\n // Hardcoded number below must be enough to pay the gas cost to dev-deploy with near-shell for multiple times\n const initialBalance = config.initialBalance ? new bn_js_1.default(config.initialBalance) : new bn_js_1.default('500000000000000000000000000');\n this.accountCreator = new account_creator_1.LocalAccountCreator(new account_1.Account(this.connection, config.masterAccount), initialBalance);\n }\n else if (config.helperUrl) {\n this.accountCreator = new account_creator_1.UrlAccountCreator(this.connection, config.helperUrl);\n }\n else {\n this.accountCreator = null;\n }\n }\n /**\n * @param accountId near accountId used to interact with the network.\n */\n async account(accountId) {\n const account = new account_1.Account(this.connection, accountId);\n return account;\n }\n /**\n * Create an account using the {@link AccountCreator}. Either:\n * * using a masterAccount with {@link LocalAccountCreator}\n * * using the helperUrl with {@link UrlAccountCreator}\n * @see {@link NearConfig.masterAccount} and {@link NearConfig.helperUrl}-\n *\n * @param accountId\n * @param publicKey\n */\n async createAccount(accountId, publicKey) {\n if (!this.accountCreator) {\n throw new Error('Must specify account creator, either via masterAccount or helperUrl configuration settings.');\n }\n await this.accountCreator.createAccount(accountId, publicKey);\n return new account_1.Account(this.connection, accountId);\n }\n /**\n * @deprecated Use {@link Contract} instead.\n * @param contractId\n * @param options\n */\n async loadContract(contractId, options) {\n const account = new account_1.Account(this.connection, options.sender);\n return new contract_1.Contract(account, contractId, options);\n }\n /**\n * @deprecated Use {@link Account.sendMoney} instead.\n * @param amount\n * @param originator\n * @param receiver\n */\n async sendTokens(amount, originator, receiver) {\n console.warn('near.sendTokens is deprecated. Use `yourAccount.sendMoney` instead.');\n const account = new account_1.Account(this.connection, originator);\n const result = await account.sendMoney(receiver, amount);\n return result.transaction_outcome.id;\n }\n}\nexports.Near = Near;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConnectedWalletAccount = exports.WalletAccount = exports.WalletConnection = void 0;\n/**\n * The classes in this module are used in conjunction with the {@link BrowserLocalStorageKeyStore}. This module exposes two classes:\n * * {@link WalletConnection} which redirects users to {@link https://docs.near.org/docs/tools/near-wallet | NEAR Wallet} for key management.\n * * {@link ConnectedWalletAccount} is an {@link Account} implementation that uses {@link WalletConnection} to get keys\n *\n * @module walletAccount\n */\nconst depd_1 = __importDefault(require(\"depd\"));\nconst account_1 = require(\"./account\");\nconst transaction_1 = require(\"./transaction\");\nconst utils_1 = require(\"./utils\");\nconst borsh_1 = require(\"borsh\");\nconst borsh_2 = require(\"borsh\");\nconst LOGIN_WALLET_URL_SUFFIX = '/login/';\nconst MULTISIG_HAS_METHOD = 'add_request_and_confirm';\nconst LOCAL_STORAGE_KEY_SUFFIX = '_wallet_auth_key';\nconst PENDING_ACCESS_KEY_PREFIX = 'pending_key'; // browser storage key for a pending access key (i.e. key has been generated but we are not sure it was added yet)\n/**\n * This class is used in conjunction with the {@link BrowserLocalStorageKeyStore}.\n * It redirects users to {@link https://docs.near.org/docs/tools/near-wallet | NEAR Wallet} for key management.\n *\n * @example {@link https://docs.near.org/docs/develop/front-end/naj-quick-reference#wallet}\n * @example\n * ```js\n * // create new WalletConnection instance\n * const wallet = new WalletConnection(near, 'my-app');\n *\n * // If not signed in redirect to the NEAR wallet to sign in\n * // keys will be stored in the BrowserLocalStorageKeyStore\n * if(!wallet.isSingnedIn()) return wallet.requestSignIn()\n * ```\n */\nclass WalletConnection {\n constructor(near, appKeyPrefix) {\n this._near = near;\n const authDataKey = appKeyPrefix + LOCAL_STORAGE_KEY_SUFFIX;\n const authData = JSON.parse(window.localStorage.getItem(authDataKey));\n this._networkId = near.config.networkId;\n this._walletBaseUrl = near.config.walletUrl;\n appKeyPrefix = appKeyPrefix || near.config.contractName || 'default';\n this._keyStore = near.connection.signer.keyStore;\n this._authData = authData || { allKeys: [] };\n this._authDataKey = authDataKey;\n if (!this.isSignedIn()) {\n this._completeSignInWithAccessKey();\n }\n }\n /**\n * Returns true, if this WalletAccount is authorized with the wallet.\n * @example\n * ```js\n * const wallet = new WalletConnection(near, 'my-app');\n * wallet.isSignedIn();\n * ```\n */\n isSignedIn() {\n return !!this._authData.accountId;\n }\n /**\n * Returns authorized Account ID.\n * @example\n * ```js\n * const wallet = new WalletConnection(near, 'my-app');\n * wallet.getAccountId();\n * ```\n */\n getAccountId() {\n return this._authData.accountId || '';\n }\n /**\n * Redirects current page to the wallet authentication page.\n * @param options An optional options object\n * @param options.contractId The NEAR account where the contract is deployed\n * @param options.successUrl URL to redirect upon success. Default: current url\n * @param options.failureUrl URL to redirect upon failure. Default: current url\n *\n * @example\n * ```js\n * const wallet = new WalletConnection(near, 'my-app');\n * // redirects to the NEAR Wallet\n * wallet.requestSignIn({ contractId: 'account-with-deploy-contract.near' });\n * ```\n */\n async requestSignIn(contractIdOrOptions = {}, title, successUrl, failureUrl) {\n let options;\n if (typeof contractIdOrOptions === 'string') {\n const deprecate = depd_1.default('requestSignIn(contractId, title)');\n deprecate('`title` ignored; use `requestSignIn({ contractId, methodNames, successUrl, failureUrl })` instead');\n options = { contractId: contractIdOrOptions, successUrl, failureUrl };\n }\n else {\n options = contractIdOrOptions;\n }\n const currentUrl = new URL(window.location.href);\n const newUrl = new URL(this._walletBaseUrl + LOGIN_WALLET_URL_SUFFIX);\n newUrl.searchParams.set('success_url', options.successUrl || currentUrl.href);\n newUrl.searchParams.set('failure_url', options.failureUrl || currentUrl.href);\n if (options.contractId) {\n /* Throws exception if contract account does not exist */\n const contractAccount = await this._near.account(options.contractId);\n await contractAccount.state();\n newUrl.searchParams.set('contract_id', options.contractId);\n const accessKey = utils_1.KeyPair.fromRandom('ed25519');\n newUrl.searchParams.set('public_key', accessKey.getPublicKey().toString());\n await this._keyStore.setKey(this._networkId, PENDING_ACCESS_KEY_PREFIX + accessKey.getPublicKey(), accessKey);\n }\n if (options.methodNames) {\n options.methodNames.forEach(methodName => {\n newUrl.searchParams.append('methodNames', methodName);\n });\n }\n window.location.assign(newUrl.toString());\n }\n async requestSignTransactions(...args) {\n if (Array.isArray(args[0])) {\n const deprecate = depd_1.default('WalletConnection.requestSignTransactions(transactions, callbackUrl, meta)');\n deprecate('use `WalletConnection.requestSignTransactions(RequestSignTransactionsOptions)` instead');\n return this._requestSignTransactions({\n transactions: args[0],\n callbackUrl: args[1],\n meta: args[2]\n });\n }\n return this._requestSignTransactions(args[0]);\n }\n async _requestSignTransactions({ transactions, meta, callbackUrl }) {\n const currentUrl = new URL(window.location.href);\n const newUrl = new URL('sign', this._walletBaseUrl);\n newUrl.searchParams.set('transactions', transactions\n .map(transaction => borsh_2.serialize(transaction_1.SCHEMA, transaction))\n .map(serialized => Buffer.from(serialized).toString('base64'))\n .join(','));\n newUrl.searchParams.set('callbackUrl', callbackUrl || currentUrl.href);\n if (meta)\n newUrl.searchParams.set('meta', meta);\n window.location.assign(newUrl.toString());\n }\n /**\n * @hidden\n * Complete sign in for a given account id and public key. To be invoked by the app when getting a callback from the wallet.\n */\n async _completeSignInWithAccessKey() {\n const currentUrl = new URL(window.location.href);\n const publicKey = currentUrl.searchParams.get('public_key') || '';\n const allKeys = (currentUrl.searchParams.get('all_keys') || '').split(',');\n const accountId = currentUrl.searchParams.get('account_id') || '';\n // TODO: Handle errors during login\n if (accountId) {\n this._authData = {\n accountId,\n allKeys\n };\n window.localStorage.setItem(this._authDataKey, JSON.stringify(this._authData));\n if (publicKey) {\n await this._moveKeyFromTempToPermanent(accountId, publicKey);\n }\n }\n currentUrl.searchParams.delete('public_key');\n currentUrl.searchParams.delete('all_keys');\n currentUrl.searchParams.delete('account_id');\n window.history.replaceState({}, document.title, currentUrl.toString());\n }\n /**\n * @hidden\n * @param accountId The NEAR account owning the given public key\n * @param publicKey The public key being set to the key store\n */\n async _moveKeyFromTempToPermanent(accountId, publicKey) {\n const keyPair = await this._keyStore.getKey(this._networkId, PENDING_ACCESS_KEY_PREFIX + publicKey);\n await this._keyStore.setKey(this._networkId, accountId, keyPair);\n await this._keyStore.removeKey(this._networkId, PENDING_ACCESS_KEY_PREFIX + publicKey);\n }\n /**\n * Sign out from the current account\n * @example\n * walletAccount.signOut();\n */\n signOut() {\n this._authData = {};\n window.localStorage.removeItem(this._authDataKey);\n }\n /**\n * Returns the current connected wallet account\n */\n account() {\n if (!this._connectedAccount) {\n this._connectedAccount = new ConnectedWalletAccount(this, this._near.connection, this._authData.accountId);\n }\n return this._connectedAccount;\n }\n}\nexports.WalletConnection = WalletConnection;\nexports.WalletAccount = WalletConnection;\n/**\n * {@link Account} implementation which redirects to wallet using {@link WalletConnection} when no local key is available.\n */\nclass ConnectedWalletAccount extends account_1.Account {\n constructor(walletConnection, connection, accountId) {\n super(connection, accountId);\n this.walletConnection = walletConnection;\n }\n // Overriding Account methods\n /**\n * Sign a transaction by redirecting to the NEAR Wallet\n * @see {@link WalletConnection.requestSignTransactions}\n */\n signAndSendTransaction(...args) {\n if (typeof args[0] === 'string') {\n return this._signAndSendTransaction({ receiverId: args[0], actions: args[1] });\n }\n return this._signAndSendTransaction(args[0]);\n }\n async _signAndSendTransaction({ receiverId, actions, walletMeta, walletCallbackUrl = window.location.href }) {\n const localKey = await this.connection.signer.getPublicKey(this.accountId, this.connection.networkId);\n let accessKey = await this.accessKeyForTransaction(receiverId, actions, localKey);\n if (!accessKey) {\n throw new Error(`Cannot find matching key for transaction sent to ${receiverId}`);\n }\n if (localKey && localKey.toString() === accessKey.public_key) {\n try {\n return await super.signAndSendTransaction({ receiverId, actions });\n }\n catch (e) {\n if (e.type === 'NotEnoughAllowance') {\n accessKey = await this.accessKeyForTransaction(receiverId, actions);\n }\n else {\n throw e;\n }\n }\n }\n const block = await this.connection.provider.block({ finality: 'final' });\n const blockHash = borsh_1.baseDecode(block.header.hash);\n const publicKey = utils_1.PublicKey.from(accessKey.public_key);\n // TODO: Cache & listen for nonce updates for given access key\n const nonce = accessKey.access_key.nonce + 1;\n const transaction = transaction_1.createTransaction(this.accountId, publicKey, receiverId, nonce, actions, blockHash);\n await this.walletConnection.requestSignTransactions({\n transactions: [transaction],\n meta: walletMeta,\n callbackUrl: walletCallbackUrl\n });\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n reject(new Error('Failed to redirect to sign transaction'));\n }, 1000);\n });\n // TODO: Aggregate multiple transaction request with \"debounce\".\n // TODO: Introduce TrasactionQueue which also can be used to watch for status?\n }\n /**\n * Check if given access key allows the function call or method attempted in transaction\n * @param accessKey Array of {access_key: AccessKey, public_key: PublicKey} items\n * @param receiverId The NEAR account attempting to have access\n * @param actions The action(s) needed to be checked for access\n */\n async accessKeyMatchesTransaction(accessKey, receiverId, actions) {\n const { access_key: { permission } } = accessKey;\n if (permission === 'FullAccess') {\n return true;\n }\n if (permission.FunctionCall) {\n const { receiver_id: allowedReceiverId, method_names: allowedMethods } = permission.FunctionCall;\n /********************************\n Accept multisig access keys and let wallets attempt to signAndSendTransaction\n If an access key has itself as receiverId and method permission add_request_and_confirm, then it is being used in a wallet with multisig contract: https://github.com/near/core-contracts/blob/671c05f09abecabe7a7e58efe942550a35fc3292/multisig/src/lib.rs#L149-L153\n ********************************/\n if (allowedReceiverId === this.accountId && allowedMethods.includes(MULTISIG_HAS_METHOD)) {\n return true;\n }\n if (allowedReceiverId === receiverId) {\n if (actions.length !== 1) {\n return false;\n }\n const [{ functionCall }] = actions;\n return functionCall &&\n (!functionCall.deposit || functionCall.deposit.toString() === '0') && // TODO: Should support charging amount smaller than allowance?\n (allowedMethods.length === 0 || allowedMethods.includes(functionCall.methodName));\n // TODO: Handle cases when allowance doesn't have enough to pay for gas\n }\n }\n // TODO: Support other permissions than FunctionCall\n return false;\n }\n /**\n * Helper function returning the access key (if it exists) to the receiver that grants the designated permission\n * @param receiverId The NEAR account seeking the access key for a transaction\n * @param actions The action(s) sought to gain access to\n * @param localKey A local public key provided to check for access\n * @returns Promise<any>\n */\n async accessKeyForTransaction(receiverId, actions, localKey) {\n const accessKeys = await this.getAccessKeys();\n if (localKey) {\n const accessKey = accessKeys.find(key => key.public_key.toString() === localKey.toString());\n if (accessKey && await this.accessKeyMatchesTransaction(accessKey, receiverId, actions)) {\n return accessKey;\n }\n }\n const walletKeys = this.walletConnection._authData.allKeys;\n for (const accessKey of accessKeys) {\n if (walletKeys.indexOf(accessKey.public_key) !== -1 && await this.accessKeyMatchesTransaction(accessKey, receiverId, actions)) {\n return accessKey;\n }\n }\n return null;\n }\n}\nexports.ConnectedWalletAccount = ConnectedWalletAccount;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletConnection = exports.WalletAccount = exports.ConnectedWalletAccount = exports.Near = exports.KeyPair = exports.Signer = exports.InMemorySigner = exports.Contract = exports.Connection = exports.Account = exports.multisig = exports.validators = exports.transactions = exports.utils = exports.providers = exports.accountCreator = void 0;\n/** @hidden @module */\nconst providers = __importStar(require(\"./providers\"));\nexports.providers = providers;\nconst utils = __importStar(require(\"./utils\"));\nexports.utils = utils;\nconst transactions = __importStar(require(\"./transaction\"));\nexports.transactions = transactions;\nconst validators = __importStar(require(\"./validators\"));\nexports.validators = validators;\nconst account_1 = require(\"./account\");\nObject.defineProperty(exports, \"Account\", { enumerable: true, get: function () { return account_1.Account; } });\nconst multisig = __importStar(require(\"./account_multisig\"));\nexports.multisig = multisig;\nconst accountCreator = __importStar(require(\"./account_creator\"));\nexports.accountCreator = accountCreator;\nconst connection_1 = require(\"./connection\");\nObject.defineProperty(exports, \"Connection\", { enumerable: true, get: function () { return connection_1.Connection; } });\nconst signer_1 = require(\"./signer\");\nObject.defineProperty(exports, \"Signer\", { enumerable: true, get: function () { return signer_1.Signer; } });\nObject.defineProperty(exports, \"InMemorySigner\", { enumerable: true, get: function () { return signer_1.InMemorySigner; } });\nconst contract_1 = require(\"./contract\");\nObject.defineProperty(exports, \"Contract\", { enumerable: true, get: function () { return contract_1.Contract; } });\nconst key_pair_1 = require(\"./utils/key_pair\");\nObject.defineProperty(exports, \"KeyPair\", { enumerable: true, get: function () { return key_pair_1.KeyPair; } });\nconst near_1 = require(\"./near\");\nObject.defineProperty(exports, \"Near\", { enumerable: true, get: function () { return near_1.Near; } });\n// TODO: Deprecate and remove WalletAccount\nconst wallet_account_1 = require(\"./wallet-account\");\nObject.defineProperty(exports, \"ConnectedWalletAccount\", { enumerable: true, get: function () { return wallet_account_1.ConnectedWalletAccount; } });\nObject.defineProperty(exports, \"WalletAccount\", { enumerable: true, get: function () { return wallet_account_1.WalletAccount; } });\nObject.defineProperty(exports, \"WalletConnection\", { enumerable: true, get: function () { return wallet_account_1.WalletConnection; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.connect = void 0;\n/**\n * Connect to NEAR using the provided configuration.\n *\n * {@link ConnectConfig.networkId} and {@link ConnectConfig.nodeUrl} are required.\n *\n * To sign transactions you can also pass: {@link ConnectConfig.keyStore}\n *\n * Both are passed they are prioritize in that order.\n *\n * @see {@link ConnectConfig}\n * @example\n * ```js\n * async function initNear() {\n * const near = await connect({\n * networkId: 'testnet',\n * nodeUrl: 'https://rpc.testnet.near.org'\n * })\n * }\n * ```\n *\n * @module browserConnect\n */\nconst near_1 = require(\"./near\");\n/**\n * Initialize connection to Near network.\n */\nasync function connect(config) {\n return new near_1.Near(config);\n}\nexports.connect = connect;\n","var CapabilityDetector = function () {\r\n this.tests = {};\r\n this.cache = {};\r\n};\r\nCapabilityDetector.prototype = {\r\n constructor: CapabilityDetector,\r\n define: function (name, test) {\r\n if (typeof (name) != \"string\" || !(test instanceof Function))\r\n throw new Error(\"Invalid capability definition.\");\r\n if (this.tests[name])\r\n throw new Error('Duplicated capability definition by \"' + name + '\".');\r\n this.tests[name] = test;\r\n },\r\n check: function (name) {\r\n if (!this.test(name))\r\n throw new Error('The current environment does not support \"' + name + '\", therefore we cannot continue.');\r\n },\r\n test: function (name) {\r\n if (this.cache[name] !== undefined)\r\n return this.cache[name];\r\n if (!this.tests[name])\r\n throw new Error('Unknown capability with name \"' + name + '\".');\r\n var test = this.tests[name];\r\n this.cache[name] = !!test();\r\n return this.cache[name];\r\n }\r\n};\r\n\r\nmodule.exports = CapabilityDetector;","var CapabilityDetector = require(\"./CapabilityDetector\");\r\n\r\nvar detector = new CapabilityDetector();\r\n\r\nvar capability = function (name) {\r\n return detector.test(name);\r\n};\r\ncapability.define = function (name, test) {\r\n detector.define(name, test);\r\n};\r\ncapability.check = function (name) {\r\n detector.check(name);\r\n};\r\ncapability.test = capability;\r\n\r\nmodule.exports = capability;","var capability = require(\".\"),\r\n define = capability.define,\r\n test = capability.test;\r\n\r\ndefine(\"strict mode\", function () {\r\n return (this === undefined);\r\n});\r\n\r\ndefine(\"arguments.callee.caller\", function () {\r\n try {\r\n return (function () {\r\n return arguments.callee.caller;\r\n })() === arguments.callee;\r\n } catch (strictModeIsEnforced) {\r\n return false;\r\n }\r\n});\r\n\r\ndefine(\"es5\", function () {\r\n return test(\"Array.prototype.forEach\") &&\r\n test(\"Array.prototype.map\") &&\r\n test(\"Function.prototype.bind\") &&\r\n test(\"Object.create\") &&\r\n test(\"Object.defineProperties\") &&\r\n test(\"Object.defineProperty\") &&\r\n test(\"Object.prototype.hasOwnProperty\");\r\n});\r\n\r\ndefine(\"Array.prototype.forEach\", function () {\r\n return Array.prototype.forEach;\r\n});\r\n\r\ndefine(\"Array.prototype.map\", function () {\r\n return Array.prototype.map;\r\n});\r\n\r\ndefine(\"Function.prototype.bind\", function () {\r\n return Function.prototype.bind;\r\n});\r\n\r\ndefine(\"Object.create\", function () {\r\n return Object.create;\r\n});\r\n\r\ndefine(\"Object.defineProperties\", function () {\r\n return Object.defineProperties;\r\n});\r\n\r\ndefine(\"Object.defineProperty\", function () {\r\n return Object.defineProperty;\r\n});\r\n\r\ndefine(\"Object.prototype.hasOwnProperty\", function () {\r\n return Object.prototype.hasOwnProperty;\r\n});\r\n\r\ndefine(\"Error.captureStackTrace\", function () {\r\n return Error.captureStackTrace;\r\n});\r\n\r\ndefine(\"Error.prototype.stack\", function () {\r\n try {\r\n throw new Error();\r\n }\r\n catch (e) {\r\n return e.stack || e.stacktrace;\r\n }\r\n});","require(\"./lib/definitions\");\r\nmodule.exports = require(\"./lib\");\r\n","require(\".\").check(\"es5\");","var prepareStackTrace = function (throwable, frames, warnings) {\r\n var string = \"\";\r\n string += throwable.name || \"Error\";\r\n string += \": \" + (throwable.message || \"\");\r\n if (warnings instanceof Array)\r\n for (var warningIndex in warnings) {\r\n var warning = warnings[warningIndex];\r\n string += \"\\n # \" + warning;\r\n }\r\n for (var frameIndex in frames) {\r\n var frame = frames[frameIndex];\r\n string += \"\\n at \" + frame.toString();\r\n }\r\n return string;\r\n};\r\n\r\nmodule.exports = prepareStackTrace;","var prepareStackTrace = require(\"./prepareStackTrace\");\r\n\r\nmodule.exports = function () {\r\n Error.getStackTrace = function (throwable) {\r\n return throwable.stack;\r\n };\r\n\r\n return {\r\n prepareStackTrace: prepareStackTrace\r\n };\r\n};","var Class = function () {\r\n var options = Object.create({\r\n Source: Object,\r\n config: {},\r\n buildArgs: []\r\n });\r\n\r\n function checkOption(option) {\r\n var key = \"config\";\r\n if (option instanceof Function)\r\n key = \"Source\";\r\n else if (option instanceof Array)\r\n key = \"buildArgs\";\r\n else if (option instanceof Object)\r\n key = \"config\";\r\n else\r\n throw new Error(\"Invalid configuration option.\");\r\n if (options.hasOwnProperty(key))\r\n throw new Error(\"Duplicated configuration option: \" + key + \".\");\r\n options[key] = option;\r\n }\r\n\r\n for (var index = 0, length = arguments.length; index < length; ++index)\r\n checkOption(arguments[index]);\r\n\r\n var Source = options.Source,\r\n config = options.config,\r\n buildArgs = options.buildArgs;\r\n\r\n return (Source.extend || Class.extend).call(Source, config, buildArgs);\r\n};\r\n\r\nClass.factory = function () {\r\n var Source = this;\r\n return function () {\r\n var instance = this;\r\n if (instance.build instanceof Function)\r\n instance.build.apply(instance, arguments);\r\n if (instance.init instanceof Function)\r\n instance.init.apply(instance, arguments);\r\n };\r\n};\r\n\r\nClass.extend = function (config, buildArgs) {\r\n var Source = this;\r\n if (!config)\r\n config = {};\r\n var Subject;\r\n if ((config.prototype instanceof Object) && config.prototype.constructor !== Object)\r\n Subject = config.prototype.constructor;\r\n else if (config.factory instanceof Function)\r\n Subject = config.factory.call(Source);\r\n Subject = (Source.clone || Class.clone).call(Source, Subject, buildArgs);\r\n (Subject.merge || Class.merge).call(Subject, config);\r\n return Subject;\r\n};\r\n\r\nClass.prototype.extend = function (config, buildArgs) {\r\n var subject = this;\r\n var instance = (subject.clone || Class.prototype.clone).apply(subject, buildArgs);\r\n (instance.merge || Class.prototype.merge).call(instance, config);\r\n return instance;\r\n};\r\n\r\nClass.clone = function (Subject, buildArgs) {\r\n var Source = this;\r\n if (!(Subject instanceof Function))\r\n Subject = (Source.factory || Class.factory).call(Source);\r\n Subject.prototype = (Source.prototype.clone || Class.prototype.clone).apply(Source.prototype, buildArgs || []);\r\n Subject.prototype.constructor = Subject;\r\n for (var staticProperty in Source)\r\n if (staticProperty !== \"prototype\")\r\n Subject[staticProperty] = Source[staticProperty];\r\n return Subject;\r\n};\r\n\r\nClass.prototype.clone = function () {\r\n var subject = this;\r\n var instance = Object.create(subject);\r\n if (instance.build instanceof Function)\r\n instance.build.apply(instance, arguments);\r\n return instance;\r\n};\r\n\r\nClass.merge = function (config) {\r\n var Subject = this;\r\n for (var staticProperty in config)\r\n if (staticProperty !== \"prototype\")\r\n Subject[staticProperty] = config[staticProperty];\r\n if (config.prototype instanceof Object)\r\n (Subject.prototype.merge || Class.prototype.merge).call(Subject.prototype, config.prototype);\r\n return Subject;\r\n};\r\n\r\nClass.prototype.merge = function (config) {\r\n var subject = this;\r\n for (var property in config)\r\n if (property !== \"constructor\")\r\n subject[property] = config[property];\r\n return subject;\r\n};\r\n\r\nClass.absorb = function (config) {\r\n var Subject = this;\r\n for (var staticProperty in config)\r\n if (staticProperty !== \"prototype\" && (Subject[staticProperty] === undefined || Subject[staticProperty] === Function.prototype[staticProperty]))\r\n Subject[staticProperty] = config[staticProperty];\r\n if (config.prototype instanceof Object)\r\n (Subject.prototype.absorb || Class.prototype.absorb).call(Subject.prototype, config.prototype);\r\n return Subject;\r\n};\r\n\r\nClass.prototype.absorb = function (config) {\r\n var subject = this;\r\n for (var property in config)\r\n if (property !== \"constructor\" && (subject[property] === undefined || subject[property] === Object.prototype[property]))\r\n subject[property] = config[property];\r\n return subject;\r\n};\r\n\r\nClass.getAncestor = function () {\r\n var Source = this;\r\n if (Source !== Source.prototype.constructor)\r\n return Source.prototype.constructor;\r\n};\r\n\r\nClass.newInstance = function () {\r\n var Subject = this;\r\n var instance = Object.create(this.prototype);\r\n Subject.apply(instance, arguments);\r\n return instance;\r\n};\r\n\r\nmodule.exports = Class;","module.exports = function () {\r\n throw new Error(\"Not implemented.\");\r\n};","module.exports = {\r\n Class: require(\"./Class\"),\r\n abstractMethod: require(\"./abstractMethod\")\r\n};","require(\"capability/es5\");\r\n\r\nmodule.exports = require(\"./lib\");","var cache = function (fn) {\r\n var called = false,\r\n store;\r\n\r\n if (!(fn instanceof Function)) {\r\n called = true;\r\n store = fn;\r\n fn = null;\r\n }\r\n\r\n return function () {\r\n if (!called) {\r\n called = true;\r\n store = fn.apply(this, arguments);\r\n fn = null;\r\n }\r\n return store;\r\n };\r\n};\r\n\r\nmodule.exports = cache;","module.exports = function eachCombination(alternativesByDimension, callback, combination) {\r\n if (!combination)\r\n combination = [];\r\n if (combination.length < alternativesByDimension.length) {\r\n var alternatives = alternativesByDimension[combination.length];\r\n for (var index in alternatives) {\r\n combination[combination.length] = alternatives[index];\r\n eachCombination(alternativesByDimension, callback, combination);\r\n --combination.length;\r\n }\r\n }\r\n else\r\n callback.apply(null, combination);\r\n};","module.exports = {\r\n cache: require(\"./cache\"),\r\n eachCombination: require(\"./eachCombination\")\r\n};","module.exports = require(\"./lib\");","var Class = require(\"o3\").Class,\r\n abstractMethod = require(\"o3\").abstractMethod,\r\n eachCombination = require(\"u3\").eachCombination,\r\n cache = require(\"u3\").cache,\r\n capability = require(\"capability\");\r\n\r\nvar AbstractFrameStringSource = Class(Object, {\r\n prototype: {\r\n captureFrameStrings: function (frameShifts) {\r\n var error = this.createError();\r\n frameShifts.unshift(this.captureFrameStrings);\r\n frameShifts.unshift(this.createError);\r\n var capturedFrameStrings = this.getFrameStrings(error);\r\n\r\n var frameStrings = capturedFrameStrings.slice(frameShifts.length),\r\n functionValues = [];\r\n\r\n if (capability(\"arguments.callee.caller\")) {\r\n var capturedFunctionValues = [\r\n this.createError,\r\n this.captureFrameStrings\r\n ];\r\n try {\r\n var aCaller = arguments.callee;\r\n while (aCaller = aCaller.caller)\r\n capturedFunctionValues.push(aCaller);\r\n }\r\n catch (useStrictError) {\r\n }\r\n functionValues = capturedFunctionValues.slice(frameShifts.length);\r\n }\r\n return {\r\n frameStrings: frameStrings,\r\n functionValues: functionValues\r\n };\r\n },\r\n getFrameStrings: function (error) {\r\n var message = error.message || \"\";\r\n var name = error.name || \"\";\r\n var stackString = this.getStackString(error);\r\n if (stackString === undefined)\r\n return;\r\n var stackStringChunks = stackString.split(\"\\n\");\r\n var fromPosition = 0;\r\n var toPosition = stackStringChunks.length;\r\n if (this.hasHeader)\r\n fromPosition += name.split(\"\\n\").length + message.split(\"\\n\").length - 1;\r\n if (this.hasFooter)\r\n toPosition -= 1;\r\n return stackStringChunks.slice(fromPosition, toPosition);\r\n },\r\n createError: abstractMethod,\r\n getStackString: abstractMethod,\r\n hasHeader: undefined,\r\n hasFooter: undefined\r\n }\r\n});\r\n\r\nvar FrameStringSourceCalibrator = Class(Object, {\r\n prototype: {\r\n calibrateClass: function (FrameStringSource) {\r\n return this.calibrateMethods(FrameStringSource) && this.calibrateEnvelope(FrameStringSource);\r\n },\r\n calibrateMethods: function (FrameStringSource) {\r\n try {\r\n eachCombination([[\r\n function (message) {\r\n return new Error(message);\r\n },\r\n function (message) {\r\n try {\r\n throw new Error(message);\r\n }\r\n catch (error) {\r\n return error;\r\n }\r\n }\r\n ], [\r\n function (error) {\r\n return error.stack;\r\n },\r\n function (error) {\r\n return error.stacktrace;\r\n }\r\n ]], function (createError, getStackString) {\r\n if (getStackString(createError()))\r\n throw {\r\n getStackString: getStackString,\r\n createError: createError\r\n };\r\n });\r\n } catch (workingImplementation) {\r\n Class.merge.call(FrameStringSource, {\r\n prototype: workingImplementation\r\n });\r\n return true;\r\n }\r\n return false;\r\n },\r\n calibrateEnvelope: function (FrameStringSource) {\r\n var getStackString = FrameStringSource.prototype.getStackString;\r\n var createError = FrameStringSource.prototype.createError;\r\n var calibratorStackString = getStackString(createError(\"marker\"));\r\n var calibratorFrameStrings = calibratorStackString.split(\"\\n\");\r\n Class.merge.call(FrameStringSource, {\r\n prototype: {\r\n hasHeader: /marker/.test(calibratorFrameStrings[0]),\r\n hasFooter: calibratorFrameStrings[calibratorFrameStrings.length - 1] === \"\"\r\n }\r\n });\r\n return true;\r\n }\r\n }\r\n});\r\n\r\n\r\nmodule.exports = {\r\n getClass: cache(function () {\r\n var FrameStringSource;\r\n if (FrameStringSource)\r\n return FrameStringSource;\r\n FrameStringSource = Class(AbstractFrameStringSource, {});\r\n var calibrator = new FrameStringSourceCalibrator();\r\n if (!calibrator.calibrateClass(FrameStringSource))\r\n throw new Error(\"Cannot read Error.prototype.stack in this environment.\");\r\n return FrameStringSource;\r\n }),\r\n getInstance: cache(function () {\r\n var FrameStringSource = this.getClass();\r\n var instance = new FrameStringSource();\r\n return instance;\r\n })\r\n};","var Class = require(\"o3\").Class,\r\n abstractMethod = require(\"o3\").abstractMethod;\r\n\r\nvar Frame = Class(Object, {\r\n prototype: {\r\n init: Class.prototype.merge,\r\n frameString: undefined,\r\n toString: function () {\r\n return this.frameString;\r\n },\r\n functionValue: undefined,\r\n getThis: abstractMethod,\r\n getTypeName: abstractMethod,\r\n getFunction: function () {\r\n return this.functionValue;\r\n },\r\n getFunctionName: abstractMethod,\r\n getMethodName: abstractMethod,\r\n getFileName: abstractMethod,\r\n getLineNumber: abstractMethod,\r\n getColumnNumber: abstractMethod,\r\n getEvalOrigin: abstractMethod,\r\n isTopLevel: abstractMethod,\r\n isEval: abstractMethod,\r\n isNative: abstractMethod,\r\n isConstructor: abstractMethod\r\n }\r\n});\r\n\r\nmodule.exports = Frame;","var Class = require(\"o3\").Class,\r\n Frame = require(\"./Frame\"),\r\n cache = require(\"u3\").cache;\r\n\r\nvar FrameStringParser = Class(Object, {\r\n prototype: {\r\n stackParser: null,\r\n frameParser: null,\r\n locationParsers: null,\r\n constructor: function (options) {\r\n Class.prototype.merge.call(this, options);\r\n },\r\n getFrames: function (frameStrings, functionValues) {\r\n var frames = [];\r\n for (var index = 0, length = frameStrings.length; index < length; ++index)\r\n frames[index] = this.getFrame(frameStrings[index], functionValues[index]);\r\n return frames;\r\n },\r\n getFrame: function (frameString, functionValue) {\r\n var config = {\r\n frameString: frameString,\r\n functionValue: functionValue\r\n };\r\n return new Frame(config);\r\n }\r\n }\r\n});\r\n\r\nmodule.exports = {\r\n getClass: cache(function () {\r\n return FrameStringParser;\r\n }),\r\n getInstance: cache(function () {\r\n var FrameStringParser = this.getClass();\r\n var instance = new FrameStringParser();\r\n return instance;\r\n })\r\n};","var FrameStringSource = require(\"./FrameStringSource\"),\r\n FrameStringParser = require(\"./FrameStringParser\"),\r\n cache = require(\"u3\").cache,\r\n prepareStackTrace = require(\"../prepareStackTrace\");\r\n\r\nmodule.exports = function () {\r\n\r\n Error.captureStackTrace = function captureStackTrace(throwable, terminator) {\r\n var warnings;\r\n var frameShifts = [\r\n captureStackTrace\r\n ];\r\n if (terminator) {\r\n // additional frames can come here if arguments.callee.caller is supported\r\n // otherwise it is hard to identify the terminator\r\n frameShifts.push(terminator);\r\n }\r\n var captured = FrameStringSource.getInstance().captureFrameStrings(frameShifts);\r\n Object.defineProperties(throwable, {\r\n stack: {\r\n configurable: true,\r\n get: cache(function () {\r\n var frames = FrameStringParser.getInstance().getFrames(captured.frameStrings, captured.functionValues);\r\n return (Error.prepareStackTrace || prepareStackTrace)(throwable, frames, warnings);\r\n })\r\n },\r\n cachedStack: {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false,\r\n value: true\r\n }\r\n });\r\n };\r\n\r\n Error.getStackTrace = function (throwable) {\r\n if (throwable.cachedStack)\r\n return throwable.stack;\r\n var frameStrings = FrameStringSource.getInstance().getFrameStrings(throwable),\r\n frames = [],\r\n warnings;\r\n if (frameStrings)\r\n frames = FrameStringParser.getInstance().getFrames(frameStrings, []);\r\n else\r\n warnings = [\r\n \"The stack is not readable by unthrown errors in this environment.\"\r\n ];\r\n var stack = (Error.prepareStackTrace || prepareStackTrace)(throwable, frames, warnings);\r\n if (frameStrings)\r\n try {\r\n Object.defineProperties(throwable, {\r\n stack: {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false,\r\n value: stack\r\n },\r\n cachedStack: {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false,\r\n value: true\r\n }\r\n });\r\n } catch (nonConfigurableError) {\r\n }\r\n return stack;\r\n };\r\n\r\n return {\r\n prepareStackTrace: prepareStackTrace\r\n };\r\n};","var cache = require(\"u3\").cache,\r\n prepareStackTrace = require(\"./prepareStackTrace\");\r\n\r\nmodule.exports = function () {\r\n\r\n Error.captureStackTrace = function (throwable, terminator) {\r\n Object.defineProperties(throwable, {\r\n stack: {\r\n configurable: true,\r\n get: cache(function () {\r\n return (Error.prepareStackTrace || prepareStackTrace)(throwable, []);\r\n })\r\n },\r\n cachedStack: {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false,\r\n value: true\r\n }\r\n });\r\n };\r\n\r\n Error.getStackTrace = function (throwable) {\r\n if (throwable.cachedStack)\r\n return throwable.stack;\r\n var stack = (Error.prepareStackTrace || prepareStackTrace)(throwable, []);\r\n try {\r\n Object.defineProperties(throwable, {\r\n stack: {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false,\r\n value: stack\r\n },\r\n cachedStack: {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false,\r\n value: true\r\n }\r\n });\r\n } catch (nonConfigurableError) {\r\n }\r\n return stack;\r\n };\r\n\r\n return {\r\n prepareStackTrace: prepareStackTrace\r\n };\r\n};","require(\"capability/es5\");\r\n\r\nvar capability = require(\"capability\");\r\n\r\nvar polyfill;\r\nif (capability(\"Error.captureStackTrace\"))\r\n polyfill = require(\"./v8\");\r\nelse if (capability(\"Error.prototype.stack\"))\r\n polyfill = require(\"./non-v8/index\");\r\nelse\r\n polyfill = require(\"./unsupported\");\r\n\r\nmodule.exports = polyfill();","module.exports = require(\"./lib\");","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/** @hidden @module */\nexports.keyStores = __importStar(require(\"./key_stores/browser-index\"));\n__exportStar(require(\"./common-index\"), exports);\n__exportStar(require(\"./browser-connect\"), exports);\nrequire(\"error-polyfill\");\n","const CONTRACT_NAME = \"hello.daothang.testnet\";\n\nfunction getConfig(env) {\n switch (env) {\n\n case 'production':\n case 'mainnet':\n return {\n networkId: 'mainnet',\n nodeUrl: 'https://rpc.mainnet.near.org',\n contractName: CONTRACT_NAME,\n walletUrl: 'https://wallet.near.org',\n helperUrl: 'https://helper.mainnet.near.org',\n explorerUrl: 'https://explorer.mainnet.near.org',\n }\n case 'development':\n case 'testnet':\n return {\n networkId: 'testnet',\n nodeUrl: 'https://rpc.testnet.near.org',\n contractName: CONTRACT_NAME,\n walletUrl: 'https://wallet.testnet.near.org',\n helperUrl: 'https://helper.testnet.near.org',\n explorerUrl: 'https://explorer.testnet.near.org',\n }\n case 'betanet':\n return {\n networkId: 'betanet',\n nodeUrl: 'https://rpc.betanet.near.org',\n contractName: CONTRACT_NAME,\n walletUrl: 'https://wallet.betanet.near.org',\n helperUrl: 'https://helper.betanet.near.org',\n explorerUrl: 'https://explorer.betanet.near.org',\n }\n case 'local':\n return {\n networkId: 'local',\n nodeUrl: 'http://localhost:3030',\n keyPath: `${process.env.HOME}/.near/validator_key.json`,\n walletUrl: 'http://localhost:4000/wallet',\n contractName: CONTRACT_NAME,\n }\n case 'test':\n case 'ci':\n return {\n networkId: 'shared-test',\n nodeUrl: 'https://rpc.ci-testnet.near.org',\n contractName: CONTRACT_NAME,\n masterAccount: 'test.near',\n }\n case 'ci-betanet':\n return {\n networkId: 'shared-test-staging',\n nodeUrl: 'https://rpc.ci-betanet.near.org',\n contractName: CONTRACT_NAME,\n masterAccount: 'test.near',\n }\n default:\n throw Error(`Unconfigured environment '${env}'. Can be configured in src/config.js.`)\n }\n}\n\nmodule.exports = getConfig\n","import { connect, Contract, keyStores, WalletConnection } from 'near-api-js'\nimport getConfig from './config'\n\n// const nearConfig = getConfig(process.env.NODE_ENV || 'development')\nconst nearConfig = getConfig('development')\n\n// Initialize contract & set global variables\nexport async function initContract() {\n // Initialize connection to the NEAR testnet\n const near = await connect(Object.assign({ deps: { keyStore: new keyStores.BrowserLocalStorageKeyStore() } }, nearConfig))\n\n // Initializing Wallet based Account. It can work with NEAR testnet wallet that\n // is hosted at https://wallet.testnet.near.org\n window.walletConnection = new WalletConnection(near)\n\n // Getting the Account ID. If still unauthorized, it's just empty string\n window.accountId = window.walletConnection.getAccountId()\n\n // Initializing our contract APIs by contract name and configuration\n window.contract = await new Contract(window.walletConnection.account(), nearConfig.contractName, {\n // View methods are read only. They don't modify the state, but usually return some value.\n viewMethods: [],\n // Change methods can modify the state. But you don't receive the returned value when called.\n changeMethods: ['hello'],\n })\n}\n\nexport function logout() {\n window.walletConnection.signOut()\n // reload page\n window.location.replace(window.location.origin + window.location.pathname)\n}\n\nexport function login() {\n // Allow the current app to make calls to the specified contract on the\n // user's behalf.\n // This works by creating a new access key for the user's account and storing\n // the private key in localStorage.\n window.walletConnection.requestSignIn(nearConfig.contractName)\n}\n","import 'regenerator-runtime/runtime'\n\nimport { initContract, login, logout } from './utils'\n\nimport getConfig from './config'\nconst { networkId } = getConfig(process.env.NODE_ENV || 'development')\n\n// global variable used throughout\nlet isFirstMessage = true;\n\nconst submitButton = document.querySelector('form button');\n\nfunction randInt(min, max) {\n let range = max - min + 1;\n let rand = Math.floor(Math.random() * range);\n let ret = min + rand;\n if (ret>max) ret = max;\n return ret;\n}\n\nfunction clearMessages() {\n isFirstMessage = true;\n let objMessages = document.querySelector(\"#messages\");\n objMessages.innerHTML = `Please enter the name and click \"Say hello\" button to start!`;\n}\nwindow.clearMessages = clearMessages;\n\nfunction getRandomColor() {\n let colors = [\"red\", \"orange\", \"green\", \"blue\", \"magenta\", \"purple\", \"black\", \"maroon\", \"brown\"];\n return colors[randInt(0, colors.length-1)];\n}\n\nfunction appendMessage(message) {\n if (!message) return;\n\n let date = new Date();\n let strDate = date.toLocaleDateString() + \" \" + date.toLocaleTimeString();\n\n let color = getRandomColor();\n let html = `<div style=\"padding-top: 5px;\"><span style=\"font-size: smaller;\">${strDate}</span>: <font color=\"${color}\">${message}</font></div>`;\n let objMessages = document.querySelector(\"#messages\");\n \n if (isFirstMessage) {\n objMessages.innerHTML = html;\n } else {\n let oldHtml = objMessages.innerHTML;\n objMessages.innerHTML = html + oldHtml;\n }\n isFirstMessage = false;\n}\n\ndocument.querySelector('form').onsubmit = async (event) => {\n event.preventDefault()\n\n // get elements from the form using their id attribute\n const { fieldset, greeting } = event.target.elements\n\n // disable the form while the value gets updated on-chain\n fieldset.disabled = true\n\n try {\n // make an update call to the smart contract\n let message = await window.contract.hello({\n account_id: greeting.value\n });\n appendMessage(message);\n greeting.value = \"\";\n } catch (e) {\n alert(\n 'Something went wrong! ' +\n 'Maybe you need to sign out and back in? ' +\n 'Check your browser console for more info.'\n )\n throw e\n } finally {\n // re-enable the form, whether the call succeeded or failed\n fieldset.disabled = false;\n }\n\n // disable the save button, since it now matches the persisted value\n submitButton.disabled = true\n\n // show notification\n document.querySelector('[data-behavior=notification]').style.display = 'block';\n\n // remove notification again after css animation completes\n // this allows it to be shown again next time the form is submitted\n setTimeout(() => {\n document.querySelector('[data-behavior=notification]').style.display = 'none';\n }, 8000);\n}\n\ndocument.querySelector('input#greeting').oninput = (event) => {\n if (event.target.value !== \"\") {\n submitButton.disabled = false\n } else {\n submitButton.disabled = true\n }\n}\n\ndocument.querySelector('#sign-in-button').onclick = login\ndocument.querySelector('#sign-out-button').onclick = logout\n\n// Display the signed-out-flow container\nfunction signedOutFlow() {\n document.querySelector('#signed-out-flow').style.display = 'block'\n}\n\n// Displaying the signed in flow container and fill in account-specific data\nfunction signedInFlow() {\n document.querySelector('#signed-in-flow').style.display = 'block'\n\n document.querySelectorAll('[data-behavior=account-id]').forEach(el => {\n el.innerText = window.accountId\n })\n\n // populate links in the notification box\n const accountLink = document.querySelector('[data-behavior=notification] a:nth-of-type(1)')\n accountLink.href = accountLink.href + window.accountId\n accountLink.innerText = '@' + window.accountId\n const contractLink = document.querySelector('[data-behavior=notification] a:nth-of-type(2)')\n contractLink.href = contractLink.href + window.contract.contractId\n contractLink.innerText = '@' + window.contract.contractId\n\n // update with selected networkId\n accountLink.href = accountLink.href.replace('testnet', networkId)\n contractLink.href = contractLink.href.replace('testnet', networkId)\n}\n\n// `nearInitPromise` gets called on page load\nwindow.nearInitPromise = initContract()\n .then(() => {\n if (window.walletConnection.isSignedIn()) signedInFlow()\n else signedOutFlow()\n })\n .catch(console.error)\n"]}