UNPKG

578 kBSource Map (JSON)View Raw
1{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/isomorphic-unfetch/browser.js","webpack:///./node_modules/js-cookie/src/js.cookie.js","webpack:///./node_modules/punycode/punycode.js","webpack:///./node_modules/querystring-es3/decode.js","webpack:///./node_modules/querystring-es3/encode.js","webpack:///./node_modules/querystring-es3/index.js","webpack:///./node_modules/unfetch/dist/unfetch.module.js","webpack:///./node_modules/url/url.js","webpack:///./node_modules/url/util.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/amazon-cognito-identity-js/es/AuthenticationDetails.js","webpack:///./node_modules/amazon-cognito-identity-js/es/AuthenticationHelper.js","webpack:///./node_modules/amazon-cognito-identity-js/es/BigInteger.js","webpack:///./node_modules/amazon-cognito-identity-js/es/Client.js","webpack:///./node_modules/amazon-cognito-identity-js/es/CognitoAccessToken.js","webpack:///./node_modules/amazon-cognito-identity-js/es/CognitoIdToken.js","webpack:///./node_modules/amazon-cognito-identity-js/es/CognitoJwtToken.js","webpack:///./node_modules/amazon-cognito-identity-js/es/CognitoRefreshToken.js","webpack:///./node_modules/amazon-cognito-identity-js/es/CognitoUser.js","webpack:///./node_modules/amazon-cognito-identity-js/es/CognitoUserAttribute.js","webpack:///./node_modules/amazon-cognito-identity-js/es/CognitoUserPool.js","webpack:///./node_modules/amazon-cognito-identity-js/es/CognitoUserSession.js","webpack:///./node_modules/amazon-cognito-identity-js/es/CookieStorage.js","webpack:///./node_modules/amazon-cognito-identity-js/es/DateHelper.js","webpack:///./node_modules/amazon-cognito-identity-js/es/Platform/index.js","webpack:///./node_modules/amazon-cognito-identity-js/es/Platform/version.js","webpack:///./node_modules/amazon-cognito-identity-js/es/StorageHelper.js","webpack:///./node_modules/amazon-cognito-identity-js/es/UserAgent.js","webpack:///./node_modules/amazon-cognito-identity-js/es/index.js","webpack:///./node_modules/amazon-cognito-identity-js/es/utils/WordArray.js","webpack:///./node_modules/amazon-cognito-identity-js/es/utils/cryptoSecureRandomInt.js","webpack://aws_amplify_auth/../amazon-cognito-identity-js/node_modules/crypto-js/core.js?a1a4","webpack://aws_amplify_auth/../amazon-cognito-identity-js/node_modules/crypto-js/enc-base64.js?1c7c","webpack:///./node_modules/crypto-js/hmac-sha256.js","webpack:///./node_modules/crypto-js/hmac.js","webpack:///./node_modules/crypto-js/lib-typedarrays.js","webpack://aws_amplify_auth/../amazon-cognito-identity-js/node_modules/crypto-js/sha256.js?523f","webpack:///../src/Auth.ts","webpack:///../src/Errors.ts","webpack:///../../src/OAuth/OAuth.ts","webpack:///../../src/OAuth/oauthStorage.ts","webpack:///../../src/OAuth/urlOpener.ts","webpack:///../../src/common/AuthErrorStrings.ts","webpack:///../src/index.ts","webpack:///../../src/types/Auth.ts","webpack:///../../src/types/index.ts","webpack:///../src/urlListener.ts","webpack:///./node_modules/crypto-js/core.js","webpack:///./node_modules/crypto-js/enc-base64.js","webpack:///./node_modules/crypto-js/sha256.js","webpack://aws_amplify_auth/crypto (ignored)?f6b9","webpack://aws_amplify_auth/crypto (ignored)?a3c8","webpack:///crypto (ignored)","webpack:///external \"aws_amplify_core\""],"names":["AuthenticationDetails","data","_ref","ValidationData","Username","Password","AuthParameters","ClientMetadata","validationData","authParameters","clientMetadata","username","password","_proto","prototype","getUsername","getPassword","getValidationData","getAuthParameters","getClientMetadata","randomBytes","nBytes","Buffer","from","WordArray","random","toString","HEX_MSB_REGEX","initN","newPasswordRequiredChallengeUserAttributePrefix","AuthenticationHelper","PoolName","N","BigInteger","g","k","hexHash","padHex","smallAValue","generateRandomSmallA","getLargeAValue","infoBits","poolName","getSmallAValue","callback","_this","largeAValue","calculateA","err","hexRandom","randomBigInt","generateRandomString","getRandomPassword","randomPassword","getSaltDevices","SaltToHashDevices","getVerifierDevices","verifierDevices","generateHashDevice","deviceGroupKey","_this2","combinedString","hashedString","hash","modPow","verifierDevicesNotPadded","a","_this3","A","mod","equals","ZERO","Error","calculateU","B","UHexHash","finalU","buf","str","CryptoJS","lib","create","hashHex","SHA256","Array","length","join","hexStr","computehkdf","ikm","salt","infoBitsWordArray","concat","String","fromCharCode","ikmWordArray","saltWordArray","prk","HmacSHA256","hmac","slice","getPasswordAuthenticationKey","serverBValue","_this4","UValue","usernamePassword","usernamePasswordHash","xValue","calculateS","sValue","hkdf","_this5","gModPowXN","intValue2","subtract","multiply","add","err2","result","getNewPasswordRequiredChallengeUserAttributePrefix","bigInt","isNegative","compareTo","abs","test","invertedNibbles","split","map","x","invertedNibble","parseInt","charAt","flippedBitsBI","ONE","toUpperCase","startsWith","substring","b","fromString","nbi","dbits","canary","j_lm","am1","i","w","j","c","n","v","Math","floor","am2","xl","xh","l","h","m","am3","inBrowser","navigator","appName","am","DB","DM","DV","BI_FP","FV","pow","F1","F2","BI_RM","BI_RC","rr","vv","charCodeAt","int2char","intAt","s","bnpCopyTo","r","t","bnpFromInt","nbv","fromInt","bnpFromString","mi","sh","clamp","subTo","bnpClamp","bnToString","negate","km","d","p","bnNegate","bnAbs","bnCompareTo","nbits","bnBitLength","bnpDLShiftTo","bnpDRShiftTo","max","bnpLShiftTo","bs","cbs","bm","ds","bnpRShiftTo","bnpSubTo","min","bnpMultiplyTo","y","bnpSquareTo","bnpDivRemTo","q","pm","pt","copyTo","ts","ms","nsh","lShiftTo","ys","y0","yt","d1","d2","e","dlShiftTo","qd","drShiftTo","rShiftTo","bnMod","divRemTo","bnpInvDigit","bnEquals","bnpAddTo","bnAdd","addTo","bnSubtract","bnMultiply","multiplyTo","bnDivide","Montgomery","mp","invDigit","mpl","mph","um","mt2","montConvert","montRevert","reduce","montReduce","u0","montSqrTo","squareTo","montMulTo","convert","revert","mulTo","sqrTo","bnModPow","bitLength","z","k1","g2","is1","r2","divide","_inheritsLoose","subClass","superClass","Object","constructor","_setPrototypeOf","_wrapNativeSuper","Class","_cache","Map","undefined","_isNativeFunction","TypeError","has","get","set","Wrapper","_construct","arguments","_getPrototypeOf","value","enumerable","writable","configurable","Parent","args","_isNativeReflectConstruct","Reflect","construct","push","apply","Constructor","Function","bind","instance","sham","Proxy","Boolean","valueOf","call","fn","indexOf","o","setPrototypeOf","__proto__","getPrototypeOf","CognitoError","_Error","message","code","name","statusCode","Client","region","endpoint","fetchOptions","credentials","promisifyRequest","operation","params","Promise","resolve","reject","request","requestWithRetry","MAX_DELAY_IN_MILLIS","jitteredExponentialRetry","res","rej","error","then","headers","UserAgent","userAgent","options","assign","method","mode","cache","body","JSON","stringify","response","responseJsonData","fetch","resp","json","ok","__type","pop","Message","status","ex","logger","debug","NonRetryableError","_Error2","nonRetryable","isNonRetryableError","obj","key","retry","functionToRetry","delayFn","attempt","retryIn","setTimeout","jitteredBackoff","maxDelayMs","BASE_TIME_MS","JITTER_FACTOR","delay","MAX_DELAY_MS","CognitoAccessToken","_CognitoJwtToken","_temp","AccessToken","CognitoJwtToken","CognitoIdToken","IdToken","token","jwtToken","payload","decodePayload","getJwtToken","getExpiration","exp","getIssuedAt","iat","parse","CognitoRefreshToken","RefreshToken","getToken","isBrowser","CognitoUser","Pool","pool","Session","client","signInUserSession","authenticationFlowType","storage","Storage","StorageHelper","getStorage","keyPrefix","getClientId","userDataKey","setSignInUserSession","clearCachedUserData","cacheTokens","getSignInUserSession","getAuthenticationFlowType","setAuthenticationFlowType","initiateAuth","authDetails","USERNAME","clientMetaData","keys","jsonReq","AuthFlow","ClientId","getUserContextData","UserContextData","onFailure","challengeName","ChallengeName","challengeParameters","ChallengeParameters","customChallenge","getCognitoUserSession","AuthenticationResult","onSuccess","authenticateUser","authenticateUserPlainUsernamePassword","authenticateUserDefaultAuth","authenticationHelper","getUserPoolId","dateHelper","DateHelper","deviceKey","DEVICE_KEY","errOnAValue","aValue","SRP_A","CHALLENGE_NAME","USER_ID_FOR_SRP","SRP_B","SALT","getCachedDeviceKeyAndPassword","errOnHkdf","dateNow","getNowString","SECRET_BLOCK","signatureString","Base64","challengeResponses","PASSWORD_CLAIM_SECRET_BLOCK","TIMESTAMP","PASSWORD_CLAIM_SIGNATURE","respondToAuthChallenge","challenge","challengeCallback","errChallenge","dataChallenge","toLowerCase","clearCachedDeviceKeyAndPassword","jsonReqResp","ChallengeResponses","errAuthenticate","dataAuthenticate","authenticateUserInternal","PASSWORD","authResult","mfaRequired","selectMFAType","mfaSetup","totpRequired","userAttributes","rawRequiredAttributes","requiredAttributes","userAttributesPrefix","substr","newPasswordRequired","getDeviceResponse","newDeviceMetadata","NewDeviceMetadata","DeviceGroupKey","DeviceKey","errGenHash","deviceSecretVerifierConfig","Salt","PasswordVerifier","getAccessToken","DeviceSecretVerifierConfig","DeviceName","errConfirm","dataConfirm","cacheDeviceKeyAndPassword","UserConfirmationNecessary","completeNewPasswordChallenge","newPassword","requiredAttributeData","finalUserAttributes","forEach","NEW_PASSWORD","_this6","errAValue","errHkdf","confirmRegistration","confirmationCode","forceAliasCreation","ConfirmationCode","ForceAliasCreation","sendCustomChallengeAnswer","answerChallenge","_this7","ANSWER","sendMFACode","mfaType","_this8","SMS_MFA_CODE","mfaTypeSelection","SOFTWARE_TOKEN_MFA_CODE","changePassword","oldUserPassword","newUserPassword","isValid","PreviousPassword","ProposedPassword","enableMFA","mfaOptions","mfaEnabled","DeliveryMedium","AttributeName","MFAOptions","setUserMfaPreference","smsMfaSettings","softwareTokenMfaSettings","SMSMfaSettings","SoftwareTokenMfaSettings","disableMFA","deleteUser","_this9","clearCachedUser","updateAttributes","attributes","_this10","UserAttributes","getUserData","bypassCache","getUserAttributes","userData","attributeList","attribute","Name","Value","userAttribute","CognitoUserAttribute","getMFAOptions","createGetUserRequest","refreshSessionIfPossible","_this11","refresh","getRefreshToken","refreshSession","_this12","getUserDataFromCache","fetchUserData","isFetchUserDataAndTokenRequired","getItem","_ref$bypassCache","_this13","cacheUserData","deleteAttributes","_this14","UserAttributeNames","resendConfirmationCode","getSession","idTokenKey","accessTokenKey","refreshTokenKey","clockDriftKey","idToken","accessToken","refreshToken","clockDrift","sessionData","ClockDrift","cachedSession","CognitoUserSession","_this15","wrappedCallback","wrapRefreshSessionCallback","REFRESH_TOKEN","lastUserKey","deviceKeyKey","authenticationResult","hasOwnProperty","setItem","getIdToken","getClockDrift","removeItem","clearCachedTokens","randomPasswordKey","deviceGroupKeyKey","forgotPassword","inputVerificationCode","confirmPassword","getAttributeVerificationCode","attributeName","verifyAttribute","Code","getDevice","forgetSpecificDevice","forgetDevice","_this16","setDeviceStatusRemembered","DeviceRememberedStatus","setDeviceStatusNotRemembered","listDevices","limit","paginationToken","requestParams","Limit","PaginationToken","globalSignOut","_this17","signOut","revokeTokenCallback","_this18","cleanClientData","_session","revokeTokens","tokensToBeRevoked","_error","isSessionRevocable","revokeToken","_token$decodePayload","origin_jti","_ref2","Token","sendMFASelectionAnswer","_this19","associateSoftwareToken","_this20","associateSecretCode","SecretCode","verifySoftwareToken","totpCode","friendlyDeviceName","_this21","UserCode","FriendlyDeviceName","errRespond","dataRespond","getValue","setValue","getName","setName","toJSON","USER_POOL_ID_MAX_LENGTH","CognitoUserPool","UserPoolId","AdvancedSecurityDataCollectionFlag","userPoolId","clientId","advancedSecurityDataCollectionFlag","signUp","cognitoUser","returnData","user","userConfirmed","UserConfirmed","userSub","UserSub","codeDeliveryDetails","CodeDeliveryDetails","getCurrentUser","lastAuthUser","AmazonCognitoAdvancedSecurityData","amazonCognitoAdvancedSecurityDataConst","advancedSecurityData","getData","userContextData","EncodedData","calculateClockDrift","now","Date","adjusted","CookieStorage","domain","path","expires","secure","includes","sameSite","Cookies","clear","cookies","numKeys","index","monthNames","weekNames","weekDay","getUTCDay","month","getUTCMonth","day","getUTCDate","hours","getUTCHours","minutes","getUTCMinutes","seconds","getUTCSeconds","year","getUTCFullYear","BASE_USER_AGENT","version","Platform","product","isReactNative","getUserAgent","dataMemory","MemoryStorage","storageWindow","window","localStorage","exception","appendToCognitoUserAgent","content","hexStringify","wordArray","words","sigBytes","hexChars","bite","cryptoSecureRandomInt","crypto","msCrypto","global","require","getRandomValues","Uint32Array","readInt32LE","Logger","USER_ADMIN_SCOPE","OAUTH_FLOW_MS_TIMEOUT","AMPLIFY_SYMBOL","Symbol","dispatchAuthEvent","event","Hub","dispatch","MAX_DEVICES","config","Credentials","wrapped","configure","currentCredentials","currentUserCredentials","listen","_a","_storage","AuthClass","_config","conf","Parser","parseMobilehubConfig","Auth","userPoolWebClientId","cookieStorage","oauth","identityPoolId","mandatorySignIn","refreshHandlers","identityPoolRegion","ssr","UniversalStorage","_isValidAuthStorage","_storageSync","userPoolData","userPool","cognitoHostedUIConfig","isCognitoHostedOpts","awsCognito","cognitoAuthParams","cognitoClientId","scopes","redirectSignIn","redirectSignOut","responseType","urlOpener","_oAuthHandler","OAuth","usedResponseUrls_1","urlListener","url","_handleAuthResponse","restOfAttrs","rejectNoUserPool","email","phone_number","_typeof","attrs_1","validationDataObject_1","rejectAuthError","AuthErrorTypes","SignUpError","EmptyUsername","EmptyPassword","EmptyCode","createCognitoUser","usernameOrSignInOpts","pw","isUsernamePasswordOpts","warn","InvalidUsername","signInWithPassword","signInWithoutPassword","that","session","cred","e_1","currentUserPoolUser","currentUser","e_2","challengeParam","pendingSignIn","authCallbacks","isSessionInvalid","cleanUpInvalidSession","cleanUpError_1","_getMfaTypeFromUserData","ret","preferredMFA","PreferredMfaSetting","mfaList","UserMFASettingList","cleanUpError_2","mfaMethod","_getUserData","_b","totpMfaSettings","PreferredMfa","Enabled","currentMFAType","InvalidMFA","NoMFA","cleanUpError_3","secretCode","challengeAnswer","e_3","e_4","EmptyChallengeResponse","attributeNames","userSession","e_5","isSignedInHostedUI","user_1","cleanUpError_4","cleanCachedItems","oAuthSignOutRedirect","attr","attrs","attributesToObject","unverified","verified","isErrorWithMessage","isUserDisabledError","isUserDoesNotExistError","isTokenRevokedError","isRefreshTokenRevokedError","isRefreshTokenExpiredError","isOAuthInProgress","timeoutId","remove","hostedUISignCallback","clearTimeout","cleanUpError_5","scope","cleanUpError_6","oAuthFlowInProgress","federatedUser","e_7","federatedInfo","e_8","NoUserSession","cleanUpError_7","e_9","refreshFederatedToken","currentSession","success","verifyUserAttribute","verifyUserAttributeSubmit","opts","e_10","cleanUpError_8","oAuthSignOutRedirectOrReject","oAuthSignOutAndResolve","cognitoIdentitySignOut","oldPassword","source","getCredSource","userAttrs","e_12","info","id","identityId","err_1","providerOrOptions","isFederatedSignInOptions","isFederatedSignInOptionsCustom","hasCustomState","provider","CognitoHostedUIIdentityProvider","Cognito","customProvider","customState","client_id","clientID","redirect_uri","redirectUri","oauthSignIn","loggedInUser","identity_id","expires_at","currentAuthenticatedUser","URL","currentUrl","JS","browserOrNode","location","href","hasCodeOrError","query","find","hasTokenOrError","handleAuthResponse","state","isCustomStateIncluded","history","replaceState","splice","urlSafeDecode","err_2","accessKeyId","sessionToken","secretAccessKey","authenticated","isTruthyString","MissingAuthConfig","NoConfig","type","AuthError","noUserPoolErrorHandler","NoUserPoolError","currUser","error_1","DeviceConfig","NetworkError","error_2","error_3","cb","deviceList","Devices","deviceName","device","DeviceAttributes","deviceInfo","Amplify","register","__extends","log","_super","authErrorMessages","noConfig","AuthErrorStrings","DEFAULT_MSG","missingAuthConfig","emptyUsername","EMPTY_USERNAME","invalidUsername","INVALID_USERNAME","emptyPassword","EMPTY_PASSWORD","emptyCode","EMPTY_CODE","signUpError","SIGN_UP_ERROR","noMFA","NO_MFA","invalidMFA","INVALID_MFA","emptyChallengeResponse","EMPTY_CHALLENGE","noUserSession","NO_USER_SESSION","deviceConfig","DEVICE_CONFIG","networkError","NETWORK_ERROR","_urlOpener","launchUri","_cognitoClientId","isValidScopes","_scopes","isArray","every","generatedState","_generateState","urlSafeEncode","oAuthStorage","pkce_key","_generateRandom","code_challenge","_generateChallenge","code_challenge_method","scopesString","queryString","entries","__assign","response_type","identity_provider","encodeURIComponent","accum","_c","currentUrlPathname","pathname","redirectSignInPathname","oAuthTokenEndpoint","code_verifier","oAuthTokenBody","grant_type","access_token","refresh_token","id_token","urlParams","acc","error_description","_validateState","_handleCodeFlow","_handleImplicitFlow","savedState","returnedState","oAuthLogoutEndpoint","signout_uri","returnTo","logout_uri","oAuth","chars","round","_base64URL","sha256","string","replace","size","CHARSET","buffer","Uint8Array","_bufferToString","byteLength","setState","sessionStorage","getState","oauth_state","setPKCE","private_key","getPKCE","ouath_pkce_key","clearAll","SELF","windowProxy","open","GRAPHQL_AUTH_MODE","isNode"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;;AClFY;;AAEZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,SAAS;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,UAAU;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEY;;AAEZ,aAAa,mBAAO,CAAC,wDAAW;AAChC,cAAc,mBAAO,CAAC,oDAAS;AAC/B,cAAc,mBAAO,CAAC,oDAAS;;AAE/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,mDAAmD;AACxE;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,uCAAuC,SAAS;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,EAAE;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,wBAAwB,QAAQ;AAChC;AACA,qBAAqB,eAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,YAAY;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;AC5vDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAQ,WAAW;;AAEnB;AACA;AACA;AACA,QAAQ,WAAW;;AAEnB;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,QAAQ,WAAW;;AAEnB;AACA;AACA,QAAQ,UAAU;;AAElB;AACA;;;;;;;;;;;;ACpFA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;;;;;;ACJA,6CAA6C,mBAAO,CAAC,kEAAS,aAAa,mBAAO,CAAC,kEAAS;;;;;;;;;;;;ACA5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,KAAK,IAA0C;AAC/C,EAAE,oCAAO,OAAO;AAAA;AAAA;AAAA;AAAA,oGAAC;AACjB;AACA;AACA,KAAK,IAA2B;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,QAAQ,sBAAsB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,EAAE;AACjC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;;AAEA;AACA;AACA,mEAAmE;AACnE;AACA;AACA,wCAAwC;AACxC;AACA,qEAAqE;AACrE;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2DAA2D;AAC3D;;AAEA,SAAS,oBAAoB;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;;AAEA;;AAEA;AACA;;AAEA,2BAA2B;AAC3B,CAAC;;;;;;;;;;;;AClKD;AACA,CAAC;;AAED;AACA,mBAAmB,KAA0B;AAC7C;AACA,kBAAkB,KAAyB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,MAAM;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,MAAM;AAClB,YAAY,SAAS;AACrB;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,SAAS;AACrB;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA,KAAK;AACL,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,MAAM;AAClB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mCAAmC;AAClE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,aAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB;;AAExB,yCAAyC,qBAAqB;;AAE9D;AACA;AACA;AACA;AACA;AACA,kCAAkC,oBAAoB;;AAEtD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,cAAc,iBAAiB;AAC/B;;AAEA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B,oBAAoB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE,IAEU;AACZ;AACA,EAAE,mCAAmB;AACrB;AACA,GAAG;AAAA,oGAAC;AACJ,EAAE,MAAM,EAaN;;AAEF,CAAC;;;;;;;;;;;;;;ACphBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,eAAe;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpFa;;AAEb,iCAAiC,mBAAO,CAAC,8DAAU;AACnD,qCAAqC,mBAAO,CAAC,8DAAU;;;;;;;;;;;;;ACHvD;AAAe,6EAAc,cAAc,2BAA2B,uCAAuC,cAAc,OAAO,iGAAiG,uCAAuC,iBAAiB,wDAAwD,iBAAiB,+CAA+C,kBAAkB,gBAAgB,SAAS,oBAAoB,SAAS,iBAAiB,0BAA0B,iBAAiB,+BAA+B,8DAA8D,iFAAiF,+DAA+D,SAAS,qGAAqG,qBAAqB,EAAE;AACz4B;;;;;;;;;;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,eAAe,mBAAO,CAAC,yDAAU;AACjC,WAAW,mBAAO,CAAC,8CAAQ;;AAE3B;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,KAAK;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,2CAA2C,KAAK;AAChD,0CAA0C,KAAK;AAC/C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,kBAAkB,mBAAO,CAAC,gEAAa;;AAEvC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,MAAM;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC3tBa;;AAEb;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,G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AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,cAAc;;AAEd;AACA;AACA;AACA;AACA,yBAAyB,OAAO;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA,yBAAyB,OAAO;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA,mBAAmB,MAAM;AACzB,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA,qBAAqB,UAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA,cAAc;AACd;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA,qBAAqB,UAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;;AAEV;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA,qBAAqB,UAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,YAAY;AACxC;AACA;;AAEA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,cAAc;AAC1C;AACA;AACA;AACA;;AAEA;AACA,UAAU;;AAEV;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA,qBAAqB,UAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,cAAc;AAC1C;AACA;AACA;;AAEA;AACA,UAAU;;AAEV;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA,qBAAqB,UAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA,qBAAqB,UAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA,qBAAqB,UAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qCAAqC,sBAAsB;AAC3D;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;;AAEV;AACA,MAAM;;AAEN;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA,qBAAqB,UAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,UAAU;;AAEV;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;;AAEA;AACA,EAAE;;;AAGF;;AAEA,CAAC,G;;;;;;;;;;;;ACtyBD,CAAC;AACD,KAAK,IAA2B;AAChC;AACA,qCAAqC,mBAAO,CAAC,4EAAQ;AACrD;AACA,MAAM,EAOJ;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,4BAA4B,cAAc;AAC1C;AACA;AACA;;AAEA;;AAEA,gCAAgC,sCAAsC;AACtE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;;AAEV;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA,qBAAqB,UAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC,gBAAgB;AACpD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,UAAU;;AAEV;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;;AAGF;;AAEA,CAAC,G;;;;;;;;;;;ACvID,CAAC;AACD,KAAK,IAA2B;AAChC;AACA,qCAAqC,mBAAO,CAAC,4EAAQ,GAAG,mBAAO,CAAC,gFAAU,GAAG,mBAAO,CAAC,4EAAQ;AAC7F;AACA,MAAM,EAOJ;AACF,CAAC;;AAED;;AAEA,CAAC,G;;;;;;;;;;;ACjBD,CAAC;AACD,KAAK,IAA2B;AAChC;AACA,qCAAqC,mBAAO,CAAC,4EAAQ;AACrD;AACA,MAAM,EAOJ;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA,qBAAqB,KAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA,qBAAqB,UAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN,EAAE;;;AAGF,CAAC,G;;;;;;;;;;;AC9ID,CAAC;AACD,KAAK,IAA2B;AAChC;AACA,qCAAqC,mBAAO,CAAC,4EAAQ;AACrD;AACA,MAAM,EAOJ;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA,EAAE;;;AAGF;;AAEA,CAAC,G;;;;;;;;;;;AC3ED,CAAC;AACD,KAAK,IAA2B;AAChC;AACA,qCAAqC,mBAAO,CAAC,4EAAQ;AACrD;AACA,MAAM,EAOJ;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAiC,iBAAiB;AAClD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,UAAU;;AAEV;AACA;AACA;;AAEA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC,gBAAgB,iBAAiB;AACjC;AACA,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;;AAGF;;AAEA,CAAC,G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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CA;AACA,wBAAwB,OAAO;AAC/B;AACA,yBAAyB,OAAO;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,cAAc;;AAEd;AACA;AACA;AACA;AACA,yBAAyB,OAAO;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA,yBAAyB,OAAO;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA,mBAAmB,MAAM;AACzB,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA,qBAAqB,UAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA,cAAc;AACd;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA,qBAAqB,UAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;;AAEV;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA,qBAAqB,UAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,YAAY;AACxC;AACA;;AAEA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,cAAc;AAC1C;AACA;AACA;AACA;;AAEA;AACA,UAAU;;AAEV;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA,qBAAqB,UAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,cAAc;AAC1C;AACA;AACA;;AAEA;AACA,UAAU;;AAEV;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA,qBAAqB,UAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA,qBAAqB,UAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA,qBAAqB,UAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qCAAqC,sBAAsB;AAC3D;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;;AAEV;AACA,MAAM;;AAEN;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA,qBAAqB,UAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,UAAU;;AAEV;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;;AAEA;AACA,EAAE;;;AAGF;;AAEA,CAAC,G;;;;;;;;;;;;ACtyBD,CAAC;AACD,KAAK,IAA2B;AAChC;AACA,qCAAqC,mBAAO,CAAC,gDAAQ;AACrD;AACA,MAAM,EAOJ;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,4BAA4B,cAAc;AAC1C;AACA;AACA;;AAEA;;AAEA,gCAAgC,sCAAsC;AACtE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;;AAEV;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA,qBAAqB,UAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC,gBAAgB;AACpD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,UAAU;;AAEV;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;;AAGF;;AAEA,CAAC,G;;;;;;;;;;;ACvID,CAAC;AACD,KAAK,IAA2B;AAChC;AACA,qCAAqC,mBAAO,CAAC,gDAAQ;AACrD;AACA,MAAM,EAOJ;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAiC,iBAAiB;AAClD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,UAAU;;AAEV;AACA;AACA;;AAEA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC,gBAAgB,iBAAiB;AACjC;AACA,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;;AAGF;;AAEA,CAAC,G;;;;;;;;;;;ACtMD,e;;;;;;;;;;;ACAA,e;;;;;;;;;;;ACAA,e;;;;;;;;;;;ACAA,+D","file":"aws-amplify-auth.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"aws_amplify_core\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"aws_amplify_auth\", [\"aws_amplify_core\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"aws_amplify_auth\"] = factory(require(\"aws_amplify_core\"));\n\telse\n\t\troot[\"aws_amplify_auth\"] = factory(root[\"aws_amplify_core\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE__aws_amplify_core__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./lib-esm/index.js\");\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","/*!\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","/*! 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","module.exports = self.fetch || (self.fetch = require('unfetch').default || require('unfetch'));\n","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction decode (s) {\n\t\treturn s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api() {}\n\n\t\tfunction set (key, value, attributes) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tattributes = extend({\n\t\t\t\tpath: '/'\n\t\t\t}, api.defaults, attributes);\n\n\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\tattributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n\t\t\t}\n\n\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\ttry {\n\t\t\t\tvar result = JSON.stringify(value);\n\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\tvalue = result;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\n\t\t\tvalue = converter.write ?\n\t\t\t\tconverter.write(value, key) :\n\t\t\t\tencodeURIComponent(String(value))\n\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\n\t\t\tkey = encodeURIComponent(String(key))\n\t\t\t\t.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)\n\t\t\t\t.replace(/[\\(\\)]/g, escape);\n\n\t\t\tvar stringifiedAttributes = '';\n\t\t\tfor (var attributeName in attributes) {\n\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Considers RFC 6265 section 5.2:\n\t\t\t\t// ...\n\t\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n\t\t\t\t// character:\n\t\t\t\t// Consume the characters of the unparsed-attributes up to,\n\t\t\t\t// not including, the first %x3B (\";\") character.\n\t\t\t\t// ...\n\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n\t\t\t}\n\n\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t}\n\n\t\tfunction get (key, json) {\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar jar = {};\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all.\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = decode(parts[0]);\n\t\t\t\t\tcookie = (converter.read || converter)(cookie, name) ||\n\t\t\t\t\t\tdecode(cookie);\n\n\t\t\t\t\tif (json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tjar[name] = cookie;\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn key ? jar[key] : jar;\n\t\t}\n\n\t\tapi.set = set;\n\t\tapi.get = function (key) {\n\t\t\treturn get(key, false /* read as raw */);\n\t\t};\n\t\tapi.getJSON = function (key) {\n\t\t\treturn get(key, true /* read as json */);\n\t\t};\n\t\tapi.remove = function (key, attributes) {\n\t\t\tset(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.defaults = {};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return map(objectKeys(obj), function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (isArray(obj[k])) {\n return map(obj[k], function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\nfunction map (xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n return res;\n}\n\nvar objectKeys = Object.keys || function (obj) {\n var res = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);\n }\n return res;\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","export default function(e,n){return n=n||{},new Promise(function(t,r){var s=new XMLHttpRequest,o=[],u=[],i={},a=function(){return{ok:2==(s.status/100|0),statusText:s.statusText,status:s.status,url:s.responseURL,text:function(){return Promise.resolve(s.responseText)},json:function(){return Promise.resolve(s.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([s.response]))},clone:a,headers:{keys:function(){return o},entries:function(){return u},get:function(e){return i[e.toLowerCase()]},has:function(e){return e.toLowerCase()in i}}}};for(var l in s.open(n.method||\"get\",e,!0),s.onload=function(){s.getAllResponseHeaders().replace(/^(.*?):[^\\S\\n]*([\\s\\S]*?)$/gm,function(e,n,t){o.push(n=n.toLowerCase()),u.push([n,t]),i[n]=i[n]?i[n]+\",\"+t:t}),t(a())},s.onerror=r,s.withCredentials=\"include\"==n.credentials,n.headers)s.setRequestHeader(l,n.headers[l]);s.send(n.body||null)})}\n//# sourceMappingURL=unfetch.module.js.map\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n util.isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n","'use strict';\n\nmodule.exports = {\n isString: function(arg) {\n return typeof(arg) === 'string';\n },\n isObject: function(arg) {\n return typeof(arg) === 'object' && arg !== null;\n },\n isNull: function(arg) {\n return arg === null;\n },\n isNullOrUndefined: function(arg) {\n return arg == null;\n }\n};\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/** @class */\nvar AuthenticationDetails = /*#__PURE__*/function () {\n /**\n * Constructs a new AuthenticationDetails object\n * @param {object=} data Creation options.\n * @param {string} data.Username User being authenticated.\n * @param {string} data.Password Plain-text password to authenticate with.\n * @param {(AttributeArg[])?} data.ValidationData Application extra metadata.\n * @param {(AttributeArg[])?} data.AuthParamaters Authentication paramaters for custom auth.\n */\n function AuthenticationDetails(data) {\n var _ref = data || {},\n ValidationData = _ref.ValidationData,\n Username = _ref.Username,\n Password = _ref.Password,\n AuthParameters = _ref.AuthParameters,\n ClientMetadata = _ref.ClientMetadata;\n\n this.validationData = ValidationData || {};\n this.authParameters = AuthParameters || {};\n this.clientMetadata = ClientMetadata || {};\n this.username = Username;\n this.password = Password;\n }\n /**\n * @returns {string} the record's username\n */\n\n\n var _proto = AuthenticationDetails.prototype;\n\n _proto.getUsername = function getUsername() {\n return this.username;\n }\n /**\n * @returns {string} the record's password\n */\n ;\n\n _proto.getPassword = function getPassword() {\n return this.password;\n }\n /**\n * @returns {Array} the record's validationData\n */\n ;\n\n _proto.getValidationData = function getValidationData() {\n return this.validationData;\n }\n /**\n * @returns {Array} the record's authParameters\n */\n ;\n\n _proto.getAuthParameters = function getAuthParameters() {\n return this.authParameters;\n }\n /**\n * @returns {ClientMetadata} the clientMetadata for a Lambda trigger\n */\n ;\n\n _proto.getClientMetadata = function getClientMetadata() {\n return this.clientMetadata;\n };\n\n return AuthenticationDetails;\n}();\n\nexport { AuthenticationDetails as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { Buffer } from 'buffer';\nimport CryptoJS from 'crypto-js/core';\nimport 'crypto-js/lib-typedarrays'; // necessary for crypto js\n\nimport SHA256 from 'crypto-js/sha256';\nimport HmacSHA256 from 'crypto-js/hmac-sha256';\nimport WordArray from './utils/WordArray';\n/**\n * Returns a Buffer with a sequence of random nBytes\n *\n * @param {number} nBytes\n * @returns {Buffer} fixed-length sequence of random bytes\n */\n\nfunction randomBytes(nBytes) {\n return Buffer.from(new WordArray().random(nBytes).toString(), 'hex');\n}\n\nimport BigInteger from './BigInteger';\n/**\n * Tests if a hex string has it most significant bit set (case-insensitive regex)\n */\n\nvar HEX_MSB_REGEX = /^[89a-f]/i;\nvar initN = 'FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1' + '29024E088A67CC74020BBEA63B139B22514A08798E3404DD' + 'EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245' + 'E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED' + 'EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3D' + 'C2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F' + '83655D23DCA3AD961C62F356208552BB9ED529077096966D' + '670C354E4ABC9804F1746C08CA18217C32905E462E36CE3B' + 'E39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9' + 'DE2BCBF6955817183995497CEA956AE515D2261898FA0510' + '15728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64' + 'ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7' + 'ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6B' + 'F12FFA06D98A0864D87602733EC86A64521F2B18177B200C' + 'BBE117577A615D6C770988C0BAD946E208E24FA074E5AB31' + '43DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF';\nvar newPasswordRequiredChallengeUserAttributePrefix = 'userAttributes.';\n/** @class */\n\nvar AuthenticationHelper = /*#__PURE__*/function () {\n /**\n * Constructs a new AuthenticationHelper object\n * @param {string} PoolName Cognito user pool name.\n */\n function AuthenticationHelper(PoolName) {\n this.N = new BigInteger(initN, 16);\n this.g = new BigInteger('2', 16);\n this.k = new BigInteger(this.hexHash(\"\" + this.padHex(this.N) + this.padHex(this.g)), 16);\n this.smallAValue = this.generateRandomSmallA();\n this.getLargeAValue(function () {});\n this.infoBits = Buffer.from('Caldera Derived Key', 'utf8');\n this.poolName = PoolName;\n }\n /**\n * @returns {BigInteger} small A, a random number\n */\n\n\n var _proto = AuthenticationHelper.prototype;\n\n _proto.getSmallAValue = function getSmallAValue() {\n return this.smallAValue;\n }\n /**\n * @param {nodeCallback<BigInteger>} callback Called with (err, largeAValue)\n * @returns {void}\n */\n ;\n\n _proto.getLargeAValue = function getLargeAValue(callback) {\n var _this = this;\n\n if (this.largeAValue) {\n callback(null, this.largeAValue);\n } else {\n this.calculateA(this.smallAValue, function (err, largeAValue) {\n if (err) {\n callback(err, null);\n }\n\n _this.largeAValue = largeAValue;\n callback(null, _this.largeAValue);\n });\n }\n }\n /**\n * helper function to generate a random big integer\n * @returns {BigInteger} a random value.\n * @private\n */\n ;\n\n _proto.generateRandomSmallA = function generateRandomSmallA() {\n // This will be interpreted as a postive 128-bit integer\n var hexRandom = randomBytes(128).toString('hex');\n var randomBigInt = new BigInteger(hexRandom, 16); // There is no need to do randomBigInt.mod(this.N - 1) as N (3072-bit) is > 128 bytes (1024-bit)\n\n return randomBigInt;\n }\n /**\n * helper function to generate a random string\n * @returns {string} a random value.\n * @private\n */\n ;\n\n _proto.generateRandomString = function generateRandomString() {\n return randomBytes(40).toString('base64');\n }\n /**\n * @returns {string} Generated random value included in password hash.\n */\n ;\n\n _proto.getRandomPassword = function getRandomPassword() {\n return this.randomPassword;\n }\n /**\n * @returns {string} Generated random value included in devices hash.\n */\n ;\n\n _proto.getSaltDevices = function getSaltDevices() {\n return this.SaltToHashDevices;\n }\n /**\n * @returns {string} Value used to verify devices.\n */\n ;\n\n _proto.getVerifierDevices = function getVerifierDevices() {\n return this.verifierDevices;\n }\n /**\n * Generate salts and compute verifier.\n * @param {string} deviceGroupKey Devices to generate verifier for.\n * @param {string} username User to generate verifier for.\n * @param {nodeCallback<null>} callback Called with (err, null)\n * @returns {void}\n */\n ;\n\n _proto.generateHashDevice = function generateHashDevice(deviceGroupKey, username, callback) {\n var _this2 = this;\n\n this.randomPassword = this.generateRandomString();\n var combinedString = \"\" + deviceGroupKey + username + \":\" + this.randomPassword;\n var hashedString = this.hash(combinedString);\n var hexRandom = randomBytes(16).toString('hex'); // The random hex will be unambiguously represented as a postive integer\n\n this.SaltToHashDevices = this.padHex(new BigInteger(hexRandom, 16));\n this.g.modPow(new BigInteger(this.hexHash(this.SaltToHashDevices + hashedString), 16), this.N, function (err, verifierDevicesNotPadded) {\n if (err) {\n callback(err, null);\n }\n\n _this2.verifierDevices = _this2.padHex(verifierDevicesNotPadded);\n callback(null, null);\n });\n }\n /**\n * Calculate the client's public value A = g^a%N\n * with the generated random number a\n * @param {BigInteger} a Randomly generated small A.\n * @param {nodeCallback<BigInteger>} callback Called with (err, largeAValue)\n * @returns {void}\n * @private\n */\n ;\n\n _proto.calculateA = function calculateA(a, callback) {\n var _this3 = this;\n\n this.g.modPow(a, this.N, function (err, A) {\n if (err) {\n callback(err, null);\n }\n\n if (A.mod(_this3.N).equals(BigInteger.ZERO)) {\n callback(new Error('Illegal paramater. A mod N cannot be 0.'), null);\n }\n\n callback(null, A);\n });\n }\n /**\n * Calculate the client's value U which is the hash of A and B\n * @param {BigInteger} A Large A value.\n * @param {BigInteger} B Server B value.\n * @returns {BigInteger} Computed U value.\n * @private\n */\n ;\n\n _proto.calculateU = function calculateU(A, B) {\n this.UHexHash = this.hexHash(this.padHex(A) + this.padHex(B));\n var finalU = new BigInteger(this.UHexHash, 16);\n return finalU;\n }\n /**\n * Calculate a hash from a bitArray\n * @param {Buffer} buf Value to hash.\n * @returns {String} Hex-encoded hash.\n * @private\n */\n ;\n\n _proto.hash = function hash(buf) {\n var str = buf instanceof Buffer ? CryptoJS.lib.WordArray.create(buf) : buf;\n var hashHex = SHA256(str).toString();\n return new Array(64 - hashHex.length).join('0') + hashHex;\n }\n /**\n * Calculate a hash from a hex string\n * @param {String} hexStr Value to hash.\n * @returns {String} Hex-encoded hash.\n * @private\n */\n ;\n\n _proto.hexHash = function hexHash(hexStr) {\n return this.hash(Buffer.from(hexStr, 'hex'));\n }\n /**\n * Standard hkdf algorithm\n * @param {Buffer} ikm Input key material.\n * @param {Buffer} salt Salt value.\n * @returns {Buffer} Strong key material.\n * @private\n */\n ;\n\n _proto.computehkdf = function computehkdf(ikm, salt) {\n var infoBitsWordArray = CryptoJS.lib.WordArray.create(Buffer.concat([this.infoBits, Buffer.from(String.fromCharCode(1), 'utf8')]));\n var ikmWordArray = ikm instanceof Buffer ? CryptoJS.lib.WordArray.create(ikm) : ikm;\n var saltWordArray = salt instanceof Buffer ? CryptoJS.lib.WordArray.create(salt) : salt;\n var prk = HmacSHA256(ikmWordArray, saltWordArray);\n var hmac = HmacSHA256(infoBitsWordArray, prk);\n return Buffer.from(hmac.toString(), 'hex').slice(0, 16);\n }\n /**\n * Calculates the final hkdf based on computed S value, and computed U value and the key\n * @param {String} username Username.\n * @param {String} password Password.\n * @param {BigInteger} serverBValue Server B value.\n * @param {BigInteger} salt Generated salt.\n * @param {nodeCallback<Buffer>} callback Called with (err, hkdfValue)\n * @returns {void}\n */\n ;\n\n _proto.getPasswordAuthenticationKey = function getPasswordAuthenticationKey(username, password, serverBValue, salt, callback) {\n var _this4 = this;\n\n if (serverBValue.mod(this.N).equals(BigInteger.ZERO)) {\n throw new Error('B cannot be zero.');\n }\n\n this.UValue = this.calculateU(this.largeAValue, serverBValue);\n\n if (this.UValue.equals(BigInteger.ZERO)) {\n throw new Error('U cannot be zero.');\n }\n\n var usernamePassword = \"\" + this.poolName + username + \":\" + password;\n var usernamePasswordHash = this.hash(usernamePassword);\n var xValue = new BigInteger(this.hexHash(this.padHex(salt) + usernamePasswordHash), 16);\n this.calculateS(xValue, serverBValue, function (err, sValue) {\n if (err) {\n callback(err, null);\n }\n\n var hkdf = _this4.computehkdf(Buffer.from(_this4.padHex(sValue), 'hex'), Buffer.from(_this4.padHex(_this4.UValue), 'hex'));\n\n callback(null, hkdf);\n });\n }\n /**\n * Calculates the S value used in getPasswordAuthenticationKey\n * @param {BigInteger} xValue Salted password hash value.\n * @param {BigInteger} serverBValue Server B value.\n * @param {nodeCallback<string>} callback Called on success or error.\n * @returns {void}\n */\n ;\n\n _proto.calculateS = function calculateS(xValue, serverBValue, callback) {\n var _this5 = this;\n\n this.g.modPow(xValue, this.N, function (err, gModPowXN) {\n if (err) {\n callback(err, null);\n }\n\n var intValue2 = serverBValue.subtract(_this5.k.multiply(gModPowXN));\n intValue2.modPow(_this5.smallAValue.add(_this5.UValue.multiply(xValue)), _this5.N, function (err2, result) {\n if (err2) {\n callback(err2, null);\n }\n\n callback(null, result.mod(_this5.N));\n });\n });\n }\n /**\n * Return constant newPasswordRequiredChallengeUserAttributePrefix\n * @return {newPasswordRequiredChallengeUserAttributePrefix} constant prefix value\n */\n ;\n\n _proto.getNewPasswordRequiredChallengeUserAttributePrefix = function getNewPasswordRequiredChallengeUserAttributePrefix() {\n return newPasswordRequiredChallengeUserAttributePrefix;\n }\n /**\n * Returns an unambiguous, even-length hex string of the two's complement encoding of an integer.\n *\n * It is compatible with the hex encoding of Java's BigInteger's toByteArray(), wich returns a\n * byte array containing the two's-complement representation of a BigInteger. The array contains\n * the minimum number of bytes required to represent the BigInteger, including at least one sign bit.\n *\n * Examples showing how ambiguity is avoided by left padding with:\n * \t\"00\" (for positive values where the most-significant-bit is set)\n * \"FF\" (for negative values where the most-significant-bit is set)\n *\n * padHex(bigInteger.fromInt(-236)) === \"FF14\"\n * padHex(bigInteger.fromInt(20)) === \"14\"\n *\n * padHex(bigInteger.fromInt(-200)) === \"FF38\"\n * padHex(bigInteger.fromInt(56)) === \"38\"\n *\n * padHex(bigInteger.fromInt(-20)) === \"EC\"\n * padHex(bigInteger.fromInt(236)) === \"00EC\"\n *\n * padHex(bigInteger.fromInt(-56)) === \"C8\"\n * padHex(bigInteger.fromInt(200)) === \"00C8\"\n *\n * @param {BigInteger} bigInt Number to encode.\n * @returns {String} even-length hex string of the two's complement encoding.\n */\n ;\n\n _proto.padHex = function padHex(bigInt) {\n if (!(bigInt instanceof BigInteger)) {\n throw new Error('Not a BigInteger');\n }\n\n var isNegative = bigInt.compareTo(BigInteger.ZERO) < 0;\n /* Get a hex string for abs(bigInt) */\n\n var hexStr = bigInt.abs().toString(16);\n /* Pad hex to even length if needed */\n\n hexStr = hexStr.length % 2 !== 0 ? \"0\" + hexStr : hexStr;\n /* Prepend \"00\" if the most significant bit is set */\n\n hexStr = HEX_MSB_REGEX.test(hexStr) ? \"00\" + hexStr : hexStr;\n\n if (isNegative) {\n /* Flip the bits of the representation */\n var invertedNibbles = hexStr.split('').map(function (x) {\n var invertedNibble = ~parseInt(x, 16) & 0xf;\n return '0123456789ABCDEF'.charAt(invertedNibble);\n }).join('');\n /* After flipping the bits, add one to get the 2's complement representation */\n\n var flippedBitsBI = new BigInteger(invertedNibbles, 16).add(BigInteger.ONE);\n hexStr = flippedBitsBI.toString(16);\n /*\n For hex strings starting with 'FF8', 'FF' can be dropped, e.g. 0xFFFF80=0xFF80=0x80=-128\n \t\tAny sequence of '1' bits on the left can always be substituted with a single '1' bit\n without changing the represented value.\n \t\tThis only happens in the case when the input is 80...00\n */\n\n if (hexStr.toUpperCase().startsWith('FF8')) {\n hexStr = hexStr.substring(2);\n }\n }\n\n return hexStr;\n };\n\n return AuthenticationHelper;\n}();\n\nexport { AuthenticationHelper as default };","// A small implementation of BigInteger based on http://www-cs-students.stanford.edu/~tjw/jsbn/\n//\n// All public methods have been removed except the following:\n// new BigInteger(a, b) (only radix 2, 4, 8, 16 and 32 supported)\n// toString (only radix 2, 4, 8, 16 and 32 supported)\n// negate\n// abs\n// compareTo\n// bitLength\n// mod\n// equals\n// add\n// subtract\n// multiply\n// divide\n// modPow\nexport default BigInteger;\n/*\n * Copyright (c) 2003-2005 Tom Wu\n * All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS-IS\" AND WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY\n * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.\n *\n * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,\n * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER\n * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF\n * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT\n * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n *\n * In addition, the following condition applies:\n *\n * All redistributions must retain an intact copy of this copyright notice\n * and disclaimer.\n */\n// (public) Constructor\n\nfunction BigInteger(a, b) {\n if (a != null) this.fromString(a, b);\n} // return new, unset BigInteger\n\n\nfunction nbi() {\n return new BigInteger(null);\n} // Bits per digit\n\n\nvar dbits; // JavaScript engine analysis\n\nvar canary = 0xdeadbeefcafe;\nvar j_lm = (canary & 0xffffff) == 0xefcafe; // am: Compute w_j += (x*this_i), propagate carries,\n// c is initial carry, returns final carry.\n// c < 3*dvalue, x < 2*dvalue, this_i < dvalue\n// We need to select the fastest one that works in this environment.\n// am1: use a single mult and divide to get the high bits,\n// max digit bits should be 26 because\n// max internal value = 2*dvalue^2-2*dvalue (< 2^53)\n\nfunction am1(i, x, w, j, c, n) {\n while (--n >= 0) {\n var v = x * this[i++] + w[j] + c;\n c = Math.floor(v / 0x4000000);\n w[j++] = v & 0x3ffffff;\n }\n\n return c;\n} // am2 avoids a big mult-and-extract completely.\n// Max digit bits should be <= 30 because we do bitwise ops\n// on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)\n\n\nfunction am2(i, x, w, j, c, n) {\n var xl = x & 0x7fff,\n xh = x >> 15;\n\n while (--n >= 0) {\n var l = this[i] & 0x7fff;\n var h = this[i++] >> 15;\n var m = xh * l + h * xl;\n l = xl * l + ((m & 0x7fff) << 15) + w[j] + (c & 0x3fffffff);\n c = (l >>> 30) + (m >>> 15) + xh * h + (c >>> 30);\n w[j++] = l & 0x3fffffff;\n }\n\n return c;\n} // Alternately, set max digit bits to 28 since some\n// browsers slow down when dealing with 32-bit numbers.\n\n\nfunction am3(i, x, w, j, c, n) {\n var xl = x & 0x3fff,\n xh = x >> 14;\n\n while (--n >= 0) {\n var l = this[i] & 0x3fff;\n var h = this[i++] >> 14;\n var m = xh * l + h * xl;\n l = xl * l + ((m & 0x3fff) << 14) + w[j] + c;\n c = (l >> 28) + (m >> 14) + xh * h;\n w[j++] = l & 0xfffffff;\n }\n\n return c;\n}\n\nvar inBrowser = typeof navigator !== 'undefined';\n\nif (inBrowser && j_lm && navigator.appName == 'Microsoft Internet Explorer') {\n BigInteger.prototype.am = am2;\n dbits = 30;\n} else if (inBrowser && j_lm && navigator.appName != 'Netscape') {\n BigInteger.prototype.am = am1;\n dbits = 26;\n} else {\n // Mozilla/Netscape seems to prefer am3\n BigInteger.prototype.am = am3;\n dbits = 28;\n}\n\nBigInteger.prototype.DB = dbits;\nBigInteger.prototype.DM = (1 << dbits) - 1;\nBigInteger.prototype.DV = 1 << dbits;\nvar BI_FP = 52;\nBigInteger.prototype.FV = Math.pow(2, BI_FP);\nBigInteger.prototype.F1 = BI_FP - dbits;\nBigInteger.prototype.F2 = 2 * dbits - BI_FP; // Digit conversions\n\nvar BI_RM = '0123456789abcdefghijklmnopqrstuvwxyz';\nvar BI_RC = new Array();\nvar rr, vv;\nrr = '0'.charCodeAt(0);\n\nfor (vv = 0; vv <= 9; ++vv) {\n BI_RC[rr++] = vv;\n}\n\nrr = 'a'.charCodeAt(0);\n\nfor (vv = 10; vv < 36; ++vv) {\n BI_RC[rr++] = vv;\n}\n\nrr = 'A'.charCodeAt(0);\n\nfor (vv = 10; vv < 36; ++vv) {\n BI_RC[rr++] = vv;\n}\n\nfunction int2char(n) {\n return BI_RM.charAt(n);\n}\n\nfunction intAt(s, i) {\n var c = BI_RC[s.charCodeAt(i)];\n return c == null ? -1 : c;\n} // (protected) copy this to r\n\n\nfunction bnpCopyTo(r) {\n for (var i = this.t - 1; i >= 0; --i) {\n r[i] = this[i];\n }\n\n r.t = this.t;\n r.s = this.s;\n} // (protected) set from integer value x, -DV <= x < DV\n\n\nfunction bnpFromInt(x) {\n this.t = 1;\n this.s = x < 0 ? -1 : 0;\n if (x > 0) this[0] = x;else if (x < -1) this[0] = x + this.DV;else this.t = 0;\n} // return bigint initialized to value\n\n\nfunction nbv(i) {\n var r = nbi();\n r.fromInt(i);\n return r;\n} // (protected) set from string and radix\n\n\nfunction bnpFromString(s, b) {\n var k;\n if (b == 16) k = 4;else if (b == 8) k = 3;else if (b == 2) k = 1;else if (b == 32) k = 5;else if (b == 4) k = 2;else throw new Error('Only radix 2, 4, 8, 16, 32 are supported');\n this.t = 0;\n this.s = 0;\n var i = s.length,\n mi = false,\n sh = 0;\n\n while (--i >= 0) {\n var x = intAt(s, i);\n\n if (x < 0) {\n if (s.charAt(i) == '-') mi = true;\n continue;\n }\n\n mi = false;\n if (sh == 0) this[this.t++] = x;else if (sh + k > this.DB) {\n this[this.t - 1] |= (x & (1 << this.DB - sh) - 1) << sh;\n this[this.t++] = x >> this.DB - sh;\n } else this[this.t - 1] |= x << sh;\n sh += k;\n if (sh >= this.DB) sh -= this.DB;\n }\n\n this.clamp();\n if (mi) BigInteger.ZERO.subTo(this, this);\n} // (protected) clamp off excess high words\n\n\nfunction bnpClamp() {\n var c = this.s & this.DM;\n\n while (this.t > 0 && this[this.t - 1] == c) {\n --this.t;\n }\n} // (public) return string representation in given radix\n\n\nfunction bnToString(b) {\n if (this.s < 0) return '-' + this.negate().toString(b);\n var k;\n if (b == 16) k = 4;else if (b == 8) k = 3;else if (b == 2) k = 1;else if (b == 32) k = 5;else if (b == 4) k = 2;else throw new Error('Only radix 2, 4, 8, 16, 32 are supported');\n var km = (1 << k) - 1,\n d,\n m = false,\n r = '',\n i = this.t;\n var p = this.DB - i * this.DB % k;\n\n if (i-- > 0) {\n if (p < this.DB && (d = this[i] >> p) > 0) {\n m = true;\n r = int2char(d);\n }\n\n while (i >= 0) {\n if (p < k) {\n d = (this[i] & (1 << p) - 1) << k - p;\n d |= this[--i] >> (p += this.DB - k);\n } else {\n d = this[i] >> (p -= k) & km;\n\n if (p <= 0) {\n p += this.DB;\n --i;\n }\n }\n\n if (d > 0) m = true;\n if (m) r += int2char(d);\n }\n }\n\n return m ? r : '0';\n} // (public) -this\n\n\nfunction bnNegate() {\n var r = nbi();\n BigInteger.ZERO.subTo(this, r);\n return r;\n} // (public) |this|\n\n\nfunction bnAbs() {\n return this.s < 0 ? this.negate() : this;\n} // (public) return + if this > a, - if this < a, 0 if equal\n\n\nfunction bnCompareTo(a) {\n var r = this.s - a.s;\n if (r != 0) return r;\n var i = this.t;\n r = i - a.t;\n if (r != 0) return this.s < 0 ? -r : r;\n\n while (--i >= 0) {\n if ((r = this[i] - a[i]) != 0) return r;\n }\n\n return 0;\n} // returns bit length of the integer x\n\n\nfunction nbits(x) {\n var r = 1,\n t;\n\n if ((t = x >>> 16) != 0) {\n x = t;\n r += 16;\n }\n\n if ((t = x >> 8) != 0) {\n x = t;\n r += 8;\n }\n\n if ((t = x >> 4) != 0) {\n x = t;\n r += 4;\n }\n\n if ((t = x >> 2) != 0) {\n x = t;\n r += 2;\n }\n\n if ((t = x >> 1) != 0) {\n x = t;\n r += 1;\n }\n\n return r;\n} // (public) return the number of bits in \"this\"\n\n\nfunction bnBitLength() {\n if (this.t <= 0) return 0;\n return this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ this.s & this.DM);\n} // (protected) r = this << n*DB\n\n\nfunction bnpDLShiftTo(n, r) {\n var i;\n\n for (i = this.t - 1; i >= 0; --i) {\n r[i + n] = this[i];\n }\n\n for (i = n - 1; i >= 0; --i) {\n r[i] = 0;\n }\n\n r.t = this.t + n;\n r.s = this.s;\n} // (protected) r = this >> n*DB\n\n\nfunction bnpDRShiftTo(n, r) {\n for (var i = n; i < this.t; ++i) {\n r[i - n] = this[i];\n }\n\n r.t = Math.max(this.t - n, 0);\n r.s = this.s;\n} // (protected) r = this << n\n\n\nfunction bnpLShiftTo(n, r) {\n var bs = n % this.DB;\n var cbs = this.DB - bs;\n var bm = (1 << cbs) - 1;\n var ds = Math.floor(n / this.DB),\n c = this.s << bs & this.DM,\n i;\n\n for (i = this.t - 1; i >= 0; --i) {\n r[i + ds + 1] = this[i] >> cbs | c;\n c = (this[i] & bm) << bs;\n }\n\n for (i = ds - 1; i >= 0; --i) {\n r[i] = 0;\n }\n\n r[ds] = c;\n r.t = this.t + ds + 1;\n r.s = this.s;\n r.clamp();\n} // (protected) r = this >> n\n\n\nfunction bnpRShiftTo(n, r) {\n r.s = this.s;\n var ds = Math.floor(n / this.DB);\n\n if (ds >= this.t) {\n r.t = 0;\n return;\n }\n\n var bs = n % this.DB;\n var cbs = this.DB - bs;\n var bm = (1 << bs) - 1;\n r[0] = this[ds] >> bs;\n\n for (var i = ds + 1; i < this.t; ++i) {\n r[i - ds - 1] |= (this[i] & bm) << cbs;\n r[i - ds] = this[i] >> bs;\n }\n\n if (bs > 0) r[this.t - ds - 1] |= (this.s & bm) << cbs;\n r.t = this.t - ds;\n r.clamp();\n} // (protected) r = this - a\n\n\nfunction bnpSubTo(a, r) {\n var i = 0,\n c = 0,\n m = Math.min(a.t, this.t);\n\n while (i < m) {\n c += this[i] - a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n\n if (a.t < this.t) {\n c -= a.s;\n\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n\n c += this.s;\n } else {\n c += this.s;\n\n while (i < a.t) {\n c -= a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n\n c -= a.s;\n }\n\n r.s = c < 0 ? -1 : 0;\n if (c < -1) r[i++] = this.DV + c;else if (c > 0) r[i++] = c;\n r.t = i;\n r.clamp();\n} // (protected) r = this * a, r != this,a (HAC 14.12)\n// \"this\" should be the larger one if appropriate.\n\n\nfunction bnpMultiplyTo(a, r) {\n var x = this.abs(),\n y = a.abs();\n var i = x.t;\n r.t = i + y.t;\n\n while (--i >= 0) {\n r[i] = 0;\n }\n\n for (i = 0; i < y.t; ++i) {\n r[i + x.t] = x.am(0, y[i], r, i, 0, x.t);\n }\n\n r.s = 0;\n r.clamp();\n if (this.s != a.s) BigInteger.ZERO.subTo(r, r);\n} // (protected) r = this^2, r != this (HAC 14.16)\n\n\nfunction bnpSquareTo(r) {\n var x = this.abs();\n var i = r.t = 2 * x.t;\n\n while (--i >= 0) {\n r[i] = 0;\n }\n\n for (i = 0; i < x.t - 1; ++i) {\n var c = x.am(i, x[i], r, 2 * i, 0, 1);\n\n if ((r[i + x.t] += x.am(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1)) >= x.DV) {\n r[i + x.t] -= x.DV;\n r[i + x.t + 1] = 1;\n }\n }\n\n if (r.t > 0) r[r.t - 1] += x.am(i, x[i], r, 2 * i, 0, 1);\n r.s = 0;\n r.clamp();\n} // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)\n// r != q, this != m. q or r may be null.\n\n\nfunction bnpDivRemTo(m, q, r) {\n var pm = m.abs();\n if (pm.t <= 0) return;\n var pt = this.abs();\n\n if (pt.t < pm.t) {\n if (q != null) q.fromInt(0);\n if (r != null) this.copyTo(r);\n return;\n }\n\n if (r == null) r = nbi();\n var y = nbi(),\n ts = this.s,\n ms = m.s;\n var nsh = this.DB - nbits(pm[pm.t - 1]); // normalize modulus\n\n if (nsh > 0) {\n pm.lShiftTo(nsh, y);\n pt.lShiftTo(nsh, r);\n } else {\n pm.copyTo(y);\n pt.copyTo(r);\n }\n\n var ys = y.t;\n var y0 = y[ys - 1];\n if (y0 == 0) return;\n var yt = y0 * (1 << this.F1) + (ys > 1 ? y[ys - 2] >> this.F2 : 0);\n var d1 = this.FV / yt,\n d2 = (1 << this.F1) / yt,\n e = 1 << this.F2;\n var i = r.t,\n j = i - ys,\n t = q == null ? nbi() : q;\n y.dlShiftTo(j, t);\n\n if (r.compareTo(t) >= 0) {\n r[r.t++] = 1;\n r.subTo(t, r);\n }\n\n BigInteger.ONE.dlShiftTo(ys, t);\n t.subTo(y, y); // \"negative\" y so we can replace sub with am later\n\n while (y.t < ys) {\n y[y.t++] = 0;\n }\n\n while (--j >= 0) {\n // Estimate quotient digit\n var qd = r[--i] == y0 ? this.DM : Math.floor(r[i] * d1 + (r[i - 1] + e) * d2);\n\n if ((r[i] += y.am(0, qd, r, j, 0, ys)) < qd) {\n // Try it out\n y.dlShiftTo(j, t);\n r.subTo(t, r);\n\n while (r[i] < --qd) {\n r.subTo(t, r);\n }\n }\n }\n\n if (q != null) {\n r.drShiftTo(ys, q);\n if (ts != ms) BigInteger.ZERO.subTo(q, q);\n }\n\n r.t = ys;\n r.clamp();\n if (nsh > 0) r.rShiftTo(nsh, r); // Denormalize remainder\n\n if (ts < 0) BigInteger.ZERO.subTo(r, r);\n} // (public) this mod a\n\n\nfunction bnMod(a) {\n var r = nbi();\n this.abs().divRemTo(a, null, r);\n if (this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r, r);\n return r;\n} // (protected) return \"-1/this % 2^DB\"; useful for Mont. reduction\n// justification:\n// xy == 1 (mod m)\n// xy = 1+km\n// xy(2-xy) = (1+km)(1-km)\n// x[y(2-xy)] = 1-k^2m^2\n// x[y(2-xy)] == 1 (mod m^2)\n// if y is 1/x mod m, then y(2-xy) is 1/x mod m^2\n// should reduce x and y(2-xy) by m^2 at each step to keep size bounded.\n// JS multiply \"overflows\" differently from C/C++, so care is needed here.\n\n\nfunction bnpInvDigit() {\n if (this.t < 1) return 0;\n var x = this[0];\n if ((x & 1) == 0) return 0;\n var y = x & 3; // y == 1/x mod 2^2\n\n y = y * (2 - (x & 0xf) * y) & 0xf; // y == 1/x mod 2^4\n\n y = y * (2 - (x & 0xff) * y) & 0xff; // y == 1/x mod 2^8\n\n y = y * (2 - ((x & 0xffff) * y & 0xffff)) & 0xffff; // y == 1/x mod 2^16\n // last step - calculate inverse mod DV directly;\n // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints\n\n y = y * (2 - x * y % this.DV) % this.DV; // y == 1/x mod 2^dbits\n // we really want the negative inverse, and -DV < y < DV\n\n return y > 0 ? this.DV - y : -y;\n}\n\nfunction bnEquals(a) {\n return this.compareTo(a) == 0;\n} // (protected) r = this + a\n\n\nfunction bnpAddTo(a, r) {\n var i = 0,\n c = 0,\n m = Math.min(a.t, this.t);\n\n while (i < m) {\n c += this[i] + a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n\n if (a.t < this.t) {\n c += a.s;\n\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n\n c += this.s;\n } else {\n c += this.s;\n\n while (i < a.t) {\n c += a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n\n c += a.s;\n }\n\n r.s = c < 0 ? -1 : 0;\n if (c > 0) r[i++] = c;else if (c < -1) r[i++] = this.DV + c;\n r.t = i;\n r.clamp();\n} // (public) this + a\n\n\nfunction bnAdd(a) {\n var r = nbi();\n this.addTo(a, r);\n return r;\n} // (public) this - a\n\n\nfunction bnSubtract(a) {\n var r = nbi();\n this.subTo(a, r);\n return r;\n} // (public) this * a\n\n\nfunction bnMultiply(a) {\n var r = nbi();\n this.multiplyTo(a, r);\n return r;\n} // (public) this / a\n\n\nfunction bnDivide(a) {\n var r = nbi();\n this.divRemTo(a, r, null);\n return r;\n} // Montgomery reduction\n\n\nfunction Montgomery(m) {\n this.m = m;\n this.mp = m.invDigit();\n this.mpl = this.mp & 0x7fff;\n this.mph = this.mp >> 15;\n this.um = (1 << m.DB - 15) - 1;\n this.mt2 = 2 * m.t;\n} // xR mod m\n\n\nfunction montConvert(x) {\n var r = nbi();\n x.abs().dlShiftTo(this.m.t, r);\n r.divRemTo(this.m, null, r);\n if (x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r, r);\n return r;\n} // x/R mod m\n\n\nfunction montRevert(x) {\n var r = nbi();\n x.copyTo(r);\n this.reduce(r);\n return r;\n} // x = x/R mod m (HAC 14.32)\n\n\nfunction montReduce(x) {\n while (x.t <= this.mt2) {\n // pad x so am has enough room later\n x[x.t++] = 0;\n }\n\n for (var i = 0; i < this.m.t; ++i) {\n // faster way of calculating u0 = x[i]*mp mod DV\n var j = x[i] & 0x7fff;\n var u0 = j * this.mpl + ((j * this.mph + (x[i] >> 15) * this.mpl & this.um) << 15) & x.DM; // use am to combine the multiply-shift-add into one call\n\n j = i + this.m.t;\n x[j] += this.m.am(0, u0, x, i, 0, this.m.t); // propagate carry\n\n while (x[j] >= x.DV) {\n x[j] -= x.DV;\n x[++j]++;\n }\n }\n\n x.clamp();\n x.drShiftTo(this.m.t, x);\n if (x.compareTo(this.m) >= 0) x.subTo(this.m, x);\n} // r = \"x^2/R mod m\"; x != r\n\n\nfunction montSqrTo(x, r) {\n x.squareTo(r);\n this.reduce(r);\n} // r = \"xy/R mod m\"; x,y != r\n\n\nfunction montMulTo(x, y, r) {\n x.multiplyTo(y, r);\n this.reduce(r);\n}\n\nMontgomery.prototype.convert = montConvert;\nMontgomery.prototype.revert = montRevert;\nMontgomery.prototype.reduce = montReduce;\nMontgomery.prototype.mulTo = montMulTo;\nMontgomery.prototype.sqrTo = montSqrTo; // (public) this^e % m (HAC 14.85)\n\nfunction bnModPow(e, m, callback) {\n var i = e.bitLength(),\n k,\n r = nbv(1),\n z = new Montgomery(m);\n if (i <= 0) return r;else if (i < 18) k = 1;else if (i < 48) k = 3;else if (i < 144) k = 4;else if (i < 768) k = 5;else k = 6; // precomputation\n\n var g = new Array(),\n n = 3,\n k1 = k - 1,\n km = (1 << k) - 1;\n g[1] = z.convert(this);\n\n if (k > 1) {\n var g2 = nbi();\n z.sqrTo(g[1], g2);\n\n while (n <= km) {\n g[n] = nbi();\n z.mulTo(g2, g[n - 2], g[n]);\n n += 2;\n }\n }\n\n var j = e.t - 1,\n w,\n is1 = true,\n r2 = nbi(),\n t;\n i = nbits(e[j]) - 1;\n\n while (j >= 0) {\n if (i >= k1) w = e[j] >> i - k1 & km;else {\n w = (e[j] & (1 << i + 1) - 1) << k1 - i;\n if (j > 0) w |= e[j - 1] >> this.DB + i - k1;\n }\n n = k;\n\n while ((w & 1) == 0) {\n w >>= 1;\n --n;\n }\n\n if ((i -= n) < 0) {\n i += this.DB;\n --j;\n }\n\n if (is1) {\n // ret == 1, don't bother squaring or multiplying it\n g[w].copyTo(r);\n is1 = false;\n } else {\n while (n > 1) {\n z.sqrTo(r, r2);\n z.sqrTo(r2, r);\n n -= 2;\n }\n\n if (n > 0) z.sqrTo(r, r2);else {\n t = r;\n r = r2;\n r2 = t;\n }\n z.mulTo(r2, g[w], r);\n }\n\n while (j >= 0 && (e[j] & 1 << i) == 0) {\n z.sqrTo(r, r2);\n t = r;\n r = r2;\n r2 = t;\n\n if (--i < 0) {\n i = this.DB - 1;\n --j;\n }\n }\n }\n\n var result = z.revert(r);\n callback(null, result);\n return result;\n} // protected\n\n\nBigInteger.prototype.copyTo = bnpCopyTo;\nBigInteger.prototype.fromInt = bnpFromInt;\nBigInteger.prototype.fromString = bnpFromString;\nBigInteger.prototype.clamp = bnpClamp;\nBigInteger.prototype.dlShiftTo = bnpDLShiftTo;\nBigInteger.prototype.drShiftTo = bnpDRShiftTo;\nBigInteger.prototype.lShiftTo = bnpLShiftTo;\nBigInteger.prototype.rShiftTo = bnpRShiftTo;\nBigInteger.prototype.subTo = bnpSubTo;\nBigInteger.prototype.multiplyTo = bnpMultiplyTo;\nBigInteger.prototype.squareTo = bnpSquareTo;\nBigInteger.prototype.divRemTo = bnpDivRemTo;\nBigInteger.prototype.invDigit = bnpInvDigit;\nBigInteger.prototype.addTo = bnpAddTo; // public\n\nBigInteger.prototype.toString = bnToString;\nBigInteger.prototype.negate = bnNegate;\nBigInteger.prototype.abs = bnAbs;\nBigInteger.prototype.compareTo = bnCompareTo;\nBigInteger.prototype.bitLength = bnBitLength;\nBigInteger.prototype.mod = bnMod;\nBigInteger.prototype.equals = bnEquals;\nBigInteger.prototype.add = bnAdd;\nBigInteger.prototype.subtract = bnSubtract;\nBigInteger.prototype.multiply = bnMultiply;\nBigInteger.prototype.divide = bnDivide;\nBigInteger.prototype.modPow = bnModPow; // \"constants\"\n\nBigInteger.ZERO = nbv(0);\nBigInteger.ONE = nbv(1);","function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport 'isomorphic-unfetch';\nimport UserAgent from './UserAgent';\n\nvar CognitoError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(CognitoError, _Error);\n\n function CognitoError(message, code, name, statusCode) {\n var _this;\n\n _this = _Error.call(this, message) || this;\n _this.code = code;\n _this.name = name;\n _this.statusCode = statusCode;\n return _this;\n }\n\n return CognitoError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n/** @class */\n\n\nvar Client = /*#__PURE__*/function () {\n /**\n * Constructs a new AWS Cognito Identity Provider client object\n * @param {string} region AWS region\n * @param {string} endpoint endpoint\n * @param {object} fetchOptions options for fetch API (only credentials is supported)\n */\n function Client(region, endpoint, fetchOptions) {\n this.endpoint = endpoint || \"https://cognito-idp.\" + region + \".amazonaws.com/\";\n\n var _ref = fetchOptions || {},\n credentials = _ref.credentials;\n\n this.fetchOptions = credentials ? {\n credentials: credentials\n } : {};\n }\n /**\n * Makes an unauthenticated request on AWS Cognito Identity Provider API\n * using fetch\n * @param {string} operation API operation\n * @param {object} params Input parameters\n * @returns Promise<object>\n */\n\n\n var _proto = Client.prototype;\n\n _proto.promisifyRequest = function promisifyRequest(operation, params) {\n var _this2 = this;\n\n return new Promise(function (resolve, reject) {\n _this2.request(operation, params, function (err, data) {\n if (err) {\n reject(new CognitoError(err.message, err.code, err.name, err.statusCode));\n } else {\n resolve(data);\n }\n });\n });\n };\n\n _proto.requestWithRetry = function requestWithRetry(operation, params, callback) {\n var _this3 = this;\n\n var MAX_DELAY_IN_MILLIS = 5 * 1000;\n jitteredExponentialRetry(function (p) {\n return new Promise(function (res, rej) {\n _this3.request(operation, p, function (error, result) {\n if (error) {\n rej(error);\n } else {\n res(result);\n }\n });\n });\n }, [params], MAX_DELAY_IN_MILLIS).then(function (result) {\n return callback(null, result);\n })[\"catch\"](function (error) {\n return callback(error);\n });\n }\n /**\n * Makes an unauthenticated request on AWS Cognito Identity Provider API\n * using fetch\n * @param {string} operation API operation\n * @param {object} params Input parameters\n * @param {function} callback Callback called when a response is returned\n * @returns {void}\n */\n ;\n\n _proto.request = function request(operation, params, callback) {\n var headers = {\n 'Content-Type': 'application/x-amz-json-1.1',\n 'X-Amz-Target': \"AWSCognitoIdentityProviderService.\" + operation,\n 'X-Amz-User-Agent': UserAgent.prototype.userAgent\n };\n var options = Object.assign({}, this.fetchOptions, {\n headers: headers,\n method: 'POST',\n mode: 'cors',\n cache: 'no-cache',\n body: JSON.stringify(params)\n });\n var response;\n var responseJsonData;\n fetch(this.endpoint, options).then(function (resp) {\n response = resp;\n return resp;\n }, function (err) {\n // If error happens here, the request failed\n // if it is TypeError throw network error\n if (err instanceof TypeError) {\n throw new Error('Network error');\n }\n\n throw err;\n }).then(function (resp) {\n return resp.json()[\"catch\"](function () {\n return {};\n });\n }).then(function (data) {\n // return parsed body stream\n if (response.ok) return callback(null, data);\n responseJsonData = data; // Taken from aws-sdk-js/lib/protocol/json.js\n // eslint-disable-next-line no-underscore-dangle\n\n var code = (data.__type || data.code).split('#').pop();\n var error = new Error(data.message || data.Message || null);\n error.name = code;\n error.code = code;\n return callback(error);\n })[\"catch\"](function (err) {\n // first check if we have a service error\n if (response && response.headers && response.headers.get('x-amzn-errortype')) {\n try {\n var code = response.headers.get('x-amzn-errortype').split(':')[0];\n var error = new Error(response.status ? response.status.toString() : null);\n error.code = code;\n error.name = code;\n error.statusCode = response.status;\n return callback(error);\n } catch (ex) {\n return callback(err);\n } // otherwise check if error is Network error\n\n } else if (err instanceof Error && err.message === 'Network error') {\n err.code = 'NetworkError';\n }\n\n return callback(err);\n });\n };\n\n return Client;\n}();\n\nexport { Client as default };\nvar logger = {\n debug: function debug() {// Intentionally blank. This package doesn't have logging\n }\n};\n/**\n * For now, all errors are retryable.\n */\n\nvar NonRetryableError = /*#__PURE__*/function (_Error2) {\n _inheritsLoose(NonRetryableError, _Error2);\n\n function NonRetryableError(message) {\n var _this4;\n\n _this4 = _Error2.call(this, message) || this;\n _this4.nonRetryable = true;\n return _this4;\n }\n\n return NonRetryableError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nvar isNonRetryableError = function isNonRetryableError(obj) {\n var key = 'nonRetryable';\n return obj && obj[key];\n};\n\nfunction retry(functionToRetry, args, delayFn, attempt) {\n if (attempt === void 0) {\n attempt = 1;\n }\n\n if (typeof functionToRetry !== 'function') {\n throw Error('functionToRetry must be a function');\n }\n\n logger.debug(functionToRetry.name + \" attempt #\" + attempt + \" with args: \" + JSON.stringify(args));\n return functionToRetry.apply(void 0, args)[\"catch\"](function (err) {\n logger.debug(\"error on \" + functionToRetry.name, err);\n\n if (isNonRetryableError(err)) {\n logger.debug(functionToRetry.name + \" non retryable error\", err);\n throw err;\n }\n\n var retryIn = delayFn(attempt, args, err);\n logger.debug(functionToRetry.name + \" retrying in \" + retryIn + \" ms\");\n\n if (retryIn !== false) {\n return new Promise(function (res) {\n return setTimeout(res, retryIn);\n }).then(function () {\n return retry(functionToRetry, args, delayFn, attempt + 1);\n });\n } else {\n throw err;\n }\n });\n}\n\nfunction jitteredBackoff(maxDelayMs) {\n var BASE_TIME_MS = 100;\n var JITTER_FACTOR = 100;\n return function (attempt) {\n var delay = Math.pow(2, attempt) * BASE_TIME_MS + JITTER_FACTOR * Math.random();\n return delay > maxDelayMs ? false : delay;\n };\n}\n\nvar MAX_DELAY_MS = 5 * 60 * 1000;\n\nfunction jitteredExponentialRetry(functionToRetry, args, maxDelayMs) {\n if (maxDelayMs === void 0) {\n maxDelayMs = MAX_DELAY_MS;\n }\n\n return retry(functionToRetry, args, jitteredBackoff(maxDelayMs));\n}\n\n;","function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport CognitoJwtToken from './CognitoJwtToken';\n/** @class */\n\nvar CognitoAccessToken = /*#__PURE__*/function (_CognitoJwtToken) {\n _inheritsLoose(CognitoAccessToken, _CognitoJwtToken);\n\n /**\n * Constructs a new CognitoAccessToken object\n * @param {string=} AccessToken The JWT access token.\n */\n function CognitoAccessToken(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n AccessToken = _ref.AccessToken;\n\n return _CognitoJwtToken.call(this, AccessToken || '') || this;\n }\n\n return CognitoAccessToken;\n}(CognitoJwtToken);\n\nexport { CognitoAccessToken as default };","function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport CognitoJwtToken from './CognitoJwtToken';\n/** @class */\n\nvar CognitoIdToken = /*#__PURE__*/function (_CognitoJwtToken) {\n _inheritsLoose(CognitoIdToken, _CognitoJwtToken);\n\n /**\n * Constructs a new CognitoIdToken object\n * @param {string=} IdToken The JWT Id token\n */\n function CognitoIdToken(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n IdToken = _ref.IdToken;\n\n return _CognitoJwtToken.call(this, IdToken || '') || this;\n }\n\n return CognitoIdToken;\n}(CognitoJwtToken);\n\nexport { CognitoIdToken as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { Buffer } from 'buffer';\n/** @class */\n\nvar CognitoJwtToken = /*#__PURE__*/function () {\n /**\n * Constructs a new CognitoJwtToken object\n * @param {string=} token The JWT token.\n */\n function CognitoJwtToken(token) {\n // Assign object\n this.jwtToken = token || '';\n this.payload = this.decodePayload();\n }\n /**\n * @returns {string} the record's token.\n */\n\n\n var _proto = CognitoJwtToken.prototype;\n\n _proto.getJwtToken = function getJwtToken() {\n return this.jwtToken;\n }\n /**\n * @returns {int} the token's expiration (exp member).\n */\n ;\n\n _proto.getExpiration = function getExpiration() {\n return this.payload.exp;\n }\n /**\n * @returns {int} the token's \"issued at\" (iat member).\n */\n ;\n\n _proto.getIssuedAt = function getIssuedAt() {\n return this.payload.iat;\n }\n /**\n * @returns {object} the token's payload.\n */\n ;\n\n _proto.decodePayload = function decodePayload() {\n var payload = this.jwtToken.split('.')[1];\n\n try {\n return JSON.parse(Buffer.from(payload, 'base64').toString('utf8'));\n } catch (err) {\n return {};\n }\n };\n\n return CognitoJwtToken;\n}();\n\nexport { CognitoJwtToken as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/** @class */\nvar CognitoRefreshToken = /*#__PURE__*/function () {\n /**\n * Constructs a new CognitoRefreshToken object\n * @param {string=} RefreshToken The JWT refresh token.\n */\n function CognitoRefreshToken(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n RefreshToken = _ref.RefreshToken;\n\n // Assign object\n this.token = RefreshToken || '';\n }\n /**\n * @returns {string} the record's token.\n */\n\n\n var _proto = CognitoRefreshToken.prototype;\n\n _proto.getToken = function getToken() {\n return this.token;\n };\n\n return CognitoRefreshToken;\n}();\n\nexport { CognitoRefreshToken as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { Buffer } from 'buffer';\nimport CryptoJS from 'crypto-js/core';\nimport TypedArrays from 'crypto-js/lib-typedarrays'; // necessary for crypto js\n\nimport Base64 from 'crypto-js/enc-base64';\nimport HmacSHA256 from 'crypto-js/hmac-sha256';\nimport BigInteger from './BigInteger';\nimport AuthenticationHelper from './AuthenticationHelper';\nimport CognitoAccessToken from './CognitoAccessToken';\nimport CognitoIdToken from './CognitoIdToken';\nimport CognitoRefreshToken from './CognitoRefreshToken';\nimport CognitoUserSession from './CognitoUserSession';\nimport DateHelper from './DateHelper';\nimport CognitoUserAttribute from './CognitoUserAttribute';\nimport StorageHelper from './StorageHelper';\n/**\n * @callback nodeCallback\n * @template T result\n * @param {*} err The operation failure reason, or null.\n * @param {T} result The operation result.\n */\n\n/**\n * @callback onFailure\n * @param {*} err Failure reason.\n */\n\n/**\n * @callback onSuccess\n * @template T result\n * @param {T} result The operation result.\n */\n\n/**\n * @callback mfaRequired\n * @param {*} details MFA challenge details.\n */\n\n/**\n * @callback customChallenge\n * @param {*} details Custom challenge details.\n */\n\n/**\n * @callback inputVerificationCode\n * @param {*} data Server response.\n */\n\n/**\n * @callback authSuccess\n * @param {CognitoUserSession} session The new session.\n * @param {bool=} userConfirmationNecessary User must be confirmed.\n */\n\nvar isBrowser = typeof navigator !== 'undefined';\nvar userAgent = isBrowser ? navigator.userAgent : 'nodejs';\n/** @class */\n\nvar CognitoUser = /*#__PURE__*/function () {\n /**\n * Constructs a new CognitoUser object\n * @param {object} data Creation options\n * @param {string} data.Username The user's username.\n * @param {CognitoUserPool} data.Pool Pool containing the user.\n * @param {object} data.Storage Optional storage object.\n */\n function CognitoUser(data) {\n if (data == null || data.Username == null || data.Pool == null) {\n throw new Error('Username and Pool information are required.');\n }\n\n this.username = data.Username || '';\n this.pool = data.Pool;\n this.Session = null;\n this.client = data.Pool.client;\n this.signInUserSession = null;\n this.authenticationFlowType = 'USER_SRP_AUTH';\n this.storage = data.Storage || new StorageHelper().getStorage();\n this.keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId();\n this.userDataKey = this.keyPrefix + \".\" + this.username + \".userData\";\n }\n /**\n * Sets the session for this user\n * @param {CognitoUserSession} signInUserSession the session\n * @returns {void}\n */\n\n\n var _proto = CognitoUser.prototype;\n\n _proto.setSignInUserSession = function setSignInUserSession(signInUserSession) {\n this.clearCachedUserData();\n this.signInUserSession = signInUserSession;\n this.cacheTokens();\n }\n /**\n * @returns {CognitoUserSession} the current session for this user\n */\n ;\n\n _proto.getSignInUserSession = function getSignInUserSession() {\n return this.signInUserSession;\n }\n /**\n * @returns {string} the user's username\n */\n ;\n\n _proto.getUsername = function getUsername() {\n return this.username;\n }\n /**\n * @returns {String} the authentication flow type\n */\n ;\n\n _proto.getAuthenticationFlowType = function getAuthenticationFlowType() {\n return this.authenticationFlowType;\n }\n /**\n * sets authentication flow type\n * @param {string} authenticationFlowType New value.\n * @returns {void}\n */\n ;\n\n _proto.setAuthenticationFlowType = function setAuthenticationFlowType(authenticationFlowType) {\n this.authenticationFlowType = authenticationFlowType;\n }\n /**\n * This is used for authenticating the user through the custom authentication flow.\n * @param {AuthenticationDetails} authDetails Contains the authentication data\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {customChallenge} callback.customChallenge Custom challenge\n * response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n */\n ;\n\n _proto.initiateAuth = function initiateAuth(authDetails, callback) {\n var _this = this;\n\n var authParameters = authDetails.getAuthParameters();\n authParameters.USERNAME = this.username;\n var clientMetaData = Object.keys(authDetails.getValidationData()).length !== 0 ? authDetails.getValidationData() : authDetails.getClientMetadata();\n var jsonReq = {\n AuthFlow: 'CUSTOM_AUTH',\n ClientId: this.pool.getClientId(),\n AuthParameters: authParameters,\n ClientMetadata: clientMetaData\n };\n\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n\n this.client.request('InitiateAuth', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n\n var challengeName = data.ChallengeName;\n var challengeParameters = data.ChallengeParameters;\n\n if (challengeName === 'CUSTOM_CHALLENGE') {\n _this.Session = data.Session;\n return callback.customChallenge(challengeParameters);\n }\n\n _this.signInUserSession = _this.getCognitoUserSession(data.AuthenticationResult);\n\n _this.cacheTokens();\n\n return callback.onSuccess(_this.signInUserSession);\n });\n }\n /**\n * This is used for authenticating the user.\n * stuff\n * @param {AuthenticationDetails} authDetails Contains the authentication data\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {newPasswordRequired} callback.newPasswordRequired new\n * password and any required attributes are required to continue\n * @param {mfaRequired} callback.mfaRequired MFA code\n * required to continue.\n * @param {customChallenge} callback.customChallenge Custom challenge\n * response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n */\n ;\n\n _proto.authenticateUser = function authenticateUser(authDetails, callback) {\n if (this.authenticationFlowType === 'USER_PASSWORD_AUTH') {\n return this.authenticateUserPlainUsernamePassword(authDetails, callback);\n } else if (this.authenticationFlowType === 'USER_SRP_AUTH' || this.authenticationFlowType === 'CUSTOM_AUTH') {\n return this.authenticateUserDefaultAuth(authDetails, callback);\n }\n\n return callback.onFailure(new Error('Authentication flow type is invalid.'));\n }\n /**\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n * It calls the AuthenticationHelper for SRP related\n * stuff\n * @param {AuthenticationDetails} authDetails Contains the authentication data\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {newPasswordRequired} callback.newPasswordRequired new\n * password and any required attributes are required to continue\n * @param {mfaRequired} callback.mfaRequired MFA code\n * required to continue.\n * @param {customChallenge} callback.customChallenge Custom challenge\n * response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n */\n ;\n\n _proto.authenticateUserDefaultAuth = function authenticateUserDefaultAuth(authDetails, callback) {\n var _this2 = this;\n\n var authenticationHelper = new AuthenticationHelper(this.pool.getUserPoolId().split('_')[1]);\n var dateHelper = new DateHelper();\n var serverBValue;\n var salt;\n var authParameters = {};\n\n if (this.deviceKey != null) {\n authParameters.DEVICE_KEY = this.deviceKey;\n }\n\n authParameters.USERNAME = this.username;\n authenticationHelper.getLargeAValue(function (errOnAValue, aValue) {\n // getLargeAValue callback start\n if (errOnAValue) {\n callback.onFailure(errOnAValue);\n }\n\n authParameters.SRP_A = aValue.toString(16);\n\n if (_this2.authenticationFlowType === 'CUSTOM_AUTH') {\n authParameters.CHALLENGE_NAME = 'SRP_A';\n }\n\n var clientMetaData = Object.keys(authDetails.getValidationData()).length !== 0 ? authDetails.getValidationData() : authDetails.getClientMetadata();\n var jsonReq = {\n AuthFlow: _this2.authenticationFlowType,\n ClientId: _this2.pool.getClientId(),\n AuthParameters: authParameters,\n ClientMetadata: clientMetaData\n };\n\n if (_this2.getUserContextData(_this2.username)) {\n jsonReq.UserContextData = _this2.getUserContextData(_this2.username);\n }\n\n _this2.client.request('InitiateAuth', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n\n var challengeParameters = data.ChallengeParameters;\n _this2.username = challengeParameters.USER_ID_FOR_SRP;\n _this2.userDataKey = _this2.keyPrefix + \".\" + _this2.username + \".userData\";\n serverBValue = new BigInteger(challengeParameters.SRP_B, 16);\n salt = new BigInteger(challengeParameters.SALT, 16);\n\n _this2.getCachedDeviceKeyAndPassword();\n\n authenticationHelper.getPasswordAuthenticationKey(_this2.username, authDetails.getPassword(), serverBValue, salt, function (errOnHkdf, hkdf) {\n // getPasswordAuthenticationKey callback start\n if (errOnHkdf) {\n callback.onFailure(errOnHkdf);\n }\n\n var dateNow = dateHelper.getNowString();\n var message = CryptoJS.lib.WordArray.create(Buffer.concat([Buffer.from(_this2.pool.getUserPoolId().split('_')[1], 'utf8'), Buffer.from(_this2.username, 'utf8'), Buffer.from(challengeParameters.SECRET_BLOCK, 'base64'), Buffer.from(dateNow, 'utf8')]));\n var key = CryptoJS.lib.WordArray.create(hkdf);\n var signatureString = Base64.stringify(HmacSHA256(message, key));\n var challengeResponses = {};\n challengeResponses.USERNAME = _this2.username;\n challengeResponses.PASSWORD_CLAIM_SECRET_BLOCK = challengeParameters.SECRET_BLOCK;\n challengeResponses.TIMESTAMP = dateNow;\n challengeResponses.PASSWORD_CLAIM_SIGNATURE = signatureString;\n\n if (_this2.deviceKey != null) {\n challengeResponses.DEVICE_KEY = _this2.deviceKey;\n }\n\n var respondToAuthChallenge = function respondToAuthChallenge(challenge, challengeCallback) {\n return _this2.client.request('RespondToAuthChallenge', challenge, function (errChallenge, dataChallenge) {\n if (errChallenge && errChallenge.code === 'ResourceNotFoundException' && errChallenge.message.toLowerCase().indexOf('device') !== -1) {\n challengeResponses.DEVICE_KEY = null;\n _this2.deviceKey = null;\n _this2.randomPassword = null;\n _this2.deviceGroupKey = null;\n\n _this2.clearCachedDeviceKeyAndPassword();\n\n return respondToAuthChallenge(challenge, challengeCallback);\n }\n\n return challengeCallback(errChallenge, dataChallenge);\n });\n };\n\n var jsonReqResp = {\n ChallengeName: 'PASSWORD_VERIFIER',\n ClientId: _this2.pool.getClientId(),\n ChallengeResponses: challengeResponses,\n Session: data.Session,\n ClientMetadata: clientMetaData\n };\n\n if (_this2.getUserContextData()) {\n jsonReqResp.UserContextData = _this2.getUserContextData();\n }\n\n respondToAuthChallenge(jsonReqResp, function (errAuthenticate, dataAuthenticate) {\n if (errAuthenticate) {\n return callback.onFailure(errAuthenticate);\n }\n\n return _this2.authenticateUserInternal(dataAuthenticate, authenticationHelper, callback);\n });\n return undefined; // getPasswordAuthenticationKey callback end\n });\n return undefined;\n }); // getLargeAValue callback end\n\n });\n }\n /**\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n * @param {AuthenticationDetails} authDetails Contains the authentication data.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {mfaRequired} callback.mfaRequired MFA code\n * required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n */\n ;\n\n _proto.authenticateUserPlainUsernamePassword = function authenticateUserPlainUsernamePassword(authDetails, callback) {\n var _this3 = this;\n\n var authParameters = {};\n authParameters.USERNAME = this.username;\n authParameters.PASSWORD = authDetails.getPassword();\n\n if (!authParameters.PASSWORD) {\n callback.onFailure(new Error('PASSWORD parameter is required'));\n return;\n }\n\n var authenticationHelper = new AuthenticationHelper(this.pool.getUserPoolId().split('_')[1]);\n this.getCachedDeviceKeyAndPassword();\n\n if (this.deviceKey != null) {\n authParameters.DEVICE_KEY = this.deviceKey;\n }\n\n var clientMetaData = Object.keys(authDetails.getValidationData()).length !== 0 ? authDetails.getValidationData() : authDetails.getClientMetadata();\n var jsonReq = {\n AuthFlow: 'USER_PASSWORD_AUTH',\n ClientId: this.pool.getClientId(),\n AuthParameters: authParameters,\n ClientMetadata: clientMetaData\n };\n\n if (this.getUserContextData(this.username)) {\n jsonReq.UserContextData = this.getUserContextData(this.username);\n } // USER_PASSWORD_AUTH happens in a single round-trip: client sends userName and password,\n // Cognito UserPools verifies password and returns tokens.\n\n\n this.client.request('InitiateAuth', jsonReq, function (err, authResult) {\n if (err) {\n return callback.onFailure(err);\n }\n\n return _this3.authenticateUserInternal(authResult, authenticationHelper, callback);\n });\n }\n /**\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n * @param {object} dataAuthenticate authentication data\n * @param {object} authenticationHelper helper created\n * @param {callback} callback passed on from caller\n * @returns {void}\n */\n ;\n\n _proto.authenticateUserInternal = function authenticateUserInternal(dataAuthenticate, authenticationHelper, callback) {\n var _this4 = this;\n\n var challengeName = dataAuthenticate.ChallengeName;\n var challengeParameters = dataAuthenticate.ChallengeParameters;\n\n if (challengeName === 'SMS_MFA') {\n this.Session = dataAuthenticate.Session;\n return callback.mfaRequired(challengeName, challengeParameters);\n }\n\n if (challengeName === 'SELECT_MFA_TYPE') {\n this.Session = dataAuthenticate.Session;\n return callback.selectMFAType(challengeName, challengeParameters);\n }\n\n if (challengeName === 'MFA_SETUP') {\n this.Session = dataAuthenticate.Session;\n return callback.mfaSetup(challengeName, challengeParameters);\n }\n\n if (challengeName === 'SOFTWARE_TOKEN_MFA') {\n this.Session = dataAuthenticate.Session;\n return callback.totpRequired(challengeName, challengeParameters);\n }\n\n if (challengeName === 'CUSTOM_CHALLENGE') {\n this.Session = dataAuthenticate.Session;\n return callback.customChallenge(challengeParameters);\n }\n\n if (challengeName === 'NEW_PASSWORD_REQUIRED') {\n this.Session = dataAuthenticate.Session;\n var userAttributes = null;\n var rawRequiredAttributes = null;\n var requiredAttributes = [];\n var userAttributesPrefix = authenticationHelper.getNewPasswordRequiredChallengeUserAttributePrefix();\n\n if (challengeParameters) {\n userAttributes = JSON.parse(dataAuthenticate.ChallengeParameters.userAttributes);\n rawRequiredAttributes = JSON.parse(dataAuthenticate.ChallengeParameters.requiredAttributes);\n }\n\n if (rawRequiredAttributes) {\n for (var i = 0; i < rawRequiredAttributes.length; i++) {\n requiredAttributes[i] = rawRequiredAttributes[i].substr(userAttributesPrefix.length);\n }\n }\n\n return callback.newPasswordRequired(userAttributes, requiredAttributes);\n }\n\n if (challengeName === 'DEVICE_SRP_AUTH') {\n this.Session = dataAuthenticate.Session;\n this.getDeviceResponse(callback);\n return undefined;\n }\n\n this.signInUserSession = this.getCognitoUserSession(dataAuthenticate.AuthenticationResult);\n this.challengeName = challengeName;\n this.cacheTokens();\n var newDeviceMetadata = dataAuthenticate.AuthenticationResult.NewDeviceMetadata;\n\n if (newDeviceMetadata == null) {\n return callback.onSuccess(this.signInUserSession);\n }\n\n authenticationHelper.generateHashDevice(dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey, dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey, function (errGenHash) {\n if (errGenHash) {\n return callback.onFailure(errGenHash);\n }\n\n var deviceSecretVerifierConfig = {\n Salt: Buffer.from(authenticationHelper.getSaltDevices(), 'hex').toString('base64'),\n PasswordVerifier: Buffer.from(authenticationHelper.getVerifierDevices(), 'hex').toString('base64')\n };\n _this4.verifierDevices = deviceSecretVerifierConfig.PasswordVerifier;\n _this4.deviceGroupKey = newDeviceMetadata.DeviceGroupKey;\n _this4.randomPassword = authenticationHelper.getRandomPassword();\n\n _this4.client.request('ConfirmDevice', {\n DeviceKey: newDeviceMetadata.DeviceKey,\n AccessToken: _this4.signInUserSession.getAccessToken().getJwtToken(),\n DeviceSecretVerifierConfig: deviceSecretVerifierConfig,\n DeviceName: userAgent\n }, function (errConfirm, dataConfirm) {\n if (errConfirm) {\n return callback.onFailure(errConfirm);\n }\n\n _this4.deviceKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey;\n\n _this4.cacheDeviceKeyAndPassword();\n\n if (dataConfirm.UserConfirmationNecessary === true) {\n return callback.onSuccess(_this4.signInUserSession, dataConfirm.UserConfirmationNecessary);\n }\n\n return callback.onSuccess(_this4.signInUserSession);\n });\n\n return undefined;\n });\n return undefined;\n }\n /**\n * This method is user to complete the NEW_PASSWORD_REQUIRED challenge.\n * Pass the new password with any new user attributes to be updated.\n * User attribute keys must be of format userAttributes.<attribute_name>.\n * @param {string} newPassword new password for this user\n * @param {object} requiredAttributeData map with values for all required attributes\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {mfaRequired} callback.mfaRequired MFA code required to continue.\n * @param {customChallenge} callback.customChallenge Custom challenge\n * response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */\n ;\n\n _proto.completeNewPasswordChallenge = function completeNewPasswordChallenge(newPassword, requiredAttributeData, callback, clientMetadata) {\n var _this5 = this;\n\n if (!newPassword) {\n return callback.onFailure(new Error('New password is required.'));\n }\n\n var authenticationHelper = new AuthenticationHelper(this.pool.getUserPoolId().split('_')[1]);\n var userAttributesPrefix = authenticationHelper.getNewPasswordRequiredChallengeUserAttributePrefix();\n var finalUserAttributes = {};\n\n if (requiredAttributeData) {\n Object.keys(requiredAttributeData).forEach(function (key) {\n finalUserAttributes[userAttributesPrefix + key] = requiredAttributeData[key];\n });\n }\n\n finalUserAttributes.NEW_PASSWORD = newPassword;\n finalUserAttributes.USERNAME = this.username;\n var jsonReq = {\n ChallengeName: 'NEW_PASSWORD_REQUIRED',\n ClientId: this.pool.getClientId(),\n ChallengeResponses: finalUserAttributes,\n Session: this.Session,\n ClientMetadata: clientMetadata\n };\n\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n\n this.client.request('RespondToAuthChallenge', jsonReq, function (errAuthenticate, dataAuthenticate) {\n if (errAuthenticate) {\n return callback.onFailure(errAuthenticate);\n }\n\n return _this5.authenticateUserInternal(dataAuthenticate, authenticationHelper, callback);\n });\n return undefined;\n }\n /**\n * This is used to get a session using device authentication. It is called at the end of user\n * authentication\n *\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n * @private\n */\n ;\n\n _proto.getDeviceResponse = function getDeviceResponse(callback, clientMetadata) {\n var _this6 = this;\n\n var authenticationHelper = new AuthenticationHelper(this.deviceGroupKey);\n var dateHelper = new DateHelper();\n var authParameters = {};\n authParameters.USERNAME = this.username;\n authParameters.DEVICE_KEY = this.deviceKey;\n authenticationHelper.getLargeAValue(function (errAValue, aValue) {\n // getLargeAValue callback start\n if (errAValue) {\n callback.onFailure(errAValue);\n }\n\n authParameters.SRP_A = aValue.toString(16);\n var jsonReq = {\n ChallengeName: 'DEVICE_SRP_AUTH',\n ClientId: _this6.pool.getClientId(),\n ChallengeResponses: authParameters,\n ClientMetadata: clientMetadata,\n Session: _this6.Session\n };\n\n if (_this6.getUserContextData()) {\n jsonReq.UserContextData = _this6.getUserContextData();\n }\n\n _this6.client.request('RespondToAuthChallenge', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n\n var challengeParameters = data.ChallengeParameters;\n var serverBValue = new BigInteger(challengeParameters.SRP_B, 16);\n var salt = new BigInteger(challengeParameters.SALT, 16);\n authenticationHelper.getPasswordAuthenticationKey(_this6.deviceKey, _this6.randomPassword, serverBValue, salt, function (errHkdf, hkdf) {\n // getPasswordAuthenticationKey callback start\n if (errHkdf) {\n return callback.onFailure(errHkdf);\n }\n\n var dateNow = dateHelper.getNowString();\n var message = CryptoJS.lib.WordArray.create(Buffer.concat([Buffer.from(_this6.deviceGroupKey, 'utf8'), Buffer.from(_this6.deviceKey, 'utf8'), Buffer.from(challengeParameters.SECRET_BLOCK, 'base64'), Buffer.from(dateNow, 'utf8')]));\n var key = CryptoJS.lib.WordArray.create(hkdf);\n var signatureString = Base64.stringify(HmacSHA256(message, key));\n var challengeResponses = {};\n challengeResponses.USERNAME = _this6.username;\n challengeResponses.PASSWORD_CLAIM_SECRET_BLOCK = challengeParameters.SECRET_BLOCK;\n challengeResponses.TIMESTAMP = dateNow;\n challengeResponses.PASSWORD_CLAIM_SIGNATURE = signatureString;\n challengeResponses.DEVICE_KEY = _this6.deviceKey;\n var jsonReqResp = {\n ChallengeName: 'DEVICE_PASSWORD_VERIFIER',\n ClientId: _this6.pool.getClientId(),\n ChallengeResponses: challengeResponses,\n Session: data.Session\n };\n\n if (_this6.getUserContextData()) {\n jsonReqResp.UserContextData = _this6.getUserContextData();\n }\n\n _this6.client.request('RespondToAuthChallenge', jsonReqResp, function (errAuthenticate, dataAuthenticate) {\n if (errAuthenticate) {\n return callback.onFailure(errAuthenticate);\n }\n\n _this6.signInUserSession = _this6.getCognitoUserSession(dataAuthenticate.AuthenticationResult);\n\n _this6.cacheTokens();\n\n return callback.onSuccess(_this6.signInUserSession);\n });\n\n return undefined; // getPasswordAuthenticationKey callback end\n });\n return undefined;\n }); // getLargeAValue callback end\n\n });\n }\n /**\n * This is used for a certain user to confirm the registration by using a confirmation code\n * @param {string} confirmationCode Code entered by user.\n * @param {bool} forceAliasCreation Allow migrating from an existing email / phone number.\n * @param {nodeCallback<string>} callback Called on success or error.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */\n ;\n\n _proto.confirmRegistration = function confirmRegistration(confirmationCode, forceAliasCreation, callback, clientMetadata) {\n var jsonReq = {\n ClientId: this.pool.getClientId(),\n ConfirmationCode: confirmationCode,\n Username: this.username,\n ForceAliasCreation: forceAliasCreation,\n ClientMetadata: clientMetadata\n };\n\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n\n this.client.request('ConfirmSignUp', jsonReq, function (err) {\n if (err) {\n return callback(err, null);\n }\n\n return callback(null, 'SUCCESS');\n });\n }\n /**\n * This is used by the user once he has the responses to a custom challenge\n * @param {string} answerChallenge The custom challenge answer.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {customChallenge} callback.customChallenge\n * Custom challenge response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */\n ;\n\n _proto.sendCustomChallengeAnswer = function sendCustomChallengeAnswer(answerChallenge, callback, clientMetadata) {\n var _this7 = this;\n\n var challengeResponses = {};\n challengeResponses.USERNAME = this.username;\n challengeResponses.ANSWER = answerChallenge;\n var authenticationHelper = new AuthenticationHelper(this.pool.getUserPoolId().split('_')[1]);\n this.getCachedDeviceKeyAndPassword();\n\n if (this.deviceKey != null) {\n challengeResponses.DEVICE_KEY = this.deviceKey;\n }\n\n var jsonReq = {\n ChallengeName: 'CUSTOM_CHALLENGE',\n ChallengeResponses: challengeResponses,\n ClientId: this.pool.getClientId(),\n Session: this.Session,\n ClientMetadata: clientMetadata\n };\n\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n\n this.client.request('RespondToAuthChallenge', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n\n return _this7.authenticateUserInternal(data, authenticationHelper, callback);\n });\n }\n /**\n * This is used by the user once he has an MFA code\n * @param {string} confirmationCode The MFA code entered by the user.\n * @param {object} callback Result callback map.\n * @param {string} mfaType The mfa we are replying to.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */\n ;\n\n _proto.sendMFACode = function sendMFACode(confirmationCode, callback, mfaType, clientMetadata) {\n var _this8 = this;\n\n var challengeResponses = {};\n challengeResponses.USERNAME = this.username;\n challengeResponses.SMS_MFA_CODE = confirmationCode;\n var mfaTypeSelection = mfaType || 'SMS_MFA';\n\n if (mfaTypeSelection === 'SOFTWARE_TOKEN_MFA') {\n challengeResponses.SOFTWARE_TOKEN_MFA_CODE = confirmationCode;\n }\n\n if (this.deviceKey != null) {\n challengeResponses.DEVICE_KEY = this.deviceKey;\n }\n\n var jsonReq = {\n ChallengeName: mfaTypeSelection,\n ChallengeResponses: challengeResponses,\n ClientId: this.pool.getClientId(),\n Session: this.Session,\n ClientMetadata: clientMetadata\n };\n\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n\n this.client.request('RespondToAuthChallenge', jsonReq, function (err, dataAuthenticate) {\n if (err) {\n return callback.onFailure(err);\n }\n\n var challengeName = dataAuthenticate.ChallengeName;\n\n if (challengeName === 'DEVICE_SRP_AUTH') {\n _this8.getDeviceResponse(callback);\n\n return undefined;\n }\n\n _this8.signInUserSession = _this8.getCognitoUserSession(dataAuthenticate.AuthenticationResult);\n\n _this8.cacheTokens();\n\n if (dataAuthenticate.AuthenticationResult.NewDeviceMetadata == null) {\n return callback.onSuccess(_this8.signInUserSession);\n }\n\n var authenticationHelper = new AuthenticationHelper(_this8.pool.getUserPoolId().split('_')[1]);\n authenticationHelper.generateHashDevice(dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey, dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey, function (errGenHash) {\n if (errGenHash) {\n return callback.onFailure(errGenHash);\n }\n\n var deviceSecretVerifierConfig = {\n Salt: Buffer.from(authenticationHelper.getSaltDevices(), 'hex').toString('base64'),\n PasswordVerifier: Buffer.from(authenticationHelper.getVerifierDevices(), 'hex').toString('base64')\n };\n _this8.verifierDevices = deviceSecretVerifierConfig.PasswordVerifier;\n _this8.deviceGroupKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey;\n _this8.randomPassword = authenticationHelper.getRandomPassword();\n\n _this8.client.request('ConfirmDevice', {\n DeviceKey: dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey,\n AccessToken: _this8.signInUserSession.getAccessToken().getJwtToken(),\n DeviceSecretVerifierConfig: deviceSecretVerifierConfig,\n DeviceName: userAgent\n }, function (errConfirm, dataConfirm) {\n if (errConfirm) {\n return callback.onFailure(errConfirm);\n }\n\n _this8.deviceKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey;\n\n _this8.cacheDeviceKeyAndPassword();\n\n if (dataConfirm.UserConfirmationNecessary === true) {\n return callback.onSuccess(_this8.signInUserSession, dataConfirm.UserConfirmationNecessary);\n }\n\n return callback.onSuccess(_this8.signInUserSession);\n });\n\n return undefined;\n });\n return undefined;\n });\n }\n /**\n * This is used by an authenticated user to change the current password\n * @param {string} oldUserPassword The current password.\n * @param {string} newUserPassword The requested new password.\n * @param {nodeCallback<string>} callback Called on success or error.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */\n ;\n\n _proto.changePassword = function changePassword(oldUserPassword, newUserPassword, callback, clientMetadata) {\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n return callback(new Error('User is not authenticated'), null);\n }\n\n this.client.request('ChangePassword', {\n PreviousPassword: oldUserPassword,\n ProposedPassword: newUserPassword,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n ClientMetadata: clientMetadata\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n /**\n * This is used by an authenticated user to enable MFA for itself\n * @deprecated\n * @param {nodeCallback<string>} callback Called on success or error.\n * @returns {void}\n */\n ;\n\n _proto.enableMFA = function enableMFA(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n\n var mfaOptions = [];\n var mfaEnabled = {\n DeliveryMedium: 'SMS',\n AttributeName: 'phone_number'\n };\n mfaOptions.push(mfaEnabled);\n this.client.request('SetUserSettings', {\n MFAOptions: mfaOptions,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n /**\n * This is used by an authenticated user to enable MFA for itself\n * @param {IMfaSettings} smsMfaSettings the sms mfa settings\n * @param {IMFASettings} softwareTokenMfaSettings the software token mfa settings\n * @param {nodeCallback<string>} callback Called on success or error.\n * @returns {void}\n */\n ;\n\n _proto.setUserMfaPreference = function setUserMfaPreference(smsMfaSettings, softwareTokenMfaSettings, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n\n this.client.request('SetUserMFAPreference', {\n SMSMfaSettings: smsMfaSettings,\n SoftwareTokenMfaSettings: softwareTokenMfaSettings,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n /**\n * This is used by an authenticated user to disable MFA for itself\n * @deprecated\n * @param {nodeCallback<string>} callback Called on success or error.\n * @returns {void}\n */\n ;\n\n _proto.disableMFA = function disableMFA(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n\n var mfaOptions = [];\n this.client.request('SetUserSettings', {\n MFAOptions: mfaOptions,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n /**\n * This is used by an authenticated user to delete itself\n * @param {nodeCallback<string>} callback Called on success or error.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */\n ;\n\n _proto.deleteUser = function deleteUser(callback, clientMetadata) {\n var _this9 = this;\n\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n\n this.client.request('DeleteUser', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n ClientMetadata: clientMetadata\n }, function (err) {\n if (err) {\n return callback(err, null);\n }\n\n _this9.clearCachedUser();\n\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n /**\n * @typedef {CognitoUserAttribute | { Name:string, Value:string }} AttributeArg\n */\n\n /**\n * This is used by an authenticated user to change a list of attributes\n * @param {AttributeArg[]} attributes A list of the new user attributes.\n * @param {nodeCallback<string>} callback Called on success or error.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */\n ;\n\n _proto.updateAttributes = function updateAttributes(attributes, callback, clientMetadata) {\n var _this10 = this;\n\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n\n this.client.request('UpdateUserAttributes', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n UserAttributes: attributes,\n ClientMetadata: clientMetadata\n }, function (err) {\n if (err) {\n return callback(err, null);\n } // update cached user\n\n\n return _this10.getUserData(function () {\n return callback(null, 'SUCCESS');\n }, {\n bypassCache: true\n });\n });\n return undefined;\n }\n /**\n * This is used by an authenticated user to get a list of attributes\n * @param {nodeCallback<CognitoUserAttribute[]>} callback Called on success or error.\n * @returns {void}\n */\n ;\n\n _proto.getUserAttributes = function getUserAttributes(callback) {\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n return callback(new Error('User is not authenticated'), null);\n }\n\n this.client.request('GetUser', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err, userData) {\n if (err) {\n return callback(err, null);\n }\n\n var attributeList = [];\n\n for (var i = 0; i < userData.UserAttributes.length; i++) {\n var attribute = {\n Name: userData.UserAttributes[i].Name,\n Value: userData.UserAttributes[i].Value\n };\n var userAttribute = new CognitoUserAttribute(attribute);\n attributeList.push(userAttribute);\n }\n\n return callback(null, attributeList);\n });\n return undefined;\n }\n /**\n * This was previously used by an authenticated user to get MFAOptions,\n * but no longer returns a meaningful response. Refer to the documentation for\n * how to setup and use MFA: https://docs.amplify.aws/lib/auth/mfa/q/platform/js\n * @deprecated\n * @param {nodeCallback<MFAOptions>} callback Called on success or error.\n * @returns {void}\n */\n ;\n\n _proto.getMFAOptions = function getMFAOptions(callback) {\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n return callback(new Error('User is not authenticated'), null);\n }\n\n this.client.request('GetUser', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err, userData) {\n if (err) {\n return callback(err, null);\n }\n\n return callback(null, userData.MFAOptions);\n });\n return undefined;\n }\n /**\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n */\n ;\n\n _proto.createGetUserRequest = function createGetUserRequest() {\n return this.client.promisifyRequest('GetUser', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n });\n }\n /**\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n */\n ;\n\n _proto.refreshSessionIfPossible = function refreshSessionIfPossible(options) {\n var _this11 = this;\n\n if (options === void 0) {\n options = {};\n }\n\n // best effort, if not possible\n return new Promise(function (resolve) {\n var refresh = _this11.signInUserSession.getRefreshToken();\n\n if (refresh && refresh.getToken()) {\n _this11.refreshSession(refresh, resolve, options.clientMetadata);\n } else {\n resolve();\n }\n });\n }\n /**\n * @typedef {Object} GetUserDataOptions\n * @property {boolean} bypassCache - force getting data from Cognito service\n * @property {Record<string, string>} clientMetadata - clientMetadata for getSession\n */\n\n /**\n * This is used by an authenticated users to get the userData\n * @param {nodeCallback<UserData>} callback Called on success or error.\n * @param {GetUserDataOptions} params\n * @returns {void}\n */\n ;\n\n _proto.getUserData = function getUserData(callback, params) {\n var _this12 = this;\n\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n this.clearCachedUserData();\n return callback(new Error('User is not authenticated'), null);\n }\n\n var userData = this.getUserDataFromCache();\n\n if (!userData) {\n this.fetchUserData().then(function (data) {\n callback(null, data);\n })[\"catch\"](callback);\n return;\n }\n\n if (this.isFetchUserDataAndTokenRequired(params)) {\n this.fetchUserData().then(function (data) {\n return _this12.refreshSessionIfPossible(params).then(function () {\n return data;\n });\n }).then(function (data) {\n return callback(null, data);\n })[\"catch\"](callback);\n return;\n }\n\n try {\n callback(null, JSON.parse(userData));\n return;\n } catch (err) {\n this.clearCachedUserData();\n callback(err, null);\n return;\n }\n }\n /**\n *\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n */\n ;\n\n _proto.getUserDataFromCache = function getUserDataFromCache() {\n var userData = this.storage.getItem(this.userDataKey);\n return userData;\n }\n /**\n *\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n */\n ;\n\n _proto.isFetchUserDataAndTokenRequired = function isFetchUserDataAndTokenRequired(params) {\n var _ref = params || {},\n _ref$bypassCache = _ref.bypassCache,\n bypassCache = _ref$bypassCache === void 0 ? false : _ref$bypassCache;\n\n return bypassCache;\n }\n /**\n *\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n */\n ;\n\n _proto.fetchUserData = function fetchUserData() {\n var _this13 = this;\n\n return this.createGetUserRequest().then(function (data) {\n _this13.cacheUserData(data);\n\n return data;\n });\n }\n /**\n * This is used by an authenticated user to delete a list of attributes\n * @param {string[]} attributeList Names of the attributes to delete.\n * @param {nodeCallback<string>} callback Called on success or error.\n * @returns {void}\n */\n ;\n\n _proto.deleteAttributes = function deleteAttributes(attributeList, callback) {\n var _this14 = this;\n\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n return callback(new Error('User is not authenticated'), null);\n }\n\n this.client.request('DeleteUserAttributes', {\n UserAttributeNames: attributeList,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err) {\n if (err) {\n return callback(err, null);\n } // update cached user\n\n\n return _this14.getUserData(function () {\n return callback(null, 'SUCCESS');\n }, {\n bypassCache: true\n });\n });\n return undefined;\n }\n /**\n * This is used by a user to resend a confirmation code\n * @param {nodeCallback<string>} callback Called on success or error.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */\n ;\n\n _proto.resendConfirmationCode = function resendConfirmationCode(callback, clientMetadata) {\n var jsonReq = {\n ClientId: this.pool.getClientId(),\n Username: this.username,\n ClientMetadata: clientMetadata\n };\n this.client.request('ResendConfirmationCode', jsonReq, function (err, result) {\n if (err) {\n return callback(err, null);\n }\n\n return callback(null, result);\n });\n }\n /**\n * @typedef {Object} GetSessionOptions\n * @property {Record<string, string>} clientMetadata - clientMetadata for getSession\n */\n\n /**\n * This is used to get a session, either from the session object\n * or from the local storage, or by using a refresh token\n *\n * @param {nodeCallback<CognitoUserSession>} callback Called on success or error.\n * @param {GetSessionOptions} options\n * @returns {void}\n */\n ;\n\n _proto.getSession = function getSession(callback, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (this.username == null) {\n return callback(new Error('Username is null. Cannot retrieve a new session'), null);\n }\n\n if (this.signInUserSession != null && this.signInUserSession.isValid()) {\n return callback(null, this.signInUserSession);\n }\n\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId() + \".\" + this.username;\n var idTokenKey = keyPrefix + \".idToken\";\n var accessTokenKey = keyPrefix + \".accessToken\";\n var refreshTokenKey = keyPrefix + \".refreshToken\";\n var clockDriftKey = keyPrefix + \".clockDrift\";\n\n if (this.storage.getItem(idTokenKey)) {\n var idToken = new CognitoIdToken({\n IdToken: this.storage.getItem(idTokenKey)\n });\n var accessToken = new CognitoAccessToken({\n AccessToken: this.storage.getItem(accessTokenKey)\n });\n var refreshToken = new CognitoRefreshToken({\n RefreshToken: this.storage.getItem(refreshTokenKey)\n });\n var clockDrift = parseInt(this.storage.getItem(clockDriftKey), 0) || 0;\n var sessionData = {\n IdToken: idToken,\n AccessToken: accessToken,\n RefreshToken: refreshToken,\n ClockDrift: clockDrift\n };\n var cachedSession = new CognitoUserSession(sessionData);\n\n if (cachedSession.isValid()) {\n this.signInUserSession = cachedSession;\n return callback(null, this.signInUserSession);\n }\n\n if (!refreshToken.getToken()) {\n return callback(new Error('Cannot retrieve a new session. Please authenticate.'), null);\n }\n\n this.refreshSession(refreshToken, callback, options.clientMetadata);\n } else {\n callback(new Error('Local storage is missing an ID Token, Please authenticate'), null);\n }\n\n return undefined;\n }\n /**\n * This uses the refreshToken to retrieve a new session\n * @param {CognitoRefreshToken} refreshToken A previous session's refresh token.\n * @param {nodeCallback<CognitoUserSession>} callback Called on success or error.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */\n ;\n\n _proto.refreshSession = function refreshSession(refreshToken, callback, clientMetadata) {\n var _this15 = this;\n\n var wrappedCallback = this.pool.wrapRefreshSessionCallback ? this.pool.wrapRefreshSessionCallback(callback) : callback;\n var authParameters = {};\n authParameters.REFRESH_TOKEN = refreshToken.getToken();\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId();\n var lastUserKey = keyPrefix + \".LastAuthUser\";\n\n if (this.storage.getItem(lastUserKey)) {\n this.username = this.storage.getItem(lastUserKey);\n var deviceKeyKey = keyPrefix + \".\" + this.username + \".deviceKey\";\n this.deviceKey = this.storage.getItem(deviceKeyKey);\n authParameters.DEVICE_KEY = this.deviceKey;\n }\n\n var jsonReq = {\n ClientId: this.pool.getClientId(),\n AuthFlow: 'REFRESH_TOKEN_AUTH',\n AuthParameters: authParameters,\n ClientMetadata: clientMetadata\n };\n\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n\n this.client.request('InitiateAuth', jsonReq, function (err, authResult) {\n if (err) {\n if (err.code === 'NotAuthorizedException') {\n _this15.clearCachedUser();\n }\n\n return wrappedCallback(err, null);\n }\n\n if (authResult) {\n var authenticationResult = authResult.AuthenticationResult;\n\n if (!Object.prototype.hasOwnProperty.call(authenticationResult, 'RefreshToken')) {\n authenticationResult.RefreshToken = refreshToken.getToken();\n }\n\n _this15.signInUserSession = _this15.getCognitoUserSession(authenticationResult);\n\n _this15.cacheTokens();\n\n return wrappedCallback(null, _this15.signInUserSession);\n }\n\n return undefined;\n });\n }\n /**\n * This is used to save the session tokens to local storage\n * @returns {void}\n */\n ;\n\n _proto.cacheTokens = function cacheTokens() {\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId();\n var idTokenKey = keyPrefix + \".\" + this.username + \".idToken\";\n var accessTokenKey = keyPrefix + \".\" + this.username + \".accessToken\";\n var refreshTokenKey = keyPrefix + \".\" + this.username + \".refreshToken\";\n var clockDriftKey = keyPrefix + \".\" + this.username + \".clockDrift\";\n var lastUserKey = keyPrefix + \".LastAuthUser\";\n this.storage.setItem(idTokenKey, this.signInUserSession.getIdToken().getJwtToken());\n this.storage.setItem(accessTokenKey, this.signInUserSession.getAccessToken().getJwtToken());\n this.storage.setItem(refreshTokenKey, this.signInUserSession.getRefreshToken().getToken());\n this.storage.setItem(clockDriftKey, \"\" + this.signInUserSession.getClockDrift());\n this.storage.setItem(lastUserKey, this.username);\n }\n /**\n * This is to cache user data\n */\n ;\n\n _proto.cacheUserData = function cacheUserData(userData) {\n this.storage.setItem(this.userDataKey, JSON.stringify(userData));\n }\n /**\n * This is to remove cached user data\n */\n ;\n\n _proto.clearCachedUserData = function clearCachedUserData() {\n this.storage.removeItem(this.userDataKey);\n };\n\n _proto.clearCachedUser = function clearCachedUser() {\n this.clearCachedTokens();\n this.clearCachedUserData();\n }\n /**\n * This is used to cache the device key and device group and device password\n * @returns {void}\n */\n ;\n\n _proto.cacheDeviceKeyAndPassword = function cacheDeviceKeyAndPassword() {\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId() + \".\" + this.username;\n var deviceKeyKey = keyPrefix + \".deviceKey\";\n var randomPasswordKey = keyPrefix + \".randomPasswordKey\";\n var deviceGroupKeyKey = keyPrefix + \".deviceGroupKey\";\n this.storage.setItem(deviceKeyKey, this.deviceKey);\n this.storage.setItem(randomPasswordKey, this.randomPassword);\n this.storage.setItem(deviceGroupKeyKey, this.deviceGroupKey);\n }\n /**\n * This is used to get current device key and device group and device password\n * @returns {void}\n */\n ;\n\n _proto.getCachedDeviceKeyAndPassword = function getCachedDeviceKeyAndPassword() {\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId() + \".\" + this.username;\n var deviceKeyKey = keyPrefix + \".deviceKey\";\n var randomPasswordKey = keyPrefix + \".randomPasswordKey\";\n var deviceGroupKeyKey = keyPrefix + \".deviceGroupKey\";\n\n if (this.storage.getItem(deviceKeyKey)) {\n this.deviceKey = this.storage.getItem(deviceKeyKey);\n this.randomPassword = this.storage.getItem(randomPasswordKey);\n this.deviceGroupKey = this.storage.getItem(deviceGroupKeyKey);\n }\n }\n /**\n * This is used to clear the device key info from local storage\n * @returns {void}\n */\n ;\n\n _proto.clearCachedDeviceKeyAndPassword = function clearCachedDeviceKeyAndPassword() {\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId() + \".\" + this.username;\n var deviceKeyKey = keyPrefix + \".deviceKey\";\n var randomPasswordKey = keyPrefix + \".randomPasswordKey\";\n var deviceGroupKeyKey = keyPrefix + \".deviceGroupKey\";\n this.storage.removeItem(deviceKeyKey);\n this.storage.removeItem(randomPasswordKey);\n this.storage.removeItem(deviceGroupKeyKey);\n }\n /**\n * This is used to clear the session tokens from local storage\n * @returns {void}\n */\n ;\n\n _proto.clearCachedTokens = function clearCachedTokens() {\n var keyPrefix = \"CognitoIdentityServiceProvider.\" + this.pool.getClientId();\n var idTokenKey = keyPrefix + \".\" + this.username + \".idToken\";\n var accessTokenKey = keyPrefix + \".\" + this.username + \".accessToken\";\n var refreshTokenKey = keyPrefix + \".\" + this.username + \".refreshToken\";\n var lastUserKey = keyPrefix + \".LastAuthUser\";\n var clockDriftKey = keyPrefix + \".\" + this.username + \".clockDrift\";\n this.storage.removeItem(idTokenKey);\n this.storage.removeItem(accessTokenKey);\n this.storage.removeItem(refreshTokenKey);\n this.storage.removeItem(lastUserKey);\n this.storage.removeItem(clockDriftKey);\n }\n /**\n * This is used to build a user session from tokens retrieved in the authentication result\n * @param {object} authResult Successful auth response from server.\n * @returns {CognitoUserSession} The new user session.\n * @private\n */\n ;\n\n _proto.getCognitoUserSession = function getCognitoUserSession(authResult) {\n var idToken = new CognitoIdToken(authResult);\n var accessToken = new CognitoAccessToken(authResult);\n var refreshToken = new CognitoRefreshToken(authResult);\n var sessionData = {\n IdToken: idToken,\n AccessToken: accessToken,\n RefreshToken: refreshToken\n };\n return new CognitoUserSession(sessionData);\n }\n /**\n * This is used to initiate a forgot password request\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {inputVerificationCode?} callback.inputVerificationCode\n * Optional callback raised instead of onSuccess with response data.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */\n ;\n\n _proto.forgotPassword = function forgotPassword(callback, clientMetadata) {\n var jsonReq = {\n ClientId: this.pool.getClientId(),\n Username: this.username,\n ClientMetadata: clientMetadata\n };\n\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n\n this.client.request('ForgotPassword', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n\n if (typeof callback.inputVerificationCode === 'function') {\n return callback.inputVerificationCode(data);\n }\n\n return callback.onSuccess(data);\n });\n }\n /**\n * This is used to confirm a new password using a confirmationCode\n * @param {string} confirmationCode Code entered by user.\n * @param {string} newPassword Confirm new password.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess<void>} callback.onSuccess Called on success.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */\n ;\n\n _proto.confirmPassword = function confirmPassword(confirmationCode, newPassword, callback, clientMetadata) {\n var jsonReq = {\n ClientId: this.pool.getClientId(),\n Username: this.username,\n ConfirmationCode: confirmationCode,\n Password: newPassword,\n ClientMetadata: clientMetadata\n };\n\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n\n this.client.request('ConfirmForgotPassword', jsonReq, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n\n return callback.onSuccess('SUCCESS');\n });\n }\n /**\n * This is used to initiate an attribute confirmation request\n * @param {string} attributeName User attribute that needs confirmation.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {inputVerificationCode} callback.inputVerificationCode Called on success.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */\n ;\n\n _proto.getAttributeVerificationCode = function getAttributeVerificationCode(attributeName, callback, clientMetadata) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n\n this.client.request('GetUserAttributeVerificationCode', {\n AttributeName: attributeName,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n ClientMetadata: clientMetadata\n }, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n\n if (typeof callback.inputVerificationCode === 'function') {\n return callback.inputVerificationCode(data);\n }\n\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n /**\n * This is used to confirm an attribute using a confirmation code\n * @param {string} attributeName Attribute being confirmed.\n * @param {string} confirmationCode Code entered by user.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess<string>} callback.onSuccess Called on success.\n * @returns {void}\n */\n ;\n\n _proto.verifyAttribute = function verifyAttribute(attributeName, confirmationCode, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n\n this.client.request('VerifyUserAttribute', {\n AttributeName: attributeName,\n Code: confirmationCode,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n /**\n * This is used to get the device information using the current device key\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess<*>} callback.onSuccess Called on success with device data.\n * @returns {void}\n */\n ;\n\n _proto.getDevice = function getDevice(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n\n this.client.request('GetDevice', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceKey: this.deviceKey\n }, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n\n return callback.onSuccess(data);\n });\n return undefined;\n }\n /**\n * This is used to forget a specific device\n * @param {string} deviceKey Device key.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess<string>} callback.onSuccess Called on success.\n * @returns {void}\n */\n ;\n\n _proto.forgetSpecificDevice = function forgetSpecificDevice(deviceKey, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n\n this.client.request('ForgetDevice', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceKey: deviceKey\n }, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n /**\n * This is used to forget the current device\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess<string>} callback.onSuccess Called on success.\n * @returns {void}\n */\n ;\n\n _proto.forgetDevice = function forgetDevice(callback) {\n var _this16 = this;\n\n this.forgetSpecificDevice(this.deviceKey, {\n onFailure: callback.onFailure,\n onSuccess: function onSuccess(result) {\n _this16.deviceKey = null;\n _this16.deviceGroupKey = null;\n _this16.randomPassword = null;\n\n _this16.clearCachedDeviceKeyAndPassword();\n\n return callback.onSuccess(result);\n }\n });\n }\n /**\n * This is used to set the device status as remembered\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess<string>} callback.onSuccess Called on success.\n * @returns {void}\n */\n ;\n\n _proto.setDeviceStatusRemembered = function setDeviceStatusRemembered(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n\n this.client.request('UpdateDeviceStatus', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceKey: this.deviceKey,\n DeviceRememberedStatus: 'remembered'\n }, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n /**\n * This is used to set the device status as not remembered\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess<string>} callback.onSuccess Called on success.\n * @returns {void}\n */\n ;\n\n _proto.setDeviceStatusNotRemembered = function setDeviceStatusNotRemembered(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n\n this.client.request('UpdateDeviceStatus', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceKey: this.deviceKey,\n DeviceRememberedStatus: 'not_remembered'\n }, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n /**\n * This is used to list all devices for a user\n *\n * @param {int} limit the number of devices returned in a call\n * @param {string | null} paginationToken the pagination token in case any was returned before\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess<*>} callback.onSuccess Called on success with device list.\n * @returns {void}\n */\n ;\n\n _proto.listDevices = function listDevices(limit, paginationToken, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n\n var requestParams = {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n Limit: limit\n };\n\n if (paginationToken) {\n requestParams.PaginationToken = paginationToken;\n }\n\n this.client.request('ListDevices', requestParams, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n\n return callback.onSuccess(data);\n });\n return undefined;\n }\n /**\n * This is used to globally revoke all tokens issued to a user\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess<string>} callback.onSuccess Called on success.\n * @returns {void}\n */\n ;\n\n _proto.globalSignOut = function globalSignOut(callback) {\n var _this17 = this;\n\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n\n this.client.request('GlobalSignOut', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err) {\n if (err) {\n return callback.onFailure(err);\n }\n\n _this17.clearCachedUser();\n\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n /**\n * This is used for the user to signOut of the application and clear the cached tokens.\n * @returns {void}\n */\n ;\n\n _proto.signOut = function signOut(revokeTokenCallback) {\n var _this18 = this;\n\n // If tokens won't be revoked, we just clean the client data.\n if (!revokeTokenCallback || typeof revokeTokenCallback !== 'function') {\n this.cleanClientData();\n return;\n }\n\n this.getSession(function (error, _session) {\n if (error) {\n return revokeTokenCallback(error);\n }\n\n _this18.revokeTokens(function (err) {\n _this18.cleanClientData();\n\n revokeTokenCallback(err);\n });\n });\n };\n\n _proto.revokeTokens = function revokeTokens(revokeTokenCallback) {\n if (revokeTokenCallback === void 0) {\n revokeTokenCallback = function revokeTokenCallback() {};\n }\n\n if (typeof revokeTokenCallback !== 'function') {\n throw new Error('Invalid revokeTokenCallback. It should be a function.');\n }\n\n var tokensToBeRevoked = [];\n\n if (!this.signInUserSession) {\n var error = new Error('User is not authenticated');\n return revokeTokenCallback(error);\n }\n\n if (!this.signInUserSession.getAccessToken()) {\n var _error = new Error('No Access token available');\n\n return revokeTokenCallback(_error);\n }\n\n var refreshToken = this.signInUserSession.getRefreshToken().getToken();\n var accessToken = this.signInUserSession.getAccessToken();\n\n if (this.isSessionRevocable(accessToken)) {\n if (refreshToken) {\n return this.revokeToken({\n token: refreshToken,\n callback: revokeTokenCallback\n });\n }\n }\n\n revokeTokenCallback();\n };\n\n _proto.isSessionRevocable = function isSessionRevocable(token) {\n if (token && typeof token.decodePayload === 'function') {\n try {\n var _token$decodePayload = token.decodePayload(),\n origin_jti = _token$decodePayload.origin_jti;\n\n return !!origin_jti;\n } catch (err) {// Nothing to do, token doesnt have origin_jti claim\n }\n }\n\n return false;\n };\n\n _proto.cleanClientData = function cleanClientData() {\n this.signInUserSession = null;\n this.clearCachedUser();\n };\n\n _proto.revokeToken = function revokeToken(_ref2) {\n var token = _ref2.token,\n callback = _ref2.callback;\n this.client.requestWithRetry('RevokeToken', {\n Token: token,\n ClientId: this.pool.getClientId()\n }, function (err) {\n if (err) {\n return callback(err);\n }\n\n callback();\n });\n }\n /**\n * This is used by a user trying to select a given MFA\n * @param {string} answerChallenge the mfa the user wants\n * @param {nodeCallback<string>} callback Called on success or error.\n * @returns {void}\n */\n ;\n\n _proto.sendMFASelectionAnswer = function sendMFASelectionAnswer(answerChallenge, callback) {\n var _this19 = this;\n\n var challengeResponses = {};\n challengeResponses.USERNAME = this.username;\n challengeResponses.ANSWER = answerChallenge;\n var jsonReq = {\n ChallengeName: 'SELECT_MFA_TYPE',\n ChallengeResponses: challengeResponses,\n ClientId: this.pool.getClientId(),\n Session: this.Session\n };\n\n if (this.getUserContextData()) {\n jsonReq.UserContextData = this.getUserContextData();\n }\n\n this.client.request('RespondToAuthChallenge', jsonReq, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n\n _this19.Session = data.Session;\n\n if (answerChallenge === 'SMS_MFA') {\n return callback.mfaRequired(data.ChallengeName, data.ChallengeParameters);\n }\n\n if (answerChallenge === 'SOFTWARE_TOKEN_MFA') {\n return callback.totpRequired(data.ChallengeName, data.ChallengeParameters);\n }\n\n return undefined;\n });\n }\n /**\n * This returns the user context data for advanced security feature.\n * @returns {string} the user context data from CognitoUserPool\n */\n ;\n\n _proto.getUserContextData = function getUserContextData() {\n var pool = this.pool;\n return pool.getUserContextData(this.username);\n }\n /**\n * This is used by an authenticated or a user trying to authenticate to associate a TOTP MFA\n * @param {nodeCallback<string>} callback Called on success or error.\n * @returns {void}\n */\n ;\n\n _proto.associateSoftwareToken = function associateSoftwareToken(callback) {\n var _this20 = this;\n\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n this.client.request('AssociateSoftwareToken', {\n Session: this.Session\n }, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n\n _this20.Session = data.Session;\n return callback.associateSecretCode(data.SecretCode);\n });\n } else {\n this.client.request('AssociateSoftwareToken', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n }, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n\n return callback.associateSecretCode(data.SecretCode);\n });\n }\n }\n /**\n * This is used by an authenticated or a user trying to authenticate to verify a TOTP MFA\n * @param {string} totpCode The MFA code entered by the user.\n * @param {string} friendlyDeviceName The device name we are assigning to the device.\n * @param {nodeCallback<string>} callback Called on success or error.\n * @returns {void}\n */\n ;\n\n _proto.verifySoftwareToken = function verifySoftwareToken(totpCode, friendlyDeviceName, callback) {\n var _this21 = this;\n\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n this.client.request('VerifySoftwareToken', {\n Session: this.Session,\n UserCode: totpCode,\n FriendlyDeviceName: friendlyDeviceName\n }, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n\n _this21.Session = data.Session;\n var challengeResponses = {};\n challengeResponses.USERNAME = _this21.username;\n var jsonReq = {\n ChallengeName: 'MFA_SETUP',\n ClientId: _this21.pool.getClientId(),\n ChallengeResponses: challengeResponses,\n Session: _this21.Session\n };\n\n if (_this21.getUserContextData()) {\n jsonReq.UserContextData = _this21.getUserContextData();\n }\n\n _this21.client.request('RespondToAuthChallenge', jsonReq, function (errRespond, dataRespond) {\n if (errRespond) {\n return callback.onFailure(errRespond);\n }\n\n _this21.signInUserSession = _this21.getCognitoUserSession(dataRespond.AuthenticationResult);\n\n _this21.cacheTokens();\n\n return callback.onSuccess(_this21.signInUserSession);\n });\n\n return undefined;\n });\n } else {\n this.client.request('VerifySoftwareToken', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n UserCode: totpCode,\n FriendlyDeviceName: friendlyDeviceName\n }, function (err, data) {\n if (err) {\n return callback.onFailure(err);\n }\n\n return callback.onSuccess(data);\n });\n }\n };\n\n return CognitoUser;\n}();\n\nexport { CognitoUser as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/** @class */\nvar CognitoUserAttribute = /*#__PURE__*/function () {\n /**\n * Constructs a new CognitoUserAttribute object\n * @param {string=} Name The record's name\n * @param {string=} Value The record's value\n */\n function CognitoUserAttribute(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n Name = _ref.Name,\n Value = _ref.Value;\n\n this.Name = Name || '';\n this.Value = Value || '';\n }\n /**\n * @returns {string} the record's value.\n */\n\n\n var _proto = CognitoUserAttribute.prototype;\n\n _proto.getValue = function getValue() {\n return this.Value;\n }\n /**\n * Sets the record's value.\n * @param {string} value The new value.\n * @returns {CognitoUserAttribute} The record for method chaining.\n */\n ;\n\n _proto.setValue = function setValue(value) {\n this.Value = value;\n return this;\n }\n /**\n * @returns {string} the record's name.\n */\n ;\n\n _proto.getName = function getName() {\n return this.Name;\n }\n /**\n * Sets the record's name\n * @param {string} name The new name.\n * @returns {CognitoUserAttribute} The record for method chaining.\n */\n ;\n\n _proto.setName = function setName(name) {\n this.Name = name;\n return this;\n }\n /**\n * @returns {string} a string representation of the record.\n */\n ;\n\n _proto.toString = function toString() {\n return JSON.stringify(this);\n }\n /**\n * @returns {object} a flat object representing the record.\n */\n ;\n\n _proto.toJSON = function toJSON() {\n return {\n Name: this.Name,\n Value: this.Value\n };\n };\n\n return CognitoUserAttribute;\n}();\n\nexport { CognitoUserAttribute as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport Client from './Client';\nimport CognitoUser from './CognitoUser';\nimport StorageHelper from './StorageHelper';\nvar USER_POOL_ID_MAX_LENGTH = 55;\n/** @class */\n\nvar CognitoUserPool = /*#__PURE__*/function () {\n /**\n * Constructs a new CognitoUserPool object\n * @param {object} data Creation options.\n * @param {string} data.UserPoolId Cognito user pool id.\n * @param {string} data.ClientId User pool application client id.\n * @param {string} data.endpoint Optional custom service endpoint.\n * @param {object} data.fetchOptions Optional options for fetch API.\n * (only credentials option is supported)\n * @param {object} data.Storage Optional storage object.\n * @param {boolean} data.AdvancedSecurityDataCollectionFlag Optional:\n * boolean flag indicating if the data collection is enabled\n * to support cognito advanced security features. By default, this\n * flag is set to true.\n */\n function CognitoUserPool(data, wrapRefreshSessionCallback) {\n var _ref = data || {},\n UserPoolId = _ref.UserPoolId,\n ClientId = _ref.ClientId,\n endpoint = _ref.endpoint,\n fetchOptions = _ref.fetchOptions,\n AdvancedSecurityDataCollectionFlag = _ref.AdvancedSecurityDataCollectionFlag;\n\n if (!UserPoolId || !ClientId) {\n throw new Error('Both UserPoolId and ClientId are required.');\n }\n\n if (UserPoolId.length > USER_POOL_ID_MAX_LENGTH || !/^[\\w-]+_[0-9a-zA-Z]+$/.test(UserPoolId)) {\n throw new Error('Invalid UserPoolId format.');\n }\n\n var region = UserPoolId.split('_')[0];\n this.userPoolId = UserPoolId;\n this.clientId = ClientId;\n this.client = new Client(region, endpoint, fetchOptions);\n /**\n * By default, AdvancedSecurityDataCollectionFlag is set to true,\n * if no input value is provided.\n */\n\n this.advancedSecurityDataCollectionFlag = AdvancedSecurityDataCollectionFlag !== false;\n this.storage = data.Storage || new StorageHelper().getStorage();\n\n if (wrapRefreshSessionCallback) {\n this.wrapRefreshSessionCallback = wrapRefreshSessionCallback;\n }\n }\n /**\n * @returns {string} the user pool id\n */\n\n\n var _proto = CognitoUserPool.prototype;\n\n _proto.getUserPoolId = function getUserPoolId() {\n return this.userPoolId;\n }\n /**\n * @returns {string} the client id\n */\n ;\n\n _proto.getClientId = function getClientId() {\n return this.clientId;\n }\n /**\n * @typedef {object} SignUpResult\n * @property {CognitoUser} user New user.\n * @property {bool} userConfirmed If the user is already confirmed.\n */\n\n /**\n * method for signing up a user\n * @param {string} username User's username.\n * @param {string} password Plain-text initial password entered by user.\n * @param {(AttributeArg[])=} userAttributes New user attributes.\n * @param {(AttributeArg[])=} validationData Application metadata.\n * @param {(AttributeArg[])=} clientMetadata Client metadata.\n * @param {nodeCallback<SignUpResult>} callback Called on error or with the new user.\n * @param {ClientMetadata} clientMetadata object which is passed from client to Cognito Lambda trigger\n * @returns {void}\n */\n ;\n\n _proto.signUp = function signUp(username, password, userAttributes, validationData, callback, clientMetadata) {\n var _this = this;\n\n var jsonReq = {\n ClientId: this.clientId,\n Username: username,\n Password: password,\n UserAttributes: userAttributes,\n ValidationData: validationData,\n ClientMetadata: clientMetadata\n };\n\n if (this.getUserContextData(username)) {\n jsonReq.UserContextData = this.getUserContextData(username);\n }\n\n this.client.request('SignUp', jsonReq, function (err, data) {\n if (err) {\n return callback(err, null);\n }\n\n var cognitoUser = {\n Username: username,\n Pool: _this,\n Storage: _this.storage\n };\n var returnData = {\n user: new CognitoUser(cognitoUser),\n userConfirmed: data.UserConfirmed,\n userSub: data.UserSub,\n codeDeliveryDetails: data.CodeDeliveryDetails\n };\n return callback(null, returnData);\n });\n }\n /**\n * method for getting the current user of the application from the local storage\n *\n * @returns {CognitoUser} the user retrieved from storage\n */\n ;\n\n _proto.getCurrentUser = function getCurrentUser() {\n var lastUserKey = \"CognitoIdentityServiceProvider.\" + this.clientId + \".LastAuthUser\";\n var lastAuthUser = this.storage.getItem(lastUserKey);\n\n if (lastAuthUser) {\n var cognitoUser = {\n Username: lastAuthUser,\n Pool: this,\n Storage: this.storage\n };\n return new CognitoUser(cognitoUser);\n }\n\n return null;\n }\n /**\n * This method returns the encoded data string used for cognito advanced security feature.\n * This would be generated only when developer has included the JS used for collecting the\n * data on their client. Please refer to documentation to know more about using AdvancedSecurity\n * features\n * @param {string} username the username for the context data\n * @returns {string} the user context data\n **/\n ;\n\n _proto.getUserContextData = function getUserContextData(username) {\n if (typeof AmazonCognitoAdvancedSecurityData === 'undefined') {\n return undefined;\n }\n /* eslint-disable */\n\n\n var amazonCognitoAdvancedSecurityDataConst = AmazonCognitoAdvancedSecurityData;\n /* eslint-enable */\n\n if (this.advancedSecurityDataCollectionFlag) {\n var advancedSecurityData = amazonCognitoAdvancedSecurityDataConst.getData(username, this.userPoolId, this.clientId);\n\n if (advancedSecurityData) {\n var userContextData = {\n EncodedData: advancedSecurityData\n };\n return userContextData;\n }\n }\n\n return {};\n };\n\n return CognitoUserPool;\n}();\n\nexport { CognitoUserPool as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/** @class */\nvar CognitoUserSession = /*#__PURE__*/function () {\n /**\n * Constructs a new CognitoUserSession object\n * @param {CognitoIdToken} IdToken The session's Id token.\n * @param {CognitoRefreshToken=} RefreshToken The session's refresh token.\n * @param {CognitoAccessToken} AccessToken The session's access token.\n * @param {int} ClockDrift The saved computer's clock drift or undefined to force calculation.\n */\n function CognitoUserSession(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n IdToken = _ref.IdToken,\n RefreshToken = _ref.RefreshToken,\n AccessToken = _ref.AccessToken,\n ClockDrift = _ref.ClockDrift;\n\n if (AccessToken == null || IdToken == null) {\n throw new Error('Id token and Access Token must be present.');\n }\n\n this.idToken = IdToken;\n this.refreshToken = RefreshToken;\n this.accessToken = AccessToken;\n this.clockDrift = ClockDrift === undefined ? this.calculateClockDrift() : ClockDrift;\n }\n /**\n * @returns {CognitoIdToken} the session's Id token\n */\n\n\n var _proto = CognitoUserSession.prototype;\n\n _proto.getIdToken = function getIdToken() {\n return this.idToken;\n }\n /**\n * @returns {CognitoRefreshToken} the session's refresh token\n */\n ;\n\n _proto.getRefreshToken = function getRefreshToken() {\n return this.refreshToken;\n }\n /**\n * @returns {CognitoAccessToken} the session's access token\n */\n ;\n\n _proto.getAccessToken = function getAccessToken() {\n return this.accessToken;\n }\n /**\n * @returns {int} the session's clock drift\n */\n ;\n\n _proto.getClockDrift = function getClockDrift() {\n return this.clockDrift;\n }\n /**\n * @returns {int} the computer's clock drift\n */\n ;\n\n _proto.calculateClockDrift = function calculateClockDrift() {\n var now = Math.floor(new Date() / 1000);\n var iat = Math.min(this.accessToken.getIssuedAt(), this.idToken.getIssuedAt());\n return now - iat;\n }\n /**\n * Checks to see if the session is still valid based on session expiry information found\n * in tokens and the current time (adjusted with clock drift)\n * @returns {boolean} if the session is still valid\n */\n ;\n\n _proto.isValid = function isValid() {\n var now = Math.floor(new Date() / 1000);\n var adjusted = now - this.clockDrift;\n return adjusted < this.accessToken.getExpiration() && adjusted < this.idToken.getExpiration();\n };\n\n return CognitoUserSession;\n}();\n\nexport { CognitoUserSession as default };","import * as Cookies from 'js-cookie';\n/** @class */\n\nvar CookieStorage = /*#__PURE__*/function () {\n /**\n * Constructs a new CookieStorage object\n * @param {object} data Creation options.\n * @param {string} data.domain Cookies domain (mandatory).\n * @param {string} data.path Cookies path (default: '/')\n * @param {integer} data.expires Cookie expiration (in days, default: 365)\n * @param {boolean} data.secure Cookie secure flag (default: true)\n * @param {string} data.sameSite Cookie request behaviour (default: null)\n */\n function CookieStorage(data) {\n if (data.domain) {\n this.domain = data.domain;\n } else {\n throw new Error('The domain of cookieStorage can not be undefined.');\n }\n\n if (data.path) {\n this.path = data.path;\n } else {\n this.path = '/';\n }\n\n if (Object.prototype.hasOwnProperty.call(data, 'expires')) {\n this.expires = data.expires;\n } else {\n this.expires = 365;\n }\n\n if (Object.prototype.hasOwnProperty.call(data, 'secure')) {\n this.secure = data.secure;\n } else {\n this.secure = true;\n }\n\n if (Object.prototype.hasOwnProperty.call(data, 'sameSite')) {\n if (!['strict', 'lax', 'none'].includes(data.sameSite)) {\n throw new Error('The sameSite value of cookieStorage must be \"lax\", \"strict\" or \"none\".');\n }\n\n if (data.sameSite === 'none' && !this.secure) {\n throw new Error('sameSite = None requires the Secure attribute in latest browser versions.');\n }\n\n this.sameSite = data.sameSite;\n } else {\n this.sameSite = null;\n }\n }\n /**\n * This is used to set a specific item in storage\n * @param {string} key - the key for the item\n * @param {object} value - the value\n * @returns {string} value that was set\n */\n\n\n var _proto = CookieStorage.prototype;\n\n _proto.setItem = function setItem(key, value) {\n var options = {\n path: this.path,\n expires: this.expires,\n domain: this.domain,\n secure: this.secure\n };\n\n if (this.sameSite) {\n options.sameSite = this.sameSite;\n }\n\n Cookies.set(key, value, options);\n return Cookies.get(key);\n }\n /**\n * This is used to get a specific key from storage\n * @param {string} key - the key for the item\n * This is used to clear the storage\n * @returns {string} the data item\n */\n ;\n\n _proto.getItem = function getItem(key) {\n return Cookies.get(key);\n }\n /**\n * This is used to remove an item from storage\n * @param {string} key - the key being set\n * @returns {string} value - value that was deleted\n */\n ;\n\n _proto.removeItem = function removeItem(key) {\n var options = {\n path: this.path,\n expires: this.expires,\n domain: this.domain,\n secure: this.secure\n };\n\n if (this.sameSite) {\n options.sameSite = this.sameSite;\n }\n\n return Cookies.remove(key, options);\n }\n /**\n * This is used to clear the storage of optional\n * items that were previously set\n * @returns {} an empty object\n */\n ;\n\n _proto.clear = function clear() {\n var cookies = Cookies.get();\n var numKeys = Object.keys(cookies).length;\n\n for (var index = 0; index < numKeys; ++index) {\n this.removeItem(Object.keys(cookies)[index]);\n }\n\n return {};\n };\n\n return CookieStorage;\n}();\n\nexport { CookieStorage as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar monthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\nvar weekNames = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n/** @class */\n\nvar DateHelper = /*#__PURE__*/function () {\n function DateHelper() {}\n\n var _proto = DateHelper.prototype;\n\n /**\n * @returns {string} The current time in \"ddd MMM D HH:mm:ss UTC YYYY\" format.\n */\n _proto.getNowString = function getNowString() {\n var now = new Date();\n var weekDay = weekNames[now.getUTCDay()];\n var month = monthNames[now.getUTCMonth()];\n var day = now.getUTCDate();\n var hours = now.getUTCHours();\n\n if (hours < 10) {\n hours = \"0\" + hours;\n }\n\n var minutes = now.getUTCMinutes();\n\n if (minutes < 10) {\n minutes = \"0\" + minutes;\n }\n\n var seconds = now.getUTCSeconds();\n\n if (seconds < 10) {\n seconds = \"0\" + seconds;\n }\n\n var year = now.getUTCFullYear(); // ddd MMM D HH:mm:ss UTC YYYY\n\n var dateNow = weekDay + \" \" + month + \" \" + day + \" \" + hours + \":\" + minutes + \":\" + seconds + \" UTC \" + year;\n return dateNow;\n };\n\n return DateHelper;\n}();\n\nexport { DateHelper as default };","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { version } from './version';\nvar BASE_USER_AGENT = \"aws-amplify/\" + version;\nexport var Platform = {\n userAgent: BASE_USER_AGENT + \" js\",\n product: '',\n navigator: null,\n isReactNative: false\n};\n\nif (typeof navigator !== 'undefined' && navigator.product) {\n Platform.product = navigator.product || '';\n Platform.navigator = navigator || null;\n\n switch (navigator.product) {\n case 'ReactNative':\n Platform.userAgent = BASE_USER_AGENT + \" react-native\";\n Platform.isReactNative = true;\n break;\n\n default:\n Platform.userAgent = BASE_USER_AGENT + \" js\";\n Platform.isReactNative = false;\n break;\n }\n}\n\nexport var getUserAgent = function getUserAgent() {\n return Platform.userAgent;\n};\n/**\n * @deprecated use named import\n */\n\nexport default Platform;","// generated by genversion\nexport var version = '5.0.4';","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar dataMemory = {};\n/** @class */\n\nexport var MemoryStorage = /*#__PURE__*/function () {\n function MemoryStorage() {}\n\n /**\n * This is used to set a specific item in storage\n * @param {string} key - the key for the item\n * @param {object} value - the value\n * @returns {string} value that was set\n */\n MemoryStorage.setItem = function setItem(key, value) {\n dataMemory[key] = value;\n return dataMemory[key];\n }\n /**\n * This is used to get a specific key from storage\n * @param {string} key - the key for the item\n * This is used to clear the storage\n * @returns {string} the data item\n */\n ;\n\n MemoryStorage.getItem = function getItem(key) {\n return Object.prototype.hasOwnProperty.call(dataMemory, key) ? dataMemory[key] : undefined;\n }\n /**\n * This is used to remove an item from storage\n * @param {string} key - the key being set\n * @returns {boolean} return true\n */\n ;\n\n MemoryStorage.removeItem = function removeItem(key) {\n return delete dataMemory[key];\n }\n /**\n * This is used to clear the storage\n * @returns {string} nothing\n */\n ;\n\n MemoryStorage.clear = function clear() {\n dataMemory = {};\n return dataMemory;\n };\n\n return MemoryStorage;\n}();\n/** @class */\n\nvar StorageHelper = /*#__PURE__*/function () {\n /**\n * This is used to get a storage object\n * @returns {object} the storage\n */\n function StorageHelper() {\n try {\n this.storageWindow = window.localStorage;\n this.storageWindow.setItem('aws.cognito.test-ls', 1);\n this.storageWindow.removeItem('aws.cognito.test-ls');\n } catch (exception) {\n this.storageWindow = MemoryStorage;\n }\n }\n /**\n * This is used to return the storage\n * @returns {object} the storage\n */\n\n\n var _proto = StorageHelper.prototype;\n\n _proto.getStorage = function getStorage() {\n return this.storageWindow;\n };\n\n return StorageHelper;\n}();\n\nexport { StorageHelper as default };","import { getUserAgent } from \"./Platform\"; // constructor\n\nfunction UserAgent() {} // public\n\n\nUserAgent.prototype.userAgent = getUserAgent();\nexport var appendToCognitoUserAgent = function appendToCognitoUserAgent(content) {\n if (!content) {\n return;\n }\n\n if (UserAgent.prototype.userAgent && !UserAgent.prototype.userAgent.includes(content)) {\n UserAgent.prototype.userAgent = UserAgent.prototype.userAgent.concat(' ', content);\n }\n\n if (!UserAgent.prototype.userAgent || UserAgent.prototype.userAgent === '') {\n UserAgent.prototype.userAgent = content;\n }\n}; // class for defining the amzn user-agent\n\nexport default UserAgent;","/*!\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nexport { default as AuthenticationDetails } from './AuthenticationDetails';\nexport { default as AuthenticationHelper } from './AuthenticationHelper';\nexport { default as CognitoAccessToken } from './CognitoAccessToken';\nexport { default as CognitoIdToken } from './CognitoIdToken';\nexport { default as CognitoRefreshToken } from './CognitoRefreshToken';\nexport { default as CognitoUser } from './CognitoUser';\nexport { default as CognitoUserAttribute } from './CognitoUserAttribute';\nexport { default as CognitoUserPool } from './CognitoUserPool';\nexport { default as CognitoUserSession } from './CognitoUserSession';\nexport { default as CookieStorage } from './CookieStorage';\nexport { default as DateHelper } from './DateHelper';\nexport { appendToCognitoUserAgent } from './UserAgent';\nexport { default as WordArray } from './utils/WordArray';","import cryptoSecureRandomInt from './cryptoSecureRandomInt';\n/**\n * Hex encoding strategy.\n * Converts a word array to a hex string.\n * @param {WordArray} wordArray The word array.\n * @return {string} The hex string.\n * @static\n */\n\nfunction hexStringify(wordArray) {\n // Shortcuts\n var words = wordArray.words;\n var sigBytes = wordArray.sigBytes; // Convert\n\n var hexChars = [];\n\n for (var i = 0; i < sigBytes; i++) {\n var bite = words[i >>> 2] >>> 24 - i % 4 * 8 & 0xff;\n hexChars.push((bite >>> 4).toString(16));\n hexChars.push((bite & 0x0f).toString(16));\n }\n\n return hexChars.join('');\n}\n\nvar WordArray = /*#__PURE__*/function () {\n function WordArray(words, sigBytes) {\n words = this.words = words || [];\n\n if (sigBytes != undefined) {\n this.sigBytes = sigBytes;\n } else {\n this.sigBytes = words.length * 4;\n }\n }\n\n var _proto = WordArray.prototype;\n\n _proto.random = function random(nBytes) {\n var words = [];\n\n for (var i = 0; i < nBytes; i += 4) {\n words.push(cryptoSecureRandomInt());\n }\n\n return new WordArray(words, nBytes);\n };\n\n _proto.toString = function toString() {\n return hexStringify(this);\n };\n\n return WordArray;\n}();\n\nexport { WordArray as default };","var crypto; // Native crypto from window (Browser)\n\nif (typeof window !== 'undefined' && window.crypto) {\n crypto = window.crypto;\n} // Native (experimental IE 11) crypto from window (Browser)\n\n\nif (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n crypto = window.msCrypto;\n} // Native crypto from global (NodeJS)\n\n\nif (!crypto && typeof global !== 'undefined' && global.crypto) {\n crypto = global.crypto;\n} // Native crypto import via require (NodeJS)\n\n\nif (!crypto && typeof require === 'function') {\n try {\n crypto = require('crypto');\n } catch (err) {}\n}\n/*\n * Cryptographically secure pseudorandom number generator\n * As Math.random() is cryptographically not safe to use\n */\n\n\nexport default function cryptoSecureRandomInt() {\n if (crypto) {\n // Use getRandomValues method (Browser)\n if (typeof crypto.getRandomValues === 'function') {\n try {\n return crypto.getRandomValues(new Uint32Array(1))[0];\n } catch (err) {}\n } // Use randomBytes method (NodeJS)\n\n\n if (typeof crypto.randomBytes === 'function') {\n try {\n return crypto.randomBytes(4).readInt32LE();\n } catch (err) {}\n }\n }\n\n throw new Error('Native crypto module could not be used to get secure random number.');\n}",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t var crypto;\n\n\t // Native crypto from window (Browser)\n\t if (typeof window !== 'undefined' && window.crypto) {\n\t crypto = window.crypto;\n\t }\n\n\t // Native crypto in web worker (Browser)\n\t if (typeof self !== 'undefined' && self.crypto) {\n\t crypto = self.crypto;\n\t }\n\n\t // Native crypto from worker\n\t if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t crypto = globalThis.crypto;\n\t }\n\n\t // Native (experimental IE 11) crypto from window (Browser)\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t crypto = window.msCrypto;\n\t }\n\n\t // Native crypto from global (NodeJS)\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t crypto = global.crypto;\n\t }\n\n\t // Native crypto import via require (NodeJS)\n\t if (!crypto && typeof require === 'function') {\n\t try {\n\t crypto = require('crypto');\n\t } catch (err) {}\n\t }\n\n\t /*\n\t * Cryptographically secure pseudorandom number generator\n\t *\n\t * As Math.random() is cryptographically not safe to use\n\t */\n\t var cryptoSecureRandomInt = function () {\n\t if (crypto) {\n\t // Use getRandomValues method (Browser)\n\t if (typeof crypto.getRandomValues === 'function') {\n\t try {\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\n\t } catch (err) {}\n\t }\n\n\t // Use randomBytes method (NodeJS)\n\t if (typeof crypto.randomBytes === 'function') {\n\t try {\n\t return crypto.randomBytes(4).readInt32LE();\n\t } catch (err) {}\n\t }\n\t }\n\n\t throw new Error('Native crypto module could not be used to get secure random number.');\n\t };\n\n\t /*\n\t * Local polyfill of Object.create\n\n\t */\n\t var create = Object.create || (function () {\n\t function F() {}\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }());\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var j = 0; j < thatSigBytes; j += 4) {\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64 encoding strategy.\n\t */\n\t var Base64 = C_enc.Base64 = {\n\t /**\n\t * Converts a word array to a Base64 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Base64 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64 string to a word array.\n\t *\n\t * @param {string} base64Str The Base64 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n\t */\n\t parse: function (base64Str) {\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha256\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS.HmacSHA256;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var C_algo = C.algo;\n\n\t /**\n\t * HMAC algorithm.\n\t */\n\t var HMAC = C_algo.HMAC = Base.extend({\n\t /**\n\t * Initializes a newly created HMAC.\n\t *\n\t * @param {Hasher} hasher The hash algorithm to use.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @example\n\t *\n\t * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n\t */\n\t init: function (hasher, key) {\n\t // Init hasher\n\t hasher = this._hasher = new hasher.init();\n\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof key == 'string') {\n\t key = Utf8.parse(key);\n\t }\n\n\t // Shortcuts\n\t var hasherBlockSize = hasher.blockSize;\n\t var hasherBlockSizeBytes = hasherBlockSize * 4;\n\n\t // Allow arbitrary length keys\n\t if (key.sigBytes > hasherBlockSizeBytes) {\n\t key = hasher.finalize(key);\n\t }\n\n\t // Clamp excess bits\n\t key.clamp();\n\n\t // Clone key for inner and outer pads\n\t var oKey = this._oKey = key.clone();\n\t var iKey = this._iKey = key.clone();\n\n\t // Shortcuts\n\t var oKeyWords = oKey.words;\n\t var iKeyWords = iKey.words;\n\n\t // XOR keys with pad constants\n\t for (var i = 0; i < hasherBlockSize; i++) {\n\t oKeyWords[i] ^= 0x5c5c5c5c;\n\t iKeyWords[i] ^= 0x36363636;\n\t }\n\t oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this HMAC to its initial state.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.reset();\n\t */\n\t reset: function () {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Reset\n\t hasher.reset();\n\t hasher.update(this._iKey);\n\t },\n\n\t /**\n\t * Updates this HMAC with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {HMAC} This HMAC instance.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.update('message');\n\t * hmacHasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t this._hasher.update(messageUpdate);\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the HMAC computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @example\n\t *\n\t * var hmac = hmacHasher.finalize();\n\t * var hmac = hmacHasher.finalize('message');\n\t * var hmac = hmacHasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Compute HMAC\n\t var innerHash = hasher.finalize(messageUpdate);\n\t hasher.reset();\n\t var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n\n\t return hmac;\n\t }\n\t });\n\t}());\n\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Check if typed arrays are supported\n\t if (typeof ArrayBuffer != 'function') {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\n\t // Reference original init\n\t var superInit = WordArray.init;\n\n\t // Augment WordArray.init to handle typed arrays\n\t var subInit = WordArray.init = function (typedArray) {\n\t // Convert buffers to uint8\n\t if (typedArray instanceof ArrayBuffer) {\n\t typedArray = new Uint8Array(typedArray);\n\t }\n\n\t // Convert other array views to uint8\n\t if (\n\t typedArray instanceof Int8Array ||\n\t (typeof Uint8ClampedArray !== \"undefined\" && typedArray instanceof Uint8ClampedArray) ||\n\t typedArray instanceof Int16Array ||\n\t typedArray instanceof Uint16Array ||\n\t typedArray instanceof Int32Array ||\n\t typedArray instanceof Uint32Array ||\n\t typedArray instanceof Float32Array ||\n\t typedArray instanceof Float64Array\n\t ) {\n\t typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\n\t }\n\n\t // Handle Uint8Array\n\t if (typedArray instanceof Uint8Array) {\n\t // Shortcut\n\t var typedArrayByteLength = typedArray.byteLength;\n\n\t // Extract bytes\n\t var words = [];\n\t for (var i = 0; i < typedArrayByteLength; i++) {\n\t words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);\n\t }\n\n\t // Initialize this word array\n\t superInit.call(this, words, typedArrayByteLength);\n\t } else {\n\t // Else call normal init\n\t superInit.apply(this, arguments);\n\t }\n\t };\n\n\t subInit.prototype = WordArray;\n\t}());\n\n\n\treturn CryptoJS.lib.WordArray;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Initialization and round constants tables\n\t var H = [];\n\t var K = [];\n\n\t // Compute constants\n\t (function () {\n\t function isPrime(n) {\n\t var sqrtN = Math.sqrt(n);\n\t for (var factor = 2; factor <= sqrtN; factor++) {\n\t if (!(n % factor)) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t function getFractionalBits(n) {\n\t return ((n - (n | 0)) * 0x100000000) | 0;\n\t }\n\n\t var n = 2;\n\t var nPrime = 0;\n\t while (nPrime < 64) {\n\t if (isPrime(n)) {\n\t if (nPrime < 8) {\n\t H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n\t }\n\t K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n\n\t nPrime++;\n\t }\n\n\t n++;\n\t }\n\t }());\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-256 hash algorithm.\n\t */\n\t var SHA256 = C_algo.SHA256 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init(H.slice(0));\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\t var f = H[5];\n\t var g = H[6];\n\t var h = H[7];\n\n\t // Computation\n\t for (var i = 0; i < 64; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var gamma0x = W[i - 15];\n\t var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^\n\t ((gamma0x << 14) | (gamma0x >>> 18)) ^\n\t (gamma0x >>> 3);\n\n\t var gamma1x = W[i - 2];\n\t var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^\n\t ((gamma1x << 13) | (gamma1x >>> 19)) ^\n\t (gamma1x >>> 10);\n\n\t W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n\t }\n\n\t var ch = (e & f) ^ (~e & g);\n\t var maj = (a & b) ^ (a & c) ^ (b & c);\n\n\t var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n\t var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\n\n\t var t1 = h + sigma1 + ch + K[i] + W[i];\n\t var t2 = sigma0 + maj;\n\n\t h = g;\n\t g = f;\n\t f = e;\n\t e = (d + t1) | 0;\n\t d = c;\n\t c = b;\n\t b = a;\n\t a = (t1 + t2) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t H[5] = (H[5] + f) | 0;\n\t H[6] = (H[6] + g) | 0;\n\t H[7] = (H[7] + h) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA256('message');\n\t * var hash = CryptoJS.SHA256(wordArray);\n\t */\n\t C.SHA256 = Hasher._createHelper(SHA256);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA256(message, key);\n\t */\n\t C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA256;\n\n}));",null,null,null,null,null,null,null,null,null,null,";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t var crypto;\n\n\t // Native crypto from window (Browser)\n\t if (typeof window !== 'undefined' && window.crypto) {\n\t crypto = window.crypto;\n\t }\n\n\t // Native crypto in web worker (Browser)\n\t if (typeof self !== 'undefined' && self.crypto) {\n\t crypto = self.crypto;\n\t }\n\n\t // Native crypto from worker\n\t if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t crypto = globalThis.crypto;\n\t }\n\n\t // Native (experimental IE 11) crypto from window (Browser)\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t crypto = window.msCrypto;\n\t }\n\n\t // Native crypto from global (NodeJS)\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t crypto = global.crypto;\n\t }\n\n\t // Native crypto import via require (NodeJS)\n\t if (!crypto && typeof require === 'function') {\n\t try {\n\t crypto = require('crypto');\n\t } catch (err) {}\n\t }\n\n\t /*\n\t * Cryptographically secure pseudorandom number generator\n\t *\n\t * As Math.random() is cryptographically not safe to use\n\t */\n\t var cryptoSecureRandomInt = function () {\n\t if (crypto) {\n\t // Use getRandomValues method (Browser)\n\t if (typeof crypto.getRandomValues === 'function') {\n\t try {\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\n\t } catch (err) {}\n\t }\n\n\t // Use randomBytes method (NodeJS)\n\t if (typeof crypto.randomBytes === 'function') {\n\t try {\n\t return crypto.randomBytes(4).readInt32LE();\n\t } catch (err) {}\n\t }\n\t }\n\n\t throw new Error('Native crypto module could not be used to get secure random number.');\n\t };\n\n\t /*\n\t * Local polyfill of Object.create\n\n\t */\n\t var create = Object.create || (function () {\n\t function F() {}\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }());\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var j = 0; j < thatSigBytes; j += 4) {\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64 encoding strategy.\n\t */\n\t var Base64 = C_enc.Base64 = {\n\t /**\n\t * Converts a word array to a Base64 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Base64 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64 string to a word array.\n\t *\n\t * @param {string} base64Str The Base64 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n\t */\n\t parse: function (base64Str) {\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Initialization and round constants tables\n\t var H = [];\n\t var K = [];\n\n\t // Compute constants\n\t (function () {\n\t function isPrime(n) {\n\t var sqrtN = Math.sqrt(n);\n\t for (var factor = 2; factor <= sqrtN; factor++) {\n\t if (!(n % factor)) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t function getFractionalBits(n) {\n\t return ((n - (n | 0)) * 0x100000000) | 0;\n\t }\n\n\t var n = 2;\n\t var nPrime = 0;\n\t while (nPrime < 64) {\n\t if (isPrime(n)) {\n\t if (nPrime < 8) {\n\t H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n\t }\n\t K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n\n\t nPrime++;\n\t }\n\n\t n++;\n\t }\n\t }());\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-256 hash algorithm.\n\t */\n\t var SHA256 = C_algo.SHA256 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init(H.slice(0));\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\t var f = H[5];\n\t var g = H[6];\n\t var h = H[7];\n\n\t // Computation\n\t for (var i = 0; i < 64; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var gamma0x = W[i - 15];\n\t var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^\n\t ((gamma0x << 14) | (gamma0x >>> 18)) ^\n\t (gamma0x >>> 3);\n\n\t var gamma1x = W[i - 2];\n\t var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^\n\t ((gamma1x << 13) | (gamma1x >>> 19)) ^\n\t (gamma1x >>> 10);\n\n\t W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n\t }\n\n\t var ch = (e & f) ^ (~e & g);\n\t var maj = (a & b) ^ (a & c) ^ (b & c);\n\n\t var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n\t var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\n\n\t var t1 = h + sigma1 + ch + K[i] + W[i];\n\t var t2 = sigma0 + maj;\n\n\t h = g;\n\t g = f;\n\t f = e;\n\t e = (d + t1) | 0;\n\t d = c;\n\t c = b;\n\t b = a;\n\t a = (t1 + t2) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t H[5] = (H[5] + f) | 0;\n\t H[6] = (H[6] + g) | 0;\n\t H[7] = (H[7] + h) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA256('message');\n\t * var hash = CryptoJS.SHA256(wordArray);\n\t */\n\t C.SHA256 = Hasher._createHelper(SHA256);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA256(message, key);\n\t */\n\t C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA256;\n\n}));","/* (ignored) */","/* (ignored) */","/* (ignored) */","module.exports = __WEBPACK_EXTERNAL_MODULE__aws_amplify_core__;"],"sourceRoot":""}
\No newline at end of file