{"version":3,"file":"static/js/main-43dd7041-4f3bd23b1f7f38a35be4.js","mappings":"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","sources":["webpack://leadsbridge/./node_modules/amazon-cognito-identity-js/es/AuthenticationDetails.js","webpack://leadsbridge/./node_modules/amazon-cognito-identity-js/es/utils/cryptoSecureRandomInt.js","webpack://leadsbridge/./node_modules/amazon-cognito-identity-js/es/utils/WordArray.js","webpack://leadsbridge/./node_modules/amazon-cognito-identity-js/es/AuthenticationHelper.js","webpack://leadsbridge/./node_modules/amazon-cognito-identity-js/es/BigInteger.js","webpack://leadsbridge/./node_modules/amazon-cognito-identity-js/es/CognitoAccessToken.js","webpack://leadsbridge/./node_modules/amazon-cognito-identity-js/es/CognitoIdToken.js","webpack://leadsbridge/./node_modules/amazon-cognito-identity-js/es/CognitoJwtToken.js","webpack://leadsbridge/./node_modules/amazon-cognito-identity-js/es/CognitoRefreshToken.js","webpack://leadsbridge/./node_modules/amazon-cognito-identity-js/es/CognitoUserAttribute.js","webpack://leadsbridge/./node_modules/amazon-cognito-identity-js/es/Client.js","webpack://leadsbridge/./node_modules/amazon-cognito-identity-js/es/CognitoUserPool.js","webpack://leadsbridge/./node_modules/amazon-cognito-identity-js/es/CognitoUserSession.js","webpack://leadsbridge/./node_modules/amazon-cognito-identity-js/es/CookieStorage.js","webpack://leadsbridge/./node_modules/amazon-cognito-identity-js/es/DateHelper.js","webpack://leadsbridge/./node_modules/amazon-cognito-identity-js/es/StorageHelper.js","webpack://leadsbridge/./node_modules/amazon-cognito-identity-js/es/UserAgent.js","webpack://leadsbridge/./node_modules/axios/lib/adapters/xhr.js","webpack://leadsbridge/./node_modules/axios/lib/axios.js","webpack://leadsbridge/./node_modules/axios/lib/cancel/Cancel.js","webpack://leadsbridge/./node_modules/axios/lib/cancel/CancelToken.js","webpack://leadsbridge/./node_modules/axios/lib/cancel/isCancel.js","webpack://leadsbridge/./node_modules/axios/lib/core/Axios.js","webpack://leadsbridge/./node_modules/axios/lib/core/InterceptorManager.js","webpack://leadsbridge/./node_modules/axios/lib/core/buildFullPath.js","webpack://leadsbridge/./node_modules/axios/lib/core/createError.js","webpack://leadsbridge/./node_modules/axios/lib/core/dispatchRequest.js","webpack://leadsbridge/./node_modules/axios/lib/core/enhanceError.js","webpack://leadsbridge/./node_modules/axios/lib/core/mergeConfig.js","webpack://leadsbridge/./node_modules/axios/lib/core/settle.js","webpack://leadsbridge/./node_modules/axios/lib/core/transformData.js","webpack://leadsbridge/./node_modules/axios/lib/defaults.js","webpack://leadsbridge/./node_modules/axios/lib/helpers/bind.js","webpack://leadsbridge/./node_modules/axios/lib/helpers/buildURL.js","webpack://leadsbridge/./node_modules/axios/lib/helpers/combineURLs.js","webpack://leadsbridge/./node_modules/axios/lib/helpers/cookies.js","webpack://leadsbridge/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://leadsbridge/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://leadsbridge/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://leadsbridge/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://leadsbridge/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://leadsbridge/./node_modules/axios/lib/helpers/spread.js","webpack://leadsbridge/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://leadsbridge/./node_modules/@babel/runtime/helpers/esm/objectSpread2.js"],"sourcesContent":["/*!\n * Copyright 2016 Amazon.com,\n * Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Amazon Software License (the \"License\").\n * You may not use this file except in compliance with the\n * License. A copy of the License is located at\n *\n *     http://aws.amazon.com/asl/\n *\n * or in the \"license\" file accompanying this file. This file is\n * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, express or implied. See the License\n * for the specific language governing permissions and\n * limitations under the License.\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 };","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}","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 };","/*!\n * Copyright 2016 Amazon.com,\n * Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Amazon Software License (the \"License\").\n * You may not use this file except in compliance with the\n * License. A copy of the License is located at\n *\n *     http://aws.amazon.com/asl/\n *\n * or in the \"license\" file accompanying this file. This file is\n * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, express or implied. See the License\n * for the specific language governing permissions and\n * limitations under the License.\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\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      \tAny sequence of '1' bits on the left can always be substituted with a single '1' bit\n      without changing the represented value.\n      \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 _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/*\n * Copyright 2016 Amazon.com,\n * Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Amazon Software License (the \"License\").\n * You may not use this file except in compliance with the\n * License. A copy of the License is located at\n *\n *     http://aws.amazon.com/asl/\n *\n * or in the \"license\" file accompanying this file. This file is\n * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, express or implied. See the License\n * for the specific language governing permissions and\n * limitations under the License.\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 2016 Amazon.com,\n * Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Amazon Software License (the \"License\").\n * You may not use this file except in compliance with the\n * License. A copy of the License is located at\n *\n *     http://aws.amazon.com/asl/\n *\n * or in the \"license\" file accompanying this file. This file is\n * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, express or implied. See the License\n * for the specific language governing permissions and\n * limitations under the License.\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 2016 Amazon.com,\n * Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Amazon Software License (the \"License\").\n * You may not use this file except in compliance with the\n * License. A copy of the License is located at\n *\n *     http://aws.amazon.com/asl/\n *\n * or in the \"license\" file accompanying this file. This file is\n * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, express or implied. See the License\n * for the specific language governing permissions and\n * limitations under the License.\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 2016 Amazon.com,\n * Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Amazon Software License (the \"License\").\n * You may not use this file except in compliance with the\n * License. A copy of the License is located at\n *\n *     http://aws.amazon.com/asl/\n *\n * or in the \"license\" file accompanying this file. This file is\n * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, express or implied. See the License\n * for the specific language governing permissions and\n * limitations under the License.\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 2016 Amazon.com,\n * Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Amazon Software License (the \"License\").\n * You may not use this file except in compliance with the\n * License. A copy of the License is located at\n *\n *     http://aws.amazon.com/asl/\n *\n * or in the \"license\" file accompanying this file. This file is\n * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, express or implied. See the License\n * for the specific language governing permissions and\n * limitations under the License.\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 };","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 { Date.prototype.toString.call(Reflect.construct(Date, [], 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   * 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 = {\n        code: code,\n        name: code,\n        message: data.message || data.Message || null\n      };\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 = {\n            code: code,\n            name: code,\n            statusCode: response.status,\n            message: response.status ? response.status.toString() : null\n          };\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        var _error = {\n          code: 'NetworkError',\n          name: err.name,\n          message: err.message\n        };\n        return callback(_error);\n      } else {\n        return callback(err);\n      }\n    });\n  };\n\n  return Client;\n}();\n\nexport { Client as default };","/*!\n * Copyright 2016 Amazon.com,\n * Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Amazon Software License (the \"License\").\n * You may not use this file except in compliance with the\n * License. A copy of the License is located at\n *\n *     http://aws.amazon.com/asl/\n *\n * or in the \"license\" file accompanying this file. This file is\n * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, express or implied. See the License\n * for the specific language governing permissions and\n * limitations under the License.\n */\nimport Client from './Client';\nimport CognitoUser from './CognitoUser';\nimport StorageHelper from './StorageHelper';\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 (!/^[\\w-]+_.+$/.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 2016 Amazon.com,\n * Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Amazon Software License (the \"License\").\n * You may not use this file except in compliance with the\n * License. A copy of the License is located at\n *\n *     http://aws.amazon.com/asl/\n *\n * or in the \"license\" file accompanying this file. This file is\n * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, express or implied. See the License\n * for the specific language governing permissions and\n * limitations under the License.\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\n   * @returns {string} nothing\n   */\n  ;\n\n  _proto.clear = function clear() {\n    var cookies = Cookies.get();\n    var index;\n\n    for (index = 0; index < cookies.length; ++index) {\n      Cookies.remove(cookies[index]);\n    }\n\n    return {};\n  };\n\n  return CookieStorage;\n}();\n\nexport { CookieStorage as default };","/*!\n * Copyright 2016 Amazon.com,\n * Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Amazon Software License (the \"License\").\n * You may not use this file except in compliance with the\n * License. A copy of the License is located at\n *\n *     http://aws.amazon.com/asl/\n *\n * or in the \"license\" file accompanying this file. This file is\n * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, express or implied. See the License\n * for the specific language governing permissions and\n * limitations under the License.\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 2016 Amazon.com,\n * Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Amazon Software License (the \"License\").\n * You may not use this file except in compliance with the\n * License. A copy of the License is located at\n *\n *     http://aws.amazon.com/asl/\n *\n * or in the \"license\" file accompanying this file. This file is\n * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, express or implied. See the License\n * for the specific language governing permissions and\n * limitations under the License.\n */\nvar dataMemory = {};\n/** @class */\n\nvar 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 {string} value - value that was deleted\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\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 };","// constructor\nfunction UserAgent() {} // public\n\n\nUserAgent.prototype.userAgent = 'aws-amplify/0.1.x js';\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;","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n  return new Promise(function dispatchXhrRequest(resolve, reject) {\n    var requestData = config.data;\n    var requestHeaders = config.headers;\n\n    if (utils.isFormData(requestData)) {\n      delete requestHeaders['Content-Type']; // Let the browser set it\n    }\n\n    var request = new XMLHttpRequest();\n\n    // HTTP basic authentication\n    if (config.auth) {\n      var username = config.auth.username || '';\n      var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n      requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n    }\n\n    var fullPath = buildFullPath(config.baseURL, config.url);\n    request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n    // Set the request timeout in MS\n    request.timeout = config.timeout;\n\n    // Listen for ready state\n    request.onreadystatechange = function handleLoad() {\n      if (!request || request.readyState !== 4) {\n        return;\n      }\n\n      // The request errored out and we didn't get a response, this will be\n      // handled by onerror instead\n      // With one exception: request that using file: protocol, most browsers\n      // will return status as 0 even though it's a successful request\n      if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n        return;\n      }\n\n      // Prepare the response\n      var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n      var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n      var response = {\n        data: responseData,\n        status: request.status,\n        statusText: request.statusText,\n        headers: responseHeaders,\n        config: config,\n        request: request\n      };\n\n      settle(resolve, reject, response);\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle browser request cancellation (as opposed to a manual cancellation)\n    request.onabort = function handleAbort() {\n      if (!request) {\n        return;\n      }\n\n      reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle low level network errors\n    request.onerror = function handleError() {\n      // Real errors are hidden from us by the browser\n      // onerror should only fire if it's a network error\n      reject(createError('Network Error', config, null, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle timeout\n    request.ontimeout = function handleTimeout() {\n      var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n      if (config.timeoutErrorMessage) {\n        timeoutErrorMessage = config.timeoutErrorMessage;\n      }\n      reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n        request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Add xsrf header\n    // This is only done if running in a standard browser environment.\n    // Specifically not if we're in a web worker, or react-native.\n    if (utils.isStandardBrowserEnv()) {\n      // Add xsrf header\n      var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n        cookies.read(config.xsrfCookieName) :\n        undefined;\n\n      if (xsrfValue) {\n        requestHeaders[config.xsrfHeaderName] = xsrfValue;\n      }\n    }\n\n    // Add headers to the request\n    if ('setRequestHeader' in request) {\n      utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n        if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n          // Remove Content-Type if data is undefined\n          delete requestHeaders[key];\n        } else {\n          // Otherwise add header to the request\n          request.setRequestHeader(key, val);\n        }\n      });\n    }\n\n    // Add withCredentials to request if needed\n    if (!utils.isUndefined(config.withCredentials)) {\n      request.withCredentials = !!config.withCredentials;\n    }\n\n    // Add responseType to request if needed\n    if (config.responseType) {\n      try {\n        request.responseType = config.responseType;\n      } catch (e) {\n        // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n        // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n        if (config.responseType !== 'json') {\n          throw e;\n        }\n      }\n    }\n\n    // Handle progress if needed\n    if (typeof config.onDownloadProgress === 'function') {\n      request.addEventListener('progress', config.onDownloadProgress);\n    }\n\n    // Not all browsers support upload events\n    if (typeof config.onUploadProgress === 'function' && request.upload) {\n      request.upload.addEventListener('progress', config.onUploadProgress);\n    }\n\n    if (config.cancelToken) {\n      // Handle cancellation\n      config.cancelToken.promise.then(function onCanceled(cancel) {\n        if (!request) {\n          return;\n        }\n\n        request.abort();\n        reject(cancel);\n        // Clean up request\n        request = null;\n      });\n    }\n\n    if (!requestData) {\n      requestData = null;\n    }\n\n    // Send the request\n    request.send(requestData);\n  });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n  var context = new Axios(defaultConfig);\n  var instance = bind(Axios.prototype.request, context);\n\n  // Copy axios.prototype to instance\n  utils.extend(instance, Axios.prototype, context);\n\n  // Copy context to instance\n  utils.extend(instance, context);\n\n  return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n  return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n  return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n  this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n  return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n  if (typeof executor !== 'function') {\n    throw new TypeError('executor must be a function.');\n  }\n\n  var resolvePromise;\n  this.promise = new Promise(function promiseExecutor(resolve) {\n    resolvePromise = resolve;\n  });\n\n  var token = this;\n  executor(function cancel(message) {\n    if (token.reason) {\n      // Cancellation has already been requested\n      return;\n    }\n\n    token.reason = new Cancel(message);\n    resolvePromise(token.reason);\n  });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n  if (this.reason) {\n    throw this.reason;\n  }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n  var cancel;\n  var token = new CancelToken(function executor(c) {\n    cancel = c;\n  });\n  return {\n    token: token,\n    cancel: cancel\n  };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n  return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n  this.defaults = instanceConfig;\n  this.interceptors = {\n    request: new InterceptorManager(),\n    response: new InterceptorManager()\n  };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n  /*eslint no-param-reassign:0*/\n  // Allow for axios('example/url'[, config]) a la fetch API\n  if (typeof config === 'string') {\n    config = arguments[1] || {};\n    config.url = arguments[0];\n  } else {\n    config = config || {};\n  }\n\n  config = mergeConfig(this.defaults, config);\n\n  // Set config.method\n  if (config.method) {\n    config.method = config.method.toLowerCase();\n  } else if (this.defaults.method) {\n    config.method = this.defaults.method.toLowerCase();\n  } else {\n    config.method = 'get';\n  }\n\n  // Hook up interceptors middleware\n  var chain = [dispatchRequest, undefined];\n  var promise = Promise.resolve(config);\n\n  this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n    chain.unshift(interceptor.fulfilled, interceptor.rejected);\n  });\n\n  this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n    chain.push(interceptor.fulfilled, interceptor.rejected);\n  });\n\n  while (chain.length) {\n    promise = promise.then(chain.shift(), chain.shift());\n  }\n\n  return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n  config = mergeConfig(this.defaults, config);\n  return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, config) {\n    return this.request(mergeConfig(config || {}, {\n      method: method,\n      url: url,\n      data: (config || {}).data\n    }));\n  };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, data, config) {\n    return this.request(mergeConfig(config || {}, {\n      method: method,\n      url: url,\n      data: data\n    }));\n  };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n  this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n  this.handlers.push({\n    fulfilled: fulfilled,\n    rejected: rejected\n  });\n  return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n  if (this.handlers[id]) {\n    this.handlers[id] = null;\n  }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n  utils.forEach(this.handlers, function forEachHandler(h) {\n    if (h !== null) {\n      fn(h);\n    }\n  });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n  if (baseURL && !isAbsoluteURL(requestedURL)) {\n    return combineURLs(baseURL, requestedURL);\n  }\n  return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n  var error = new Error(message);\n  return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n  if (config.cancelToken) {\n    config.cancelToken.throwIfRequested();\n  }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n  throwIfCancellationRequested(config);\n\n  // Ensure headers exist\n  config.headers = config.headers || {};\n\n  // Transform request data\n  config.data = transformData(\n    config.data,\n    config.headers,\n    config.transformRequest\n  );\n\n  // Flatten headers\n  config.headers = utils.merge(\n    config.headers.common || {},\n    config.headers[config.method] || {},\n    config.headers\n  );\n\n  utils.forEach(\n    ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n    function cleanHeaderConfig(method) {\n      delete config.headers[method];\n    }\n  );\n\n  var adapter = config.adapter || defaults.adapter;\n\n  return adapter(config).then(function onAdapterResolution(response) {\n    throwIfCancellationRequested(config);\n\n    // Transform response data\n    response.data = transformData(\n      response.data,\n      response.headers,\n      config.transformResponse\n    );\n\n    return response;\n  }, function onAdapterRejection(reason) {\n    if (!isCancel(reason)) {\n      throwIfCancellationRequested(config);\n\n      // Transform response data\n      if (reason && reason.response) {\n        reason.response.data = transformData(\n          reason.response.data,\n          reason.response.headers,\n          config.transformResponse\n        );\n      }\n    }\n\n    return Promise.reject(reason);\n  });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n  error.config = config;\n  if (code) {\n    error.code = code;\n  }\n\n  error.request = request;\n  error.response = response;\n  error.isAxiosError = true;\n\n  error.toJSON = function toJSON() {\n    return {\n      // Standard\n      message: this.message,\n      name: this.name,\n      // Microsoft\n      description: this.description,\n      number: this.number,\n      // Mozilla\n      fileName: this.fileName,\n      lineNumber: this.lineNumber,\n      columnNumber: this.columnNumber,\n      stack: this.stack,\n      // Axios\n      config: this.config,\n      code: this.code\n    };\n  };\n  return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n  // eslint-disable-next-line no-param-reassign\n  config2 = config2 || {};\n  var config = {};\n\n  var valueFromConfig2Keys = ['url', 'method', 'data'];\n  var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n  var defaultToConfig2Keys = [\n    'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n    'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n    'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n    'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n    'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n  ];\n  var directMergeKeys = ['validateStatus'];\n\n  function getMergedValue(target, source) {\n    if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n      return utils.merge(target, source);\n    } else if (utils.isPlainObject(source)) {\n      return utils.merge({}, source);\n    } else if (utils.isArray(source)) {\n      return source.slice();\n    }\n    return source;\n  }\n\n  function mergeDeepProperties(prop) {\n    if (!utils.isUndefined(config2[prop])) {\n      config[prop] = getMergedValue(config1[prop], config2[prop]);\n    } else if (!utils.isUndefined(config1[prop])) {\n      config[prop] = getMergedValue(undefined, config1[prop]);\n    }\n  }\n\n  utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n    if (!utils.isUndefined(config2[prop])) {\n      config[prop] = getMergedValue(undefined, config2[prop]);\n    }\n  });\n\n  utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n  utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n    if (!utils.isUndefined(config2[prop])) {\n      config[prop] = getMergedValue(undefined, config2[prop]);\n    } else if (!utils.isUndefined(config1[prop])) {\n      config[prop] = getMergedValue(undefined, config1[prop]);\n    }\n  });\n\n  utils.forEach(directMergeKeys, function merge(prop) {\n    if (prop in config2) {\n      config[prop] = getMergedValue(config1[prop], config2[prop]);\n    } else if (prop in config1) {\n      config[prop] = getMergedValue(undefined, config1[prop]);\n    }\n  });\n\n  var axiosKeys = valueFromConfig2Keys\n    .concat(mergeDeepPropertiesKeys)\n    .concat(defaultToConfig2Keys)\n    .concat(directMergeKeys);\n\n  var otherKeys = Object\n    .keys(config1)\n    .concat(Object.keys(config2))\n    .filter(function filterAxiosKeys(key) {\n      return axiosKeys.indexOf(key) === -1;\n    });\n\n  utils.forEach(otherKeys, mergeDeepProperties);\n\n  return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n  var validateStatus = response.config.validateStatus;\n  if (!response.status || !validateStatus || validateStatus(response.status)) {\n    resolve(response);\n  } else {\n    reject(createError(\n      'Request failed with status code ' + response.status,\n      response.config,\n      null,\n      response.request,\n      response\n    ));\n  }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n  /*eslint no-param-reassign:0*/\n  utils.forEach(fns, function transform(fn) {\n    data = fn(data, headers);\n  });\n\n  return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n  'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n  if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n    headers['Content-Type'] = value;\n  }\n}\n\nfunction getDefaultAdapter() {\n  var adapter;\n  if (typeof XMLHttpRequest !== 'undefined') {\n    // For browsers use XHR adapter\n    adapter = require('./adapters/xhr');\n  } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n    // For node use HTTP adapter\n    adapter = require('./adapters/http');\n  }\n  return adapter;\n}\n\nvar defaults = {\n  adapter: getDefaultAdapter(),\n\n  transformRequest: [function transformRequest(data, headers) {\n    normalizeHeaderName(headers, 'Accept');\n    normalizeHeaderName(headers, 'Content-Type');\n    if (utils.isFormData(data) ||\n      utils.isArrayBuffer(data) ||\n      utils.isBuffer(data) ||\n      utils.isStream(data) ||\n      utils.isFile(data) ||\n      utils.isBlob(data)\n    ) {\n      return data;\n    }\n    if (utils.isArrayBufferView(data)) {\n      return data.buffer;\n    }\n    if (utils.isURLSearchParams(data)) {\n      setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n      return data.toString();\n    }\n    if (utils.isObject(data)) {\n      setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n      return JSON.stringify(data);\n    }\n    return data;\n  }],\n\n  transformResponse: [function transformResponse(data) {\n    /*eslint no-param-reassign:0*/\n    if (typeof data === 'string') {\n      try {\n        data = JSON.parse(data);\n      } catch (e) { /* Ignore */ }\n    }\n    return data;\n  }],\n\n  /**\n   * A timeout in milliseconds to abort a request. If set to 0 (default) a\n   * timeout is not created.\n   */\n  timeout: 0,\n\n  xsrfCookieName: 'XSRF-TOKEN',\n  xsrfHeaderName: 'X-XSRF-TOKEN',\n\n  maxContentLength: -1,\n  maxBodyLength: -1,\n\n  validateStatus: function validateStatus(status) {\n    return status >= 200 && status < 300;\n  }\n};\n\ndefaults.headers = {\n  common: {\n    'Accept': 'application/json, text/plain, */*'\n  }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n  defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n  return function wrap() {\n    var args = new Array(arguments.length);\n    for (var i = 0; i < args.length; i++) {\n      args[i] = arguments[i];\n    }\n    return fn.apply(thisArg, args);\n  };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n  return encodeURIComponent(val).\n    replace(/%3A/gi, ':').\n    replace(/%24/g, '$').\n    replace(/%2C/gi, ',').\n    replace(/%20/g, '+').\n    replace(/%5B/gi, '[').\n    replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n  /*eslint no-param-reassign:0*/\n  if (!params) {\n    return url;\n  }\n\n  var serializedParams;\n  if (paramsSerializer) {\n    serializedParams = paramsSerializer(params);\n  } else if (utils.isURLSearchParams(params)) {\n    serializedParams = params.toString();\n  } else {\n    var parts = [];\n\n    utils.forEach(params, function serialize(val, key) {\n      if (val === null || typeof val === 'undefined') {\n        return;\n      }\n\n      if (utils.isArray(val)) {\n        key = key + '[]';\n      } else {\n        val = [val];\n      }\n\n      utils.forEach(val, function parseValue(v) {\n        if (utils.isDate(v)) {\n          v = v.toISOString();\n        } else if (utils.isObject(v)) {\n          v = JSON.stringify(v);\n        }\n        parts.push(encode(key) + '=' + encode(v));\n      });\n    });\n\n    serializedParams = parts.join('&');\n  }\n\n  if (serializedParams) {\n    var hashmarkIndex = url.indexOf('#');\n    if (hashmarkIndex !== -1) {\n      url = url.slice(0, hashmarkIndex);\n    }\n\n    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n  }\n\n  return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n  return relativeURL\n    ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n    : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n  utils.isStandardBrowserEnv() ?\n\n  // Standard browser envs support document.cookie\n    (function standardBrowserEnv() {\n      return {\n        write: function write(name, value, expires, path, domain, secure) {\n          var cookie = [];\n          cookie.push(name + '=' + encodeURIComponent(value));\n\n          if (utils.isNumber(expires)) {\n            cookie.push('expires=' + new Date(expires).toGMTString());\n          }\n\n          if (utils.isString(path)) {\n            cookie.push('path=' + path);\n          }\n\n          if (utils.isString(domain)) {\n            cookie.push('domain=' + domain);\n          }\n\n          if (secure === true) {\n            cookie.push('secure');\n          }\n\n          document.cookie = cookie.join('; ');\n        },\n\n        read: function read(name) {\n          var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n          return (match ? decodeURIComponent(match[3]) : null);\n        },\n\n        remove: function remove(name) {\n          this.write(name, '', Date.now() - 86400000);\n        }\n      };\n    })() :\n\n  // Non standard browser env (web workers, react-native) lack needed support.\n    (function nonStandardBrowserEnv() {\n      return {\n        write: function write() {},\n        read: function read() { return null; },\n        remove: function remove() {}\n      };\n    })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n  // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n  // by any combination of letters, digits, plus, period, or hyphen.\n  return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n  return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n  utils.isStandardBrowserEnv() ?\n\n  // Standard browser envs have full support of the APIs needed to test\n  // whether the request URL is of the same origin as current location.\n    (function standardBrowserEnv() {\n      var msie = /(msie|trident)/i.test(navigator.userAgent);\n      var urlParsingNode = document.createElement('a');\n      var originURL;\n\n      /**\n    * Parse a URL to discover it's components\n    *\n    * @param {String} url The URL to be parsed\n    * @returns {Object}\n    */\n      function resolveURL(url) {\n        var href = url;\n\n        if (msie) {\n        // IE needs attribute set twice to normalize properties\n          urlParsingNode.setAttribute('href', href);\n          href = urlParsingNode.href;\n        }\n\n        urlParsingNode.setAttribute('href', href);\n\n        // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n        return {\n          href: urlParsingNode.href,\n          protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n          host: urlParsingNode.host,\n          search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n          hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n          hostname: urlParsingNode.hostname,\n          port: urlParsingNode.port,\n          pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n            urlParsingNode.pathname :\n            '/' + urlParsingNode.pathname\n        };\n      }\n\n      originURL = resolveURL(window.location.href);\n\n      /**\n    * Determine if a URL shares the same origin as the current location\n    *\n    * @param {String} requestURL The URL to test\n    * @returns {boolean} True if URL shares the same origin, otherwise false\n    */\n      return function isURLSameOrigin(requestURL) {\n        var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n        return (parsed.protocol === originURL.protocol &&\n            parsed.host === originURL.host);\n      };\n    })() :\n\n  // Non standard browser envs (web workers, react-native) lack needed support.\n    (function nonStandardBrowserEnv() {\n      return function isURLSameOrigin() {\n        return true;\n      };\n    })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n  utils.forEach(headers, function processHeader(value, name) {\n    if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n      headers[normalizedName] = value;\n      delete headers[name];\n    }\n  });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n  'age', 'authorization', 'content-length', 'content-type', 'etag',\n  'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n  'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n  'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n  var parsed = {};\n  var key;\n  var val;\n  var i;\n\n  if (!headers) { return parsed; }\n\n  utils.forEach(headers.split('\\n'), function parser(line) {\n    i = line.indexOf(':');\n    key = utils.trim(line.substr(0, i)).toLowerCase();\n    val = utils.trim(line.substr(i + 1));\n\n    if (key) {\n      if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n        return;\n      }\n      if (key === 'set-cookie') {\n        parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n      } else {\n        parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n      }\n    }\n  });\n\n  return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n *  ```js\n *  function f(x, y, z) {}\n *  var args = [1, 2, 3];\n *  f.apply(null, args);\n *  ```\n *\n * With `spread` this example can be re-written.\n *\n *  ```js\n *  spread(function(x, y, z) {})([1, 2, 3]);\n *  ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n  return function wrap(arr) {\n    return callback.apply(null, arr);\n  };\n};\n","export default function _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n\n  return obj;\n}","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n\n    if (enumerableOnly) {\n      symbols = symbols.filter(function (sym) {\n        return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n      });\n    }\n\n    keys.push.apply(keys, symbols);\n  }\n\n  return keys;\n}\n\nexport default function _objectSpread2(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n\n    if (i % 2) {\n      ownKeys(Object(source), true).forEach(function (key) {\n        defineProperty(target, key, source[key]);\n      });\n    } else if (Object.getOwnPropertyDescriptors) {\n      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n    } else {\n      ownKeys(Object(source)).forEach(function (key) {\n        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n      });\n    }\n  }\n\n  return target;\n}"],"names":["AuthenticationDetails","data","_ref","Username","Password","AuthParameters","ClientMetadata","this","validationData","ValidationData","authParameters","clientMetadata","username","password","_proto","prototype","getUsername","getPassword","getValidationData","getAuthParameters","getClientMetadata","window","crypto","msCrypto","g","err","cryptoSecureRandomInt","getRandomValues","Uint32Array","randomBytes","readInt32LE","Error","WordArray","words","sigBytes","undefined","length","random","nBytes","i","push","toString","wordArray","hexChars","bite","join","hexStringify","HEX_MSB_REGEX","AuthenticationHelper","PoolName","N","BigInteger","k","hexHash","padHex","smallAValue","generateRandomSmallA","getLargeAValue","infoBits","poolName","getSmallAValue","callback","_this","largeAValue","calculateA","hexRandom","generateRandomString","getRandomPassword","randomPassword","getSaltDevices","SaltToHashDevices","getVerifierDevices","verifierDevices","generateHashDevice","deviceGroupKey","_this2","hashedString","hash","modPow","verifierDevicesNotPadded","a","_this3","A","mod","equals","calculateU","B","UHexHash","buf","str","hashHex","Array","hexStr","computehkdf","ikm","salt","infoBitsWordArray","String","fromCharCode","ikmWordArray","saltWordArray","prk","hmac","slice","getPasswordAuthenticationKey","serverBValue","_this4","UValue","usernamePasswordHash","xValue","calculateS","sValue","hkdf","_this5","gModPowXN","subtract","multiply","add","err2","result","getNewPasswordRequiredChallengeUserAttributePrefix","bigInt","isNegative","compareTo","abs","test","invertedNibbles","split","map","x","invertedNibble","parseInt","charAt","toUpperCase","startsWith","substring","b","fromString","nbi","dbits","inBrowser","navigator","appName","am","w","j","c","n","xl","xh","l","h","m","v","Math","floor","DB","DM","DV","FV","pow","F1","F2","rr","vv","BI_RC","charCodeAt","int2char","intAt","s","nbv","r","fromInt","nbits","t","Montgomery","mp","invDigit","mpl","mph","um","mt2","convert","dlShiftTo","divRemTo","ZERO","subTo","revert","copyTo","reduce","u0","clamp","drShiftTo","mulTo","y","multiplyTo","sqrTo","squareTo","mi","sh","max","lShiftTo","bs","cbs","bm","ds","rShiftTo","min","q","pm","pt","ts","ms","nsh","ys","y0","yt","d1","d2","e","ONE","qd","addTo","negate","d","km","p","bitLength","divide","z","k1","g2","is1","r2","_setPrototypeOf","o","Object","setPrototypeOf","__proto__","CognitoAccessToken","_CognitoJwtToken","subClass","superClass","_temp","call","AccessToken","create","constructor","CognitoIdToken","IdToken","CognitoJwtToken","token","jwtToken","payload","decodePayload","getJwtToken","getExpiration","exp","getIssuedAt","iat","JSON","parse","CognitoRefreshToken","RefreshToken","getToken","CognitoUserAttribute","Value","Name","getValue","setValue","value","getName","setName","name","stringify","toJSON","_wrapNativeSuper","Class","_cache","Map","Function","indexOf","TypeError","has","get","set","Wrapper","_construct","arguments","_getPrototypeOf","enumerable","writable","configurable","Parent","args","_isNativeReflectConstruct","Reflect","construct","apply","instance","bind","sham","Proxy","Date","getPrototypeOf","CognitoError","_Error","message","code","statusCode","Client","region","endpoint","fetchOptions","credentials","promisifyRequest","operation","params","Promise","resolve","reject","request","response","options","assign","headers","UserAgent","method","mode","cache","body","fetch","then","resp","json","ok","__type","pop","Message","error","status","ex","CognitoUserPool","wrapRefreshSessionCallback","UserPoolId","ClientId","AdvancedSecurityDataCollectionFlag","userPoolId","clientId","client","advancedSecurityDataCollectionFlag","storage","Storage","StorageHelper","getStorage","getUserPoolId","getClientId","signUp","userAttributes","jsonReq","UserAttributes","getUserContextData","UserContextData","returnData","user","CognitoUser","Pool","userConfirmed","UserConfirmed","userSub","UserSub","codeDeliveryDetails","CodeDeliveryDetails","getCurrentUser","lastAuthUser","getItem","AmazonCognitoAdvancedSecurityData","amazonCognitoAdvancedSecurityDataConst","advancedSecurityData","getData","EncodedData","CognitoUserSession","ClockDrift","idToken","refreshToken","accessToken","clockDrift","calculateClockDrift","getIdToken","getRefreshToken","getAccessToken","getClockDrift","isValid","adjusted","CookieStorage","domain","path","expires","hasOwnProperty","secure","includes","sameSite","setItem","key","removeItem","clear","index","cookies","monthNames","weekNames","DateHelper","getNowString","now","weekDay","getUTCDay","month","getUTCMonth","day","getUTCDate","hours","getUTCHours","minutes","getUTCMinutes","seconds","getUTCSeconds","getUTCFullYear","dataMemory","MemoryStorage","storageWindow","localStorage","exception","userAgent","utils","settle","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","module","exports","config","requestData","requestHeaders","isFormData","XMLHttpRequest","auth","unescape","encodeURIComponent","Authorization","btoa","fullPath","baseURL","url","open","paramsSerializer","timeout","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","responseType","responseText","statusText","onabort","onerror","ontimeout","timeoutErrorMessage","isStandardBrowserEnv","xsrfValue","withCredentials","xsrfCookieName","read","xsrfHeaderName","forEach","val","toLowerCase","setRequestHeader","isUndefined","onDownloadProgress","addEventListener","onUploadProgress","upload","cancelToken","promise","cancel","abort","send","Axios","mergeConfig","createInstance","defaultConfig","context","extend","axios","instanceConfig","defaults","Cancel","CancelToken","isCancel","all","promises","spread","isAxiosError","__CANCEL__","executor","resolvePromise","reason","throwIfRequested","source","InterceptorManager","dispatchRequest","interceptors","chain","interceptor","unshift","fulfilled","rejected","shift","getUri","replace","handlers","use","eject","id","fn","isAbsoluteURL","combineURLs","requestedURL","enhanceError","transformData","throwIfCancellationRequested","transformRequest","merge","common","adapter","transformResponse","description","number","fileName","lineNumber","columnNumber","stack","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","target","isPlainObject","isArray","mergeDeepProperties","prop","axiosKeys","concat","otherKeys","keys","filter","validateStatus","fns","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","process","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isObject","maxContentLength","maxBodyLength","thisArg","encode","serializedParams","parts","isDate","toISOString","hashmarkIndex","relativeURL","write","cookie","isNumber","toGMTString","isString","document","match","RegExp","decodeURIComponent","remove","originURL","msie","urlParsingNode","createElement","resolveURL","href","setAttribute","protocol","host","search","hostname","port","pathname","location","requestURL","parsed","normalizedName","ignoreDuplicateOf","line","trim","substr","arr","_defineProperty","obj","defineProperty","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","getOwnPropertyDescriptors","defineProperties"],"sourceRoot":""}